SAP开发框架系列 接口开发的集中控制与监控

01

前言

接口开发是项目中优先级别最高的,也是最重要的开发. 一般项目上对于接口开发最好统筹考虑.

接口框架

无峰,公众号:ABAP开发技巧SAP开发框架系列之 接口框架

详见链接(包含ZIFLOG程序简介)

无峰,公众号:ABAP 技巧与实战SAP工具箱之 接口调用集中监控


本文主要介绍统筹考虑接口管控,接口日志的一种方式. 

常见的接口方式

这些接口方式都是以ECC作为主体来表达的.

01

RFC(webservice)

ECC系统发布RFC函数或者RFC函数封装的WEBSERVICE .

详见链接

无峰,公众号:ABAP 技巧与实战SAP操作手册之 RFC函数发布WEB服务

02

CALL WEBSERVICE

ECC调用外部系统发布的WEBSERVICE.

详见链接

无峰,公众号:ABAP 技巧与实战SAP操作手册之 ABAP调用WEB服务

03

通过PO中间件 

 PO与ECC的通讯方式XI(SOAP) 包含ECC 出站和入站. (本质上也是一种webservice方式). 可以通过事务代码SPROXY 生成相关的对象.

出站由ABAP调用通过代理生成的类方法

PO实际上也支持RFC/IDOC等方式与ECC交互数据. 只是这两种方式实际使用中没有XI(SOAP)方式好用. 建议项目中统一PO与ECC的交互方式为XI(SOAP)方式.

356cb14cf2d0374ac7679b46de24983d.png

入站通过在代理的执行类中写代码,完成入站数据的处理

a62ce92a8f6a2ffb195cc0ebef5b956e.png

04

数据同步平台

一个自开发的数据同步平台.主要针对使用中间表方式的接口.  通过ADBC直接访问外部系统的中间表.

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台( 一 简介 )

05

直接调用http接口

通过http client 类调用外部系统的http 服务. 传递XML或JSON格式的数据

9f26305845375ca0de8a4ecbad736dc5.png

06

发布http接口

直接在ECC中发布http服务, 在服务的类中处理接收到的XML或JSON报文并返回结果报文. 该接口方式在ECC中不常用.

b774a96154e772e437950126aa98d391.png

57a4cd61f5cc9dacef186629aff840bb.png

06

发布ODATA服务

可以在HANA中或ABAP中发布ODATA服务, 供外部系统调用. 已经有点超出通常意义的接口的范畴. 适用于通过WEB界面呈现的报表系统从ECC/HANA中获取数据来呈现报表

接口控制表

通过ZTIF002集中控制接口的激活, 调用日志,内容日志等

接口编号: 每个接口按规则给一个唯一识别号码

详细字段介绍见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(二 接口定义表)

ef0d0b33177baab83a8ab9e743987d1c.png

449e45bab0320445b59c80bd359acfa4.png

接口控制表的使用

所有接口必须登记在接口控制表中. 

所有涉及接口的代码,都通过访问接口控制表,判断接口是否登记, 是否活动, 并根据标记判断是否记录处理日志及内容日志. 

这部分代码逻辑比较简单. 如果接口没有登记,没有激活. 报错即可. 下图是自动生成的下传程序中校验接口的部分代码.

a98e0c69738c1dc678a2ceb2539b714a.png

接口调用日志表

ZTIF_LOG 用来记录对接口的调用信息,通过LOGID唯一标记一次调用. 对于调用中涉及的PO消息,通过字段 MGUID 记录. 建立与PO相关消息的关系.

对于一个PO消息可能产生多个IDOC(上传接口通过IDOC最终创建业务单据,后续通过ZIFIDOC整体监控IDOC的执行情况) , 通过ZTIFLOG_IDOC 记录PO消息和IDOC的关系(这个关系基于LOGID创建会更合适些), ZIF_LOG中可以看到产生的IDOC个数, 并通过点击跳转显示IDOC.

786e47727e1c13e935614b26d890a482.png

0e56ae617e2d4b032da25c74e3a1c075.png

140f1174fcb9c6e6a925e71d83eb5928.png

接口调用日志表写入

每个涉及到接口的程序中,根据ZTIF002-WIFLOG 标记, 写入一条记录到 ZTIF_LOG表中. 用来记录接口的一次调用行为,具体写入的代码可以封装在函数或类方法中.下图是自动生成下传接口代码中写入ZTIF_LOG的逻辑

565b806e4147acb7051b5499efb00e98.png

接口内容记录表

基于不同的接口方式, 数据内容的记录方式不太一样.对于需要自行记录的部分, 判断ZTIF002-WDATA标记确定是否记录接口传递的数据.

01

RFC(或RFC发布的WEBSERVICE)

统一RFC函数的输入/输出界面, 通过EXPORT TO database ztif_log_data命令记录数据内容. 后续通过IMPORT FROM DATABASE ztif_log_data读取内容. 函数界面参数对应接口监控的特定按钮功能(如图)

接口内容记录在ZTIF_LOG_DATA

EXPORT(IMPORT) TO(FROM)DATABASE 

详见链接

无峰,公众号:ABAP 技巧与实战SAP小技巧 使用EXPORT/IMPORT保存特殊数据

44802151f4fe72ee1bc3228995de1e0a.png

4cf43b6d6a20d82d0f98297dc99e1e3e.png

3c7da0fd888338af88b18ea7307e9424.png

02

对通过PO的接口

无需单独记录内容. 因为PO的消息表中记录了传递的XML内容. (因为XML内容的查看不太直观, 可以通过功能解析XML内容,集中呈现)

7d2cb33762feb6670b275e4632c09097.png

03

对于数据同步平台

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台(五 日志改进)

04

对于直接调用http接口

使用表ZTIF_LOG_JSON 记录 http 调用的传入传出的JSON或XML串 . 同时模拟一个消息GUID写入ZTIF_LOG-MGUID . ZIFLOG中通过点击MGUID字段读取保存的JSON或XML串, 显示出来.

f528f7c3aeebea7b2cf6fc4bf32a3cf1.png

178843173b8b5c6c1343560a4c28fe5f.png

不适用PO的接口形式

目前看来. 如下接口形式不推荐或无法使用PO

  • 同步接口: PO增加了同步接口的调用链路,可能会影响性能,或者出现超时错误. 不推荐使用(也可以通过PO记录调用日志)

  • 通过中间表的接口: PO读取中间表的方式过于简单,一些复杂的场景无法实现,大数据量也往往会出问题.

  • 外围系统有完整的RFC调用体系: 部分OA或WMS软件基于RFC调用已经构建出一套完善的调用体系,ECC同这些系统的接口不适于使用PO.

  • 部分做报表展示的系统, 建议用ODATA或RFC服务获取数据(无需监控)

总结

项目上往往会采用多种接口形式. 接口使用PO并不是唯一的选择. (对于使用PO的接口,可以通过SXI_MONITOR 集中监控.)(自定义的监控不能完全取代SXI_MONITOR的监控及PO的网页监控,有些报错只能在这些地方找到,这都算是传输链路的监控). 

考虑集中接口管控和日志记录,可以把多种形式的接口整合在一起.

可以让项目更加灵活方便的选择接口形式, 通过统一的监控入口查看系统接口执行情况及接口传递的数据内容. 以便分析接口问题及错误.

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.       

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

a376329215e6b515b89c86e7fba1b9d1.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值