SAP工具箱 自动生成发出接口程序(二 接口定义表)

点击蓝字 关注我们

前言

前文介绍了发出接口程序的执行原理及怎么自动生成发出接口程序.

详见链接

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

本文主要介绍生成发出接口程序时使用的基本配置表ZTIF002中的字段及用法

接口表定义表

接口定义表ZTIF002. 用来记录所有的接口信息,并通过特定的字段控制接口的行为.

5cc7994ef621ae3fa16a099c10f7619e.png

01

JIEKNO

JIEKNO 接口编号

02

JIEKNM

JIEKNM 接口描述

03

01

请输入标题

EXSYS

EXSYS 外部系统

接口对应的外部系统.这里的接口不包含外部系统之间的接口. 只包含ECC/S4 和外部系统之间的接口.所以通过外部系统编码标识接口对应的外部系统(外部系统登记在表ZTIF001中)

04

JIEKNO_COMM

JIEKNO_COMM 通用接口编号

底层使用的接口编号. 比如外部系统传到ECC创建商品凭证接口,底层接口编号BC010, 该接口中也有个接口编号字段.用于区分不同业务:比如盘点接口使用MM120 报损业务 MM121 收货MM122 等.

这样可以通过接口编号区分不通的业务, 同时这些不同的业务实际上又使用了同一个底层接口传递商品凭证.

配置通用接口编号,以便ZIFLOG中能解析并查看消息内容

05

IFDIR

IFDIR 接口方向:I/O

I 入站 O 出站 该字段会影响通用编码转换逻辑:出站会使用字段域定义中的转换函数转出(比如去掉前置0),入站会使用字段域定义中的转换函数转入(比如添加前置0),接口方向一定不能定义错误.如果出现了不必要的转换, 可以使用一个不带域转换函数的域来定义数据,避免自动转换逻辑生效

自动转换逻辑调用了类方法 

ZCL_DATA_HELPER=>AUTO_CONVERSION_EXIT_INPUT 和AUTO_CONVERSION_EXIT_OUTPUT

一般情况下,RFC函数创建的接口都是入站接口. 但是也可以把外部系统接口调用封装到一个RFC函数中给ECC系统调用, 此时该RFC函数是出站接口

06

IFTYP

IFTYP 接口类型(M 主数据 D 单据)

仅标记一下是主数据还是单据接口, 无实际控制作用. 主数据接口可能通过一个接口编号群发给多个系统. 单据接口不能群发,只会通过特定的接口编号发送或分发到一个系统

07

IFASY

IFASY 异步接口标记 标记接口是异步接口, 无标记则是同步接口. 一般同步接口无需通过PO. 异步接口必须通过PO.

08

MABIAO

MABIAO 是否码表接口(停用)

09

CHTAB

CHTAB 变化点记录的表(如果没有维护下传控制表,则按所有数据比较是否改变, 如果改变传输所有数据)

下传控制表的命名规则ZTIF<主表> .

比如商品主表 MARA 下传控制表 ZTIFMARA

采购订单主表EKKO  下传控制表 ZTIFEKKO

e02e1c97ec8736a99d45471225c58420.png

10

KEYFT

KEYFT 关键字过滤标记(停用)

11

MAXLN

MAXLN 每个消息最大传输的条目数

用于控制传出程序每个消息中的最大条目数,如果配置了该值并且选择屏幕中的最大条目数>该值,则替换成配置的最大条目数,如果没有配置,按程序选择屏幕中的设置

7443c3ce8edd23b00e0d2b465e7aeadf.png

12

CONVERT_UNIT

CONVERT_UNIT 数量转换为基本单位数量(维护接口的商品/数量/单位的字段名, 用/分割).

在通用转换类方法

ZCL_DATA_HELPER=>AUTO_CONVERSION_EXIT_OUTPUT中会使用这个逻辑,用来把数量转换成基本单位数量. 这里维护接口中商品/数量/单位的字段名

