cancel
Showing results for 
Search instead for 
Did you mean: 

Bapi to create inbound delivery

Former Member
0 Kudos

Hi friends ,

can anyone send me any sample program for BAPI_DELIVERY_GETLIST ? I have to create an inbound delievry using the inbound idoc .

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi,

The custom FM should have the following import, export and table parameters.

IMPORTING

VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD

VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC

EXPORTING

VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK

VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS

VALUE(WORKFLOW_RESULT) LIKE BDWFAP_PAR-RESULT

VALUE(APPLICATION_VARIABLE) LIKE BDWFAP_PAR-APPL_VAR

TABLES

IDOC_CONTRL STRUCTURE EDIDC

IDOC_DATA STRUCTURE EDIDD

IDOC_STATUS STRUCTURE BDIDOCSTAT

RETURN_VARIABLES STRUCTURE BDWFRETVAR

SERIALIZATION_INFO STRUCTURE BDI_SER

EXCEPTIONS

WRONG_FUNCTION_CALLED

code:

LOOP AT t_idoc_data WHERE docnum = f_idoc_contrl-docnum.

CASE t_idoc_data-segnam.

WHEN Header.

Processing logic

WHEN Item.

Processing logic

WHEN item1.

Processing logic

WHEN item2.

Processing logic

WHEN custom segments if any.

Processing logic

WHEN OTHERS.

Processing logic

ENDCASE.

  • Update the IDOC_STATUS at the end

CLEAR t_idoc_status.

t_idoc_status-docnum = docnum.

t_idoc_status-status = status.

t_idoc_status-msgty = msgty.

t_idoc_status-msgid = msgid.

t_idoc_status-msgno = msgno.

t_idoc_status-msgv1 = msgv1.

t_idoc_status-msgv2 = msgv2.

t_idoc_status-msgv3 = msgv3.

t_idoc_status-msgv4 = msgv4.

t_idoc_status-segnum = segnum.

t_idoc_status-segfld = segfld.

t_idoc_status-repid = repid.

t_idoc_status-routid = routid.

APPEND t_idoc_status.

Hope it may help you.

Former Member
0 Kudos

Check the following link:

Regard,

Prashant

Former Member
0 Kudos

what do you actually want to do?

any way heres the code lifted straight from the function module.


