Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Change Order operations using BAPI_ALM_ORDER_MAINTAIN

Former Member
0 Likes
4,832

Hello all,

I am using This Bapi to change operations with in production order.

BAPI_ALM_ORDER_MAINTAIN

After executing bapi i am getting the error.

E   |IWO_BAPI2           |119   |BAPI call must have a SAVE or DIALOG meth

i found many discussions where people are getting the same error.but an still stuck with this .

Please have a look at the source code and guide me where i am mistaken.

DATA:  gt_meth type standard table of BAPI_ALM_ORDER_METHOD,

       gs_meth type BAPI_ALM_ORDER_METHOD.

DATA  :gt_operations_i type standard table of BAPI_ALM_ORDER_OPERATION

       with header line,

       gs_operations_i type BAPI_ALM_ORDER_OPERATION.

DATA  p_orderid type aufnr value '2098003'.

DATA  gt_heade


r_i type STANDARD TABLE OF BAPI_ALM_ORDER_HEADERS_I

       with header line.

DATA  gt_ret type standard table of BAPIRET2.

DATA  gt_numbers type  table of BAPI_ALM_NUMBERS.

DATA  IT_OPERATION_UP TYPE TABLE OF BAPI_ALM_ORDER_OPERATION_UP WITH

HEADER LINE.

start-of-selection.

gs_meth-refnumber  = '000001'.

   gs_meth-objecttype = 'OPERATION'.

   gs_meth-method     = 'CHANGE'.

*    gs_meth-method     = 'SAVE'.

     CONCATENATE p_orderid '0010' INTO gs_meth-objectkey.

*  gs_meth-objectkey  = c_init_ordid .

   append gs_meth to gt_meth.

      CLEAR gs_meth.

gt_operations_i-ACTIVITY = '0010'.

gt_operations_i-WORK_CNTR = 'P4'.

gt_operations_i-plant = '1000'.

append gt_operations_i.

clear gt_operations_i.

gt_header_i-ORDERID = P_ORDERID.

gt_header_i-ORDER_TYPE = 'YBM3'.

append gt_header_i.

clear gt_header_i.

IT_OPERATION_UP-ACTIVITY  = 'X'.

append IT_OPERATION_UP.

clear IT_OPERATION_UP.

   call function 'BAPI_ALM_ORDER_MAINTAIN'

     destination 'NONE'                       " --> Zie note 770626 !

     tables

       it_methods             = gt_meth

       it_header              = gt_header_i

*       IT_HEADER_UP           =

*       IT_HEADER_SRV          =

*       IT_HEADER_SRV_UP       =

*       IT_USERSTATUS          =

*      it_partner             = gt_partner_i

*       IT_PARTNER_UP          =

       it_operation           = gt_operations_i

        IT_OPERATION_UP        = IT_OPERATION_UP[]

*       IT_RELATION            =

*       IT_RELATION_UP         =

*      it_component           = gt_components_i

**       IT_COMPONENT_UP        =

*      it_objectlist           = gt_objectlist_i

*      it_olist_relation       = gt_relation_i

*      it_text                = gt_texts

*      it_text_lines          = gt_text_lines

*      extension_in           = gt_ext

       return                 = gt_ret

       et_numbers             = gt_numbers.

   call function 'BAPI_TRANSACTION_COMMIT'

     destination 'NONE'

     exporting

       wait          = 'X'

*         IMPORTING

*           RETURN        =

             .

*   Zie note 770626 ...

   call function 'RFC_CONNECTION_CLOSE'

     exporting

       destination                = 'NONE'

*       TASKNAME                   =

     exceptions

       destination_not_open       = 1

       others                     = 2

             .

Hello all,

I am using This Bapi to change operations with in production order.

BAPI_ALM_ORDER_MAINTAIN

After executing bapi i am getting the error.

E   |IWO_BAPI2           |119   |BAPI call must have a SAVE or DIALOG meth

i found many discussions where people are getting the same error.but an still stuck with this .

Please have a look at the source code and guide me where i am mistaken.

DATA:  gt_meth type standard table of BAPI_ALM_ORDER_METHOD,

       gs_meth type BAPI_ALM_ORDER_METHOD.

DATA  :gt_operations_i type standard table of BAPI_ALM_ORDER_OPERATION

       with header line,

       gs_operations_i type BAPI_ALM_ORDER_OPERATION.

DATA  p_orderid type aufnr value '2098003'.

DATA  gt_heade


r_i type STANDARD TABLE OF BAPI_ALM_ORDER_HEADERS_I

       with header line.

DATA  gt_ret type standard table of BAPIRET2.

DATA  gt_numbers type  table of BAPI_ALM_NUMBERS.

DATA  IT_OPERATION_UP TYPE TABLE OF BAPI_ALM_ORDER_OPERATION_UP WITH

