0% found this document useful (0 votes)
645 views

Delivery Bapi

The document describes the global interface of a FUNCTION called ws_delivery_update. It imports and exports various parameters and uses several tables. The FUNCTION calls another FUNCTION called ws_delivery_update_2 to perform delivery updates and handle any errors. It also updates shipment status after goods receipt if certain conditions are met.

Uploaded by

charan rao
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
645 views

Delivery Bapi

The document describes the global interface of a FUNCTION called ws_delivery_update. It imports and exports various parameters and uses several tables. The FUNCTION calls another FUNCTION called ws_delivery_update_2 to perform delivery updates and handle any errors. It also updates shipment status after goods receipt if certain conditions are met.

Uploaded by

charan rao
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

FUNCTION 

ws_delivery_update.
*"----------------------------------------------------------------------
*"*"Global Interface:
*"  IMPORTING
*"     VALUE(VBKOK_WA) LIKE  VBKOK STRUCTURE  VBKOK
*"     VALUE(SYNCHRON) LIKE  RVSEL-XFELD DEFAULT ' '
*"     VALUE(NO_MESSAGES_UPDATE) LIKE  RVSEL-XFELD DEFAULT SPACE
*"     VALUE(COMMIT) LIKE  RVSEL-XFELD DEFAULT SPACE
*"     VALUE(DELIVERY) LIKE  LIKP-VBELN
*"     VALUE(UPDATE_PICKING) LIKE  RVSEL-XFELD DEFAULT SPACE
*"     VALUE(NICHT_SPERREN) LIKE  RVSEL-NO_SP DEFAULT ' '
*"     VALUE(IF_CONFIRM_CENTRAL) LIKE  RVSEL-XFELD DEFAULT SPACE
*"     VALUE(IF_WMPP) LIKE  RVSEL-XFELD DEFAULT SPACE
*"     VALUE(IF_GET_DELIVERY_BUFFERED) TYPE  RVSEL-XFELD DEFAULT SPACE
*"     VALUE(IF_NO_GENERIC_SYSTEM_SERVICE) LIKE  RVSEL-XFELD DEFAULT
*"       SPACE
*"     VALUE(IF_DATABASE_UPDATE) TYPE  LESHP_DATABASE_UPDATE DEFAULT
*"       '1'
*"     VALUE(IF_NO_INIT) TYPE  XFELD DEFAULT SPACE
*"     VALUE(IF_NO_READ) TYPE  XFELD DEFAULT SPACE
*"     VALUE(IF_ERROR_MESSAGES_SEND_0) TYPE  XFELD DEFAULT 'X'
*"     VALUE(IF_NO_BUFFER_REFRESH) TYPE  V50AGL_NO_BUFFER_REFRESH
*"       DEFAULT SPACE
*"     VALUE(IT_PARTNER_UPDATE) TYPE  SHP_PARTNER_UPDATE_T OPTIONAL
*"     VALUE(IT_SERNR_UPDATE) TYPE  SHP_SERNR_UPDATE_T OPTIONAL
*"     VALUE(IF_NO_REMOTE_CHG) LIKE  RVSEL-XFELD DEFAULT ' '
*"     VALUE(IF_NO_MES_UPD_PACK) TYPE  V50AGL_NO_MES_UPD_PACK DEFAULT
*"       SPACE
*"     VALUE(IF_LATE_DELIVERY_UPD) TYPE  XFELD DEFAULT SPACE
*"  EXPORTING
*"     VALUE(EF_ERROR_ANY_0) TYPE  XFELD
*"     VALUE(EF_ERROR_IN_ITEM_DELETION_0) TYPE  XFELD
*"     VALUE(EF_ERROR_IN_POD_UPDATE_0) TYPE  XFELD
*"     VALUE(EF_ERROR_IN_INTERFACE_0) TYPE  XFELD
*"     VALUE(EF_ERROR_IN_GOODS_ISSUE_0) TYPE  XFELD
*"     VALUE(EF_ERROR_IN_FINAL_CHECK_0) TYPE  XFELD
*"     VALUE(EF_ERROR_PARTNER_UPDATE) TYPE  XFELD
*"     VALUE(EF_ERROR_SERNR_UPDATE) TYPE  XFELD
*"  TABLES
*"      VBPOK_TAB STRUCTURE  VBPOK OPTIONAL
*"      PROT STRUCTURE  PROTT OPTIONAL
*"      VERKO_TAB STRUCTURE  VERKO OPTIONAL
*"      VERPO_TAB STRUCTURE  VERPO OPTIONAL
*"      VBSUPCON_TAB STRUCTURE  VBSUPCON OPTIONAL
*"      IT_VERPO_SERNR STRUCTURE  HUM_VERPO_SERNR OPTIONAL
*"      IT_PACKING STRUCTURE  REPACK_HU_WM OPTIONAL
*"      IT_PACKING_SERNR STRUCTURE  HUM_REP_SERNR OPTIONAL
*"      IT_REPACK STRUCTURE  HUM_REPACK OPTIONAL
*"      IT_HANDLING_UNITS STRUCTURE  HUM_REHANG_HU OPTIONAL
*"      IT_OBJECTS STRUCTURE  PGR_OBJECTS OPTIONAL
*"      ET_CREATED_HUS STRUCTURE  VEKPVB OPTIONAL
*"      TVPOD_TAB STRUCTURE  TVPODVB OPTIONAL
*"      IT_TMSTMP TYPE  /SPE/TIMESTAMP_T OPTIONAL
*"      IT_BAPIADDR1 STRUCTURE  BAPIADDR1 OPTIONAL
*"      IT_TEXTL STRUCTURE  TEXTL_GN OPTIONAL
*"      IT_TEXTH STRUCTURE  TEXTH_GN OPTIONAL
*"      IT_AAC_ITEM_BLOCK TYPE  /SPE/BAPIDLVCOBLITEM_T OPTIONAL
*"      IT_HU_HEADER_EPC STRUCTURE  /SPE/HU_HEADER_EPC OPTIONAL
*"      IT_HU_ITEMS_EPC STRUCTURE  /SPE/HU_ITEMS_EPC OPTIONAL
*"      SERNR_TAB STRUCTURE  VLSER OPTIONAL
*"      IT_HURES TYPE  ISAUTO_VERPO_HURES_T OPTIONAL
*"----------------------------------------------------------------------

