點(diǎn)擊藍(lán)字 關(guān)注我們
01
前言
PO(/PI)是SAP公司的一個(gè)中間件產(chǎn)品上祈,用來輔助連接SAP系統(tǒng)與外圍系統(tǒng). (當(dāng)然外圍系統(tǒng)之間也可以使用PO).
一般情況下,異步接口推薦使用PO來確保數(shù)據(jù)正確抵達(dá)目標(biāo)系統(tǒng).
PO可以完成一些數(shù)據(jù)內(nèi)容轉(zhuǎn)換,群發(fā)(一份數(shù)據(jù)發(fā)給多個(gè)異構(gòu)系統(tǒng)),分發(fā)(數(shù)據(jù)區(qū)分特征發(fā)送給特定的系統(tǒng))等功能.
本文主要講解從ECC通過PO(PROXY方式)發(fā)送數(shù)據(jù)到外部系統(tǒng)的消息確認(rèn)反饋
確認(rèn)反饋是指通過PO內(nèi)部機(jī)制把PO調(diào)用外圍系統(tǒng)端口的信息反饋到原始消息中.
二
無反饋與反饋的比較-清單
消息反饋與無消息反饋的比較
在ECC端. 用SXI_MONITOR查看消息時(shí),可以看出這個(gè)差異
清單界面的差異
第一行是一個(gè)有反饋的,并且反饋成功的消息,
第二行是一個(gè)無反饋的消息
第三行是一個(gè)有反饋,但是反饋報(bào)錯(cuò)的消息
第四行是設(shè)置了反饋,但是尚未反饋的消息(出現(xiàn)這種情況,可能是PO配置或性能出現(xiàn)問題)
三
無反饋與反饋的比較-明細(xì)
01
反饋成功的消息
02
無反饋的消息
03
反饋報(bào)錯(cuò)的消息
雙擊確認(rèn)消息標(biāo)記,可以看到具體的報(bào)錯(cuò)信息(報(bào)錯(cuò)消息可能>4行,取決于該消息是否在PO中發(fā)起重執(zhí)行)
四
消息反饋的PO配置
配置一個(gè)目標(biāo)(可能需要用administrator用戶登陸配置)
在XI端口中配置一個(gè)指向上述目標(biāo)的確認(rèn)
五
代碼調(diào)整
調(diào)用PROXY發(fā)放之前的參數(shù)設(shè)置
變量定義(圖一)
先設(shè)置確認(rèn)反饋信息.(圖二)
再調(diào)用PROXY方法,發(fā)送數(shù)據(jù).(圖三)
這樣在ECC中的異步調(diào)用就會(huì)告知PO把外部系統(tǒng)端口調(diào)用情況反饋給ECC. 在ECC的監(jiān)控中就能看到消息的最終傳遞情況,及時(shí)發(fā)現(xiàn)錯(cuò)誤. 無需通過PO的消息監(jiān)控去發(fā)現(xiàn)此類錯(cuò)誤.
圖二
圖三
六
確認(rèn)反饋的機(jī)制
消息發(fā)送PO之前,如果設(shè)置了需要反饋信息. 則PO調(diào)用端口成功或失敗,都會(huì)產(chǎn)生一下消息,新產(chǎn)生的消息和原消息有對(duì)應(yīng)關(guān)系,該消息反向發(fā)送到ECC,存在消息相關(guān)的表中.
通過標(biāo)準(zhǔn)TCODE:SXI_MONITOR就能看到這些消息及消息附加的報(bào)錯(cuò)信息. 因?yàn)橄⒃赑O中調(diào)用端口報(bào)錯(cuò)時(shí),默認(rèn)重新嘗試4次, 所以一般情況下會(huì)反饋4次報(bào)錯(cuò)的信息.
(此時(shí)PO的消息狀態(tài)設(shè)置為報(bào)錯(cuò)狀態(tài),如果在PO中重新發(fā)送了該消息繼續(xù)報(bào)錯(cuò), 則反饋消息還會(huì)繼續(xù)返回到ECC).
七
群發(fā)消息的反饋
群發(fā)消息的反饋是上述單點(diǎn)消息反饋機(jī)制的一個(gè)重復(fù).
理論上每個(gè)發(fā)送的端口都會(huì)給原消息返回反饋消息. 所以識(shí)別消息是否全部群發(fā)成功, 需要通過成功反饋消息與群發(fā)節(jié)點(diǎn)個(gè)數(shù)比較來判斷. 如果成功反饋消息>=群發(fā)節(jié)點(diǎn)個(gè)數(shù), 表示成功, 反之,卻不代表失敗(因?yàn)榉答佅⒖赡苓€處于在途狀態(tài)).
八
總結(jié)
設(shè)置異步接口的確認(rèn)反饋,可以在ECC中及時(shí)發(fā)現(xiàn)PO中的端口調(diào)用的報(bào)錯(cuò)信息.(尤其是JDBC接收端口, 可以及時(shí)發(fā)現(xiàn)寫入數(shù)據(jù)庫的報(bào)錯(cuò)信息)
通過二次開發(fā),讀取反饋成功消息設(shè)置數(shù)據(jù)的真實(shí)送達(dá)標(biāo)記. 有助于明確數(shù)據(jù)的真實(shí)接口傳遞狀態(tài).
THE
END
約定