SAP简友广场

SAP工具箱 自动生成发出接口程序(四 预留出口)

2021-10-12  本文已影响0人  syjf1976_abap

点击蓝字 关注我们

前言

前文介绍了自动生成发出接口程序相关的操作及配置表详情

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

本文主要介绍生成的发出接口程序中预留的增强点

大部分发出接口通过配置就可以完成逻辑了. 对于个别接口需要的特殊逻辑,可以在预留的增强点补充.

比如配置只支持一主表一丛表 . 对于一主表,多从表. 多出的从表需要通过增强代码赋值在91部分(示例: ZBC122_DEM001_91 ).

程序结构

所有通过ZBC122_CONFIG配置并生成的发出接口程序都包含了以下三组INCLUDE程序.

程序主体逻辑

生成的代码负责处理不同接口在这些环节的差异部分内容. 随后的增强则用于预留给开发人员完成特定接口的特殊逻辑.

增强位置

根据发出接口程序的功能.把增强的位置与相应的生成的程序放到了一起.后面的位置按执行顺序排序,因为逻辑的调整,序号和代码执行顺序不太一致.

01

10 变量定义

选择屏幕,变量定义部分

其中 ZBC122_DEM001_AUTO_10是代码生成的选择屏幕定义部分 ZBC122_DEM001_10是预留的选择屏幕定义的出口.

这里主要完成选择屏幕定义及程序中使用的特定接口的变量定义.

三个重要的内表定义

02

20 选择屏幕字段描述

这里主要生成了选择屏幕的选择字段描述,对于新增的选择条件, 可以在这里按特定的方式添加描述

03

30 授权

这里可以实现选择条件内容检查,包括授权检查等逻辑.

04

40 初始化

这里可以实现程序选择条件获取默认值.

通过配置已经可以完成选择条件默认值设置. 这里可以通过代码实现一些特殊的选择条件初始化.

05

60 加锁部分

读取变化的主键后, 对主键部分执行加锁操作, 避免下传脏数据

06

51 重新数据获取逻辑

在获取接口数据后, 可以在这里自定义逻辑补充数据或者重新获取数据.需要注意的是,获取的数据需要放入全局内表GT_DATA中.

07

50 处理获取后的数据

这里循环获取数据放入中. 可以在这里增强特定字段得处理逻辑: 比如调用函数READ_TEXT 获取单据得长文本 (标准单据的长文本无法通过表关联获取).

增强代码能够处理的变量里面包含了所有接口字段

下图是一个接口程序通过增强计算含税金额.

08

70 处理嵌套内表

生成的代码处理原始数据内表GT_ALL 放入嵌套结构的内表GT_DATA中. 这里预留的增强可以通过代码重新实现这个过程. 这里输入GT_ALL 输出 GT_DATA. 后续处理使用GT_DATA内表.

09

80 调用对象定义部分

预留出口允许用户定义更多的调用对象.

10

91 赋值接口

把GT_DATA内容赋值到LT_SHEET 以便调用接口传递数据. 发出接口生成的程序只能处理单表/主从结构. 对于一主多从结构无法处理. 可以在这里增强处理处理多出的从表内容.

11

92 主主结构特殊处理

对于一个主表,一个从表的情况. 如果需要通过JDBC写入目标数据库的多个表. 需要把主从结构设置为主主结构. 这里可以增强代码实现一个主表,多个从表JDBC写入中间表的其它从表的接口内容写入逻辑.

12

90 数据解锁部分

如果前面使用了特殊的加锁逻辑, 这里需要补充特殊的解锁逻辑

总结

自动生成发出接口程序把配置及通过配置生成的代码通过一个框架整合在一个生成的程序中.

这个程序把涉及到发出接口的逻辑肢解成几个部分. 分别通过生成的代码和预留的出口完成这些部分的逻辑.

现在回顾这个框架. 会发现一些不足之处:

THE

END

约定

上一篇 下一篇

猜你喜欢

热点阅读