比如: MATNR/MENGE/MEINS

这个转换逻辑用处不太大,一般的单据都有单据数量和基本数量. 比如交货单 LIPS-LFIMG 是单据数量  LIPS-LGMNG 是基本数量. 接口中可以直接传输LIPS-LGMNG.表示传输的基本单位数量.如果单据没有基本单位数量. 则可以通过这个配置执行数量转换.

13

ACTIV

ACTIV 接口活动标记

用于标记接口活动,没有设置该标记的接口无法执行(传出接口会报错并中断执行,传入接口会在SXI_MONITOR中报错),可以通过设置该字段为空停止传出或传入接口的执行.

744749d53fb0aa27407ee8b9a5dbd113.png

10d98b2ba2efd3b3e03797cfecc8db54.png


14

ZQKTZ

ZQKTZ 账期可调整标记

影响小票/商品凭证相关接口

特定接口中实现该逻辑:如果发现单据中账期已经关闭,则调整为当前月的第一天.这样避免账期关闭而报错(该逻辑个别项目使用)

15

NODUP

NODUP 不检查单据重复

上传接口默认都会检查单据是否重复.允许通过配置取消重复性检查.

上传接口在PROXY中调用对应函数产生IDOC ,比如商品凭证调用函数Z_CREATE_IDOC_OF_MB产生商品凭证的IDOC

产生IDOC时通过函数Z_CHECK_IDOC_DUPLICATE检查IDOC是否重复产生.如果重复,调整IDOC的消息类型(EDIDC-MESTYP)为ERROR_DUP 这样后续执行IDOC时报错.

通过如下字段检查重复性

  • EDIDC-REFINT  接口编号

  • EDIDC-RCVPRN  合作伙伴(客户或逻辑系统)

  • EDIDC-SNDLAD  外部单号

  • EDIDC-SNDSAD  地点

  • EDIDC-REFMES  外部单号对应多个IDOC时,添加识别序号

16

WDATA

WDATA 接口内容记录在表 ZTIF_LOG_DATA中

标记后的RFC函数的传入参数和传出参数内容会写入表ZTIF_LOG_DATA中. 后续可以通过ZIFLOG查询内容.对于使用PO的接口,该字段无意义.

17

WIFLOG

WIFLOG 写入接口控制日志表ZTIF_LOG标记.

通过程序ZIFLOG可以监控接口的执行情况及接口传输的数据内容

18

JKTYP

JKTYP 地点库位检查(单据类接口的地点库位检查逻辑)

单据类的接口有时需要按地点/库位识别该单据是否需要通过特定接口传输.

  • 空 地点/库位检查维护的服务器对应的系统ID与接口的系统ID一致. 如果地点/库位.在字段在单据记录下传控制表的保存函数中使用.

  • A 地点/库位检查T001L-ZWHSY 非空(WMS接口)

  • B 地点/库位检查t001l-ZZXS = 'A'(线上系统接口)

  • C 地点/库位检查T001L-ZZSX = 'Z'(中台系统接口)

  • D 不执行地点/库位检查

bceb72c921cbdfef79b6447f61b8f792.png

19

TZMSG

TZMSG 消息通知类接口标记

因为使用了接口体系在单据保存时记录了需要自动发送的邮件信息,所以需要标记一下该接口是消息通知类,这样在单据保存时,会写入表 ZTMSG_H/ZTMSG_I 后续通过程序ZREP_SEND_MAIL_1                 邮件发送程序 统一发送邮件

比如交货单过账后,邮件通知相应的人员给交货单已经过账(物流已经发出货物)

20

SYSCT

SYSCT 群发系统数(涉及外围系统的服务器个数)

