Ver Mensaje Individual
  #2  
Viejo 23/10/19, 15:54:58
santiago solis santiago solis is offline
Junior Member
 
Fecha de Ingreso: feb 2018
Mensajes: 2
Ejemplo actualización de indicador de borrado orden de servicio

Estimados

Comparto aquí un programa para marcar el indicador de borrado de una posición de orden de compras.

parametros:

DATA:
P_EBELN type EBELN,
P_EBELP type EBELP,
T_RETURN type BAPIRET2.

DATA: poheader TYPE bapimepoheader,
poheaderx TYPE bapimepoheaderx,
po_item TYPE bapimepoitem OCCURS 0 WITH HEADER LINE,
po_itemx TYPE bapimepoitemx OCCURS 0 WITH HEADER LINE.

DATA: f1_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE.

FIELD-SYMBOLS: <fs_doc> TYPE zsd_wsordservdetdoc,
<fs_return> TYPE bapiret2,
<fs_wsserv> TYPE zsd_wsordservdet,
<fs_ordservcab> TYPE zsd_wsordservcab.

"APPEND INITIAL LINE TO t_ordservcab ASSIGNING <fs_ordservcab>.
poheader-po_number = p_ebeln.
poheader-delete_ind = 'L'.
"APPEND poheader.
poheaderx-PO_NUMBER = 'X'.
poheaderx-delete_ind = 'X'.
"APPEND poheaderx.

"POSICIONES
po_item-po_item = p_ebelp." <fs_wsserv>-po_item." nro. posición
po_item-delete_ind = 'L'.
po_item-order_reason = '100'.
APPEND po_item.

po_itemx-po_item = po_item-po_item.
po_itemx-po_itemx = 'X'.
po_itemx-delete_ind = 'X'.
po_itemx-order_reason = 'X'.
APPEND po_itemx.

CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = p_ebeln
poheader = poheader
poheaderx = poheaderx
NO_PRICE_FROM_PO = 'X'
TABLES
return = f1_return
poitem = po_item
poitemx = po_itemx.

t_return[] = f1_return[].

IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
Responder Con Cita