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逻辑实现

最新文章

  1. jsp和mysql乱码
  2. verilog阻塞与非阻塞的初步理解(三)
  3. Thinkpad 笔记本VMware Workstation 安装虚拟机出现&ldquo;此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态&rdquo;解决方法
  4. java中封装
  5. BAPI_ACC_DOCUMENT_POST Enter rate / GBP rate type M for Error SG105
  6. VIM编辑器操作指令
  7. cscope
  8. Java TreeSet集合排序 &amp;&amp; 定义一个类实现Comparator接口,覆盖compare方法 &amp;&amp; 按照字符串长度排序
  9. 实现简易版的moment.js
  10. Java之冒泡排序(升序)
  11. win10安装JDK
  12. openssl查看apk的证书信息
  13. 使用Springboot快速搭建SSM框架
  14. 5A - 超级楼梯
  15. linux编译内核make menuconfig报错Unable to find the ncurses libraries解决办法
  16. 题目1040:Prime Number(第k个素数)
  17. Java - Spring AOP 拦截器的基本实现
  18. CRC-16校验C#代码
  19. 用shp制作geoJson格式地图数据(shp convert to geoJson)
  20. mysql时间统计,查询月份,周数据

热门文章

  1. hash算法原理及应用漫谈【加图版】
  2. Flask request接口获取参数
  3. kettle教程---增量更新
  4. 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝
  5. Pycharm 2019 添加 docker 解释器
  6. PHP 自动加载
  7. python 给多人发送邮件,且将结果添加为附件
  8. lua 9 parttern 字符极其简要的介绍
  9. python工具-将视频按帧截取图片(附代码)
  10. NG-ZORRO 使用相关