【问题标题】:Automatically create Vendor on other system based on new Vendor creation on Acumatica根据 Acumatica 上新的 Vendor 创建自动在其他系统上创建 Vendor
【发布时间】:2018-11-18 02:20:45
【问题描述】:

我是 Acumatica 集成的新手,需要有关如何在用户在 Acumatica 上创建相同数据后立即在其他系统上自动触发供应商创建的建议。我一直在尝试理解 I210_ContractBasedWebServices_6 培训材料,据我所知,要触发数据创建,我需要在 VendorMaint 图上覆盖 Persist 方法并添加一些行来调用 API 控制器,但仍然不知道它是否是最好的做或不做的方法。

我还需要了解如何配置两个系统之间的连接。另一个系统建立在 Java 之上,并使用企业服务总线 (ESB) 和服务适配器与外部系统进行通信。 Web 服务也可用,但不经常使用。如果我要在 C# 上开发 API 控制器,我如何与那个 ESB 和服务适配器通信,以便我可以在其他系统上触发供应商创建?请在这里寻求建议。

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    确实,您可以使用 BLC Persist 方法或 Vendor DAC RowPersisted 事件处理程序来完成。

    Acumatica 中的供应商屏幕允许用户插入供应商基本信息并稍后填写详细信息。要在两个系统之间正确同步,您需要自定义此屏幕以使所有所需字段成为必需字段,以便在创建供应商时填写它们,或者您还可以处理用户更新供应商而不是插入的情况。

    由于我们可以预测 Web 服务调用可能需要一些时间来执行,我们可以将其包装在 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
          });
        }
      }
    }
    

    从这个答案: How to call web service interface by ESB way 看起来 ESB Web 服务是最原始的,因此您可以使用 .Net Framework HttpClient 类来使用它们。您想编写一个 C# ESB Web 服务客户端。 Acumatica 关于编写 Web 服务客户端没有什么特别之处,因此您可以按照一般建议在 C# 中这样做。

    【讨论】:

      猜你喜欢
      • 2013-11-21
      • 2017-06-23
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2020-10-06
      • 2017-01-03
      相关资源
      最近更新 更多