Как я могу захватить недавно созданный идентификатор счета (ключ) после вызова веб-службы GP в CreateSalesInvoice

В веб-сервисе для Dynamics GP есть вызов CreateSalesInvoice. Проблема, с которой я сталкиваюсь, заключается в том, что вызов возвращает void, поэтому я не получаю объект счета-фактуры после завершения вызова. Я вижу, что счет создан в базе данных и назначен Id (ключ).

Из моего приложения я передаю значения для создания счета-фактуры, а затем хочу получить идентификатор, чтобы затем обработать платеж через наш платежный шлюз. Я хочу, чтобы все это обрабатывалось в коде. Кажется неоправданным составлять список счетов по customerId после того, как пользователь только что создал счет, а затем попросить их выбрать вновь созданный счет и затем обработать платеж.

Есть ли способ получить идентификатор после вызова метода create?

1 ответ

Решение

Насколько мне известно, значение не возвращается через веб-сервис в GP (это действительно не очень хороший веб-сервис). Поскольку столбец SOPNUMBE является ключевым, лучше всего сгенерировать его в своем источнике, тогда вы знаете значение, когда передаете его в GP. Вам нужно будет поговорить с вашей командой GP или просмотреть настройки в GP, так как SOPNUMBE имеет ограничение в 15 CHAR. Они могут попросить вас настроить номер определенным образом, например, "INV000001".

В большинстве таблиц GP есть поле "ID", называемое "DEX_ROW_ID", которое совершенно бесполезно для 99% приложений, поскольку оно ни к чему не относится. Имейте в виду, что ценность здесь вам вообще не нужна. Вы хотите использовать SOPNUMBE и SOPTYPE.

Сайт Виктории Юдин чрезвычайно полезен для навигации по архаичной архитектуре ГП.

https://victoriayudin.com/gp-tables/sop-tables/

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