*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(IS_DLV_DATA_CONTROL) TYPE  BAPIDLVBUFFERCONTROL
*"  TABLES
*"      IT_ABLAD STRUCTURE  BAPIDLV_RANGE_ABLAD OPTIONAL
*"      IT_ABTNR STRUCTURE  BAPIDLV_RANGE_ABTNR OPTIONAL
*"      IT_AUFNR STRUCTURE  BAPIDLV_RANGE_AUFNR OPTIONAL
*"      IT_AULWE STRUCTURE  BAPIDLV_RANGE_AULWE OPTIONAL
*"      IT_BESTK STRUCTURE  BAPIDLV_RANGE_BESTK OPTIONAL
*"      IT_BLDAT STRUCTURE  BAPIDLV_RANGE_BLDAT OPTIONAL
*"      IT_CHARG STRUCTURE  BAPIDLV_RANGE_CHARG OPTIONAL
*"      IT_CMFRE STRUCTURE  BAPIDLV_RANGE_CMFRE OPTIONAL
*"      IT_CMGST STRUCTURE  BAPIDLV_RANGE_CMGST OPTIONAL
*"      IT_CMNGV STRUCTURE  BAPIDLV_RANGE_CMNGV OPTIONAL
*"      IT_CTLPC STRUCTURE  BAPIDLV_RANGE_CTLPC OPTIONAL
*"      IT_EAN11 STRUCTURE  BAPIDLV_RANGE_EAN11 OPTIONAL
*"      IT_ERDAT STRUCTURE  BAPIDLV_RANGE_ERDAT OPTIONAL
*"      IT_ERNAM STRUCTURE  BAPIDLV_RANGE_ERNAM OPTIONAL
*"      IT_FKSTK STRUCTURE  BAPIDLV_RANGE_FKSTK OPTIONAL
*"      IT_GBSTK STRUCTURE  BAPIDLV_RANGE_GBSTK OPTIONAL
*"      IT_GRUPP STRUCTURE  BAPIDLV_RANGE_GRUPP OPTIONAL
*"      IT_KDMAT STRUCTURE  BAPIDLV_RANGE_KDMAT OPTIONAL
*"      IT_KKBER STRUCTURE  BAPIDLV_RANGE_KKBER OPTIONAL
*"      IT_KNKLI STRUCTURE  BAPIDLV_RANGE_KNKLI OPTIONAL
*"      IT_KODAT STRUCTURE  BAPIDLV_RANGE_KODAT OPTIONAL
*"      IT_KOQUK STRUCTURE  BAPIDLV_RANGE_KOQUK OPTIONAL
*"      IT_KOSTK STRUCTURE  BAPIDLV_RANGE_KOSTK OPTIONAL
*"      IT_KUNN2 STRUCTURE  BAPIDLV_RANGE_KUNN2 OPTIONAL
*"      IT_KUNNR STRUCTURE  BAPIDLV_RANGE_KUNNR OPTIONAL
*"      IT_KUNWE STRUCTURE  BAPIDLV_RANGE_KUNWE OPTIONAL
*"      IT_LDDAT STRUCTURE  BAPIDLV_RANGE_LDDAT OPTIONAL
*"      IT_LFART STRUCTURE  BAPIDLV_RANGE_LFART OPTIONAL
*"      IT_LFDAT STRUCTURE  BAPIDLV_RANGE_LFDAT OPTIONAL
*"      IT_LGNUM STRUCTURE  BAPIDLV_RANGE_LGNUM OPTIONAL
*"      IT_LGORT STRUCTURE  BAPIDLV_RANGE_LGORT OPTIONAL
*"      IT_LGTOR STRUCTURE  BAPIDLV_RANGE_LGTOR OPTIONAL
*"      IT_LIFEX STRUCTURE  BAPIDLV_RANGE_LIFEX OPTIONAL
*"      IT_LIFSK STRUCTURE  BAPIDLV_RANGE_LIFSK OPTIONAL
*"      IT_LPRIO STRUCTURE  BAPIDLV_RANGE_LPRIO OPTIONAL
*"      IT_LSTEL STRUCTURE  BAPIDLV_RANGE_LSTEL OPTIONAL
*"      IT_LVSTK STRUCTURE  BAPIDLV_RANGE_LVSTK OPTIONAL
*"      IT_MATKL STRUCTURE  BAPIDLV_RANGE_MATKL OPTIONAL
*"      IT_MATNR STRUCTURE  BAPIDLV_RANGE_MATNR OPTIONAL
*"      IT_PARNR STRUCTURE  BAPIDLV_RANGE_PARNR OPTIONAL
*"      IT_PARVW STRUCTURE  BAPIDLV_RANGE_PARVW OPTIONAL
*"      IT_PERNR STRUCTURE  BAPIDLV_RANGE_PERNR OPTIONAL
*"      IT_PKSTK STRUCTURE  BAPIDLV_RANGE_PKSTK OPTIONAL
*"      IT_PRVBE STRUCTURE  BAPIDLV_RANGE_PRVBE OPTIONAL
*"      IT_ROUTE STRUCTURE  BAPIDLV_RANGE_ROUTE OPTIONAL
*"      IT_SAMMG STRUCTURE  BAPIDLV_RANGE_SAMMG OPTIONAL
*"      IT_SBGRP STRUCTURE  BAPIDLV_RANGE_SBGRP OPTIONAL
*"      IT_SPART STRUCTURE  BAPIDLV_RANGE_SPART OPTIONAL
*"      IT_SPDNR STRUCTURE  BAPIDLV_RANGE_SPDNR OPTIONAL
*"      IT_TDDAT STRUCTURE  BAPIDLV_RANGE_TDDAT OPTIONAL
*"      IT_TKNUM STRUCTURE  BAPIDLV_RANGE_TKNUM OPTIONAL
*"      IT_TRAID STRUCTURE  BAPIDLV_RANGE_TRAID OPTIONAL
*"      IT_TRSTA STRUCTURE  BAPIDLV_RANGE_TRSTA OPTIONAL
*"      IT_VBELN STRUCTURE  BAPIDLV_RANGE_VBELN OPTIONAL
*"      IT_VBTYP STRUCTURE  BAPIDLV_RANGE_VBTYP OPTIONAL
*"      IT_VGBEL STRUCTURE  BAPIDLV_RANGE_VGBEL OPTIONAL
*"      IT_VGSYS STRUCTURE  BAPIDLV_RANGE_VGSYS OPTIONAL
*"      IT_VKBUR STRUCTURE  BAPIDLV_RANGE_VKBUR OPTIONAL
*"      IT_VKGRP STRUCTURE  BAPIDLV_RANGE_VKGRP OPTIONAL
*"      IT_VKORG STRUCTURE  BAPIDLV_RANGE_VKORG OPTIONAL
*"      IT_VSBED STRUCTURE  BAPIDLV_RANGE_VSBED OPTIONAL
*"      IT_VSTEL STRUCTURE  BAPIDLV_RANGE_VSTEL OPTIONAL
*"      IT_VTWEG STRUCTURE  BAPIDLV_RANGE_VTWEG OPTIONAL
*"      IT_WADAT STRUCTURE  BAPIDLV_RANGE_WADAT OPTIONAL
*"      IT_WADAT_IST STRUCTURE  BAPIDLV_RANGE_WADAT OPTIONAL
*"      IT_WAKTI STRUCTURE  BAPIDLV_RANGE_WAKTI OPTIONAL
*"      IT_WAUHR STRUCTURE  BAPIDLV_RANGE_WAUHR OPTIONAL
*"      IT_WBSTK STRUCTURE  BAPIDLV_RANGE_WBSTK OPTIONAL
*"      IT_WERKS STRUCTURE  BAPIDLV_RANGE_WERKS OPTIONAL
*"      IT_XBLNR STRUCTURE  BAPIDLV_RANGE_XBLNR OPTIONAL
*"      ET_DELIVERY_HEADER STRUCTURE  BAPIDLVHDR OPTIONAL
*"      ET_DELIVERY_ITEM STRUCTURE  BAPIDLVITEM OPTIONAL
*"      ET_DELIVERY_HEADER_STS STRUCTURE  BAPIDLVHDRSTS OPTIONAL
*"      ET_DELIVERY_ITEM_STS STRUCTURE  BAPIDLVITEMSTS OPTIONAL
*"      ET_DELIVERY_PARTNER STRUCTURE  BAPIDLVPARTNERS OPTIONAL
*"      ET_DOCUMENT_FLOW STRUCTURE  BAPIDOCFLOW OPTIONAL
*"      ET_FOREIGN_TRADE_HEADER STRUCTURE  BAPIFOREIGNTRADEHDR OPTIONAL
*"      ET_FOREIGN_TRADE_ITEM STRUCTURE  BAPIFOREIGNTRADEITEM OPTIONAL
*"      ET_HU_HEADER STRUCTURE  BAPIDLVHANDLINGUNITHDR OPTIONAL
*"      ET_ITEM_SERIAL_NO STRUCTURE  BAPIDLVITMSERNO OPTIONAL
*"      EXTENSIONIN STRUCTURE  BAPIPAREX OPTIONAL
*"      EXTENSIONOUT STRUCTURE  BAPIPAREX OPTIONAL
*"      RETURN STRUCTURE  BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------
ENHANCEMENT-POINT BAPI_DELIVERY_GETLIST_G8 SPOTS ES_SAPLLE_SHP_DB_DELIVERY_BUFF STATIC.
*$*$-Start: BAPI_DELIVERY_GETLIST_G8------------------------------------------------------------$*$*
ENHANCEMENT 3  MGV_GENERATED_SAPLLE_SHP_DB_DE.    "active version
DATA: T_MGV_FNAMES1 LIKE MGVBAPIFNAMES OCCURS 0 WITH HEADER LINE.
DATA: T_MGV_FNAMES2 LIKE MGVBAPIFNAMES OCCURS 0 WITH HEADER LINE.
DATA: T_MGV_FNAMES3 LIKE MGVBAPIFNAMES OCCURS 0 WITH HEADER LINE.
DATA: MGV_FNAMES_LOW LIKE MGVBAPIFNAMES.
DATA: MGV_FNAMES_HIGH LIKE MGVBAPIFNAMES.
DATA: T_MGV_FNAMES4 LIKE MGVBAPIFNAMES OCCURS 0 WITH HEADER LINE.
ENDENHANCEMENT.
*$*$-End:   BAPI_DELIVERY_GETLIST_G8------------------------------------------------------------$*$*

