zoukankan      html  css  js  c++  java
  • 10-SAP PI开发手册-ERP发布服务供外围系统调用(RFC类型)

      18年进入国网项目后陆陆续续做了一些接口,按实现方法去分有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逻辑实现

  • 相关阅读:
    外观模式
    建造者模式
    原型模式
    工厂模式
    单例模式
    设计模式入门
    SpringBoot-SpringMVC开发总结
    SpringBoot日志
    IDEA Basics
    Kafka基础学习
  • 原文地址:https://www.cnblogs.com/fanjb/p/10677018.html
Copyright © 2011-2022 走看看