1
我有一个客户同步内置的AX客户与外部系统的客户同步。如何确定何时从AIF插入/更新记录?
在外部系统上执行更新/插入操作时,会转储处理的AIF文件。
我想在表方法CustTable.insert()
和CustTable.update()
中加入一些逻辑,这样当插入/更新任何东西时,它将推高外部系统,这可以正常工作。
问题是,当用户在外部系统中进行更改时,它会生成AIF文件,然后在AX中插入/更新,然后将更改推回到外部系统。
如何确定何时从AIF进程执行custTable插入/更新?我在寻找伪代码会是这样的Tables\CustTable\Methods\insert()
:
// Pseudo code
if (this.isFromAIF() == false)
{
this.syncRecordToExternalSystem();
}
两点建议: *检查谁创造了该领域的用户(CreatedBy)是商务用户的连接。 http://msdn.microsoft.com/en-us/library/aa871620.aspx *在CustTable中创建一个新的布尔型字段,并修改AX
虽然AIF根据设置进行模拟,所以CreatedBy可能不起作用。 – 2014-12-01 23:04:28
回答
这是一个非常棘手的问题。由于@ian_socho说你可以创建一个只有AIF设置的自定义标志。 “createdby”用户不会工作,因为AIF会模仿。
我做了实验并发现了一些有趣的属性。看起来AIF操作在CIL中作为工作线程执行,但工作线程似乎由AOS驱动,所以我没有看到
masterSessionId
。这段代码会告诉你是否有可能从AIF调用的东西。我使用SysOpFramework进行了测试,它可以使工作线程加速,并且它们都有一个主线程。我使用Visual Studio项目进行了测试,它有一个主会话。把我的头顶部
来源
2014-12-02 20:53:20
相关问题