EDI 和 AS2 狀態報告的已知問題
本主題描述BizTalk Server中 EDI 狀態報表的已知問題。
如果在夥伴協議管理員外部停止了批次協調流程,批次狀態報告資料可能不會更新。
您可以透過合作物件的 [EDI 屬性] 對話方塊的 [批次] 頁面停用批次協調流程實例。 如果您以這種方式停用批次協調流程執行個體,BizTalk Server 將會更新該批次的狀態報告資料。 不過,如果您以另一種方式停止批次協調流程,例如,藉由停止協調流程,從 BizTalk Server 管理主控台的 [群組概觀] 頁面上的其中一個查詢頁面停止協調流程,狀態報表資料可能無法更新,而您最後可能會有過期的批次狀態報表。 例如,即使批次協調流程已經停用了,狀態報告可能還是會指出批次仍在作用中。
啟用 EDI 狀態報告之後必須重新啟動 BizTalk 服務
徵兆
EDI 狀態報告已經啟用,但卻無法產生 EDI 狀態報告。
可能的原因
BizTalk 服務在 EDI 狀態報告啟動或停用之後必須重新啟動,讓變更生效。 如果解決方案中使用的是 AS2EdiReceive 或 AS2EdiSend 管線,則 BizTalk 服務和 IIS 服務都必須重新啟動,變更才會生效。
解決方法
重新啟動 BizTalk 服務 (在 [電腦管理] 對話方塊中)。 如果在解決方案中使用 AS2EdiReceive 管線或 AS2EdiSend 管線,請使用iisreset命令) 重新開機 IIS 管理員服務 (。
注意
啟用 AS2 狀態報告時並不需要重新啟動 BizTalk 服務或 IIS 管理服務。
當訊息中的 AS2 訊息日期時間是空值時,狀態報告將會顯示 "9999" 的年份
如果內送 AS2 訊息中的 [AS2 訊息日期時間] 欄位設定為空值,則在 AS2 狀態報告中,該訊息之 [AS2 訊息日期時間] 欄位中的年份將會顯示 “9999” 的值。
如果內送 AS2 訊息中的 [AS2 訊息日期時間] 欄位無法剖析 (例如 Mon, 21 May 2007 10:08:28 NZST),則在 AS2 狀態報告中,該訊息之 [AS2 訊息日期時間] 欄位將會設定成目前的時間。
解除安裝 BAM 工具之後狀態報告仍然保持已設定狀態
若要安裝 EDI 狀態報告,您必須安裝 BAM 工具。 不過,如果您解除安裝 BAM 工具,狀態報告仍會保持已設定的狀態。 這是產品的設計。
移除 BAM 工具之後,您將無法再透過使用者介面搜尋狀態報告資料表。 不過,如果已啟用狀態報告,BizTalk Server 還是會在狀態報告資料表中建立記錄。
狀態報告 UI 中只有一個 EDI 交換與 AS2 訊息相互關聯
如果 AS2 訊息包含多個 EDI 交換,而您嘗試顯示 AS2 訊息中多個 EDI 交換的狀態,則只有最後一個 EDI 交換會在 [交換/通知狀態] 報告中顯示。 此外,AS2/MDN 狀態報表中的 [EDI 交換控制否 ] 欄位只會顯示最後一個交換控制編號。 (交換控制編號可使 AS2 訊息與其 EDI 交換內容相互關聯)。
AS2 訊息中所有 EDI 交換的資料都會儲存在狀態報告資料庫中。 如果 控制項識別碼等於 All 子句是狀態報表查詢,您可以在交換/ACK 狀態報表的 AS2 訊息中顯示所有交換。 這也可能會顯示出其他不在 AS2 訊息中的交換,不過,您可以查看其他欄位 (如 [傳送者合作對象]、[接收者合作對象] 和 [交換日期時間]) 判斷哪些 EDI 交換是在某個單一的 AS2 訊息中。
從群組中移除 BAM 工具會讓您無法檢視 EDI 或 AS2 狀態報告
如果您從群組中移除了 BAM 工具,嘗試檢視 EDI 或 AS2 狀態報告時將會發生錯誤。 發生這種錯誤表示系統找不到預存程序 bts_GetBatchStatusRecords。 如果您在嘗試檢視 EDI 或 AS2 狀態報告時發生錯誤,請確認是否已正確設定 EDI 和 AS2 的群組、執行階段和 BAM 工具。
您可以取消設定 BAM 工具 (而不只是移除這些工具) 來避免這個問題。 取消設定 BAM 工具時,系統將會提示您取消設定相依的 EDI/AS2 功能。 如果移除 BAM 工具,就不會收到這種提示。
如果沒有設定 BAM 工具,則在升級之後,狀態報告將無法運作
您必須設定 BAM 工具,EDI 和 AS2 狀態報告才能運作。 如果您將 BizTalk Server 2006 的安裝升級至後續版本,且未在升級程式中設定 BAM 工具,則升級安裝上的 EDI/AS2 狀態報表功能將無法正常運作。
如果您想要在升級至 BizTalk Server 之後使用狀態報表,請先確定已設定 BAM 工具,再執行升級。
如果狀態報告在您執行升級之後無法運作,請在升級記錄中判斷 BAM 工具是否在升級之前設定。 如果沒有,您可以設定 BAM 工具,然後在磁片磁碟機 > :\Program Files\Microsoft BizTalk Server的 EdiStatusReportingActivityDefs.xml 檔案 <中部署 BusinessMessageJournal BAM 活動。
停用交易集儲存區會影響已啟動的批次,但是啟用儲存區不會
如果您在啟動批次處理協調流程的執行個體時停用了交易集的儲存區,這項變更將會立即生效。 BizTalk Server 會在啟用儲存區時儲存批次的交易集,但是在停用儲存區之後就不會儲存交易集。 您可以在 [EDI 屬性] 對話方塊的 [一般] 窗格中清除 [儲存報表的交易集/承載] 屬性,以停用交易集的儲存。
不過,如果您在交易集的儲存區停用時啟動了批次處理協調流程的執行個體,然後再啟用該儲存區,則正在建立的批次將不會儲存任何交易集。
UNICODE AS2 訊息不會完全以文字電傳格式顯示
如果 BizTalk Server 處理採用 UNICODE 格式編碼的 AS2 訊息或 MDN,當您嘗試以文字電傳格式檢視該訊息時,BizTalk Server 將無法完整顯示訊息。 這是因為 UNICODE 格式的 "00" 位元組會解譯為資料流結尾。 不過,如果您嘗試以二進位電傳格式檢視訊息,BizTalk Server 將會完整顯示該訊息。
在啟動了 AS2 訊息的狀態報告 (在 [AS2 屬性] 對話方塊的 [一般] 窗格中),以及啟用內送或外寄 AS2 或 MDN 訊息的儲存區 (在 [AS2 屬性] 對話方塊的 [做為 AS2 訊息接收者的合作對象] 窗格或 [做為 AS2 訊息傳送者的合作對象] 窗格中) 時,就會發生這種情況。
同時啟用 AS2 狀態報告和傳送埠內文追蹤可能會造成錯誤
如果您同時啟用 AS2 狀態報表並傳送埠本文追蹤,下列錯誤可能會顯示在事件檢視器:「傳訊引擎在刪除一或多個訊息時發生錯誤」。當傳送埠是具有 AS2Send 和 AS2Receive 管線的靜態要求回應 AS2 傳送埠時,就會發生這種情況。 發生的時機則包括啟用下列屬性時:
AS2 屬性對話方塊之 [一般] 窗格中的 [啟用 AS2 報告] 屬性。
在 [AS2 屬性] 對話方塊的 [以 AS2 訊息接收者] 窗格的 [合作物件身分 AS2 訊息接收者] 窗格中,將輸出編碼的 AS2 訊息儲存在非拒絕資料庫中。
[傳送埠屬性] 對話方塊之 [追蹤] 窗格中的 [連接埠處理後要求訊息] 屬性。
這個問題的解決方法是清除 [將編碼的輸出 AS2 訊息儲存在不可否認性的資料庫中] 或 [連接埠處理後要求訊息] 屬性。 建議您停用 [連接埠處理後要求訊息] 屬性,讓 AS2 追蹤可以擷取內文資訊以及 AS2 狀態報告的其他資訊。
升級至 BizTalk 2009 之後,無法使用 EDI 和 AS2 訊息內容屬性
升級至BizTalk Server之後,升級發生之前收到的任何 EDI 或 AS2 訊息的狀態報表中不會顯示任何內容屬性。 升級之後收到的訊息將會正確顯示內容屬性。
EDI 和 AS2 內容屬性集合並未儲存為舊版BizTalk Server訊息的一部分,而且升級之後無法使用。 升級至BizTalk Server之後,AS2 內容屬性會儲存為訊息的一部分,不過 EDI 內容屬性則不是。
接收檔的交換日期可能會在狀態報表中顯示錯誤的年份
如果收到的檔以 YYMMDD 格式指定日期,BizTalk Server會使用下列邏輯來判斷年份值:
如果 YY 大於或等於 75,則年份會顯示為 19YY。
如果 YY 小於 75,則年份會顯示為 20YY。
例如,如果傳入訊息的 ISA09 值包含991113,則狀態報表會將日期顯示為 11/13/1999。
錯誤訊息可能顯示為由問號組成的字串。
在 BizTalk Server 當地語系化組建中,如果錯誤訊息是顯示為由問號組成的字串,您需要根據作業系統語言來變更系統地區設定,才能取得預期的錯誤訊息。 特定步驟會因作業系統 (作業系統) 而有所不同,但下列步驟可能與您的作業系統類似:
- 移至主控台>Clock 和 Region>Region。
- 針對非 Unicode 程式> 選取 [系統管理] 索引標籤 > [語言][變更系統地區設定]。
- 選擇您的語言 >[確定> ] 以儲存變更。