SAP S/4HANA生产订单的BAdI增强点之Initialize方法
【摘要】 原因如下,这种中英文混杂的注释,代码里的函数命名和变量命名,给只会英语的开发人员带来一些障碍。如果不懂德语,只好求助Google Translator了。大家如果使用我github上的这段代码创建S/4HANA的生产订单时,一定会发现,我在代码里并没有硬编码来指定生产订单的ID,然而运行时会发现我在系统里配置的这个2800被自动使用了,这是怎么做到的呢?https://github.com/...
原因如下,这种中英文混杂的注释,代码里的函数命名和变量命名,给只会英语的开发人员带来一些障碍。
如果不懂德语,只好求助Google Translator了。
大家如果使用我github上的这段代码创建S/4HANA的生产订单时,一定会发现,我在代码里并没有硬编码来指定生产订单的ID,然而运行时会发现我在系统里配置的这个2800被自动使用了,这是怎么做到的呢?
通过阅读SAP S/4HANA有关生产订单的标准代码发现,生产订单使用的plant工厂数据来自表VBAP的字段WERKS。
FV45EFMA_
VBAP正是销售订单的行项目表。
问题就转化为这个2800和销售订单行项目的关系。
这个2800来自结构体KUWEV的字段DWERK Delivering Plant:Ship-to Party’s View of the Customer Master Record
FV45PF0K_KOMKG_KOMPG_FUELLEN,第45行。
第32行重要的函数 RV_CUSTOMER_MATERIAL_READ
DA_KUNNR:这个字段存放的是我代码里硬编码的这个客户ID:
VBAK-VKORG:VBAK-VKORG
VTWEG: distribution channel
SPART: division
然后通过函数LOCATION_ISS_PLANT_DETERMINE决定出plant:
从这里能看出这个plant来自客户主数据的ship to 视图:
kuwev KUWEV-DWERK
kuwev的值从哪里来?
从KNVV的字段VWERK里来:
knvv是客户主数据的Sales data存储表:
如何查看S/4HANA里的客户主数据的Sales相关数据?
事务码BP:
根据客户ID搜索之后,在明细页面里将Display in BP role的下拉菜单宣称FLCU01 Customer:
点这个Sales and distribution按钮:
2800就维护在这里的:
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)