ENHANCEMENT-POINT BAPI_DELIVERY_GETLIST_G6 SPOTS ES_SAPLLE_SHP_DB_DELIVERY_BUFF.
*$*$-Start: BAPI_DELIVERY_GETLIST_G6------------------------------------------------------------$*$*
ENHANCEMENT 1  MGV_GENERATED_SAPLLE_SHP_DB_DE.    "active version
*{BAPI Begin} generation <a href="http://intranet.sap.com/materialversion" TARGET="test_blank">http://intranet.sap.com/materialversion</a>
*Do not change coding between begin and end comments. ANI 20050216
T_MGV_FNAMES1-INT = 'VHILM'.
T_MGV_FNAMES1-EXT = 'VHILM_EXTERNAL'.
T_MGV_FNAMES1-VERS = 'VHILM_VERSION'.
T_MGV_FNAMES1-GUID = 'VHILM_GUID'.
APPEND T_MGV_FNAMES1.
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'
EXPORTING
  INT_TO_EXTERNAL = ' '
TABLES
  T_FNAMES = T_MGV_FNAMES1
  T_MATNR  = ET_HU_HEADER
  .
T_MGV_FNAMES2-INT = 'TRMTYP'.
T_MGV_FNAMES2-EXT = 'TRMTYP_EXTERNAL'.
T_MGV_FNAMES2-VERS = 'TRMTYP_VERSION'.
T_MGV_FNAMES2-GUID = 'TRMTYP_GUID'.
APPEND T_MGV_FNAMES2.
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'
EXPORTING
  INT_TO_EXTERNAL = ' '
