共计 782 个字符,预计需要花费 2 分钟才能阅读完成。
大家如果使用我 github 上的这段代码创建 S /4HANA 的生产订单时,一定会发现,我在代码里并没有硬编码来指定生产订单的 ID,然而运行时会发现我在系统里配置的这个 2800 被自动使用了,这是怎么做到的呢?
https://github.com/i042416/Kn…
通过阅读 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 就维护在这里的:
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”: