BADI实现,用于通过ALE分配客户主数据

2020-08-15 03:52发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我已经实现了BADI定...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我已经实现了BADI定义CUSTOMER_ADD_DATA_BI,用于在方法FILL_ALE_SEGMENTS_OWN_DATA中填充idoctype Debmas06的自定义段Z1KNA1M(包含其他地址字段)。

直到我在分销模型中的细分市场E1KNA1M-Land1(美国,MX,CA)中基于客户所在的国家/地区引入了其他过滤器后,一切都很好。

现在,对于上述国家/地区的客户来说,它可以正常工作,但对于在该国家/地区无法生成通信idoc的其他国家/地区,则会出现错误,提示"内部错误:程序读取了表idoc_structure,命令data_select_for_block, 参数Z1KNA1M'。 在运行BD21或BD12时。

感谢您的答复。

谢谢

Nalinikalyan。

8条回答
空代码
2020-08-15 03:55

您好,纳利尼,

可以帮助您填充Z段(ZTAX),该段已添加到ZDEBMAS07(从DEBMAS07复制)中。

此部分最后添加了,我只能在BADI CUSTOMER_ADD_DATA_BI中看到单方法FILL_ALE_SEGMENTS_OWN_DATA。 但是没有逻辑,我该如何将其定位在树的最后。

我很容易在E1KNA1M之后或E1KNA11之后说。 请显示一些东西。

我仍然写的代码是:

类型:ty_j_1imocust的开始,

j_1icstno TYPE j_1imocust-j_1icstno,

j_1ilstno TYPE j_1imocust-j_1ilstno,

ty_j_1imocust结束。

数据:ls_j_1imocust1 TYPE ty_j_1imocust。

数据:lv_kunnr TYPE kna1-kunnr,

ls_t_idoc_data TYPE edidd。

数据:lv_flag类型为char1。

数据:lv_j1icstno TYPE j_1imocust-j_1icstno,

lv_j1ilstno TYPE j_1imocust-j_1ilstno。

数据:ls_edidd TYPE edidd。

数据:ls_j_1imocust类型j_1imocust。

清除ls_t_idoc_data。

使用segnam ='E1KNA1M'键将表t_idoc_data读入ls_t_idoc_data。

如果sy-subrc = 0。

lv_kunnr = ls_t_idoc_data-sdata + 3(10)。

ENDIF。

清除ls_t_idoc_data。

使用segnam ='ZTAX'将表t_idoc_data读入ls_t_idoc_data。

如果sy-subrc = 0。

删除t_idoc_data索引sy-tabix。

ENDIF。

清除ls_j_1imocust。

选择单个*

从j_1imocust到ls_j_1imocust,其中kunnr = lv_kunnr。

如果sy-subrc = 0。

将ls_j_1imocust-j_1icstno移动到ls_j_1imocust1-j_1icstno。

将ls_j_1imocust-j_1ilstno移动到ls_j_1imocust1-j_1ilstno。

ls_edidd-mandt = sy-mandt。

ls_edidd-segnam ='ZTAX'。

ls_edidd-sdata = ls_j_1imocust1。

附加ls_edid到t_idoc_data。

ENDIF。

一周热门 更多>