Автоматическое создание поставщика в другой системе на основе создания нового поставщика в Acumatica - PullRequest
0 голосов
/ 08 июня 2018

Я новичок в интеграции с Acumatica и мне нужен совет о том, как автоматически запускать создание поставщика в другой системе сразу после того, как пользователь создаст те же данные в Acumatica.Я пытался понять учебный материал I210_ContractBasedWebServices_6, и, насколько мне известно, чтобы инициировать создание данных, мне нужно переопределить метод Persist на графике VendorMaint и добавить некоторую строку для вызова контроллера API, но я до сих пор не знаю, является ли он лучшимспособ сделать или нет.

Мне также все еще нужно знать о том, как настроить связь между двумя системами.Другая система построена на Java и использует Enterprise Service Bus (ESB) и Service Adapter для связи с внешней системой.Веб-сервис также доступен, но используется не часто.Если я собираюсь разработать контроллер API на C #, как я могу связаться с этим ESB и Service Adapter, чтобы я мог инициировать создание поставщика в другой Системе?Пожалуйста, нужен совет здесь.

1 Ответ

0 голосов
/ 08 июня 2018

Да, действительно, вы можете использовать метод BLC Persist или обработчик событий RowPersisted поставщика DAC для этого.

Экран поставщика в Acumatica позволяет пользователю вставить основную информацию поставщика и позже заполнить детали.,Для правильной синхронизации между двумя системами вам нужно настроить этот экран, чтобы все необходимые поля были заполнены, чтобы они были заполнены при создании поставщика, или вы также можете обрабатывать случай, когда пользователь обновляет поставщика вместо вставки.

Поскольку мы можем предсказать, что вызов веб-службы может занять некоторое время, мы можем заключить его в делегат PXLongOperation.При длительной работе отобразится индикатор ожидания в правом верхнем углу веб-страницы.

public class VendorMaint_Extension : PXGraphExtension<VendorMaint>
{
  public virtual void Vendor_RowPersisted(PXCache sender, PXRowPersistedEventArgs e)
  {
    Vendor vendor = e.Row as Vendor;

    if (vendor != null &&
        e.Operation == PXDBOperation.Insert &&
        e.TranStatus == PXTranStatus.Completed)
    {        
      PXLongOperation.StartOperation(Base, delegate()
      {
        // Add your webservice call here
      });
    }
  }
}

Из этого ответа: Как вызвать интерфейс веб-службы по ESB-способу Похоже, ESB WebСлужбы настолько же ванильны, сколь и полезны, так что вы можете использовать их с .Net Framework HttpClient Class.Вы хотите написать C # ESB Web Service Client.В Acumatica нет ничего особенного в написании клиента Web-сервиса, поэтому вы можете следовать общим советам в C #.

...