Hi,
I am trying to enhance tcode VL01N such that after post goods issue,those details plus serial should be downloaded into a file.I found BADI delivery_publish for enhancement.
In the BADI I used field symbols to get delivery number .Which is working OK.My problem comes when i pass the delivery number(vbeln) to select delivery details from LIKPs table ,it returns nothing on debugging.But when i confirm the value in the table LIKP in se16 ,i could see the data.This is the statement that is not working.
SELECT * FROM likp INTO TABLE gt_likp
WHERE vbeln EQ <lt_vbeln>."lv_char10."v_vbeln.
I decided to do another test,but debugging the method alone after hard coding the value as v_vbeln = ''0080000587'.Apparently it returned value OK.
So I dont understand why after post goods issue using tcode VL01N ,my select statement doesnt work.I find it strange because i have worked with select statements but I have never encountered this problem before.
Here is the snippet of the code used in the BADI.Please help me figure out what am I doing wrong
METHOD if_ex_delivery_publish~publish_after_save.
TYPE-POOLS :truxs.
********Internal Tables Declaration*************
DATA: it_final TYPE STANDARD TABLE OF zgood_issue_fields,
* it_iserls TYPE TABLE OF riserls,
it_iserls TYPE STANDARD TABLE OF rserob,
* it_komser TYPE TABLE OF komser,
it_sernos TYPE STANDARD TABLE OF riserls.
DATA: gt_lips TYPE STANDARD TABLE OF lips,
gt_likp TYPE STANDARD TABLE OF likp.
********Work Areas Declaration******************
DATA: gw_data TYPE ty_head,
wa_final TYPE zgood_issue_fields,
wa_xlips TYPE lips,
gw_likp TYPE likp,
* wa_iserls TYPE riserls,
wa_sernos TYPE riserls,
wa_iserls TYPE rserob.
* wa_komser TYPE komser.
********Variables Declaration******************
DATA: lw_name TYPE kna1-name1,
lv_lfimg TYPE p LENGTH 13,
lw_zzdelphi TYPE vbap-zzdelphi,
gwgen TYPE zgen_pswd,
uname(12) TYPE c,
pwd(30) TYPE c,
host(15) TYPE c,
slen TYPE i,
key TYPE i VALUE 26101957,
hdl TYPE i,
result TYPE STANDARD TABLE OF text,
fname(60) TYPE c,
itttab TYPE truxs_t_text_data,
it_head TYPE truxs_t_text_data,
keydata TYPE rserob.
DATA : v_vbeln TYPE vbeln,
lv_char10 TYPE char10.
FIELD-SYMBOLS : <lt_vbeln> TYPE vbeln.
DATA : gt_vbeln TYPE string VALUE '(SAPMV50A)xlikp-VBELN'.
ASSIGN (gt_vbeln) TO <lt_vbeln>.
MOVE <lt_vbeln> TO v_vbeln.
lv_char10 = v_vbeln.
* lv_char10 = '0080000587'.
clear v_vbeln.
*IF gt_likp is not initial.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_char10
IMPORTING
output = v_vbeln.
SELECT * FROM likp INTO TABLE gt_likp
WHERE vbeln EQ v_vbeln.
CHECK gt_likp[] IS NOT INITIAL.
SELECT * FROM lips INTO TABLE gt_lips
FOR ALL ENTRIES IN gt_likp
WHERE vbeln EQ gt_likp-vbeln. "v_vbeln.
* CHECK gt_lips[] IS NOT INITIAL.
*LOOP AT xlips INTO wa_xlips.
LOOP AT gt_lips INTO wa_xlips.
keydata-taser = 'SER01'." Serial Table
keydata-lief_nr = wa_xlips-vbeln. "delivery number
keydata-posnr = wa_xlips-posnr. "delivery item number(optional)
CALL FUNCTION 'GET_SERNOS_OF_DOCUMENT'
EXPORTING
key_data = keydata
TABLES
sernos = it_iserls[]
EXCEPTIONS
key_parameter_error = 1
no_supported_access = 2
no_data_found = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: wa_xlips,keydata.
ENDLOOP.
ENDMETHOD.