BAPI_ALM_ORDER_MAINTAIN创建订单并创建通知

2020-09-15 23:46发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好 我想使用BAPI_...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好

我想使用BAPI_ALM_ORDER_MAINTAIN来同时创建订单和通知。 创建的订单应参考通知。 最后,订单应如下所示:

我尝试如下:

报告zam_notf_order_validation。
 bapiret2的数据lt_return类型标准表。
 数据lv_equipment TYPEequequr值'222100092'。
 数据ls_equi_headerTYPE alm_me_tob_header。
 bapi_alm_order_method的数据lt_methods类型标准表。
 数据ls_methods喜欢lt_method的行。
 bapi_alm_order_headers_i的数据lt_header类型标准表。
 数据ls_header类似于lt_header的行。
 bapi_alm_order_headers_up的数据lt_header_upTYPE标准表。
 数据ls_header_up与lt_header_up类似。
 数据lt_numbers bapi_alm_numbers的类型标准表。
 数据lt_alm_order_headers_up bapi_alm_order_headers_up的类型标准表。
 数据ls_alm_order_headers_up与lt_alm_order_headers_up类似。
 bapi_alm_order_operation的数据lt_operation类型标准表。
 数据ls_operation与lt_operation类似。
 选择开始。
   ls_methods-refnumber ='000001'。
   ls_methods-objecttype ='HEADER'。
   ls_methods-method ='CREATETONOTIF'。
   ls_methods-objectkey ='%00000000001'。
   插入ls_methods到表lt_method中。
   ls_methods-refnumber ='000001'。
   ls_methods-objecttype ='OPERATION'。
   ls_methods-method ='创建'。
   ls_methods-objectkey ='%00000000001'。
   插入ls_methods到表lt_method中。
   清除ls_methods。
   ls_methods-refnumber ='000001'。
   ls_methods-objectkey ='%00000000001'。
   ls_methods-method ='保存'。
   插入ls_methods到表lt_method中。
   ls_header-orderid ='%00000000001'。
   ls_header-notif_type ='M2'。
   ls_header-order_type ='YBA1'。
   ls_header-planplant ='2210'。
   ls_header-mn_wk_ctr ='RES-0100'。
   ls_header-equipment ='000000000222100092'。
   ls_header-start_date = sy数据。
   将ls_header插入表lt_header中。
   ls_header_up-orderid ='%00000000001'。
   ls_header_up-notif_no ='X'。
 * ls_header_up-notif_type ='X'。
   插入ls_header_up插入表lt_header_up中。
   ls_operation-activity ='0010'。
   ls_operation-control_key ='YBM1'。
   ls_operation-plant ='2210'。
   ls_operation-work_cntr ='RES-0100'。
   插入ls_operation到表lt_operation中。
   通话功能'BAPI_ALM_ORDER_MAINTAIN'
     桌子
       it_methods = lt_methods
       it_header = lt_header
       it_header_up = lt_header_up
       it_operation = lt_operation
       返回= lt_return
       et_numbers = lt_numbers。
   IF line_exists(lt_return [type ='E'])。
     返回。
   万一。
   调用功能" BAPI_TRANSACTION_COMMIT"。
   BREAK-要点。

程序创建订单,但不创建通知:

我在做什么错?

谢谢

(46.1 kB)
1条回答
渐行渐远_HoldOn
2020-09-16 00:28 .采纳回答

Hallo Marty,

请按照以下步骤操作

1。 使用此BAPI" BAPI_ALM_NOTIF_CREATE"创建通知

2。 然后使用BAPI" BAPI_ALM_ORDER_MAINTAIN"创建订单。

示例代码

数据:notif_header类似于bapi2080_nothdri,
       notif_type TYPE bapi2080-notif_type,
       notif_header_export TYPE bapi2080_nothdre,
       it_return bapiret2的类型表。


 notif_header-desstdate = sy-datum。
 notif_header-short_text ='向订单添加通知'。
 notif_header-reportedby = sy-uname。
 notif_type ='M2'。

 通话功能'BAPI_ALM_NOTIF_CREATE'
   出口
     notif_type = notif_type
     notifheader = notif_header
   输入
     notifheader_export = notif_header_export。

 通话功能'BAPI_ALM_NOTIF_SAVE'
   出口
     数字= notif_header_export-notif_no
   输入
     notifheader = notif_header_export
   桌子
     return = it_return。

 调用功能" BAPI_TRANSACTION_COMMIT"。

 * ------创建Oder ------- *

 ls_methods-refnumber ='000001'。
 ls_methods-objecttype ='HEADER'。
 ls_methods-method ='CREATETONOTIF'。
 CONCATENATE'%00000000001'notif_header_export-notif_no INTO ls_methods-objectkey。
 插入ls_methods到表lt_method中。
  
 ls_methods-refnumber ='000001'。
 CONCATENATE'%00000000001'notif_header_export-notif_no INTO ls_methods-objectkey。
 ls_methods-method ='保存'。
 插入ls_methods到表lt_method中。

 ls_header-orderid ='%00000000001'。
 ls_header-notif_type ='M2'。
 ls_header-order_type ='XYZ'。
 ls_header-planplant ='XYZ'。
 ls_header-mn_wk_ctr ='XYZ'。
 ls_header-equipment ='XYZ'。
 ls_header-start_date = sy数据。
 将ls_header插入表lt_header中。

 ls_header_up-orderid ='%00000000001'。
 ls_header_up-notif_no ='X'。
 插入ls_header_up插入表lt_header_up中。

 通话功能'BAPI_ALM_ORDER_MAINTAIN'
     桌子
       it_methods = lt_methods
       it_header = lt_header
       it_header_up = lt_header_up
       it_operation = lt_operation
       返回= lt_return
       et_numbers = lt_numbers。
 IF line_exists(lt_return [type ='E'])。
     返回。
 万一。

 调用功能" BAPI_TRANSACTION_COMMIT"。


 

一周热门 更多>