TABLES
  T_FNAMES = T_MGV_FNAMES2
  T_MATNR  = ET_DELIVERY_HEADER
  .
T_MGV_FNAMES3-INT = 'VPMAT'.
T_MGV_FNAMES3-EXT = 'VPMAT_EXTERNAL'.
T_MGV_FNAMES3-VERS = 'VPMAT_VERSION'.
T_MGV_FNAMES3-GUID = 'VPMAT_GUID'.
APPEND T_MGV_FNAMES3.
T_MGV_FNAMES3-INT = 'UMMAT'.
T_MGV_FNAMES3-EXT = 'UMMAT_EXTERNAL'.
T_MGV_FNAMES3-VERS = 'UMMAT_VERSION'.
T_MGV_FNAMES3-GUID = 'UMMAT_GUID'.
APPEND T_MGV_FNAMES3.
T_MGV_FNAMES3-INT = 'MATWA'.
T_MGV_FNAMES3-EXT = 'MATWA_EXTERNAL'.
T_MGV_FNAMES3-VERS = 'MATWA_VERSION'.
T_MGV_FNAMES3-GUID = 'MATWA_GUID'.
APPEND T_MGV_FNAMES3.
T_MGV_FNAMES3-INT = 'MATNR'.
T_MGV_FNAMES3-EXT = 'MATNR_EXTERNAL'.
T_MGV_FNAMES3-VERS = 'MATNR_VERSION'.
T_MGV_FNAMES3-GUID = 'MATNR_GUID'.
APPEND T_MGV_FNAMES3.
T_MGV_FNAMES3-INT = 'EMATN'.
T_MGV_FNAMES3-EXT = 'EMATN_EXTERNAL'.
T_MGV_FNAMES3-VERS = 'EMATN_VERSION'.
T_MGV_FNAMES3-GUID = 'EMATN_GUID'.
APPEND T_MGV_FNAMES3.
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'
EXPORTING
  INT_TO_EXTERNAL = ' '
TABLES
  T_FNAMES = T_MGV_FNAMES3
  T_MATNR  = ET_DELIVERY_ITEM
  .