ENHANCEMENT-SECTION     WS_DELIVERY_UPDATE_01 SPOTS ES_SAPLV50L.
*Begin Application component: IS-A-GR, Switch: AM_GR , Switch description: G
oods Receipt
  data: lt_pabasn  type pabasn occurs 1,
         ls_objects like line of it_objects,
         ls_pabasn  type pabasn.

  IF SYST-CPROG = 'WS_MONITOR_INB_DEL_GDRC'                 "1949804
  AND vbkok_wa-wabuc = 'X'
  AND it_objects[] is initial.
    select * from pabasn into table lt_pabasn
              where vbeln = vbkok_wa-VBELN_VL.
    loop at lt_pabasn into ls_pabasn.
      CLEAR ls_objects.
      ls_objects-objtyp = '2'.
      ls_objects-objkey = ls_pabasn-pabnum.
      ls_objects-objpos = ls_pabasn-pabpos.
      ls_objects-vbeln  = ls_pabasn-vbeln.
      ls_objects-posnr  = ls_pabasn-posnr.
      APPEND ls_objects TO it_objects.
    endloop.
  ENDIF.

  CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
       EXPORTING
            vbkok_wa                      = vbkok_wa
           synchron                       = synchron
           no_messages_update_1           = no_messages_update
           commit                         = commit
           delivery                       = delivery
           update_picking                 = update_picking
           nicht_sperren_1                = nicht_sperren
           if_confirm_central             = if_confirm_central
           if_wmpp                        = if_wmpp
           if_get_delivery_buffered       = if_get_delivery_buffered
           if_no_buffer_refresh           = if_no_buffer_refresh
           if_no_mes_upd_pack             = if_no_mes_upd_pack "n_526239
           if_no_generic_system_service   = if_no_generic_system_service
           if_database_update_1           = if_database_update
           if_no_init_1                   = if_no_init
           if_no_read_1                   = if_no_read
           if_error_messages_send         = if_error_messages_send_0
           if_no_remote_chg_1             = if_no_remote_chg
           it_partner_update              = it_partner_update
           it_sernr_update                = it_sernr_update
           IF_LATE_DELIVERY_UPD           = IF_LATE_DELIVERY_UPD "439448
       IMPORTING
           ef_error_any                   = ef_error_any_0
           ef_error_in_item_deletion      = ef_error_in_item_deletion_0
           ef_error_in_pod_update         = ef_error_in_pod_update_0
           ef_error_in_interface          = ef_error_in_interface_0
           ef_error_in_goods_issue        = ef_error_in_goods_issue_0
           ef_error_in_final_check        = ef_error_in_final_check_0
           ef_error_partner_update        = ef_error_partner_update
           ef_error_sernr_update          = ef_error_sernr_update
      TABLES
           vbpok_tab                      = vbpok_tab
           prot                           = prot
           verko_tab                      = verko_tab
           verpo_tab                      = verpo_tab
           vbsupcon_tab_1                 = vbsupcon_tab
           it_verpo_sernr                 = it_verpo_sernr
           it_packing                     = it_packing
           it_packing_sernr               = it_packing_sernr
           it_repack                      = it_repack
           it_handling_units_1            = it_handling_units
           it_hu_header_epc               = it_hu_header_epc "standard code
           it_hu_items_epc                = it_hu_items_epc  "standard code
           tvpod_tab                      = tvpod_tab
           it_objects                     = it_objects
           it_tmstmp                      = it_tmstmp
           et_created_hus                 = et_created_hus
           it_bapiaddr1                   = it_bapiaddr1      "n_1158644
           IT_AAC_ITEM_BLOCK              = IT_AAC_ITEM_BLOCK "1517205
           it_texth                       = it_texth[]
           it_textl                       = it_textl[]
