Dear All,
I’ve implemented the enhancement V55K0004 to delete the inbound deliveries when an ASN is performed on SNC by Vendor. It is working until the deletion, but always is creating a new inbound delivery number.
Before:
Image may be NSFW.
Clik here to view.
After:
The reference number continues the same, but a new delivery number is created.
Image may be NSFW.
Clik here to view.
Bellow you can see my code:
We are using the FM IDOC_INPUT_DESADV1 (DESADV. DELS – Inbound Processing).
Include: ZXTRKU12
TYPES: BEGIN OF ty_likp,
vbeln TYPE vbeln,
END OF ty_likp.
DATA: gs_likp TYPE ty_likp ,
gt_likp TYPE TABLE OF ty_likp .
DATA: it_likp TYPE STANDARD TABLE OF ty_likp.
DATA: ls_e1edl18 TYPE e1edl18 ,
ls_e1edl20 TYPE e1edl20 ,
ls_e1adrm1 TYPE e1adrm1 .
FIELD-SYMBOLS:
<ls_edidd> TYPE edidd ,
<ls_e1edl20> TYPE e1edl20 .
** Precisa preencher com o número da delivery para executar o
** cancelamento da ASN que saiu do sistema SNC.
READ TABLE idoc_data ASSIGNING <ls_edidd> WITH KEY segnam = 'E1EDL18'.
CHECK sy-subrc = 0.
ls_e1edl18 = <ls_edidd>-sdata.
CHECK ls_e1edl18-qualf = 'DEL'.
IF <ls_edidd> IS ASSIGNED .
UNASSIGN <ls_edidd> .
ENDIF .
READ TABLE idoc_data ASSIGNING <ls_edidd> WITH KEY segnam = 'E1ADRM1' .
ls_e1adrm1 = <ls_edidd>-sdata .
** Pega o IDoc header com LIFEX e PARID
IF <ls_edidd> IS ASSIGNED .
UNASSIGN <ls_edidd> .
ENDIF .
READ TABLE idoc_data ASSIGNING <ls_edidd> WITH KEY segnam = 'E1EDL20'.
IF sy-subrc = 0.
ls_e1edl20 = <ls_edidd>-sdata.
** Pega o número da inbound delivery que venho na estrutura do IDoc.
REFRESH gt_likp[] .
SELECT vbeln
FROM likp
INTO TABLE gt_likp
WHERE lifex = ls_e1edl20-lifex
AND lifnr = ls_e1adrm1-partner_id .
* lifnr = ls_e1edl20-parid.
LOOP AT gt_likp INTO gs_likp .
** Remove todas as inbound deliveries armazenadas conforme tabela
**interna gs_likp.
* IF sy-subrc = 0.
DELETE FROM lips
WHERE vbeln = gs_likp.
COMMIT WORK.
DELETE FROM likp
WHERE vbeln = gs_likp.
COMMIT WORK.
DELETE FROM ekes
WHERE vbeln = gs_likp.
COMMIT WORK.
* ENDIF.
* ENDSELECT.
ENDLOOP .
ENDIF.
Is there any problem with my code? Has anyone already implemented a solution for this issue?
Thanks.
Alberto.