Application Development 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: 

Standard bapi sales order change

Former Member
0 Kudos

Hi, I'm working on a Bapi sales orde change.

I'd like to know how I can manage shipping and billing block through standard bapi ??

1 REPLY 1

Former Member
0 Kudos

Hi Cmm,

see the below exapmle to chnage the BIlling and shipping.



BAPI_SALESORDER_CHANGE . "use the function module..

FORM UPDATE_BILLING_DATE.

DATA: BEGIN OF WA_ITAB,
        VBELN LIKE VBUP-VBELN,
        POSNR LIKE VBUP-POSNR,
        EDATU LIKE VBEP-EDATU,
        FKDAT LIKE VBKD-FKDAT,
        MSG(500) TYPE C,
      END OF WA_ITAB.

DATA: BEGIN OF RETURN OCCURS 0.
        INCLUDE STRUCTURE BAPIRET2.
DATA: END OF RETURN.
DATA: WA_RETURN LIKE BAPIRET2.

DATA: ORDER_HEADER_INX LIKE BAPISDH1X.
DATA: SIMULATION LIKE BAPIFLAG-BAPIFLAG.

DATA: BEGIN OF ORDER_ITEM_IN OCCURS 10.
        INCLUDE STRUCTURE BAPISDITM.
DATA: END OF ORDER_ITEM_IN.

DATA: BEGIN OF ORDER_ITEM_INX OCCURS 10.
        INCLUDE STRUCTURE BAPISDITMX.
DATA: END OF ORDER_ITEM_INX.

CLEAR ORDER_HEADER_INX.
ORDER_HEADER_INX-UPDATEFLAG = 'U'.
IF P_UPDATE IS INITIAL.
  SIMULATION = 'X'.
ELSE.
  CLEAR SIMULATION.
ENDIF.

SORT ITAB BY VBELN POSNR.

LOOP AT ITAB.

  AT NEW VBELN.
    REFRESH: ORDER_ITEM_IN, ORDER_ITEM_INX.
  ENDAT.

  WA_ITAB = ITAB.
  ORDER_ITEM_IN-ITM_NUMBER = ITAB-POSNR.
  ORDER_ITEM_IN-BILL_DATE = ITAB-EDATU.
  APPEND ORDER_ITEM_IN.
  ORDER_ITEM_INX-ITM_NUMBER = ITAB-POSNR.
  ORDER_ITEM_INX-UPDATEFLAG = 'U'.
  ORDER_ITEM_INX-BILL_DATE = 'X'.
  APPEND ORDER_ITEM_INX.

  AT END OF VBELN.
    CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
      EXPORTING
        SALESDOCUMENT    = ITAB-VBELN
        ORDER_HEADER_INX = ORDER_HEADER_INX
        SIMULATION       = SIMULATION
      TABLES
        RETURN           = RETURN
        ORDER_ITEM_IN    = ORDER_ITEM_IN
        ORDER_ITEM_INX   = ORDER_ITEM_INX.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      IMPORTING
        RETURN           = WA_RETURN.

    LOOP AT RETURN INTO WA_RETURN.
      IF WA_RETURN-TYPE = 'E' OR WA_RETURN-TYPE = 'I' OR
         WA_RETURN-TYPE = 'W' OR WA_RETURN-TYPE = 'A'.
        CONCATENATE WA_RETURN-TYPE ':' WA_RETURN-MESSAGE
          INTO WA_RETURN-MESSAGE.
        CONCATENATE WA_ITAB-MSG WA_RETURN-MESSAGE
          INTO WA_ITAB-MSG SEPARATED BY '/'.
      ENDIF.
    ENDLOOP.
    IF NOT WA_ITAB-MSG IS INITIAL.
      MODIFY ITAB FROM WA_ITAB.
    ENDIF.
  ENDAT.

ENDLOOP.

ENDFORM.

Regards,

Prabhudas