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

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

通过阅读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的原创文章,请关注公众号"汪子熙":

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

  1. SAP S/4HANA销售订单创建时,会自动触发生产订单的创建

    这个自动触发的过程是怎么实现的? 使用下面的代码创建一个销售订单: DATA: ls_header TYPE bapisdhd1, ls_headerx TYPE bapisdhd1x, lt_bap ...

  2. S/4HANA生产订单的标准状态和透明工厂原型状态的映射

    事务码CO03查看生产订单的状态: 从下面的界面能看出S/4HANA里生产订单在任意时刻可能存在多个状态: 生产订单的ID和状态ID的关系是1:N,维护在数据库表VSAUFK里: 如何把上述SAP系统 ...

  3. SAP S/4HANA生产订单的BAdI增强点之Initialize方法

    在S/4HANA里创建生产订单时,有一个增强点WORKORDER_UPDATE: 这个CAUFVDB里存放的是生产订单抬头级别的数据: 我们来观察下运行时这个结构里存放的数据. 请大家用我github ...

  4. PP生产订单创建、下达、报工、收货、投料

    转自http://blog.sina.com.cn/s/blog_69fb8eb60102vpjd.html SAP 物料订单创建.下达.报工.收货与投料(ABAP代码) (2015-06-03 22 ...

  5. 为什么S/4HANA的生产订单创建后会自动release

    在S/4HANA系统里我们观察到通过函数CO_61_ORDER_EDIT创建的生产订单会自动释放Release: 通过第86行的IF语句的条件检测不难找到原因. 变量PROFILE_TMP的类型为TC ...

  6. S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析

    题目这个增强的输入参数很恐怖,长长的一串: CALL BADI l_badi->BEFORE_UPDATE EXPORTING IT_PIINSTRUCTIONVALUE = IT_PIINST ...

  7. 用ABAP代码读取S/4HANA生产订单工序明细

    在S/4HANA事务码CO03显示的Production Order里,我希望用ABAP代码显示出该订单的operation(工序)ID,描述和状态Status,如下图所示: 很简单的几行ABAP代码 ...

  8. SAP S/4HANA里如何创建Customer主数据以及执行后续处理

    来自Jerry的同事Zhang Sean. 1, Launch tcode: BP and select the Organization 2, Maintain the information fo ...

  9. 为什么S/4HANA的销售订单创建会触发生产订单的创建

    调用S/4HANA销售订单创建函数SD_SALES_DOCU_MAINTAIN创建一个销售订单时,会触发生产订单的创建. 销售订单的每个行项目对应一个独立的生产订单,SD_SALES_DOCU_MAI ...

随机推荐

  1. ruby中的\z与\Z区别

    s = "this is\nthe name\n" puts "--------------" puts s.match(/name\Z/) puts s.ma ...

  2. MySql的运算符

    数据库中的表结构确立后,表中的数据代表的意义就已经确定.而通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据.例如,学生表中存在一个birth字段,这个字段表示学生的出生年份.而运用My ...

  3. springboot入门记

    在idea中直接新建: 选择web: 在idea中启动“项目名称”Application中的main即可: 或者在项目目录下运行:mvn spring-boot:run: 或者: mvn instal ...

  4. Java入门系列-13-String 和 StringBuffer

    这篇文章带你学会字符串的日常操作 String类 字符串在日常生活中无处不在,所以掌握字符串的使用至关重要. 使用 String 对象存储字符串,String 类位于 java.lang 包中,jav ...

  5. springboot定时任务,去掉指定日期

    今天用springboot写到一个需求:每周定时发送任务,但是要避开法定节假日. 网上找了些博客看,主要参考了https://www.cnblogs.com/lic309/p/4089633.html ...

  6. [转].NET Core dotnet 命令大全

    本文转自:http://www.cnblogs.com/linezero/p/dotnet.html https://docs.microsoft.com/en-us/dotnet/articles/ ...

  7. Java如何实现form表单提交的数据自动对应实体类(源码)

    原文出自:https://blog.csdn.net/seesun2012 原生Java+JQuery form表单serializeArray提交自动对应java实体,这是一个实际的例子: html ...

  8. MySQL 里的 Timestrap 和 DateTime 和 Java 中的 Date

    世界标准时(UTC) 和 格林威治标准时(GMT) 怎么样的时间算是准确的呢?例如这一分种内是60s ,而下一分钟实际走到了59秒的时候却显示一分钟到了,即是时间快了,这样定义为不准确.下面两个解释可 ...

  9. 八、cent OS下tomcat启用APR并发模式

    Tomcat支持三种接收请求的处理方式: BIO.NIO.APR ,本文记录tomcat配置APR模式,也是首选的模式.(Tomcat7 或以下,在 Linux 系统中默认使用BIO方式) 安装依赖库 ...

  10. sun.misc.unsafe

    Java中大部分错误都是基于内存管理方面的.如果想破坏,可以使用Unsafe这个类. 实例化Unsafe: 下面两种方式是不行的 private Unsafe() {} //私有构造方法 @Calle ...