SAP工具箱 自动生成发出接口程序(三 配置表)

点击蓝字 关注我们

前言

前文讲了自动生成发出接口程序的基本操作及接口定义表的用处

详见链接

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

详见链接

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

本文主要介绍自动生成发出接口程序的几个配置表

相关配置表

  • ZTBC122C1                      配置接口下传程序

  • ZTBC122C2                      配置接口下传程序:数据来源表

  • ZTBC122C3                      配置接口下传程序:对应的表的关联关系

  • ZTBC122C4                      配置接口下传程序对应的表字段

ZTBC122C1

配置接口下传程序

2f57e038e652303972af0a8cb0db5c32.png

01

JIEKNO

JIEKNO 接口编号

02

ZISED

ZISED 接口的发送系统

03

ZIRCV

ZIRCV 接口的接收系统

04

JIEK_TYPE

JIEK_TYPE 下传接口的类型

  • S单表结构类型 . 数据通过一个单表结构下传 图三

  • M主从结构类型 . 对方是webservice 或http ,行项目是抬头中的一个节点与抬头字段并行 图四

  • P主主结构类型(行项目和抬头并列,行项目中需包含抬头的单号,用于JDBC写入中间表) 图五

  • Q主从->单表(接口程序配置中定义为主从表,但是PO定义为单表)(该模式不再需要,优化了下传控制表的主键识别)

0d339e4d6047f160f57af5a30feadc72.png

9b3c26e4e9fcca4c106d6e268cebce77.png

4154c568ad127acc48a331abaf96dba5.png

05

TCODE

TCODE 事务代码

指定下传程序生成的事务代码,命名规则: Z<接口编号>

06

01

请输入标题

TITLE

TITLE 报表标题(中文)

07

TITLE_E

TITLE_E 报表标题(英文)

08

FROM_TCODE

FROM_TCODE 报表标题来自TCODE的文本(根据登陆语言获取不同语言的文本)

因为报表标题只有中文TITLE和英文 TITLE_E, 为了支持更多的语言, 允许翻译TCODE. 然后从TCODE获取特定语言的描述作为报表标题

09

WRITE_COMPARE

WRITE_COMPARE记录接口比较表(写入表ZTIF_COMPARE)

标记后,单据类的接口下传时可以把单号信息写入表ZTIF_COMPARE中的记录发出. 对方系统再通过BC000接口把所有接收到的单号传给ECC,记录在表ZTIF_COMPARE中的接收信息. 这样可以快速验证单据的传递(发出,接收都有则表示成功,否则表示有问题,需要考虑一个延迟时间).

10

CHTAB

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

11

CHMETHOD

CHMETHOD 无下传控制表的变化量下传方式(单表结构使用)

如果没有下传控制表(配置类的表,码表等).可以使用下面几种方式获取变化量.

获取变化量的基本逻辑:每次下传都记录该接口已经传输的数据, 本次获取的数据和历史已传输数据比较,获取变化的数据.

  • 空 存在变化获取使用全部数据

  • E 增强获取变化量(生成的SQL语句不执行. 在ZBC122_XXXXX_51中自定义代码获取变化量,不和历史记录比较)

  • X 存在变化只获取变化部分的数据(如果想识别删除的部分,必须在添加删除标记字段DEL_FLAG)

  • Z 联合下传控制表使用(从下传控制表获取的变化量,再次检查与上次下传数据是否一致)

bdd364ac200c94d674b217e81f2150d9.png

12

DISTRIBUTE

DISTRIBUTE 分发标记(接口涉及到分发到不同的系统,需设置该标记)

一般情况下, 对于单据可能使用分发, 对于主数据可能使用群发

分发: 按特征把数据发到特定的服务器

群发: 把数据发给多个服务器

4635946b16e10e64bfc7152ae0dec736.png

13

DIST_FIELDNAME

DIST_FIELDNAME 分发的系统识别字段名

分发系统识别的特征. 该特征字段最好放到单据的抬头. 值会在在PO中配置接收方时使用.

78e3bfd25df18dba7ecbe77b6fa3c595.png

14

LOCK_FUNCTION

LOCK_FUNCTION 加锁函数名

为了避免接口传出时,用户恰好在调整数据,从而导致调整的数据记录的变化被覆盖.导致改变的内容没有传出. 需要在数据下传时加锁,避免下传的同时修改数据

数据量较大时,加锁可能会导致锁空间溢出. 在选择屏幕上可以控制是否加锁

5bf0e2b1646d401eb57a772f9526536e.png

15

DYNAMIC_URL

DYNAMIC_URL 动态URL(无控制作用,仅作说明用)

74ef6551dee6ec9d1629148ce67a5a28.png

16

