在这个博客中,数据更新,购物返现,我解释了如何扩展迁移对象并向BAPI的扩展结构提供数据
场景
一些BAPI支持通过接口中的表参数EXTENSIONIN和EXTENSIONOUT对客户添加的字段进行扩展
在我的示例中,我将扩展迁移对象设备并提供ETM数据(设备和工具)管理)对于通过extensionIn向功能模块BAPI\ U EQUI\ U CREATE追加结构J\ U 3GEQUIA和J\ U 3GEQUZA,物联网的,
此BAPI的接口有扩展字段:
参数的定义类似于结构BAPIPrex:
因此,您必须在字段结构中提供结构的名称,以及该结构中所有字段的数据字段VALUEPART1,因此结构只能包含类似字符的字段:
如果您想阅读更多关于扩展概念的内容,你可以阅读https://blogs.sap.com/2014/06/24/bapi-extension-for-customer-added-fields/。
前提条件
本博客基于S/4HANA 1709 FPS2,对更高版本也应有效。
于2018年11月14日更新
LTMOM中引入了S/4HANA 1610 FPS2,因此,永久免费自助建站平台,这种方法在旧版本中不起作用。(对于1610 FPS2到1709 FPS1之间的版本,我不知道它是否工作。)
我为文件上载项目和暂存项目执行了必要的步骤。截图取自基于文件的项目。
BAPI本身不处理扩展字段中的数据,但需要BADI实现。在BAPI BAPI\u EQUI\u的情况下,必须创建BADI BADI\u EAM\u ITOB\u BAPI\u CUST\u字段,这不是本博客的一部分。
在迁移对象建模器中扩展对象
在迁移驾驶舱中,对象设备只有一个源结构EQUI,正如您在迁移对象建模器(事务)中查看源结构所看到的LTMOM):
备注
我更喜欢显示字段和结构名称的技术视图,大数据分析方法,而不是描述。视图可以在菜单设置中切换为技术名称开/关。
BAPI的目标结构扩展是一个表;因此,我们必须在源结构S_EQUI下添加一个新的源结构。我的示例不需要结构扩展输出。
切换到更改模式,然后右键单击"设备",选择"将结构附加到较低级别:
输入附加结构的名称和说明并确认。我将结构命名为S_Extension in并使用说明"Extension Fields":
现在添加必需的字段:
备注
字段equinr是迁移驾驶舱将此结构中的条目链接到上层结构中的设备所必需的。
其他字段按函数的结构Extension中的定义输入模块。
现在我们需要通过外键关系将结构链接到父结构S_EQUI:
在第一行输入eqnr,在第二行保留首字母:
确认并保存更改。
在目标结构中,我们不需要更改任何内容。
在结构映射中,我们需要将新结构S_扩展映射到通过拖放进行结构扩展:
保存更改。
在字段映射中,我们需要通过拖放将源结构中的字段映射到目标结构中相应的字段:
只有链接到结构设备时才需要字段等式,因此我们不将其映射到目标结构。
保存更改。
生成对象:
现在您可以跳转到迁移驾驶舱(事务LTMC)并测试您的扩展:
下载新的xml模板后,您会看到一个新的工作表扩展字段;屏幕截图显示了一些示例数据:
在这里您填写了设备编号和扩展结构的名称及其值。
根据注释2630183调试迁移对象显示这些值正确地传递给了BAPI:
扩展结构中的内容:
每个设备都调用了BAPI,因此,表扩展现在只包含我上传文件中第一个设备的两行。
如前所述,本博客中没有描述BAPI中数据的处理;如果您需要信息,请查看BAPI:技术对象中的注释2146575客户字段。