HEADER LINE.

start-of-selection.

gs_meth-refnumber  = '000001'.

   gs_meth-objecttype = 'OPERATION'.

   gs_meth-method     = 'CHANGE'.

*    gs_meth-method     = 'SAVE'.

     CONCATENATE p_orderid '0010' INTO gs_meth-objectkey.

*  gs_meth-objectkey  = c_init_ordid .

   append gs_meth to gt_meth.

      CLEAR gs_meth.

gt_operations_i-ACTIVITY = '0010'.

gt_operations_i-WORK_CNTR = 'P4'.

gt_operations_i-plant = '1000'.

append gt_operations_i.

clear gt_operations_i.

gt_header_i-ORDERID = P_ORDERID.

gt_header_i-ORDER_TYPE = 'YBM3'.

append gt_header_i.

clear gt_header_i.

IT_OPERATION_UP-ACTIVITY  = 'X'.

append IT_OPERATION_UP.

clear IT_OPERATION_UP.

   call function 'BAPI_ALM_ORDER_MAINTAIN'

     destination 'NONE'                       " --> Zie note 770626 !

     tables

       it_methods             = gt_meth

       it_header              = gt_header_i

*       IT_HEADER_UP           =

*       IT_HEADER_SRV          =

*       IT_HEADER_SRV_UP       =

*       IT_USERSTATUS          =

*      it_partner             = gt_partner_i

*       IT_PARTNER_UP          =

       it_operation           = gt_operations_i

        IT_OPERATION_UP        = IT_OPERATION_UP[]

*       IT_RELATION            =

*       IT_RELATION_UP         =

*      it_component           = gt_components_i

**       IT_COMPONENT_UP        =

*      it_objectlist           = gt_objectlist_i

*      it_olist_relation       = gt_relation_i

*      it_text                = gt_texts

*      it_text_lines          = gt_text_lines

*      extension_in           = gt_ext

       return                 = gt_ret

       et_numbers             = gt_numbers.

   call function 'BAPI_TRANSACTION_COMMIT'

     destination 'NONE'

     exporting

       wait          = 'X'

*         IMPORTING

*           RETURN        =

             .

*   Zie note 770626 ...

   call function 'RFC_CONNECTION_CLOSE'

     exporting

       destination                = 'NONE'

*       TASKNAME                   =

     exceptions

       destination_not_open       = 1

       others                     = 2

             .

2 REPLIES 2
Read only

Arun_Prabhu_K
Active Contributor
0 Likes
1,916

Hi Abhishek.

     BAPI_ALM_ORDER_MAINTAIN cannot be used for production orders. Try using the FM CO_SE_PRODORD_CHANGE.    

Regards.

Read only

0 Likes
1,916

yes. you were right.

Now the problem is happening while changing components in Production order.

Take a look at the source code.


data :      IS_ORDER_KEY  TYPE  COXT_ORD_KEY,

IS_ORDER_COMPONENT_KEY  TYPE  COXT_S_ORD_COMP_KEY,

IS_REQUIREMENT_QUANTITY TYPE  COXT_S_QUANTITY,

IS_REQUIREMENT_QUANTITYX  TYPE  COXT_S_QUANTITYX,

IS_CONFIRMED_QUANTITY TYPE  COXT_S_QUANTITY,

IS_CONFIRMED_QUANTITYX  TYPE  COXT_S_QUANTITYX,

I_MATERIAL  TYPE  COXT_MATERIAL,

I_MATERIALX TYPE  COXT_MATERIALX,

IS_ORDER_OPERATION_KEY  TYPE  COXT_S_ORD_OPR_KEY,

IS_ORDER_OPERATION_KEYX TYPE  COXT_S_ORD_OPR_KEYX,

IS_REQUIREMENT_DATE TYPE  COXT_S_DATE,

IS_REQUIREMENT_DATEX  TYPE  COXT_S_DATEX,

IS_STORAGE_LOCATION TYPE  COXT_S_STORAGE_LOCATION,

IS_STORAGE_LOCATIONX  TYPE  COXT_S_STORAGE_LOCATIONX,

I_BATCH TYPE  COXT_BATCH,

I_BATCHX  TYPE  COXT_BATCHX,

I_MI_CONFIGURATION_OBJECT TYPE  COXT_CONFIG_OBJECT,

I_MI_CONFIGURATION_OBJECTX  TYPE  COXT_CONFIG_OBJECTX.

DATA  :wa_resb type resb,

       ES_BAPIRETURN TYPE  COXT_BAPIRETURN,

E_ERROR_OCCURRED  TYPE  C.

.

IS_ORDER_KEY = '000002098003'.

select single * from resb into wa_resb where aufnr eq IS_ORDER_KEY

   and bwart eq '531'.