MD5_SIGN

MD5_SIGN MD5签名

618cbe3d7b28325e323ce1f8a7127215.png

16

ORDFLG

ORDFLG主数据下传标记(主从结构或分发的主数据设置该标记后, 限制每个消息中的行的个数)

17

JIEKNO_PO

JIEKNO_POPO接口编号, 如果为空, 则取接口编号. 用于解决多个接口程序调用一个PO接口

如果多个下传程序需要调用同一个PO接口, 可以在这里定义PO的接口编号.

比如销售订单, 调拨单需要通过同一个接口传出到目标系统.因为销售订单,调拨单是不同的的表及下传控制表记录数据,所以必须配置生成两个程序,但是这两个程序可以使用同一个PO接口传输数据.

ZTBC122C2

配置接口下传程序:数据来源表

通过该配置,确定接口要发出的数据来源.

FTABALIAS 表的别名.如果关联中同一个表使用多次, 需要使用别名区分这个表的每次使用.

一般关联合作伙伴时会用到别名. 因为多个合作伙伴都保存在KNVP中,通过合作伙伴功能PARVW区分. 如果在单据抬头需要获取送达方/开票方, 需要多次关联KNVP . 每次关联限制不通的合作伙伴类型

5452f41e89cf25281c7b6b5648dfe3ad.png

6ba3638b0956d7d69c120b3c3f564fbc.png

ZTBC122C3

配置接口下传程序:对应的表的关联关系

  • JOIN_GROUP 如果两个表存在多个连接条件, 需要配置成相同的分组.

  • INNERJOIN 默认 INNER JOIN . 标记X 后表示LEFT JOIN .

  • ADD_JOIN_COND 关联表的附加条件. 比如 MARA关联MAKT ,因为MAKT中有多个主键, MATNR SPRAS . 为了避免产生过多的数据, 需要限制SPRAS = '1' 只获取中文描述.

18d2c8d091725d51ae37a29248062cb1.png

9047d35edf90edccd4ffb7ac00021140.png

ZTBC122C4

配置接口下传程序对应的表字段

90256d482bf261eee09c2cf102a14d4d.png

01

JIEKNO

JIEKNO 接口编号

02

FTABL

FTABL 表名或表的别名(如果在C2表中配置了表的别名, 则使用表的别名),如果表名为空, 则不从数据库获取

03

FNAME

FNAME 字段名称

04

TOLEV

TOLEV 字段在接口的层级(单表结构类型的默认位H)

一般情况下, 从抬头表获取的字段设置H . 从明细表获取的字段设置I . 但是有时接口文档中会把明细表的字段放到抬头, 比如 地点 放到抬头(需要限制单据只有一个地点). 此时需要设置字段为H 表名该字段需要放到抬头表中.

79e4e2a979a6f29e04779b7d40926c4f.png

05

FNAME_ALIAS

FNAME_ALIAS 字段别名(允许为空)

如果多个表存在相同的字段名需要引入接口 或者接口中的字段名不同于表中的字段名,都需要给字段一个别名.

06

SELNAME

SELNAME 选择屏幕字段的名称(当字段名大于7个字符,需要命名一个选择字段的短名称)

选择字段长度不能超过9 去掉默认前缀 S_  选择条件字段需要一个小于7位的短名称.

07

SELPOS

SELPOS 选择屏幕字段存在

设置字段为选择字段

一般需要把关键字设置成选择字段, 也可以根据情况把日期,类型,组织机构等设置为选择条件,用于手工下传时限定数据选择的范围.

08

SEL_POS

SEL_POS 选择字段的位置

用于设置选择字段在选择屏幕中的位置

KEYFLAG

KEYFLAG关键字

标记字段是关键字

3a7720e2b84f23c55707bd3da7074f5e.png

09

DUPKEY

DUPKEY 重复项识别标记

大部分时候,重复项识别的字段等同于关键字, 可以不用设置, 特殊情况,重复项识别的字段不同于关键字, 此时可以设置重复项识别标记,让系统删除重复项.

79467f55dcd0bf1d31384da7a0fe3e45.png

10

NOT_NULL

NOT_NULL 字段非空标记(用来标记不允许为空的字段)

有时候目标系统会限定字段非空才能传输. 可以按目标系统的非空标记配置.配置了非空的标记的字段,如果内容为空, 该数据会直接标记错误, 不会传出.如果接收方是JDBC写入数据库,表字段定义了NOT NULL . 则必须设置这个标记, 否则接口JDBC写入目标数据表时会报错

5ab75ce779b414645b187d220704ceb1.png

11

STRING_LENGTH

STRING_LENGTH 字段长度限制

