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

BAPI_OUTB_DELIVERY_CHANGE

former_member599326
Participant
0 Likes
1,477

Hi, I am using  BAPI_OUTB_DELIVERY_CHANGE for deleting delivery.  But here I have different requirement.

I want to apply Billing document block reason before deleting the delivery.

e.g. T code : VL02N -> put delivery document -> Go to line item -> Financial Processing -> Apply billing block reason (LIPS-FAKSP)

Can you please tell me how to apply billing block reason (update field LIPS-FAKSP) through BAPI_OUTB_DELIVERY_CHANGE or  BAPI_PO_CHANGE ??

my code is as below :-

  CLEAR gs_header_data.

   gs_header_data-deliv_numb = <fs_ekbe>-belnr.

*  gs_header_data-unit_of_wt = 'EA'.

   CLEAR gs_header_control.

   gs_header_control-deliv_numb = <fs_ekbe>-belnr.

   gs_header_control-dlv_del    = gc_x.

   CLEAR gs_delivery.

   gs_delivery = <fs_ekbe>-belnr.

   REFRESH gt_return.

   CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'

     EXPORTING

       header_data    = gs_header_data

       header_control = gs_header_control

       delivery       = gs_delivery

     TABLES

       return         = gt_return.

   READ TABLE gt_return ASSIGNING <fs_return> WITH KEY type = 'S'.

   IF sy-subrc = 0.

     CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

       EXPORTING

         wait = 'X'.

     CLEAR gs_poheader.

     gs_poheader-po_number   = <fs_ekko>-ebeln.

     gs_poheader-delete_ind  = gc_x.

     CLEAR gs_poheaderx.

     gs_poheaderx-po_number  = gc_x.

     gs_poheaderx-delete_ind = gc_x.

     CLEAR gs_poitem.

     REFRESH gt_poitem.

     gs_poitem-po_item       = '00010'.

     gs_poitem-delete_ind    = gc_x .

     APPEND gs_poitem TO gt_poitem.

     CLEAR gs_poitemx.

     REFRESH gt_poitemx.

     gs_poitemx-po_item      = '00010'.

     gs_poitemx-po_itemx     = gc_x .

     gs_poitemx-delete_ind   = gc_x .

     APPEND gs_poitemx TO gt_poitemx.

     REFRESH gt_return.

     CALL FUNCTION 'BAPI_PO_CHANGE'

       EXPORTING

         purchaseorder     = <fs_ekbe>-ebeln

         poheader          = gs_poheader

         poheaderx         = gs_poheaderx

       IMPORTING

         expheader         = gs_expheader

         exppoexpimpheader = gs_exppoexpimpheader

       TABLES

         return            = gt_return

         poitem            = gt_poitem

         poitemx           = gt_poitemx.

     READ TABLE gt_return ASSIGNING <fs_return> WITH KEY type = 'S'.

     IF sy-subrc = 0.

       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

         EXPORTING

           wait = 'X'.

       PERFORM append_ekko_new.

     ELSE.

       CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

     ENDIF.

     READ TABLE gt_return ASSIGNING <fs_return> WITH KEY type = 'E'.

     IF sy-subrc = 0.

       PERFORM append_ekko_new.

     ENDIF.

   ELSE.

     CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

     LOOP AT gt_return ASSIGNING <fs_return> WHERE type NE 'S'.

       MOVE-CORRESPONDING <fs_ekko> TO wa_ekko.

       APPEND wa_ekko TO gt_ekko_new.

     ENDLOOP.

   ENDIF.

Hi, I am using  BAPI_OUTB_DELIVERY_CHANGE for deleting delivery.  But here I have different requirement.

I want to apply Billing document block reason before deleting the delivery.

e.g. T code : VL02N -> put delivery document -> Go to line item -> Financial Processing -> Apply billing block reason (LIPS-FAKSP)

Can you please tell me how to apply billing block reason (update field LIPS-FAKSP) through BAPI_OUTB_DELIVERY_CHANGE or  BAPI_PO_CHANGE ??

my code is as below :-

  CLEAR gs_header_data.

   gs_header_data-deliv_numb = <fs_ekbe>-belnr.

*  gs_header_data-unit_of_wt = 'EA'.

   CLEAR gs_header_control.

   gs_header_control-deliv_numb = <fs_ekbe>-belnr.

   gs_header_control-dlv_del    = gc_x.

   CLEAR gs_delivery.

   gs_delivery = <fs_ekbe>-belnr.

   REFRESH gt_return.

   CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'

     EXPORTING

       header_data    = gs_header_data

       header_control = gs_header_control

       delivery       = gs_delivery

     TABLES

       return         = gt_return.

   READ TABLE gt_return ASSIGNING <fs_return> WITH KEY type = 'S'.

   IF sy-subrc = 0.

     CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

       EXPORTING

         wait = 'X'.

     CLEAR gs_poheader.

     gs_poheader-po_number   = <fs_ekko>-ebeln.

     gs_poheader-delete_ind  = gc_x.

     CLEAR gs_poheaderx.

     gs_poheaderx-po_number  = gc_x.

     gs_poheaderx-delete_ind = gc_x.

     CLEAR gs_poitem.

     REFRESH gt_poitem.

     gs_poitem-po_item       = '00010'.

     gs_poitem-delete_ind    = gc_x .

     APPEND gs_poitem TO gt_poitem.

     CLEAR gs_poitemx.

     REFRESH gt_poitemx.

     gs_poitemx-po_item      = '00010'.

     gs_poitemx-po_itemx     = gc_x .

     gs_poitemx-delete_ind   = gc_x .

     APPEND gs_poitemx TO gt_poitemx.

     REFRESH gt_return.

     CALL FUNCTION 'BAPI_PO_CHANGE'

       EXPORTING

         purchaseorder     = <fs_ekbe>-ebeln

         poheader          = gs_poheader

         poheaderx         = gs_poheaderx

       IMPORTING

         expheader         = gs_expheader

         exppoexpimpheader = gs_exppoexpimpheader

       TABLES

         return            = gt_return

         poitem            = gt_poitem

         poitemx           = gt_poitemx.

     READ TABLE gt_return ASSIGNING <fs_return> WITH KEY type = 'S'.

     IF sy-subrc = 0.

       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

         EXPORTING

           wait = 'X'.

       PERFORM append_ekko_new.

     ELSE.

       CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

     ENDIF.

     READ TABLE gt_return ASSIGNING <fs_return> WITH KEY type = 'E'.

     IF sy-subrc = 0.

       PERFORM append_ekko_new.

     ENDIF.

   ELSE.

     CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

     LOOP AT gt_return ASSIGNING <fs_return> WHERE type NE 'S'.

       MOVE-CORRESPONDING <fs_ekko> TO wa_ekko.

       APPEND wa_ekko TO gt_ekko_new.

     ENDLOOP.

   ENDIF.

2 REPLIES 2
Read only

Former Member
0 Likes
814
Read only

0 Likes
814

I searched but nowhere it is mentioned how to use BAPI " SHP_BAPI_DELIVERY_CHANGE"..

Can u pls help ??