move-corresponding wa_resb to IS_ORDER_COMPONENT_KEY.

IS_REQUIREMENT_QUANTITY-quantity = '10.23'.

IS_REQUIREMENT_QUANTITY-uom = 'KG'.

IS_REQUIREMENT_QUANTITYX-quantity = 'X'.

IS_REQUIREMENT_QUANTITYx-uom = 'X'.

*IS_STORAGE_LOCATION-lgort = '1060'.

*IS_STORAGE_LOCATIONX-lgort = 'X'.

I_MATERIAL = wa_resb-matnr.

IS_STORAGE_LOCATION-werks = wa_resb-werks.

IS_STORAGE_LOCATIONx-werks = 'X'.

IS_STORAGE_LOCATION-lgort = '1060'.

IS_STORAGE_LOCATIONX-lgort = 'X'.

CALL FUNCTION 'CO_XT_COMPONENT_CHANGE'

   EXPORTING

     IS_ORDER_KEY                     = IS_ORDER_KEY

     IS_ORDER_COMPONENT_KEY           = IS_ORDER_COMPONENT_KEY

     IS_REQUIREMENT_QUANTITY          = IS_REQUIREMENT_QUANTITY

     IS_REQUIREMENT_QUANTITYX         = IS_REQUIREMENT_QUANTITYX

     IS_CONFIRMED_QUANTITY            = IS_CONFIRMED_QUANTITY

     IS_CONFIRMED_QUANTITYX           = IS_CONFIRMED_QUANTITYX

     I_MATERIAL                       = I_MATERIAL

     I_MATERIALX                      = I_MATERIALX

*   IS_ORDER_OPERATION_KEY           = IS_ORDER_OPERATION_KEY

*   IS_ORDER_OPERATION_KEYX          = IS_ORDER_OPERATION_KEYX

*   IS_REQUIREMENT_DATE              = IS_REQUIREMENT_DATE

*   IS_REQUIREMENT_DATEX             = IS_REQUIREMENT_DATEX

     IS_STORAGE_LOCATION              = IS_STORAGE_LOCATION

     IS_STORAGE_LOCATIONX             = IS_STORAGE_LOCATIONX

     I_BATCH                          = I_BATCH

     I_BATCHX                         = I_BATCHX

     I_MI_CONFIGURATION_OBJECT        = I_MI_CONFIGURATION_OBJECT

     I_MI_CONFIGURATION_OBJECTX       = I_MI_CONFIGURATION_OBJECTX

*   I_BATCH_SEL_CUOBJ                = I_BATCH_SEL_CUOBJ

*   I_BATCH_SEL_CUOBJX               = I_BATCH_SEL_CUOBJX

*   I_XFEHL                          = I_XFEHL

*   I_XFEHLX                         = I_XFEHLX

*   I_SOBKZ                          = I_SOBKZ

*   I_SOBKZX                         = I_SOBKZX

*   I_KDAUF                          = I_KDAUF

*   I_KDAUFX                         = I_KDAUFX

*   I_KDPOS                          = I_KDPOS

*   I_KDPOSX                         = I_KDPOSX

*   I_PSPEL                          = I_PSPEL

*   I_PSPELX                         = I_PSPELX

*   I_KZAUS                          = I_KZAUS

*   I_KZAUSX                         = I_KZAUSX

*   I_NAFKZ                          = I_NAFKZ

*   I_NAFKZX                         = I_NAFKZX

*   I_NOMAT                          = I_NOMAT

*   I_NOMATX                         = I_NOMATX

*   I_NFUML                          = I_NFUML

*   I_NFUMLX                         = I_NFUMLX

*   I_NFPKZ                          = I_NFPKZ

*   I_NFPKZX                         = I_NFPKZX

*   I_NOMNG                          = I_NOMNG

*   I_NOMNGX                         = I_NOMNGX

  IMPORTING

    ES_BAPIRETURN                    = ES_BAPIRETURN "initial

    E_ERROR_OCCURRED                 = E_ERROR_OCCURRED"blank not showing 'X'.

           .

CALL FUNCTION 'CO_XT_ORDER_PREPARE_COMMIT'

  IMPORTING

    E_ORDER_KEY            = IS_ORDER_KEY

    ES_BAPIRETURN          = ES_BAPIRETURN

    E_ERROR_OCCURRED       = E_ERROR_OCCURRED

* TABLES

*   ET_ORD_KEY_MAP         = ET_ORD_KEY_MAP

*   ET_BAPIRETURN          = ET_BAPIRETURN

           .

write : 'dfdfdf'

Notable point is after executing CO_XT_COMPONENT_CHANGE' parameters ES_BAPIRETURN and E_ERROR_OCCURRED are initial.

This explains that the FM has been executed successfully.

But still the changes are not done in production order.

Please let me know where i am mistaken.