"Order header
ls_header-orderid = '%00000000001'.
ls_header-order_type = order-auart.
ls_header-maintplant = qmel-arbplwerk. "维护工厂
ls_header-loc_wk_ctr = qmel-arbpl. "工作中心
ls_header-start_date = sy-datum.
ls_header-finish_date = sy-datum.
ls_header-notif_no = lv_qmnum. "通知编号
APPEND ls_header TO lt_header.
"Operation data
ls_oper-activity = '0010'.
ls_oper-control_key = 'PM01'.
ls_oper-work_cntr = qmel-arbpl.
SELECT SINGLE arbpl INTO ls_oper-work_cntr FROM crhd WHERE objty = 'A' AND objid = qmel-arbpl.
ls_oper-plant = qmel-arbplwerk.
ls_oper-description = qmel-qmtxt.
APPEND ls_oper TO lt_oper.
CLEAR ls_oper.
LOOP AT order WHERE matnr IS NOT INITIAL.
alphain 'MATN1' order-matnr.
ADD 1 TO lv_rspos.
alphain 'ALPHA' lv_rspos.
ls_comp-res_item = lv_rspos.
ls_comp-material = order-matnr.
ls_comp-plant = order-werks.
ls_comp-stge_loc = order-lgort.
ls_comp-batch = order-charg.
ls_comp-item_cat = 'L'.
ls_comp-activity = '0010'.
ls_comp-requirement_quantity = order-bdmng.
APPEND ls_comp TO lt_comp.
CLEAR ls_comp.
ls_method-refnumber = lv_rspos. "索引号 --区分多个组件
ls_method-objecttype = 'COMPONENT'. "组件
ls_method-method = 'CREATE'.
ls_method-objectkey = '%00000000001'.
ls_method-objectkey+12(4) = lv_rspos.
APPEND ls_method TO lt_method.
CLEAR ls_method.
ENDLOOP.
"Methods
ls_method-refnumber = '1'.
ls_method-objecttype = 'HEADER'.
ls_method-method = 'CREATETONOTIF'. "参考 通知单创建订单
ls_method-objectkey = '%00000000001'.
ls_method-objectkey+12 = lv_qmnum. "通知单号
APPEND ls_method TO lt_method.
CLEAR ls_method.
ls_method-refnumber = '1'.
ls_method-objecttype = 'OPERATION'.
ls_method-method = 'CREATE'.
ls_method-objectkey = '%0000000000100100000'."订单号(12)工序(4)及子工序(4)
APPEND ls_method TO lt_method.
CLEAR ls_method.
ls_method-refnumber = '1'.
ls_method-objecttype = ''.
ls_method-method = 'SAVE'.
ls_method-objectkey = '%00000000001'.
APPEND ls_method TO lt_method.
CLEAR ls_method.
CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'
TABLES
it_methods = lt_method
it_header = lt_header
it_operation = lt_oper
it_component = lt_comp
return = lt_return
et_numbers = lt_num.
FU BAPI_ALM_ORDER_MAINTAIN IT_METHODS
____________________________________________________
短文本
BAPI structure: Processing methods
Description
The methods table specifies which methods the BAPI executes. For this the following data is always required:
- REFNUMBER A reference number for a data table line,
- OBJECTTYPE An object type, which specifies which data table(s) is referenced
- METHOD A method which specifies what should be done to the object
- OBJECTKEY A key as a reference to the corresponding higher-level object
Value range
The following values are allowed:
OBJECTTYPE
- HEADER Order header
- PARTNER Partner data
- OPERATION Operation data
- RELATION Relationships
- COMPONENT Components
- TEXT Long texts
- PRT Production resources/tools
- (empty) General BAPI functions (Save)
METHOD
- CREATE Create objects
- CREATETONOTIF Create with reference to a notification
- CHANGE Change objects
- DELETE Delete objects
- RELEASE Release
- ATPCHECK Availability check
- CALCULATE Calculate
- SCHEDULE Schedule
- SAVE Save all data
OBJECTKEY
- 0-12 Order number
- 13-16 Operation number
- 17-20 Suboperation number
- 13-24 Notification number (only for method CREATETONOTIF)
The following methods are possible for the individual methods:
- HEADER
- CREATE, CHANGE, RELEASE, TECHNICALCOMPLETE, ATPCHECK, CALCUALTE, SCHEDULE, CREATETONOTIF
- OPERATION
- CREATE, CHANGE, DELETE, DELETEDSEX
- PARTNER, RELATION, COMPONENT, USERSTATUS, TEXT, SRULE, OBJECTLIST, PRT
- CREATE, CHANGE, DELETE
- OLISTRELATION
- CREATE, DELETE
- TASKLIST
- ADD
- (empty)
- SAVE, DIALOG, TRACE
功能模块