Skip to Content
avatar image
Former Member

Problem in changing Production order components.

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 that 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.

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

2 Answers

  • Best Answer
    Mar 21, 2014 at 04:36 AM

    Abhishek,

    You need to pass 'X' to parameter I_MATERIALX.

    Regards.

    Add comment
    10|10000 characters needed characters exceeded

    • Instead of

      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


      Code like this:

      if ES_BAPIRETURN-message is initial.

      CALL FUNCTION 'CO_XT_ORDER_PREPARE_COMMIT'.

      COMMIT WORK AND WAIT.

      endif.


  • Mar 21, 2014 at 04:30 AM

    Hi Abhishek

    First of all these are not released FM you are using.... Did you check for any BAPI before using these FM..? Did you try calling commit work after the FM call...?

    Nabheet

    Add comment
    10|10000 characters needed characters exceeded