创建生产订单函数BAPI_PRODORD_CREATE

创建生产订单,创建订单长文本,订单下达

   LOOP AT gt_zstybcp INTO gw_zstybcp WHERE sel = ‘X‘ AND aufnr = ‘‘."ADD BY 20150716 LY FOR 批量创建
     CLEAR:gs_return,gw_return,gt_order_return[],gt_bapi_order_key[],gs_bapi_order_key.
     gs_bapi_pp_order_create-material = gw_zstybcp-matnr."订单物料号
     gs_bapi_pp_order_create-plant = gw_zstybcp-werks."订单工厂
     gs_bapi_pp_order_create-planning_plant = gw_zstybcp-werks."计划工厂
     gs_bapi_pp_order_create-basic_start_date = gw_zstybcp-gstrp."基础开始日期
     gs_bapi_pp_order_create-basic_end_date = gw_zstybcp-gstrp."基准解释日期
     gs_bapi_pp_order_create-quantity = gw_zstybcp-bdmng."订单数量
     CALL FUNCTION ‘CONVERSION_EXIT_CUNIT_INPUT‘ "单位
       EXPORTING
         input          = gw_zstybcp-meins
*        LANGUAGE       = SY-LANGU
       IMPORTING
         output         = gs_bapi_pp_order_create-quantity_uom
       EXCEPTIONS
         unit_not_found = 1
         OTHERS         = 2.
     IF sy-subrc <> 0.
     ENDIF.

*   GS_BAPI_PP_ORDER_CREATE-QUANTITY_UOM = GW_ZSTYBCP-MEINS."单位
     gs_bapi_pp_order_create-goods_recipient = gw_zstybcp-wempf."收货方
*   GS_BAPI_PP_ORDER_CREATE-GOODS_RECIPIENT = GW_ZSTYBCP-MEINS.
     gs_bapi_pp_order_create-order_type = ‘DL02‘.
     "调用订单创建函数创建调油半成品生产订单
     CALL FUNCTION ‘BAPI_PRODORD_CREATE‘
       EXPORTING
         orderdata    = gs_bapi_pp_order_create
       IMPORTING
         return       = gs_return
         order_number = gv_order_number.

     IF gs_return-type IS NOT INITIAL."消息填表
       gw_return-msgid = gs_return-id.
       gw_return-msgty = gs_return-type.
       gw_return-msgno = gs_return-number.
       gw_return-msgv1 = gs_return-message_v1.
       gw_return-msgv2 = gs_return-message_v2.
       gw_return-msgv3 = gs_return-message_v3.
       gw_return-msgv4 = gs_return-message_v4.
       APPEND gw_return TO gt_return.
     ENDIF.
*    APPEND GS_RETURN TO GT_RETURN."消息填表

     IF gs_return-type = ‘E‘ OR gs_return = ‘A‘.
       CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK‘.
       gw_zstybcp-icon = ‘@[email protected]‘.
       gw_zstybcp-message = gs_return-message.
     ELSE.
       CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT‘
         EXPORTING
           wait = ‘X‘.
       gw_zstybcp-icon = ‘@[email protected]‘.
       gw_zstybcp-message = ‘成功创建调油半成品生产订单‘.
       gw_zstybcp-aufnr = gv_order_number.
       gw_zstybcp-psmng = gw_zstybcp-bdmng.
       gw_zstybcp-amein = gw_zstybcp-meins.

       CONCATENATE sy-mandt gv_order_number INTO g_fname.
       gw_tline-tdformat = 1.
       gw_tline-tdline = gw_zstybcp-ztiay.
       APPEND gw_tline TO gt_tline.

       CALL FUNCTION ‘CREATE_TEXT‘
         EXPORTING
           fid       = ‘KOPF‘
           flanguage = sy-langu
           fname     = g_fname
           fobject   = ‘AUFK‘
         TABLES
           flines    = gt_tline
         EXCEPTIONS
           no_init   = 1
           no_save   = 2
           OTHERS    = 3.
       IF sy-subrc <> 0.
       ENDIF.
       IF sy-subrc = 0.
         CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT‘
           EXPORTING
             wait = ‘X‘.
       ELSE.
         CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK‘.

       ENDIF.

       WAIT UP TO 1 SECONDS.
       UPDATE aufk SET ltext = ‘1‘ WHERE aufnr = gv_order_number.
       COMMIT WORK.

       gs_bapi_order_key-order_number = gv_order_number.
       APPEND gs_bapi_order_key TO gt_bapi_order_key.

       "ADD BY LY 20150610订单下达
       CALL FUNCTION ‘BAPI_PRODORD_RELEASE‘
*         EXPORTING
*           RELEASE_CONTROL          = ‘1‘
*           WORK_PROCESS_GROUP       = ‘COWORK_BAPI‘
*           WORK_PROCESS_MAX         = 99
*         IMPORTING
*           RETURN                   =
         TABLES
           orders        = gt_bapi_order_key
           detail_return = gt_order_return.
       READ TABLE gt_order_return WITH KEY type = ‘E‘.
       IF sy-subrc <> 0.
         CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT‘
           EXPORTING
             wait = ‘X‘.
       ELSE.
         CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK‘.

         CONCATENATE ‘订单‘ gv_order_number ‘下达失败,请手动下达!‘ INTO gw_return-msgv1.
         MESSAGE gw_return-msgv1  TYPE ‘S‘ DISPLAY LIKE ‘E‘.
       ENDIF.

     ENDIF.
     MODIFY gt_zstybcp FROM gw_zstybcp.
   ENDLOOP.