当主数据群发的时候, 每个接收系统都需要有一个成功的反馈,为了确保所有系统都成功的收到.需要用成功反馈的个数和系统个数比较,如果成功反馈的个数>=系统个数,才会认为所有的系统都接收到了. 才能够标记数据发送成功(体现在下传控制表RSTATUS字段 比如ZTIFMARA-RSTATUS . 同时ZIFLOG在界面也会显示(消息成功响应标记 FLAG_ACK = 'X' )

如果未设置,视同为1处理

关于系统消息的反馈详见链接

无峰,公众号:ABAP 技巧与实战PO系列之 消息的确认反馈

c1f0e72c563f5da377c2f02d029c611e.png

21

SAVE_PROC_LOG

SAVE_PROC_LOG 写入下传控制表过程记录日志(单据)

对于单据类的接口, 单据在保存时根据过滤条件写入下传控制表. 这个标记用来控制是否把过滤的过程写入标准日志. 如果标记了. 可以使用TCODE SLG1 查询对象ZIF 获取日志信息,查看单据没有写入下传控制表的原因

a9f58cff087622c06186656828bd4912.png

1a6cca12d7762b5d8594746ad40d6fac.png

22

FUNCNAME

FUNCNAME 函数名

如果是RFC函数定义的同步接口,可以在此维护一个函数名, 如果函数名为空, 默认会按照命名规则Z_IF_<接口编号> 生成一个函数名. 在监控程序ZIFLOG中使用. 通过函数名读取函数的参数信息,以便读取保存的参数值呈现出来

23

DPATH

DPATH 下载路径/发布的webservice

特殊情况下使用. 

对于传出接口,用于记录对方的服务调用路径. 

比如外围系统发布了一个服务 http://testwb.xx.cn/<动态部分> .PO调用对方服务的时候,需要通过接口传输的动态路径拼出最终调用的服务路径

对于传入接口, 则用于记录PO产生的webservice的wsdl定义地址或http调用地址

24

PREFIX

PREFIX 文件名前缀

对于文件类接口(不通过PO),记录该文件名的前缀.

25

MAILADD

MAILADD 邮箱地址(停用)

26

LIFNR_FLAG

LIFNR_FLAG 供应商转换标记

把对方传输的外部供应商编码转换成SAP供应商,外部供应商编号记录在but000-bpext中

转换逻辑写在底层转换方法

ZCL_DATA_HELPER=>AUTO_CONVERSION_EXIT_INPUT中

27

WERKS_FLAG

WERKS_FLAG 地点转换标记

把对方传输的外部地点编码转换成SAP地点编码,外部地点编码记录在T001W-ZJMDH中

转换逻辑写在底层转换方法

ZCL_DATA_HELPER=>AUTO_CONVERSION_EXIT_INPUT中

28

DISP_METHOD

DISP_METHOD接口发送特性(停用)

29

CAN_COMPARE

CAN_COMPARE 接口可比较标记(单据类的可以通过ZIF_COMPARE比较单据的发出,收到情况)

单据类的接口在发出或者接收时会根据配置写入表 ZTIF_COMPARE中. 然后外部系统通过接口BC000传回单据的接收或发送信息. 这样表ZTIF_COMPARE中对于ECC发出的单据或者ECC接收的单据就会记录完整的发出,接收信息. 

通过报表ZIF_COMPARE可以监控单据的发出接口情况. 对于只有发出,没有接收的单据需要检查是否因为PO的原因或者其它原因没有传输到目标系统. 有利于快速发现传输失败的单据.

55a3a7b652e7e4b29e57e999eb7a0b6f.png

总结

自动生成发出接口程序和传入接口模板要求接口编号必须登记在接口定义表中. 这样就可以通过该表查看系统中的所有接口信息.

接口定义表对传出接口和传入接口都有控制作用.

接口定义表中整合了许多和接口相关的控制信息,这些控制方式在不同的项目中提出并整合到这个表中. 有些控制有通用价值,得以保留,有些没有通用价值,逐渐废弃.

THE

END

约定

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

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

01bf78eb076aa19a27dd94ce974a4624.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员: 

  • syjf1976 

  • sharry_xlp  

  • Yannick_Duan 

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值