но значение этого поля равно 0 в самом начале, так что я должен инициализировать его
Я не могу угадать, что именно вы пытаетесь сделать с Purchase Line, но поля, такие как Кол. к Счету и Кол-во. Получать в большинстве случаев автоматически, при проверке количества. Оба набора равны количеству. Validate срабатывает, когда пользователь вводит что-то в поле на форме или из кода С/AL по телефону PurcaseLine.VALIDATE("Quantyity", number);
Проблема заключается в том, когда он возвращается к 0. Как я могу отметить, что все счета-фактуры для этой линии получены?
При проводке счета размещены количество добавляется в поле Qty. Invoiced
и получил количество добавляется в поле Qty. Received
. Поэтому в любое время вы знаете, сколько предметов получено и оплачено. Оба поля доступны только для пользователей, потому что только процедуры публикации могут и должны их изменять.
Так что если у вас есть количество. = 10, тогда вы отправляете 4 из них (Qty. To Invoice = 4) и Qty. Invoiced = 0. Вы получите Qty. = 10, Qty. на Счет = 6, Кол-во. Invoiced = 4. Кол-во. Счет-фактура в этом случае - остальная часть qty. для выставления счета.
Нельзя использовать какие-либо поля, если вы не знаете их цели. Поле «Готово», например, является частью функциональных возможностей производственных заказов и не связано с Qty. на счет-фактуру вообще.
Чтобы узнать значение поля, вы можете обратиться за помощью (нажмите F1, стоя на поле в таблице). Это работает не для каждой области. Другой способ (если вы разработчик и имеете лицензию) - использовать Developer Tool Kit (его можно найти на установочном компакт-диске или here). Эта утилита позволяет искать зависимости между объектами Nav.
относительно веб-сервисов. Не пытайтесь напрямую использовать эти таблицы. Это действительно вызывает массу проблем и неудобств. Создайте новые рабочие таблицы. Назовите их Purchase Order Import
и Purchase Line Import
. Создавайте страницы для них и публикуйте в виде веб-сервисов. Импортируйте свои данные в них в любом формате. Я имею в виду, что таблицы могут быть клонами реальных таблиц или просто иметь несколько полей, в которых вы нуждаетесь. Поместите код в OnModify
триггер страниц, которые будут вызываться в конце импорта или опубликовать код с функцией, которая будет создавать или обновлять заказы на поставку и строки из Import-tables. Очистить таблицы импорта в конце концов.
Если ваша задача состоит в том, чтобы частично разместить поступления, основанные на количестве от внешней системы, то ваши шаги будут:
- предположим Заказ и линия создана, Кол-во 100, вам необходимо разместить ссылку на этот Кол-во в порции
- импорт Кол-во для вывешен через веб-сервис для покупки Line импорта таблицы через страницу
- OnModify страницы срабатывает, поставить код на этот триггер для обновления
Qty. to Invoice
-или- вызова покупки строки в некоторых программном модуле с помощью веб-сервис и обновление Purc hase Line's Qty. to Invoice
. Положите всю бизнес-логику на создание и обновление линии покупки здесь, а не на внешнем приложении.
- Теперь у вас есть Qty = 100, Qty to Invoice = 5.
- Вызов кода с помощью веб-сервиса. Разумеется, не публиковать сам код проводки. Назовите это через другой опубликованный код.
- Теперь у вас есть Qty = 100, Qty to Invoice = не важно, Invoiced Qty = 5, и вы можете повторить шаги 2-5 снова.
Вы не должны заботиться о том, чтобы Кол-фактуре вот почему: в следующий раз, когда вы импортировать следующую часть Qty все, что вам нужно проверить, является Import_Qty < (кол-во - INVOICED Кол-во). Если это правда, вы можете публиковать сообщения, иначе вы не можете.
Проблема в том, что «Qty_invoiced» равно 0. Я считаю, что счет должен быть одобрен для подсчета в этой области. Поэтому у меня есть 'Qty_to_invoice', который я использую, и значение равно 0 в начале. Я должен заполнить его, и я должен продолжать считать «вручную». Поле «Qty_invoiced» только для чтения. Я не упоминал, что я использую веб-службы для доступа к NAV, может быть, это важно? – vt100
Как публикуется веб-сервис: страница или код, и что именно вы пытаетесь сделать? Создайте заказ, получить заказ, опубликовать его или ... –
, кстати, тот факт, что вы используете веб-службы, полностью меняет ваш первоначальный вопрос. –