Как отметить количество в счете в строке заказа на покупку? Могу ли я использовать поле "Готово"?

Я пытаюсь считать Qty_to_invoice в Purchase_Order_Line, но значение этого поля 0 в самом начале, поэтому я должен инициализировать его с помощью строки заказа на покупку Quantity поле. Проблема в том, когда он возвращается к 0. Как я могу отметить, что все счета для этой строки получены?

Я нашел поле "Завершено" в Purchase_Order_Line, но я не уверен, что смогу его использовать. Могу я? Могу я? Я не уверен, что система будет использовать его позже...

Или просто укажите мне на API документацию, если есть, пожалуйста. Что-то с описанием всех этих полей было бы здорово прочитать.

// ETDI: я ​​использую Web Services(Page) для доступа к NAV.

1 ответ

Решение

но значение этого поля 0 в самом начале, поэтому я должен его инициализировать

Я не могу догадаться, что именно вы пытаетесь сделать с покупкой Line, но такие поля, как Qty. на счет и кол-во. Получать в большинстве случаев заполненные автоматически при проверке количества. Оба набора равны количеству. Проверка триггеров, когда пользователь вводит что-то в поле формы или из кода C/AL, вызывая PurcaseLine.VALIDATE("Quantyity", number);

Проблема в том, когда он возвращается к 0. Как я могу отметить, что все счета для этой строки получены?

При выставлении счета в поле добавляется проведенное количество. Qty. Invoiced и полученное количество добавлено в поле Qty. Received, Таким образом, в любое время вы знаете, сколько товара получено и оплачено. Оба поля доступны только для пользователя, потому что только процедуры публикации могут и должны их изменять.

Так что если у вас есть кол-во. = 10, то вы публикуете 4 из них (кол-во счетов-фактур = 4) и кол-во. Invoiced = 0. Вы получите кол-во. = 10, кол-во на счет = 6, кол-во Счет выставлен = 4. Кол-во. Счет в этом случае является остальной частью кол-во. быть выставленным счетом.

Вы не должны использовать какие-либо поля, если вы не знаете их назначение. Например, поле "Завершено" является частью функциональности "Производственные заказы" и не относится к количеству. Счет на всех.

Чтобы узнать значение поля, вы можете обратиться к справке (нажмите F1, стоя на поле в таблице). Это работает не для каждой области. Другой способ (если вы разработчик и у вас есть лицензия) - использовать Developer Tool Kit (его можно найти на установочном компакт-диске или здесь). Эта утилита позволяет искать зависимости между объектами Nav.


Что касается веб-сервисов. Не пытайтесь использовать эти таблицы напрямую. Это действительно вызывает много неприятностей и неудобств. Создать новые операционные таблицы. Назови их Purchase Order Import а также Purchase Line Import, Создавайте для них страницы и публикуйте их как веб-сервисы. Импортируйте свои данные в них в любом формате. Я имею в виду, что таблицы могут быть клонами реальных таблиц или иметь только несколько полей, которые вам нужны. Поместите некоторый код в OnModify триггер страниц, которые будут вызываться в конце импорта или публикации кодового блока с функцией, которая будет создавать или обновлять заказы на покупку и строки из таблиц импорта. Очистить Import-таблицы в конце концов.

Если ваша задача состоит в том, чтобы частично провести поступления на основе количества из внешней системы, то ваши шаги будут:

  1. Предположим, заказ на покупку и линия созданы, кол-во 100, вам нужно разместить это кол-во порциями
  2. Импортировать Кол-во будет размещено через веб-сервис в Таблицу Импортирования Покупки через страницу
  3. OnModify страницы будет запущен, добавьте код в этот триггер, чтобы обновить строку покупки Qty. to Invoice - или - позвоните на какой-нибудь код-блок через веб-сервис и обновите линии покупки Qty. to Invoice, Поместите всю бизнес-логику на создание и обновление строки покупки здесь, а не во внешнем приложении.
  4. Теперь у вас есть Qty = 100, Qty to Invoice = 5.
  5. Позвоните, разместив кодовый блок через веб-сервис. Конечно, не публикуйте саму публикацию кода. Позвоните через другой опубликованный код.
  6. Теперь у вас Qty = 100, Qty to Invoice = на самом деле все равно, Invoiced Qty = 5, и вы можете повторить шаги 2-5 снова.

Вы не должны заботиться о Qty to Invoice, вот почему: в следующий раз, когда вы импортируете следующую порцию qty, все, что вам нужно проверить, это Import_Qty <(Qty - Invoiced Qty). Если это правда, вы можете опубликовать, в противном случае вы не можете.

Другие вопросы по тегам