SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的

大家如果使用我github上的这段代码创建S/4HANA的生产订单时,一定会发现,我在代码里并没有硬编码来指定生产订单的ID,然而运行时会发现我在系统里配置的这个2800被自动使用了,这是怎么做到的呢?

https://github.com/i042416/KnowlegeRepository/blob/master/ABAP/SmallApp/209_create_S4_SalesOrder.abap

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第1张图片

通过阅读SAP S/4HANA有关生产订单的标准代码发现,生产订单使用的plant工厂数据来自表VBAP的字段WERKS。

FV45EFMA_

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第2张图片

VBAP正是销售订单的行项目表。

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第3张图片
SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第4张图片

问题就转化为这个2800和销售订单行项目的关系。

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第5张图片

这个2800来自结构体KUWEV的字段DWERK Delivering Plant:Ship-to Party's View of the Customer Master Record

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第6张图片

FV45PF0K_KOMKG_KOMPG_FUELLEN,第45行。

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第7张图片

第32行重要的函数 RV_CUSTOMER_MATERIAL_READ

DA_KUNNR:这个字段存放的是我代码里硬编码的这个客户ID:

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第8张图片

VBAK-VKORG:VBAK-VKORG

VTWEG: distribution channel

SPART: division

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第9张图片

然后通过函数LOCATION_ISS_PLANT_DETERMINE决定出plant:

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第10张图片

从这里能看出这个plant来自客户主数据的ship to 视图:

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第11张图片

kuwev KUWEV-DWERK

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第12张图片

kuwev的值从哪里来?

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第13张图片

从KNVV的字段VWERK里来:

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第14张图片

knvv是客户主数据的Sales data存储表:

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第15张图片

如何查看S/4HANA里的客户主数据的Sales相关数据?

事务码BP:

根据客户ID搜索之后,在明细页面里将Display in BP role的下拉菜单宣称FLCU01 Customer:

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第16张图片

点这个Sales and distribution按钮:

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第17张图片

2800就维护在这里的:

SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的_第18张图片

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

你可能感兴趣的:(SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的)