我是Acumatica集成的新手,在用户在Acumatica上创建相同的数据之后,我需要关于如何在其他系统上自动触发供应商创建的建议。我一直在尝试理解I210_ContractBasedWebServices_6培训材料,据我所知,要触发数据创建,我需要覆盖VendorMaint图上的持久化方法,并添加一些行来调用VendorMaint控制器,但仍然不知道这是否是最好的方法。
我还需要了解如何配置这两个系统之间的连接。另一个系统基于Java,使用企业服务总线( Enterprise,ESB)和服务适配器与外部系统进行通信。web服务也是可用的,但并不经常使用。如果我要在C#上开发API控制器,我如何与该ESB和Service通信,以便在其他系统上触发供应商创建?这里需要建议。
发布于 2018-06-08 13:36:54
的确,您可以使用BLC持久化方法或供应商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
});
}
}
}
从这个答案: ESB看起来就像它得到的一样普通,所以您可以使用How to call web service interface by ESB way框架HttpClient类来使用它们。您希望编写一个C#客户端。在Acumatica中,编写没有什么特别之处,因此您可以遵循在C#中这样做的一般建议。
https://stackoverflow.com/questions/50753576
复制相似问题