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
相關問題