點(diǎn)擊藍(lán)字 關(guān)注我們
一
前言
項(xiàng)目中使用接口通過JDBC SENDER通道讀取中間表的數(shù)據(jù),傳入S/4系統(tǒng). 外圍系統(tǒng)提出該接口只能在每天特定的時(shí)間段執(zhí)行. 為了解決這個(gè)需求. 特別研究了一下PO通道控制相關(guān)的內(nèi)容.
PO/PI通過通道適配器與外部系統(tǒng)交互數(shù)據(jù),可用的通道適配器有很多(如圖一).其中常用的幾種
FILE 文件通道
JDBC 數(shù)據(jù)庫直接訪問
REST REST調(diào)用
SOAP WEBSERVICE調(diào)用
HTTP_AAE HTTP調(diào)用
本文主要介紹PO系統(tǒng)中通道的控制及可用性計(jì)劃

圖一
二
通道控制方式
PO中大致可以通過兩種方式控制通道的工作
激活標(biāo)記
通道啟停狀態(tài)(無激活標(biāo)記也是一種特殊的通道狀態(tài))
進(jìn)入通道狀態(tài)控制的路徑(圖二)

圖二
三
通道狀態(tài)控制方式
通道狀態(tài)區(qū)分了三種控制方式
自動(dòng)控制: 通過通道可用性計(jì)劃控制通道狀態(tài)
手工控制: 手工啟動(dòng)或停止通道
外部控制: 估計(jì)是通過特定外部調(diào)用方式修改PO的通道狀態(tài).具體方式本文未涉及
四
通道激活標(biāo)記
激活標(biāo)記是通道創(chuàng)建的時(shí)候的一個(gè)標(biāo)記,通過設(shè)置該標(biāo)記表示通道相關(guān)配置已經(jīng)就緒.如果通道沒有設(shè)置激活標(biāo)記, 在通道監(jiān)控中將會(huì)看到一個(gè)不活動(dòng)狀態(tài)


五
通道狀態(tài)-手工控制
對于激活了的通道,則可以通過通道狀態(tài)控制通道是否能夠使用.
當(dāng)沒有按下自動(dòng)控制/外部控制時(shí). 通道狀態(tài)控制方式為手工控制. 可以通過手工點(diǎn)擊開始/停止按鈕控制通道狀態(tài)


六
通道狀態(tài)-自動(dòng)控制
按下自動(dòng)控制按鈕后,通道進(jìn)入自動(dòng)控制模式,此時(shí)可以通過設(shè)定可用性計(jì)劃控制通道

七
通道可用性計(jì)劃
當(dāng)通道狀態(tài)設(shè)置為自動(dòng)控制時(shí).可以定義可用性計(jì)劃來確定控制通道的啟動(dòng)/停止.執(zhí)行步驟如下
01
進(jìn)入可用性計(jì)劃標(biāo)簽
進(jìn)入可用性計(jì)劃標(biāo)簽,執(zhí)行后續(xù)處理

02
新建一個(gè)計(jì)劃
新建計(jì)劃時(shí),需要選擇一個(gè)執(zhí)行頻率

03
計(jì)劃基本屬性
輸入計(jì)劃的基本屬性
活動(dòng):用于控制計(jì)劃是否執(zhí)行
描述:用于描述計(jì)劃內(nèi)容
開始日期/時(shí)間(結(jié)束日期/時(shí)間) : 用來控制通道的自動(dòng)啟動(dòng)和自動(dòng)停止日期/時(shí)間
持續(xù)時(shí)間: 系統(tǒng)自動(dòng)計(jì)算出通道活動(dòng)的持續(xù)時(shí)間
結(jié)束于: 計(jì)劃的截至日期, 超過該日期,計(jì)劃就失效了.

04
計(jì)劃的通道過濾
通道過濾包含兩個(gè)部分
計(jì)劃的通道: 表示計(jì)劃覆蓋的通道
豁免的通道: 表示計(jì)劃未覆蓋的通道.
如果只需要設(shè)置特定的通道,比如CCO_SOAP, 可以先把所有通道移動(dòng)到豁免的通道, 然后把特定通道在移動(dòng)回來. (如圖三)
通過這組按鈕實(shí)現(xiàn)通道的移動(dòng) (如圖四)

圖三

圖四
05
計(jì)劃概覽
設(shè)置好計(jì)劃后,可以通過通道的時(shí)間表看到通道的計(jì)劃執(zhí)行日期及計(jì)劃執(zhí)行時(shí)間段

06
通道管理信息
可以通過通道的當(dāng)前狀態(tài)和通道管理信息中的操作日志查看通道的狀態(tài)切換.

八
通道狀態(tài)對通道調(diào)用的影響
當(dāng)通道狀態(tài)是停止或非激活.對不同類型的出站/入站通道產(chǎn)生的影響不太一樣.
出站通道(通道屬性RECEIVER)
對于所有的出站通道,PO中的消息處理將會(huì)報(bào)錯(cuò)(通道未激活或通道未啟動(dòng)),但是對于異步接口的調(diào)用發(fā)出方?jīng)]有影響,發(fā)處方可以成功調(diào)用PO的接口,傳輸數(shù)據(jù).
入站通道(通道屬性SENDER)
對于JDBC/文件類入站通道,由PO主動(dòng)執(zhí)行的入站通道, PO將不執(zhí)行數(shù)據(jù)庫的查詢或文件的讀取.
對于HTTP/SOAP/REST 類型的入站通道. 未激活或停止的通道,其它系統(tǒng)調(diào)用PO接口將會(huì)報(bào)錯(cuò)HTTP/1.1 500 Internal Server Error,如下圖

九
控制示例
回到文章開頭業(yè)務(wù)提出的控制需求.
解決方式是通過設(shè)置通道的執(zhí)行間隔: 比如設(shè)置為1800秒一次. 然后定義一個(gè)計(jì)劃, 控制該通道每天18:00->19:00執(zhí)行即可.

十
總結(jié)
通道可用性計(jì)劃用于制定通道的自動(dòng)啟動(dòng)/停止計(jì)劃. 通過該計(jì)劃控制通道狀態(tài),進(jìn)一步控制外部系統(tǒng)調(diào)用PO的接口或者PO調(diào)用外部系統(tǒng)的接口. 確保接口只有在特定的時(shí)間段允許執(zhí)行.
實(shí)際使用中,文件通道/JDBC通道的發(fā)送方控制有實(shí)際意義(由PO控制數(shù)據(jù)/文件的定時(shí)讀取).其它端口啟用通道可用性計(jì)劃意義不太大. 除非業(yè)務(wù)嚴(yán)格規(guī)定了特定接口只能在特定時(shí)間段調(diào)用,禁止其它時(shí)間段調(diào)用.
THE
END
約定
如果你對這篇文章感興趣,請幫忙點(diǎn)贊,在看,分享.? ? ?
?