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

Enter Document Number error with BAPI_SALESORDER_CHANGE

Former Member
0 Likes
1,531

Hi All,

When we try to change the Sales Order using BAPI_SALESORDER_CHANGE, the return table is throwing an error called "Enter Document Number'.

We have validate all the entered parameters. I believe all values are correct.. Still facing this strange error...

Can anyone help me out...???

The code is used as folows.

*---Get Sales Order number, GL_ACCOUNT  and sequential number.
    SELECT SINGLE VBELN FROM VBAK
                INTO V_SO_VBELN
                WHERE BSTNK EQ V_PO_EBELN.

*---Get the Document type, Sales Org, Distribution chan and Division.
     SELECT SINGLE AUART VKORG VTWEG SPART
                   FROM VBAK
                  INTO (V_AUART,V_VKORG,V_VTWEG,V_SPART)
                   WHERE VBELN EQ V_SO_VBELN.
   K_HEADER_CH-COLLECT_NO = V_SO_VBELN.
      K_HEADER_CH-SALES_ORG  = V_VKORG.                           "To be decided
      K_HEADER_CH-DISTR_CHAN = V_VTWEG.                           "C_30
      K_HEADER_CH-DIVISION   = V_SPART.                           "To be decided


*---Fill Sales Order header box details.
      K_HEADER_CH_INX-COLLECT_NO     = C_X.
      K_HEADER_CH_INX-SALES_ORG      = C_X.
      K_HEADER_CH_INX-DISTR_CHAN     = C_X.
      K_HEADER_CH_INX-DIVISION       = C_X.
      K_HEADER_CH_INX-UPDATEFLAG     = C_U. "U

*---Fill Item details based on Purchase Order Items.
      LOOP AT I_VBAP.

*---Get condition number.
        CLEAR:V_KNUMV,V_KBETR, V_WAERS.
        SELECT SINGLE KNUMV FROM EKKO INTO V_KNUMV WHERE EBELN = V_PO_EBELN.

        IF SY-SUBRC EQ 0.
*---Get the Condition value from Purchanse order.
          SELECT SINGLE KBETR WAERS INTO (V_KBETR, V_WAERS)
                               FROM KONV
                              WHERE KNUMV  = V_KNUMV
                               AND  KPOSN  = I_VBAP-POSNR.
          IF SY-SUBRC NE 0.
            CLEAR :V_KBETR, V_WAERS.
          ENDIF.
        ENDIF.
*---Fill the Fields: Sales and Distribution Document Item
        I_ITEMS-ITM_NUMBER = I_VBAP-POSNR.
        I_ITEMS-MATERIAL   = I_VBAP-MATNR.
        I_ITEMS-PLANT      = C_H003.                        "H003
        I_ITEMS-TARGET_QTY = I_VBAP-KWMENG.
        I_ITEMS-PROFIT_CTR = I_VBAP-PRCTR.
        APPEND I_ITEMS.
        CLEAR I_ITEMS

Edited by: Pavan Sanganal on Jan 29, 2010 12:33 PM

7 REPLIES 7
Read only

Former Member
0 Likes
1,092
I_ITEM_INX-ITM_NUMBER = I_VBAP-POSNR.
        I_ITEM_INX-MATERIAL   = C_X.
        I_ITEM_INX-PLANT      = C_X.
        I_ITEM_INX-TARGET_QTY = C_X.
        I_ITEM_INX-PROFIT_CTR = C_X.
        I_ITEM_INX-UPDATEFLAG = I_VBAP-UPDKZ.

        APPEND I_ITEM_INX.
        CLEAR I_ITEM_INX.
        I_SCHEDULES-ITM_NUMBER = I_VBAP-POSNR.
        I_SCHEDULES-SCHED_LINE = C_0001.                     "0001.
        I_SCHEDULES-REQ_QTY    = I_VBAP-KWMENG.

        APPEND I_SCHEDULES.
        CLEAR  I_SCHEDULES.

*---Fill Checkbox List for Maintaining Sales Document Schedule Line.
        I_SCHEDULES_INX-ITM_NUMBER  = I_VBAP-POSNR.
        I_SCHEDULES_INX-SCHED_LINE  = C_0001.
        I_SCHEDULES_INX-REQ_QTY     = C_X.
        I_SCHEDULES_INX-UPDATEFLAG  = I_VBAP-UPDKZ.

      APPEND I_SCHEDULES_INX.
      CLEAR  I_SCHEDULES_INX.

        I_ORDER_CONDITIONS_IN-ITM_NUMBER = I_VBAP-POSNR.
        I_ORDER_CONDITIONS_IN-COND_TYPE  = C_ZPR0.
        I_ORDER_CONDITIONS_IN-COND_VALUE = V_KBETR * C_DEC9.     "Make the 2 decimals
        I_ORDER_CONDITIONS_IN-CURRENCY  =  V_WAERS.
*        I_ORDER_CONDITIONS_IN-CURRENCY_2 = V_WAERS.

        APPEND I_ORDER_CONDITIONS_IN.
        CLEAR I_ORDER_CONDITIONS_IN.

*---Fill the Communication Fields for Maintaining Conditions in the Order.
        I_ORDER_COND_IN_INX-ITM_NUMBER = I_VBAP-POSNR.
        I_ORDER_COND_IN_INX-COND_ST_NO = C_010.
        I_ORDER_COND_IN_INX-COND_COUNT = C_01.
        I_ORDER_COND_IN_INX-COND_TYPE  = C_ZPR0.
        I_ORDER_COND_IN_INX-COND_VALUE = C_X.
        I_ORDER_COND_IN_INX-CURRENCY   = C_X.
        I_ORDER_COND_IN_INX-UPDATEFLAG = I_VBAP-UPDKZ.

        APPEND I_ORDER_COND_IN_INX .
        CLEAR I_ORDER_COND_IN_INX.

      ENDLOOP.
Read only

0 Likes
1,092
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
         EXPORTING
           SALESDOCUMENT                = V_SO_VBELN
           ORDER_HEADER_IN              = K_HEADER_CH
           ORDER_HEADER_INX             = K_HEADER_CH_INX
         TABLES
            RETURN                      = I_RETURN
            ORDER_ITEM_IN               = I_ITEMS
            ORDER_ITEM_INX              = I_ITEM_INX
            SCHEDULE_LINES              = I_SCHEDULES
            SCHEDULE_LINESX             = I_SCHEDULES_INX
            CONDITIONS_IN               = I_ORDER_CONDITIONS_IN
            CONDITIONS_INX              = I_ORDER_COND_IN_INX.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT   = '2'
        IMPORTING
          RETURN = K_RETURN.
  ENDIF.
  ENDIF.
 ENDIF.
Read only

0 Likes
1,092

Hi,

Try to debug the BAPI_SALESORDER_CHANGE. In the BAPI return table u ll get the message class. Go to se91 enter the message class and display. Select ur message and do where used list on the message. U ll get the exact location.

regards,

Pavan.

Read only

former_member206377
Active Contributor
0 Likes
1,092

Check if this helps :

Read only

Former Member
0 Likes
1,092

.

Read only

0 Likes
1,092

Hi,

Please refer to post http://scn.sap.com/message/14101351#14101351

Regards,

Joseph M

Read only

Former Member
0 Likes
1,092

This message was moderated.