时间: 2024-11-10 07:39:38

创建生产订单函数BAPI_PRODORD_CREATE的相关文章

物料BOM和生产订单BOM的区别

物料BOM和生产订单BOM的区别[@[email protected]] 一般企业生产部在SAP创建生产订单的时候,就会产生一个生产订单BOM,这里的生产订单BOM是读取的物料BOM. 由于其它原因,需要修改成品的某几个零部件,在创建订单的时候,就可以修改订单BOM,物料BOM不会受任何的影响. 其实在生产订单的BOM读取完物料BOM之后就与物料BOM没有任何的关系了,下达订单之后,物料BOM订单BOM已经没有任何联系了,所以生产过程当中的物料消耗都与订单BOM有关系了.

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

在S/4HANA系统里我们观察到通过函数CO_61_ORDER_EDIT创建的生产订单会自动释放Release: 通过第86行的IF语句的条件检测不难找到原因. 变量PROFILE_TMP的类型为TCO43: 这个scheduling profile的配置在路径Production->Shop Floor Control->Master Data->Define Production Scheduling Profile里: 如下图所示:Automatic Actions标签页里的On

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

调用S/4HANA销售订单创建函数SD_SALES_DOCU_MAINTAIN创建一个销售订单时,会触发生产订单的创建. 销售订单的每个行项目对应一个独立的生产订单,SD_SALES_DOCU_MAINTAIN相当于CRM里的CRM_ORDER_MAINTAIN,在LOOP里处理每一个行项目: 观察这个函数内部的调用栈,发现一个subroutine EIGENFERTIGUNG_BEARBEITEN.: EIGENFERTIGUNG的意思是Own production: BEARBEITEN的意

SAP中Product Orders(生产订单)相关函数BAPI

项目中,生产订单的状态是了解生产过程的主要依据,也是自开发报表中常用到的,下面是生产订单状态的几个函数以及生产订单技术关闭.生产订单报工的几个函数,希望对用到的兄弟有所帮助. [相关表] JEST-对象的系统状态(I****)和用户状态(E****) JSTO-状态对象信息 TJ02T-系统状态文本 -用户状态文本 [锁对象]:生产订单锁对象  ESORDER 函数:  ENQUEUE_ESORDER,  DEQUEUE_ESORDER [函数1]:检查多个对象的状态并过滤 CALL FUNCT

MySQL创建字段+数据处理函数+汇总数据(聚集函数)+分组数据

[0]README 0.1)本文部分文字描述转自"MySQL 必知必会",旨在review"MySQL创建字段+数据处理函数+汇总数据(聚集函数)+分组数据" 的基础知识: [1]创建计算字段 1)problem+solution 1.1)problem:存储在表中的数据都不是应用程序所需要的.我们需要直接从数据库中检索出转换,计算或格式化过的数据: 1.2)solution:这就是计算字段发挥作用所在了, 计算字段是运行时在 select语句内创建的: 2)字段定

SAP收货时自动创建采购订单(或106 ,自动建立退货采购订单)

在实际业务中,常常出现到货物料没有订单或订单未批准的现象,按照SAP的标准流程,应该拒绝收货.但在实际业务中,这些物料可能是紧急采购的急件,如不及时处理,将会影响生产计划的安排.对于这种特殊情况,其实SAP有很灵活的处理方式,即由收货自动创建订单.需要说明的是,这种操作方式并不是SAP推荐的,不应在实际业务中大量采用. 具体流程如下: 1.移动类型101已在后台设置为自动创建定单.具体方法是:进入IMG后台,物料管理->库存管理和实际库存->收货->自动创建采购订单,双击进入后,将101

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

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

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

事务码CO03查看生产订单的状态: 从下面的界面能看出S/4HANA里生产订单在任意时刻可能存在多个状态: 生产订单的ID和状态ID的关系是1:N,维护在数据库表VSAUFK里: 如何把上述SAP系统标准状态映射到透明工厂原型的5个状态去呢? 目前的映射实现采取的是"关键状态法": 只要生产订单的状态里包含I0048 - distributed to MES, 就认为该订单处于组装状态 只要生产订单的状态里包含I0012 - distributed to MES, 就认为该订单处于已交

100小时练习配置---创建采购订单后做MIGO时报错

新建了物料,也用该物料创建的PO,但在用PO做MIGO收货的时候报下面的错误: 通过去找该工厂下的科目确定配置发现也不是配置问题.后面看物料主数据的时候才发现是物料会计1页签的评估类没有进行维护,如图: 然后就想通过MM02直接更改,但会报个错误,如下: 这是因为该物料已经做了相应的采购单,如果没有库存或者没有建其他单据的时候可以直接更改,但建了采购单之后要把对应的采购单删除之后才能更改, 下面是各种情况更改对应物料的评估类的解决办法: 若已存在已估价库存,则仅可以如下更改评估分类: a) 将物