点击蓝字 关注我们
一
前言
前文讲了自动生成发出接口程序的基本操作及接口定义表的用处
详见链接
无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(一)
详见链接
无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(二 接口定义表)
本文主要介绍自动生成发出接口程序的几个配置表
二
相关配置表
-
ZTBC122C1 配置接口下传程序
-
ZTBC122C2 配置接口下传程序:数据来源表
-
ZTBC122C3 配置接口下传程序:对应的表的关联关系
-
ZTBC122C4 配置接口下传程序对应的表字段
三
ZTBC122C1
配置接口下传程序
01
JIEKNO
JIEKNO 接口编号
02
ZISED
ZISED 接口的发送系统
03
ZIRCV
ZIRCV 接口的接收系统
04
JIEK_TYPE
JIEK_TYPE 下传接口的类型
-
S单表结构类型 . 数据通过一个单表结构下传 图三
-
M主从结构类型 . 对方是webservice 或http ,行项目是抬头中的一个节点与抬头字段并行 图四
-
P主主结构类型(行项目和抬头并列,行项目中需包含抬头的单号,用于JDBC写入中间表) 图五
-
Q主从->单表(接口程序配置中定义为主从表,但是PO定义为单表)(该模式不再需要,优化了下传控制表的主键识别)
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 联合下传控制表使用(从下传控制表获取的变化量,再次检查与上次下传数据是否一致)
12
DISTRIBUTE
DISTRIBUTE 分发标记(接口涉及到分发到不同的系统,需设置该标记)
一般情况下, 对于单据可能使用分发, 对于主数据可能使用群发
分发: 按特征把数据发到特定的服务器
群发: 把数据发给多个服务器
13
DIST_FIELDNAME
DIST_FIELDNAME 分发的系统识别字段名
分发系统识别的特征. 该特征字段最好放到单据的抬头. 值会在在PO中配置接收方时使用.
14
LOCK_FUNCTION
LOCK_FUNCTION 加锁函数名
为了避免接口传出时,用户恰好在调整数据,从而导致调整的数据记录的变化被覆盖.导致改变的内容没有传出. 需要在数据下传时加锁,避免下传的同时修改数据
数据量较大时,加锁可能会导致锁空间溢出. 在选择屏幕上可以控制是否加锁
15
DYNAMIC_URL
DYNAMIC_URL 动态URL(无控制作用,仅作说明用)
16
MD5_SIGN
MD5_SIGN MD5签名
16
ORDFLG
ORDFLG主数据下传标记(主从结构或分发的主数据设置该标记后, 限制每个消息中的行的个数)
17
JIEKNO_PO
JIEKNO_POPO接口编号, 如果为空, 则取接口编号. 用于解决多个接口程序调用一个PO接口
如果多个下传程序需要调用同一个PO接口, 可以在这里定义PO的接口编号.
比如销售订单, 调拨单需要通过同一个接口传出到目标系统.因为销售订单,调拨单是不同的的表及下传控制表记录数据,所以必须配置生成两个程序,但是这两个程序可以使用同一个PO接口传输数据.
四
ZTBC122C2
配置接口下传程序:数据来源表
通过该配置,确定接口要发出的数据来源.
FTABALIAS 表的别名.如果关联中同一个表使用多次, 需要使用别名区分这个表的每次使用.
一般关联合作伙伴时会用到别名. 因为多个合作伙伴都保存在KNVP中,通过合作伙伴功能PARVW区分. 如果在单据抬头需要获取送达方/开票方, 需要多次关联KNVP . 每次关联限制不通的合作伙伴类型
五
ZTBC122C3
配置接口下传程序:对应的表的关联关系
-
JOIN_GROUP 如果两个表存在多个连接条件, 需要配置成相同的分组.
-
INNERJOIN 默认 INNER JOIN . 标记X 后表示LEFT JOIN .
-
ADD_JOIN_COND 关联表的附加条件. 比如 MARA关联MAKT ,因为MAKT中有多个主键, MATNR SPRAS . 为了避免产生过多的数据, 需要限制SPRAS = ‘1’ 只获取中文描述.
六
ZTBC122C4
配置接口下传程序对应的表字段
01
JIEKNO
JIEKNO 接口编号
02
FTABL
FTABL 表名或表的别名(如果在C2表中配置了表的别名, 则使用表的别名),如果表名为空, 则不从数据库获取
03
FNAME
FNAME 字段名称
04
TOLEV
TOLEV 字段在接口的层级(单表结构类型的默认位H)
一般情况下, 从抬头表获取的字段设置H . 从明细表获取的字段设置I . 但是有时接口文档中会把明细表的字段放到抬头, 比如 地点 放到抬头(需要限制单据只有一个地点). 此时需要设置字段为H 表名该字段需要放到抬头表中.
05
FNAME_ALIAS
FNAME_ALIAS 字段别名(允许为空)
如果多个表存在相同的字段名需要引入接口 或者接口中的字段名不同于表中的字段名,都需要给字段一个别名.
06
SELNAME
SELNAME 选择屏幕字段的名称(当字段名大于7个字符,需要命名一个选择字段的短名称)
选择字段长度不能超过9 去掉默认前缀 S_ 选择条件字段需要一个小于7位的短名称.
07
SELPOS
SELPOS 选择屏幕字段存在
设置字段为选择字段
一般需要把关键字设置成选择字段, 也可以根据情况把日期,类型,组织机构等设置为选择条件,用于手工下传时限定数据选择的范围.
08
SEL_POS
SEL_POS 选择字段的位置
用于设置选择字段在选择屏幕中的位置
KEYFLAG
KEYFLAG关键字
标记字段是关键字
09
DUPKEY
DUPKEY 重复项识别标记
大部分时候,重复项识别的字段等同于关键字, 可以不用设置, 特殊情况,重复项识别的字段不同于关键字, 此时可以设置重复项识别标记,让系统删除重复项.
10
NOT_NULL
NOT_NULL 字段非空标记(用来标记不允许为空的字段)
有时候目标系统会限定字段非空才能传输. 可以按目标系统的非空标记配置.配置了非空的标记的字段,如果内容为空, 该数据会直接标记错误, 不会传出.如果接收方是JDBC写入数据库,表字段定义了NOT NULL . 则必须设置这个标记, 否则接口JDBC写入目标数据表时会报错
11
STRING_LENGTH
STRING_LENGTH 字段长度限制
目标系统中的字段可能和ECC系统不一致. 如果是JDBC写入目标表,超过长度会导致PO端口报错.此时可以配置一个最大长度,让程序截尾,避免PO报错.
12
FTEXT
FTEXT 字段描述(中文)
13
FTEXT_E
FTEXT_E 字段描述(英文)
FROM_DB
FROM_DB字段描述来自数据元素的文本(根据登陆语言获取不同语言的文本)
14
REF_TABLE
REF_TABLE ALV 控制: 内部表字段的参考表名称
如果需要添加一个不在表中的字段,然后通过特定逻辑给该字段赋值,则需要设置参考表及参考字段,用来确定添加字段的类型信息. 一般会使用 ZSIF_REF 作为参考表.该结构中添加了很多常用的字段定义
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 生成的程序设置默认选择条件.
22
SEL_AFTER
SEL_AFTER 选择条件后置(选择条件放在获取数据之后执行)
23
AUTHCHK
AUTHCHK 授权检查标记
24
SQL_EXPRESSION
SQL_EXPRESSION 字段的SQL表达式(配置字段的SQL表达式 :比如 a+b case 默认值等处理)
25
COMPUTE_FORMULA
COMPUTE_FORMULA 计算公式(合计后, 用于字段内容的计算,可以使用其它字段 比如 = F1 + F2 ),注意:字段必须时输出字段
26
COMPUTE_SORT
COMPUTE_SORT 计算公式的顺序
当多个字段存在计算公式,并且这些计算公式有依赖关系时, 需要给计算公式指定执行顺序,以便能够正确的执行出所需的数据内容.
27
CONV_RULE
CONV_RULE 字段的特殊转换规则(区分获取规则,转换规则)
转换规则可以给字段设置一个特定的内容转换方式. 转换规则代码写在类方法中.
ZCL_DATA_HELPER =>AUTO_CONVERSION_IF_OUTPUT
新增一个转换规则需要同时修改方法中的代码及修改域值定义
目前已经给出了一些常用的转换.
某些特定的转换需要使用辅助参数 RULE_PAR1 RULE_PAR2
28
RULE_PAR1
RULE_PAR1 规则的输入参数1-数字
在特定的转换规则中辅助计算转换结果
29
RULE_PAR2
RULE_PAR2 规则参数(字符)
在特定的转换规则中辅助计算转换结果
30
CONV_FUNC
CONV_FUNC 转换函数(暂无此功能)
七
总结
自动生成发出接口程序是项目中无代码的一种尝试.所有接口中执行中实际碰到的问题,都尝试通过配置解决. 因此配置表中有很多字段.对接口行为起到不同的作用.
通过程序ZBC122_CONFIG整合了这些配置表的维护及程序的生成及传输过程.
详见连接
无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(一)
有些配置直接生效, 有些配置通过生成的代码生效. 为了避免错误,修改配置后最好重新生成一下程序.
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
公众号 : syjf1976_abap
ABAP开发技巧
微信号 : 392077
请微信联系管理员:
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或参与话题讨论
今天的文章SAP工具箱 自动生成发出接口程序(三 配置表)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64464.html