Difference between revisions of "SAP SD BAPI DELIVERY"
From SapWiki
(Created page with " <nowiki>*&---------------------------------------------------------------------* *& Form borrar_item *&-----------------------------------------------------------------...") |
|||
| Line 1: | Line 1: | ||
| + | ==[[SAP_SD_DELIVERY_UPDATE_PICKING|DELIVERY UPDATE PICKING]]== | ||
| + | ==BAPI_OUTB_DELIVERY_CHANGE== | ||
<nowiki>*&---------------------------------------------------------------------* | <nowiki>*&---------------------------------------------------------------------* | ||
*& Form borrar_item | *& Form borrar_item | ||
Latest revision as of 19:40, 24 June 2026
DELIVERY UPDATE PICKING
BAPI_OUTB_DELIVERY_CHANGE
*&---------------------------------------------------------------------*
*& Form borrar_item
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_VBELN text
* -->P_POSNR text
*----------------------------------------------------------------------*
FORM borrar_item_entrega CHANGING e_data TYPE ty_data.
DATA: ti_item_control TYPE TABLE OF bapiobdlvitemctrlchg WITH HEADER LINE,
ti_return TYPE TABLE OF bapiret2 WITH HEADER LINE.
DATA: wa_header_data TYPE bapiobdlvhdrchg,
wa_header_control TYPE bapiobdlvhdrctrlchg.
wa_header_data-deliv_numb = e_data-vbeln.
wa_header_control-deliv_numb = e_data-vbeln.
* LOOP AT p_docs INTO wa_docs.
ti_item_control-deliv_numb = e_data-vbeln.
ti_item_control-deliv_item = e_data-posnr.
ti_item_control-del_item = 'X'.
APPEND ti_item_control.
* ENDLOOP.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = wa_header_data
header_control = wa_header_control
delivery = wa_docs-vbeln
TABLES
item_control = ti_item_control
return = ti_return
EXCEPTIONS
OTHERS = 1.
loop at ti_return TRANSPORTING NO FIELDS WHERE type = 'E'.
ENDLOOP.
if sy-subrc <> 0.
e_data-stat = icon_green_light.
add 1 to g_commit.
if g_commit = c_commit.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
clear g_commit.
endif.
else.
e_data-stat = icon_red_light.
loop at ti_return where type = 'E'.
sy-msgty = 'E'.
PERFORM ADD_MESSAGE
USING
e_data-VBELN
e_data-POSNR
ti_return-message.
ENDLOOP.
endif.
ENDFORM. "borrar_item
*&---------------------------------------------------------------------*
*& Form borrar_entrega
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_VBELN text
*----------------------------------------------------------------------*
FORM borrar_entrega USING p_vbeln TYPE likp-vbeln
CHANGING e_data type ty_data.
DATA: ti_return TYPE TABLE OF bapiret2 WITH HEADER LINE.
DATA: wa_header_data TYPE bapiobdlvhdrchg,
wa_header_control TYPE bapiobdlvhdrctrlchg.
wa_header_data-deliv_numb = p_vbeln.
wa_header_control-deliv_numb = p_vbeln.
wa_header_control-dlv_del = 'X'.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = wa_header_data
header_control = wa_header_control
delivery = p_vbeln
TABLES
return = ti_return
EXCEPTIONS
OTHERS = 1.
loop at ti_return TRANSPORTING NO FIELDS WHERE type = 'E'.
ENDLOOP.
IF sy-subrc <> 0.
e_data-stat = icon_green_light.
add 1 to g_commit.
if g_commit = c_commit.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
clear g_commit.
endif.
else.
e_data-stat = icon_red_light.
loop at ti_return where type = 'E'.
sy-msgty = 'E'.
PERFORM ADD_MESSAGE
USING
e_data-VBELN
e_data-POSNR
ti_return-message.
ENDLOOP.
ENDIF.
ENDFORM. "borrar_entrega
*&---------------------------------------------------------------------*
*& Form f_picking_2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LIPS text
*----------------------------------------------------------------------*
FORM f_picking_2 CHANGING e_data type ty_data.
types: begin of ty_lips,
vbeln type lips-vbeln,
posnr type lips-posnr,
vbelv type lips-vbelv,
posnv type lips-posnv,
matnr type lips-matnr,
charg type lips-charg,
lfimg type lips-lfimg,
end of ty_lips.
data ti_lips type table of ty_lips .
DATA ti_vbpok TYPE TABLE OF vbpok.
DATA wa_vbkok TYPE vbkok.
DATA wa_vbpok LIKE LINE OF ti_vbpok.
DATA wa_lips TYPE ty_lips.
select vbeln
posnr
vbelv
posnv
matnr
charg
lfimg
into CORRESPONDING FIELDS OF TABLE ti_lips from lips where vbeln = e_data-vbeln
and posnr = e_data-posnr.
LOOP AT ti_lips INTO wa_lips.
wa_vbkok-vbeln_vl = wa_lips-vbeln.
wa_vbkok-vbeln = wa_lips-vbelv.
wa_vbpok-vbeln_vl = wa_lips-vbeln.
wa_vbpok-posnr_vl = wa_lips-posnr.
wa_vbpok-vbeln = wa_lips-vbelv.
wa_vbpok-posnn = wa_lips-posnv.
wa_vbpok-matnr = wa_lips-matnr.
wa_vbpok-charg = wa_lips-charg.
wa_vbpok-lfimg = wa_lips-lfimg.
APPEND wa_vbpok TO ti_vbpok.
ENDLOOP.
CALL FUNCTION 'SD_DELIVERY_UPDATE_PICKING'
EXPORTING
vbkok_wa = wa_vbkok
* SYNCHRON = 'X'
* NO_MESSAGES_UPDATE = ' '
nicht_sperren = 'X'
aufrufer_t = 'X'
* IF_ERROR_MESSAGES_SEND = 'X'
TABLES
vbpok_tab = ti_vbpok
* PROT =
EXCEPTIONS
error_message = 99
OTHERS = 01.
* error occurred.
IF sy-subrc <> 0.
* MESSAGE e000(0K) with 'Entrega/posici n'
* p_lips-vbeln
* p_lips-posnr
* 'error en picking'.
e_data-stat = icon_red_light.
sy-msgty = 'E'.
PERFORM ADD_MESSAGE
USING
e_data-VBELN
e_data-POSNR
space.
ELSE.
e_data-stat = icon_green_light.
add 1 to g_commit.
if g_commit = c_commit.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
clear g_commit.
endif.
ENDIF.
ENDFORM. "f_picking