ALE技術:應用鏈接支持(Application Link Enabling 簡稱ALE),是一項用於創建和運行分布式應用的技術。ALE是SAP的專有技術。
ALE對象——ALE包含了可控的數據消息交換,可以確保松散耦合的應用程序之間的數據一致性。ALE由三層組成,應用服務、分發服務和通信服務。ALE的基本原理是提供一個分布式的並且完全整合的R/3系統。每一個應用都是自適應的。每一個自適應系統使用一種特定的方法實現數據冗余。因此數據必須是分布的、且同步的。
ALE通信圖
1,IDOC類型和消息類型的區別是什么?如何聯系IDOC類型和消息類型?
消息類型把意義賦予了IDOC,IDOC類型則將結構給予了IDOC。消息會在包含着不同消息類型的系統之間交換。消息類型依賴於包含的數據和涉及的處理過程,它決定了消息的技術結構和IDOC類型。IDOC類型標識了SAP用於解釋一個busness transaction的格式。
2,IDOC信息存儲在哪里?
表 |
描述 |
EDID4 |
存儲數據記錄 (version 4.6) |
EDIDC |
存儲IDOC的控制記錄信息 |
EDIDD |
數據段 (EDI中間文檔) |
EDIDS |
存儲IDOC的狀態 |
3,處理代碼是什么?處理代碼的類型是什么?
處理代碼是指一個可以幫助從/向IDOC讀寫數據的workflow或者是function module。處理代碼應用在ALE和EDI中,用以標識需要被調用以進行后續處理過程的function module或者API。進站和出站接口也使用處理代碼,但是用於不同的目的。出站處理代碼保存在表TEDE1中,而進站處理代碼保存在TEDE2中。
以下是處理代碼類型。
處理代碼 |
描述 |
Inbound Process Code |
This will Idoc and create corresponding application data |
Outbound Process Code |
讀取應用數據並放置到IDOC中 |
Status Proces Code |
處理IDOC被發送到其它系統時出現的錯誤 |
System Process Code |
創建工作條目,如果在IDOC/應用文檔處理中發生某些錯誤的情況下 |
4,如何處理IDOC?
你可以使用以下程序來處理IDOC:
- RBDMANI2 : 手動重新處理IDOC
- RBDMANIN : 發送狀態51的IDOC
- RBDMOIND : 狀態03->12的出站IDOC
- RSEOUT00 : 處理狀態30的IDOC
- RBDAPP01 : 處理狀態64的IDOC
- RBDAGAIN : 重新處理不正確的出站IDOC
- RBDAGAI2 : 重新處理ALE輸入錯誤的IDOC
5,如何從發送系統追蹤接收系統的IDOC?
- 運行事務代碼BD87
- 在IDOC編號字段填入出站IDOC,然后運行。或者當你運行主數據事務比如說BD10的時候,記住開始時間和結束時間並且填到BD87的相應字段里面,並且給出消息類型和接收系統的名字,然后運行
- 選擇相應的消息類型,然后點擊追蹤IDOC按鈕
6,如何基於數據追蹤IDOC?
步驟:
- 運行事務代碼WE09
- 把消息類型名填入字段“邏輯消息”,比如,填上“DEBMAS”
- 現在我們要移動到“在數據記錄中的搜索標准”部分
- 在這部分我們要填入段的名字,即我們想要搜索的數據的段名,填入到“在段中搜索”中。比如,填上“EX - E1KNA1M”
- 在“在字段中搜索”字段中,我們要填入想要搜索的數據段的字段名,比如用“KUNNR”來搜索特定的客戶編碼對應的IDOC。
- 現在在字段“值”中我們要填入搜索值。比如,客戶編碼“100”。
- 我們現在要運行事務。
- 結果可以是單個IDOC或者多個IDOC的列表,這取決於輸入的搜索條件。
7,如何在同一個系統里面發送和接受IDOC?
- 創建一個虛擬的邏輯系統
- 新條目。前往事務代碼 SALE->基本設置->邏輯系統->新條目,輸入SYSID_CLNT,但是這個是虛擬的,所以使用SYSID的前兩個字符和前綴“D”,接着加上下划線和客戶端號。(注:原文是SALE-> sending and Receiving Systems -> Logical Systems ,疑有誤)。
例如,如果ERP_100是R/3的邏輯系統,創建的虛擬系統名應該是ERD_100.
- 為源系統創建端口(ERP_100)
- 前往WE21並且選擇“事務性RFC”然后點擊創建按鈕。將端口命名為“SAP”並且把它和SYSID結合到一起,在我們的例子里應該是SAPERP。選擇合適的版本,輸入當前系統的RFC連接,在這個例子里是“ERP”。
- 在合作伙伴類型LS里創建合作伙伴配置:
- 接收端 ( Outbound to ) : 在合作伙伴類型LS,編號ERD_100中創建出站參數,給出消息類型,接收端名(即我們在第二步中創建的)。輸入基本類型。
- 發送端( Inbound From ): 在合作伙伴類型LS,編號ERD_100中創建入站參數,給出合適的消息類型和處理代碼。
- 現在創建單獨的程序來發送IDOC:
- 程序需要在某個點調用FM: MASTER_IDOC_DISTRIBUTE,這時需要傳遞如下的EDIDC結構:
i_edidc-mestyp = 消息類型.
i_edidc-idoctp = 基本類型.
i_edidc-rcvprt = 'LS'.
Concatenate 'SAP' sy-sysid into l_port.
i_edidc-rcvpor = l_port.
i_edidc-rcvprn = 'ERD_000'.
CONCATENATE sy-sysid '_' sy-mandt
INTO l_sndprn.
i_edidc-sndprn = l_sndprn.
i_edidc-sndprt = 'LS'.
i_edidc-sndpor = l_port. - 觀察發送端口和接收端口,這是關鍵所在。出站IDOC通過名為ERP_100的發送者被發往端口SAPERP,接收者為ERD_100,接着入站IDOC也通過發送者ERP_100被發往相同的端口SAPERP,接收者仍是ERD_100.
- 程序需要在某個點調用FM: MASTER_IDOC_DISTRIBUTE,這時需要傳遞如下的EDIDC結構:
8. 消息控制是什么?什么時候使用它?
消息控制是一種根據選擇條件和需求來輸出文檔的機制。該原理並非只應用在EDI和ALE中,也在其它的輸出媒介(比如:打印,傳真)中使用。消息控制會判斷文檔類型、時間、數量和媒介。NAST表存儲了輸出記錄。用於創建輸出消息的條件(選擇條件和需求)存儲在條件表里。搜索機制用於訪問隊列、輸出結果以及判斷應用文檔是否有資格被輸出。
一些有關消息控制的T-CODE:
事務代碼 |
描述 |
NACE |
條件記錄維護 |
VOK2 |
SD消息控制組件 |
VOK3 |
采購消息控制組件 |
VOFM |
關於需求、公式的配置 |
V/86 |
條件表字段目錄 |
WE15 |
IDOC測試:從消息控制出站測試 |
9,如何重新處理失敗的傳輸條目?
你可以使用程序RSARFCEX重處理失敗的傳輸條目。
10,可以在用哪個事務代碼在統一額地方找到出站和入站處理代碼?
WE64
本文鏈接:http://www.cnblogs.com/hhelibeb/p/6625534.html
英文原文:ALE, IDOC