目标系统中的字段可能和ECC系统不一致. 如果是JDBC写入目标表,超过长度会导致PO端口报错.此时可以配置一个最大长度,让程序截尾,避免PO报错.

fbc6e947278897cfc3401657974a45b3.png

12

FTEXT

FTEXT 字段描述(中文)

13

FTEXT_E

FTEXT_E 字段描述(英文)

FROM_DB

FROM_DB字段描述来自数据元素的文本(根据登陆语言获取不同语言的文本)

14

REF_TABLE

REF_TABLE ALV 控制: 内部表字段的参考表名称

如果需要添加一个不在表中的字段,然后通过特定逻辑给该字段赋值,则需要设置参考表及参考字段,用来确定添加字段的类型信息. 一般会使用 ZSIF_REF 作为参考表.该结构中添加了很多常用的字段定义

0933fb719a6ace9d1b706ccabbfbe506.png

15

REF_FIELD

REF_FIELD  ALV 控制: 内部表字段的参考字段名称

16

OBLIGATORY

OBLIGATORY 必输标记

设置后,选择条件必须输入

17

NO_DISPLAY

NO_DISPLAY 选择字段不显示

设置后,选择条件不显示

18

MEMORYID

MEMORYID 设置/获取参数标识

选择条件的默认值来自参数ID

19

MATCHCODE

MATCHCODE 选择字段的搜索帮助

设置选择条件的搜索帮助. 一般情况下,数据元素中会定义一个搜索帮助, 选择条件默认使用该搜索帮助, 如果需要给选择条件指定一个搜索帮助. 可以设置一下.

20

SEL_VALUE

SEL_VALUE 默认选择内容: 仅支持单值或多个单值-通过/分割多个单值

设置选择条件的默认选择内容,与NO_DISPLAY 共同使用,可以给查询逻辑设置默认限制条件.

21

SEL_VALUE_COMPLEX

SEL_VALUE_COMPLEX 复杂选择内容设置标记(到通用配置表 ztbc_select_opt 中配置)

ZTBC_SELECT_OPT 是一个底层表,可以为所有通过ZBC121_CONFIG/ ZBC122_CONFIG 生成的程序设置默认选择条件.

6309c537b10acf9f0a89db158ec1bddf.png

22

SEL_AFTER

SEL_AFTER 选择条件后置(选择条件放在获取数据之后执行)

76d321bf2ffff07e846ecc1c6ff5a7d0.png

23

AUTHCHK

AUTHCHK 授权检查标记

ee81ac2ed64623aa06cdb9a980d3c173.png

24

SQL_EXPRESSION

SQL_EXPRESSION 字段的SQL表达式(配置字段的SQL表达式 :比如 a+b case  默认值等处理)

4484199c1d413864e70835be708379e7.png

25

COMPUTE_FORMULA

COMPUTE_FORMULA 计算公式(合计后, 用于字段内容的计算,可以使用其它字段 比如 = F1 + F2 ),注意:字段必须时输出字段

0b088800fdb2b9d2fbc4544320a1e278.png

26

COMPUTE_SORT

COMPUTE_SORT 计算公式的顺序

当多个字段存在计算公式,并且这些计算公式有依赖关系时, 需要给计算公式指定执行顺序,以便能够正确的执行出所需的数据内容.

27

CONV_RULE

CONV_RULE 字段的特殊转换规则(区分获取规则,转换规则)

转换规则可以给字段设置一个特定的内容转换方式. 转换规则代码写在类方法中.

ZCL_DATA_HELPER =>AUTO_CONVERSION_IF_OUTPUT

新增一个转换规则需要同时修改方法中的代码及修改域值定义

目前已经给出了一些常用的转换.

某些特定的转换需要使用辅助参数 RULE_PAR1  RULE_PAR2

fb650e0895e9d367a3c5766ccb911323.png

01835a5a262eea82aec1311475d62177.png

28

RULE_PAR1

RULE_PAR1 规则的输入参数1-数字

在特定的转换规则中辅助计算转换结果

29

RULE_PAR2

RULE_PAR2 规则参数(字符)

在特定的转换规则中辅助计算转换结果

30

CONV_FUNC

CONV_FUNC 转换函数(暂无此功能)

总结

自动生成发出接口程序是项目中无代码的一种尝试.所有接口中执行中实际碰到的问题,都尝试通过配置解决. 因此配置表中有很多字段.对接口行为起到不同的作用. 

通过程序ZBC122_CONFIG整合了这些配置表的维护及程序的生成及传输过程. 

详见连接

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

有些配置直接生效, 有些配置通过生成的代码生效. 为了避免错误,修改配置后最好重新生成一下程序. 

THE

END

约定

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

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

0f1f238d1ce1e43614c547018ed8498d.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值