1轉自:https://www.cnblogs.com/fanjb/p/10677018.html
8年進入國網項目后陸陸續續做了一些接口,按實現方法去分有RFC和代理類sproxy類型,按服務提供方向分有提供服務給外圍的也有調用外圍服務的。隨筆本身是為了有一天離開項目時送給交接人的開發手冊,放上來給大家做個學習參考。由於這邊項目普遍要經過ESB通道,在IA的開發配置方面大家自行理解吧。本篇是一個ERP發布服務供外圍系統調用的RFC類型同步接口,其余三篇有時間再慢慢傳。
一、 文檔信息
版本號* |
更新日期* |
姓名* |
更新內容及更新理由* |
備注* |
V1.0 |
2019/02/19 |
fanjb |
文檔創建 |
以福利接口13589(Z00HRJ_GJJ_REV_FI)為例,外圍系統調用集中部署ERP |
V1.1 |
2019/04/04 |
fanjb |
文檔修正 |
格式調整 |
|
|
|
|
|
二、 接口內容
1. 接口詳細信息
T_ Z00HR_GJJ_ACCOUNT_BACK XML格式:
1.1 傳入報文(外圍系統提供)
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<Item>
<ZPAYMENTID>繳費申請號</ZPAYMENTID>
<ZFIGRJCE>財務實繳個人繳存額</ZFIGRJCE>
<ZFIDWJCE>財務實繳單位繳存額</ZFIDWJCE>
<ZDATE>傳輸日期</ZDATE>
<ZTIME>傳輸時間</ZTIME>
<ZESTIMATEDTIME>計提時間</ZESTIMATEDTIME>
<ZWITHDRAWAVOUCHER>計提憑證</ZWITHDRAWAVOUCHER>
<ZPAYMENTTIME>支付時間</ZPAYMENTTIME>
<ZPAYMENTVOUCHER>支付憑證</ZPAYMENTVOUCHER>
<ZAPPROVALSTATUS>審批狀態</ZAPPROVALSTATUS>
<ZPAYMENTSTATUS>支付狀態</ZPAYMENTSTATUS>
<ZERROR>錯誤消息</ZERROR>
<Z00HRJBY1></Z00HRJBY1>
<Z00HRJBY2></Z00HRJBY2>
</ITEM>
</Document>
1.2 返回報文(外圍系統提供)
T_OUTPUT XML格式:
<?xml version="1.0" encoding="UTF-8"?>
<Document>
<Item>
<ZPAYMENTID>繳費申請號</ZPAYMENTID>
<ZSTATE>反饋狀態</ZSTATE>
<ZMASSAGE>錯誤消息</ZMASSAGE>
</ITEM>
</Document>
三、 接口配置
登陸網址:http://sgnwpid.sgcc.com.cn:50000/dir/start/index.jsp
事物碼登陸:SXMB_IFR
A. 配置ESR(enterprise service builder)
在對應命名空間下進行配置
1. 導入RFC
右鍵進行導入
輸入目標RFC的服務器地址,實例編號,gui賬號密碼。點擊繼續
展開,找到對應RFC,勾選導入
導入后,右鍵激活該RFC
2. 創建External definitions
外部調用定義。(此接口不需要)
3. 創建Data types
1) 發送方
接口經過ESB通道,所傳數據以<![CDATA[*]]>包裹xml報文形式進行傳輸,所以發出方只需要輸入輸出各一個參數即可,此處我們使用公共數據類型:
DT_SHARE_SGHRERP2CEERP_REQ
DT_SHARE_SGHRERP2CEERP_RESP
2) 接收方
RFC類型接口,RFC側不需要進行DT配置。RFC的導入導出參數定義就是。
4. 創建Message types
參考data types進行創建即可,RFC側同理
5. 創建Service interface(服務接口)
RFC側接口無需繼續創建,只需創建外圍系統側的SI即可,關於如何判斷SI的類別(或出入站),可以從接口設計去考慮,發送方(sender)將數據發送到出站接口(outbound),再到集成引擎(PI),集成引擎將消息發送給入站接口(inbound)再到接收方(reciver);所以對於示例接口來說,如上圖:
outbound :SI_13589_SGHRERP2CEERP_Z00HRJGJJREVFI
inbound:RFC
具體參數如下:
類型:outbound
模式:同步
消息類型:MT
激活SI
6. 創建Imported Archives
按照字段映射寫好xml文檔,循環取輸入出結構拼入RFC的導入導出參數中。具體如下:
創建IA,並導入以上4個xsl文檔,激活
7. 創建 Operation Mappings
分別指定發出方接口、接收方接口。
發出方:SI_13589_SGHRERP2CEERP_Z00HRJGJJREVFI
接收方:Z00HRJ_GJJ_REV_FI
外圍系統作為發出方,數據鏈路顯示需先經過ESB通道才會到達PI,同樣ERP返回消息時由PI到外圍同樣需經過ESB。經過ESB的數據均需使用<![CDATA[….]]>進行封裝,故在PI內需進行轉換。將ESB發送進來的cdata轉成xml在進行接口間字段映射,返回時先進性接口間字段映射后將其封裝成cdata。
B. 配置IB(Integration Builder)
1. 創建Configuration Scenario
創建場景,將各個組件添加到場景中。
2. 添加Business System
3. 創建發送方Communication Channel,對象BS_SGHRERP
4. 創建Sender Agreement
5. 創建Receiver Determination
RD用於確認接收方系統
6. 創建Interface Determination
ID用於確認接收方系統的接收接口
7. 創建接收方Communication Channel,對象PD1CLNT201
8. 創建Receiver Agreement
9. 一步一激活,最后激活CC
10. 導出wsdl
點擊望遠鏡, 按照如下格式修改URL並填入
http://10.1.169.34:50000/XISOAPAdapter/MessageServlet?channel=:BS_SGHRERP: CC_13589_SGHRERP2CEERP_Z00HRJGJJREVFI_OU
選擇對應接口SI_13589_SGHRERP2CEERP_Z00HRJGJJREVFI
填寫CC:BS_SGHRERP