*MW START Änderung
           sernr_tab                      = sernr_tab
           it_hures                       = it_hures.
*MW ENDE Änderung

   IF SYST-CPROG = 'WS_MONITOR_INB_DEL_GDRC'                "1949804
   AND vbkok_wa-wabuc = 'X'.
     refresh it_objects[].
   ENDIF.

* Update shipment status after a GR.               "1484420
    IF vbkok_wa-vbtyp_vl = IF_SD_DOC_CATEGORY=>DELIVERY_SHIPPING_NOTIF   "sdi
mp dl i077072 '7'
    AND vbkok_wa-wabuc = 'X'
    AND ef_error_any_0 is initial
    AND ef_error_in_goods_issue_0 is initial.
      data: l_is_vbeln type BORGR_VBELN_DET.
      l_is_vbeln-vbeln = vbkok_wa-vbeln.
      l_is_vbeln-wbstk = 'C'.
      l_is_vbeln-imwrk = 'X'.                       "1503979
      CALL FUNCTION 'BORGR_SET_SHIPMENT_STATUS'
        EXPORTING
          is_vbeln = l_is_vbeln
        EXCEPTIONS
          OTHERS   = 1.
    ENDIF.
*End Application component: IS-A-GR, Switch: AM_GR , Switch description: Goo
ds Receipt
END-ENHANCEMENT-SECTION.
*$*$-Start: WS_DELIVERY_UPDATE_01--------------------------------------------
-------------------$*$*
ENHANCEMENT 1  ISOIL_OIG_SAPLV50L_I_1.    "active version
  clear g_convflg.
  CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
       EXPORTING
            vbkok_wa                      = vbkok_wa
           synchron                       = synchron
           no_messages_update_1           = no_messages_update
           commit                         = commit
           delivery                       = delivery
           update_picking                 = update_picking
           nicht_sperren_1                = nicht_sperren
           if_confirm_central             = if_confirm_central
           if_wmpp                        = if_wmpp
           if_get_delivery_buffered       = if_get_delivery_buffered
           if_no_buffer_refresh           = if_no_buffer_refresh
           if_no_mes_upd_pack             = if_no_mes_upd_pack "n_526239
           if_no_generic_system_service   = if_no_generic_system_service
           if_database_update_1           = if_database_update
           if_no_init_1                   = if_no_init
           if_no_read_1                   = if_no_read
           if_error_messages_send         = if_error_messages_send_0
           if_no_remote_chg_1             = if_no_remote_chg
           it_partner_update              = it_partner_update
           it_sernr_update                = it_sernr_update
           IF_LATE_DELIVERY_UPD           = IF_LATE_DELIVERY_UPD "439448
           G_SHPMT_AUFRUFER               = G_SHPMT_AUFRUFER    "n 1424550
       IMPORTING
           ef_error_any                   = ef_error_any_0
           ef_error_in_item_deletion      = ef_error_in_item_deletion_0
           ef_error_in_pod_update         = ef_error_in_pod_update_0
           ef_error_in_interface          = ef_error_in_interface_0
           ef_error_in_goods_issue        = ef_error_in_goods_issue_0
           ef_error_in_final_check        = ef_error_in_final_check_0
           ef_error_partner_update        = ef_error_partner_update
           ef_error_sernr_update          = ef_error_sernr_update
      TABLES
           vbpok_tab                      = vbpok_tab
           prot                           = prot
           verko_tab                      = verko_tab
           verpo_tab                      = verpo_tab
           vbsupcon_tab_1                 = vbsupcon_tab
           it_verpo_sernr                 = it_verpo_sernr
           it_packing                     = it_packing
           it_packing_sernr               = it_packing_sernr
           it_repack                      = it_repack
           it_handling_units_1            = it_handling_units
           it_hu_header_epc               = it_hu_header_epc
           it_hu_items_epc                = it_hu_items_epc
           tvpod_tab                      = tvpod_tab
           it_objects                     = it_objects
           it_tmstmp                      = it_tmstmp
           et_created_hus                 = et_created_hus
           it_bapiaddr1                   = it_bapiaddr1      "n_1031533
           IT_AAC_ITEM_BLOCK              = IT_AAC_ITEM_BLOCK
           it_texth                       = it_texth[]
           it_textl                       = it_textl[]
           .
