Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于Acumatica上的新供应商创建自动在其他系统上创建供应商_Acumatica - Fatal编程技术网

基于Acumatica上的新供应商创建自动在其他系统上创建供应商

基于Acumatica上的新供应商创建自动在其他系统上创建供应商,acumatica,Acumatica,我是Acumatica integration的新手,需要有关如何在用户在Acumatica上创建相同数据后立即在其他系统上自动触发供应商创建的建议。我一直在努力理解I210_ContractBasedWebServices_6培训材料,据我所知,要触发数据创建,我需要覆盖VendorMaint图上的Persist方法,并添加一些行来调用API控制器,但仍然不知道这是否是最好的方法 我还需要知道如何配置两个系统之间的连接。另一个系统构建在Java上,使用企业服务总线(ESB)和服务适配器与外部系

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


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

是的,实际上,您可以使用BLC PERSISTER方法或供应商DAC ROWSPERSISTED事件处理程序来实现这一点

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
      });
    }
  }
}
公共类VendorMaint_扩展名:PXGraphExtension
{
公共虚拟无效供应商(PXCache发送方,PXRowPersistedEventArgs e)
{
供应商=e.作为供应商的行;
如果(供应商!=空&&
e、 Operation==PXDBOperation.Insert&&
e、 TranStatus==PXTranStatus.Completed)
{        
PXLongOperation.StartOperation(基本,委托()
{
//在此处添加您的Web服务呼叫
});
}
}
}
从这个答案中: ESB Web服务似乎是最普通的,所以您可以使用.Net Framework HttpClient类来使用它们。您需要编写一个C#ESB Web服务客户端。在Acumatica中,编写Web服务客户端并没有什么特别之处,所以您可以按照C#中的一般建议来编写