MGV_FNAMES_LOW-EXT = 'LOW_EXTERNAL'.
MGV_FNAMES_LOW-VERS = 'LOW_VERSION'.
MGV_FNAMES_LOW-GUID = 'LOW_GUID'.
MGV_FNAMES_HIGH-EXT = 'HIGH_EXTERNAL'.
MGV_FNAMES_HIGH-VERS = 'HIGH_VERSION'.
MGV_FNAMES_HIGH-GUID = 'HIGH_GUID'.
CALL FUNCTION 'MATNR_BAPI_RANGES_CONVERSION'
EXPORTING fnames_low  = mgv_fnames_low
          fnames_high = mgv_fnames_high
TABLES    t_matnr     = IT_MATNR.
T_MGV_FNAMES4-INT = 'MATNR'.
T_MGV_FNAMES4-EXT = 'MATNR_EXTERNAL'.
T_MGV_FNAMES4-VERS = 'MATNR_VERSION'.
T_MGV_FNAMES4-GUID = 'MATNR_GUID'.
APPEND T_MGV_FNAMES4.
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'
EXPORTING
  INT_TO_EXTERNAL = ' '
TABLES
  T_FNAMES = T_MGV_FNAMES4
  T_MATNR  = ET_DOCUMENT_FLOW
  .
*{BAPI End} generation
ENDENHANCEMENT.
*$*$-End:   BAPI_DELIVERY_GETLIST_G6------------------------------------------------------------$*$*


  DATA: ls_select_options  TYPE leshp_delivery_select_options,
        ls_return          TYPE bapiret2,
        lx_deliveries      TYPE leshp_delivery_t,

        lt_serial_relevant_items      TYPE TABLE OF lipsvb,
        lt_hu_relevant_headers        TYPE TABLE OF likpvb,
        lt_ft_relevant_headers        TYPE TABLE OF likpvb.


* BAdI Parameter
  STATICS: sref_badi_getlist TYPE REF TO if_ex_le_shp_dlv_getlist.

* Mapping of search criteria from the interface
* into ls_select_options of the delivery buffer
  APPEND LINES OF it_ablad  TO ls_select_options-ablad.
  APPEND LINES OF it_abtnr  TO ls_select_options-abtnr.
  APPEND LINES OF it_aufnr  TO ls_select_options-aufnr.
  APPEND LINES OF it_aulwe  TO ls_select_options-aulwe.
  APPEND LINES OF it_bestk  TO ls_select_options-bestk.
  APPEND LINES OF it_bldat  TO ls_select_options-bldat.
  APPEND LINES OF it_charg  TO ls_select_options-charg.
  APPEND LINES OF it_cmfre  TO ls_select_options-cmfre.
  APPEND LINES OF it_cmgst  TO ls_select_options-cmgst.
  APPEND LINES OF it_cmngv  TO ls_select_options-cmngv.
  APPEND LINES OF it_ctlpc  TO ls_select_options-ctlpc.
  APPEND LINES OF it_ean11  TO ls_select_options-ean11.
  APPEND LINES OF it_erdat  TO ls_select_options-erdat.
  APPEND LINES OF it_ernam  TO ls_select_options-ernam.
  APPEND LINES OF it_fkstk  TO ls_select_options-fkstk.
  APPEND LINES OF it_gbstk  TO ls_select_options-gbstk.
  APPEND LINES OF it_grupp  TO ls_select_options-grupp.
  APPEND LINES OF it_kdmat  TO ls_select_options-kdmat.
  APPEND LINES OF it_kkber  TO ls_select_options-kkber.
  APPEND LINES OF it_knkli  TO ls_select_options-knkli.
  APPEND LINES OF it_kodat  TO ls_select_options-kodat.
  APPEND LINES OF it_koquk  TO ls_select_options-koquk.
  APPEND LINES OF it_kostk  TO ls_select_options-kostk.
  APPEND LINES OF it_kunn2  TO ls_select_options-kunn2.
  APPEND LINES OF it_kunnr  TO ls_select_options-kunnr.
  APPEND LINES OF it_kunwe  TO ls_select_options-kunwe.
  APPEND LINES OF it_lddat  TO ls_select_options-lddat.
  APPEND LINES OF it_lfart  TO ls_select_options-lfart.
  APPEND LINES OF it_lfdat  TO ls_select_options-lfdat.
  APPEND LINES OF it_lgnum  TO ls_select_options-lgnum.
  APPEND LINES OF it_lgort  TO ls_select_options-lgort.
  APPEND LINES OF it_lgtor  TO ls_select_options-lgtor.
  APPEND LINES OF it_lifex  TO ls_select_options-lifex.
  APPEND LINES OF it_lifsk  TO ls_select_options-lifsk.
  APPEND LINES OF it_lprio  TO ls_select_options-lprio.
  APPEND LINES OF it_lstel  TO ls_select_options-lstel.
  APPEND LINES OF it_lvstk  TO ls_select_options-lvstk.
  APPEND LINES OF it_matkl  TO ls_select_options-matkl.
  APPEND LINES OF it_matnr  TO ls_select_options-matnr.
  APPEND LINES OF it_parnr  TO ls_select_options-parnr.
  APPEND LINES OF it_parvw  TO ls_select_options-parvw.
  APPEND LINES OF it_pernr  TO ls_select_options-pernr.
  APPEND LINES OF it_pkstk  TO ls_select_options-pkstk.
  APPEND LINES OF it_prvbe  TO ls_select_options-prvbe.
  APPEND LINES OF it_route  TO ls_select_options-route.
  APPEND LINES OF it_sammg  TO ls_select_options-sammg.
  APPEND LINES OF it_sbgrp  TO ls_select_options-sbgrp.
  APPEND LINES OF it_spart  TO ls_select_options-spart.
  APPEND LINES OF it_spdnr  TO ls_select_options-spdnr.
  APPEND LINES OF it_tddat  TO ls_select_options-tddat.
  APPEND LINES OF it_tknum  TO ls_select_options-tknum.
  APPEND LINES OF it_traid  TO ls_select_options-traid.
  APPEND LINES OF it_trsta  TO ls_select_options-trsta.
  APPEND LINES OF it_vbeln  TO ls_select_options-vbeln.
  APPEND LINES OF it_vbtyp  TO ls_select_options-vbtyp.
  APPEND LINES OF it_vgbel  TO ls_select_options-vgbel.
  APPEND LINES OF it_vgsys  TO ls_select_options-vgsys.
  APPEND LINES OF it_vkbur  TO ls_select_options-vkbur.
  APPEND LINES OF it_vkgrp  TO ls_select_options-vkgrp.
  APPEND LINES OF it_vkorg  TO ls_select_options-vkorg.
  APPEND LINES OF it_vsbed  TO ls_select_options-vsbed.
  APPEND LINES OF it_vstel  TO ls_select_options-vstel.
  APPEND LINES OF it_vtweg  TO ls_select_options-vtweg.
  APPEND LINES OF it_wadat  TO ls_select_options-wadat.
  APPEND LINES OF it_wadat  TO ls_select_options-wadat.
  APPEND LINES OF it_wakti  TO ls_select_options-wakti.
  APPEND LINES OF it_wauhr  TO ls_select_options-wauhr.
  APPEND LINES OF it_wbstk  TO ls_select_options-wbstk.
  APPEND LINES OF it_werks  TO ls_select_options-werks.
  APPEND LINES OF it_xblnr  TO ls_select_options-xblnr.

* Transfer control flags into delivery buffer control structure
  ls_select_options-bypassing_buffer
                               = is_dlv_data_control-bypassing_buffer.
  ls_select_options-data-head_partner
                               = is_dlv_data_control-head_partner.
  ls_select_options-data-head_status  = is_dlv_data_control-head_status.
  ls_select_options-data-item         = is_dlv_data_control-item.
  ls_select_options-data-item_status  = is_dlv_data_control-item_status.
  ls_select_options-data-doc_flow     = is_dlv_data_control-doc_flow.

* Get requested deliveries using the delivery buffer
  CALL FUNCTION 'LE_DELIVERY_PREFETCH'
    EXPORTING
      is_select_options = ls_select_options
    CHANGING
      cx_deliveries     = lx_deliveries
    EXCEPTIONS
      no_item_selected  = 1
      OTHERS            = 2.

  IF sy-subrc <> 0.
    PERFORM error_handling CHANGING ls_return.
    APPEND ls_return TO return.
    EXIT.
  ENDIF.

* Break down deep nested delivery structure into flat structures.
* Fill export tables and prepare tables for ft, hu & serials if
* requested.
  PERFORM export_and_prepare_data
                       TABLES  et_delivery_header
                               et_delivery_item
                               et_delivery_header_sts
                               et_delivery_item_sts
                               et_delivery_partner
                               et_document_flow
                               lt_hu_relevant_headers
                               lt_ft_relevant_headers
                               lt_serial_relevant_items
                       USING   is_dlv_data_control
                               lx_deliveries.


* Get Foreign Trade Data for Delivery Document
  IF     is_dlv_data_control-ft_data = 'X'
    AND  lt_ft_relevant_headers IS NOT INITIAL.
    PERFORM get_foreign_trade_data   TABLES   lt_ft_relevant_headers
                                              et_foreign_trade_header
                                              et_foreign_trade_item
                                              return.
  ENDIF.

* Get Handling Unit Data for Delivery Document
  IF    is_dlv_data_control-hu_data = 'X'
    AND lt_hu_relevant_headers IS NOT INITIAL.
    PERFORM get_handling_unit_data   TABLES   lt_hu_relevant_headers
                                              et_hu_header
                                              return.
  ENDIF.

* Get Serial Numbers for Delivery Document
  IF    is_dlv_data_control-serno = 'X'
    AND lt_serial_relevant_items IS NOT INITIAL.
    PERFORM get_item_sernos   TABLES   lt_serial_relevant_items
                                       et_item_serial_no
                                       return.
  ENDIF.



* BAdI instance creation
  IF sref_badi_getlist IS INITIAL.
    CALL METHOD cl_exithandler=>get_instance
      EXPORTING
        exit_name              = ''
        null_instance_accepted = gc_false
      CHANGING
        instance               = sref_badi_getlist.
  ENDIF.

* BAdi method for modifying the retrieved deliveries
* (e.g.additional filtering by further search criteria
* or extending the deliveries with additional (customer
* specific) data)

  CALL METHOD sref_badi_getlist->modify_deliveries
    EXPORTING
      extensionin             = extensionin
      ix_deliveries           = lx_deliveries
    IMPORTING
      extensionout            = extensionout
    CHANGING
      et_delivery_header      = et_delivery_header
      et_delivery_item        = et_delivery_item
      et_delivery_header_sts  = et_delivery_header_sts
      et_delivery_item_sts    = et_delivery_item_sts
      et_delivery_partner     = et_delivery_partner
      et_document_flow        = et_document_flow
      et_foreign_trade_header = et_foreign_trade_header
      et_foreign_trade_item   = et_foreign_trade_item
      et_hu_header            = et_hu_header
      et_item_serial_no       = et_item_serial_no
      return                  = return.

ENHANCEMENT-POINT BAPI_DELIVERY_GETLIST_G7 SPOTS ES_SAPLLE_SHP_DB_DELIVERY_BUFF.
*$*$-Start: BAPI_DELIVERY_GETLIST_G7------------------------------------------------------------$*$*
ENHANCEMENT 2  MGV_GENERATED_SAPLLE_SHP_DB_DE.    "active version
*{BAPI Begin} generation http://intranet.sap.com/materialversion
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'
EXPORTING
  INT_TO_EXTERNAL = 'X'
TABLES
  T_FNAMES = T_MGV_FNAMES1
  T_MATNR  = ET_HU_HEADER
  .
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'
EXPORTING
  INT_TO_EXTERNAL = 'X'
TABLES
  T_FNAMES = T_MGV_FNAMES2
  T_MATNR  = ET_DELIVERY_HEADER
  .
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'
EXPORTING
  INT_TO_EXTERNAL = 'X'
TABLES
  T_FNAMES = T_MGV_FNAMES3
  T_MATNR  = ET_DELIVERY_ITEM
  .
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'
EXPORTING
  INT_TO_EXTERNAL = 'X'
TABLES
  T_FNAMES = T_MGV_FNAMES4
  T_MATNR  = ET_DOCUMENT_FLOW
  .
*{BAPI End} generation
ENDENHANCEMENT.
*$*$-End:   BAPI_DELIVERY_GETLIST_G7------------------------------------------------------------$*$*
ENDFUNCTION.

former_member181995
Active Contributor
0 Kudos

Just refer:

Amit.