ENDENHANCEMENT.
*$*$-End:   WS_DELIVERY_UPDATE_01--------------------------------------------
-------------------$*$*

ENHANCEMENT-POINT WS_DELIVERY_UPDATE_02 SPOTS ES_SAPLV50L .
*$*$-Start: WS_DELIVERY_UPDATE_02--------------------------------------------
-------------------$*$*
ENHANCEMENT 1  ISOIL_OIG_SAPLV50L_I_2.    "active version
export ' ' to memory id 'OIG_WS_DLV_UPD'.     "n 1424550
ENDENHANCEMENT.
*$*$-End:   WS_DELIVERY_UPDATE_02--------------------------------------------
-------------------$*$*

*
*
*DATA:
*  LF_GEWVOL
*, LF_SUBRC    TYPE SYSUBRC
*.
** Initialisierung
*  PICKINGUPDATE = UPDATE_PICKING.
*  PERFORM INIT.
*  LIKP-VBELN = DELIVERY.
*  IF LIKP-VBELN IS INITIAL.
*    LIKP-VBELN = VBKOK_WA-VBELN_VL.
*  ENDIF.
*
** Lieferung Lesen
*  PERFORM DELIVERY_READ.
*
** Lieferungskopfbearbeitung vorbereiten und
** allgemeine Kopffelder ändern, die für Positionsbearbeitung
** relevant sein können
*  PERFORM DELIVERY_UPDATE_HEADER.
*
** Status korrekt bei POD-Rückmeldung ?
*  if vbkok_wa-kzpod = 'B'.
*    if vbuk-wbstk <> 'C' or vbuk-pdstk <> 'A'.
*      perform protokoll_add_item_vl730e.
*      check 1 = 2.
*    endif.
*  endif.
*
** Lieferung löschen
*  IF VBKOK_WA-LIKP_DEL NE SPACE.
*    PERFORM BELEG_LOESCHEN(SAPMV50A).
*  ELSE.
*
**   Löschen Positionen
*    PERFORM DELIVERY_ITEMS_DELETE CHANGING LF_SUBRC.
*    CHECK LF_SUBRC = 0.
*
**   POD - Proof of delivery
*    if not vbkok_wa-kzpod is initial and vbuk-pdstk ca 'AB'.
*      perform delivery_pod_update changing lf_subrc.
*      check lf_subrc = 0.
*    endif.
*
**   Konsistenz-Prüfungen und vervollständigen der Schnittstelle
*    PERFORM VBPOK_INTERFACE_CHECK CHANGING LF_GEWVOL LF_SUBRC.
*    CHECK LF_SUBRC = 0.
*
**   Positionsupdate direkt positionsweise oder über Kommissionierflüsse
*    IF PICKINGUPDATE = SPACE.
**     ohne Kommissionierfluß
*      PERFORM DELIVERY_UPDATE_ITEM USING LF_GEWVOL.
*    ELSE.
**     über Kommissionierfluß
*      PERFORM DELIVERY_UPDATE_PICKING USING LF_GEWVOL.
*    ENDIF.
*
**   Verpackungsrückmeldung
*    PERFORM DELIVERY_UPDATE_PACKING.
*
**   Gewicht und Volumen ändern
*    IF VBKOK_WA-KZBRG NE SPACE OR
*       VBKOK_WA-KZNTG NE SPACE OR
*       VBKOK_WA-KZVOL NE SPACE.
*      PERFORM DELIVERY_UPDATE_HEADER_WEIGHT.
*    ENDIF.
*
**   Post Goods Issue
*    PERFORM POST_GOODS_ISSUE.
**   Lieferung sichern
*    PERFORM DELIVERY_SAVE.
*  ENDIF.
*
** Protokoll aufbereiten
*  PERFORM PROTOKOLL_GOODS_ISSUE_ADD.
*
** Commit nur, wenn der Aufrufer dies explizit mitgibt
*  IF COMMIT = 'X'. COMMIT WORK. ENDIF.
ENDFUNCTION.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy