October 20, 2009
willeam
在天空部落發表於00:35:45 |
BizTalk Server
在EDIFACT的UNB 7 是代表Application Reference ID,通常都會填入該訊息的名稱,如:ORDERS,ORDRSP,INOVIC...等.但是因為該屬性是在EDI的表頭區,因此是在Party裡面設定,這樣就造成若想在不同的message type給不同值的問題.
以前在BizTalk 2006 R2時, 除了客製send pipeline將EDI Header硬塞進去外,可能就要寫一些額外的元件去處理,但是在BizTalk 2009因為增加了一個EDIOverride的context,讓此目的可以輕鬆達到.
做法如下:
1. 在biztalk專案加入C:\Program Files\Microsoft BizTalk Server 2009\Microsoft.BizTalk.Edi.BaseArtifacts.dll
2.開啟Orchestration,並且透過Assigment shape對EDI Message進行以下設定.
Msg_ORDRSP(EdiOverride.OverrideEDIHeader) = true;
Msg_ORDRSP(EdiOverride.UNB7) = "ORDRSP";
這樣就可以在EDI訊息上面動態加上需要的Application Reference ID了.




