SAP PI開發手冊-ERP發布服務供外圍系統調用(RFC類型)


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

11.  RFC邏輯實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM