2018 Jun 28 12:18 PM
Dear Experts,
In one of my programs I need to launch ‘LX02’ transaction and get back the stock level for the specific material (lv_matnr) in a specific warehouse (lv_lgnum) with a specific storage type (lv_ltkze).
First, I tried setting parameters and calling transaction with the skipping of the first screen:
SET PARAMETER ID:
'LGN' FIELD lv_lgnum,
'LGT' FIELD lv_ltkze,
'MAT' FIELD lv_matnr.
CALL TRANSACTION 'LX02' AND SKIP FIRST SCREEN.
Result – LX02 returns stock levels for all materials on that specific warehouse with specified storage type, i.e. it ignores the parameter ‘MAT’.
Second, I tried submitting report with a selection table:
DATA:
t_params TYPE TABLE OF rsparams,
wa_params TYPE rsparams.
wa_params-selname = 'S1_LGNUM'.
wa_params-kind = 'S'.
wa_params-sign = 'I'.
wa_params-option = 'EQ'.
wa_params-low = lv_lgnum.
wa_params-high = lv_lgnum.
APPEND wa_params TO t_params.
CLEAR wa_params.
wa_params-selname = 'S1_LGTYP'.
wa_params-kind = 'S'.
wa_params-sign = 'I'.
wa_params-option = 'EQ'.
wa_params-low = lv_ltkze.
wa_params-high = lv_ltkze.
APPEND wa_params TO t_params.
CLEAR wa_params.
wa_params-selname = '%%DYN001'.
wa_params-kind = 'S'.
wa_params-sign = 'I'.
wa_params-option = 'EQ'.
wa_params-low = lv_matnr.
wa_params-high = lv_matnr.
APPEND wa_params TO t_params.
CLEAR wa_params.
SUBMIT rls10020 WITH SELECTION-TABLE t_params AND RETURN.
Result - LX02 returns stock levels for all materials on that specific warehouse with specified storage type, i.e. it turns blind eye on the value of material number.
Finally, now I try to call transaction using bdcdata:
DATA:
it_bdcdata TYPE TABLE OF bdcdata,
wa_it_bdcdata LIKE LINE OF it_bdcdata
“Start the transaction
CLEAR wa_it_bdcdata.
wa_it_bdcdata-program = 'RLS10020'.
wa_it_bdcdata-dynpro = '1000'.
wa_it_bdcdata-dynbegin = 'X'.
APPEND wa_it_bdcdata TO it_bdcdata.
“capture warehouse number field and fill it with value
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_CURSOR'.
wa_it_bdcdata-fval = 'S1_LGNUM'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'S1_LGNUM'.
wa_it_bdcdata-fval = lv_lgnum.
APPEND wa_it_bdcdata TO it_bdcdata.
“capture storage type field and fill it with alue
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_CURSOR'.
wa_it_bdcdata-fval = 'S1_LGTYP-LOW'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'S1_LGTYP-LOW'.
wa_it_bdcdata-fval = '702'.
APPEND wa_it_bdcdata TO it_bdcdata.
“imitate the click on the button “Dynamic selection@ (Shift + F4) (red rectangle #1)
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_OKCODE'.
wa_it_bdcdata-fval = '=DYNS'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-program = 'RLS10020'.
wa_it_bdcdata-dynpro = '1000'.
wa_it_bdcdata-dynbegin = 'X'.
APPEND wa_it_bdcdata TO it_bdcdata.
“imitate the click on the “material” item in the “quants” window (red rectangle #2)
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_OKCODE'.
wa_it_bdcdata-fval = '=%_GC 145 25'.
APPEND wa_it_bdcdata TO it_bdcdata.
“capture material number field and fill it with value (red rectangle #3)
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_CURSOR'.
wa_it_bdcdata-fval = '%%DYN001-LOW'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = '%%DYN001-LOW'.
wa_it_bdcdata-fval = lv_matnr.
APPEND wa_it_bdcdata TO it_bdcdata.
Result – nothing is returned at all.
Please may you help me with this issue? What is it that I am getting wrong?
2018 Jun 28 12:24 PM
Look in documentation of SUBMIT statement for the WITH FREE SELECTIONS option (Also read dynamic selections documentation)
2018 Jun 28 12:24 PM
Look in documentation of SUBMIT statement for the WITH FREE SELECTIONS option (Also read dynamic selections documentation)
2018 Jun 28 2:14 PM
The solution was to create own variant of transaction and save it. Then grab the okcode "/EGET" and "=DYNS". Below is the code snippet:
REPORT [zreport].
DATA:
lv_lgnum TYPE lgnum,
lv_ltkze TYPE mlgn_ltkze,
lv_matnr TYPE matnr.
DATA:
it_bdcdata TYPE TABLE OF bdcdata,
wa_it_bdcdata LIKE LINE OF it_bdcdata.
START-OF-SELECTION.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-program = 'RLS10020'.
wa_it_bdcdata-dynpro = '1000'.
wa_it_bdcdata-dynbegin = 'X'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_OKCODE'.
wa_it_bdcdata-fval = '/EGET'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-program = 'SAPMSSY0'.
wa_it_bdcdata-dynpro = '0120'.
wa_it_bdcdata-dynbegin = 'X'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_CURSOR'.
wa_it_bdcdata-fval = '04/09'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_OKCODE'.
wa_it_bdcdata-fval = '=PICK'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-program = 'RLS10020'.
wa_it_bdcdata-dynpro = '1000'.
wa_it_bdcdata-dynbegin = 'X'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_OKCODE'.
wa_it_bdcdata-fval = '=DYNS'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-program = 'RLS10020'.
wa_it_bdcdata-dynpro = '1000'.
wa_it_bdcdata-dynbegin = 'X'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_CURSOR'.
wa_it_bdcdata-fval = '%%DYN001-LOW'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = '%%DYN001-LOW'.
wa_it_bdcdata-fval = lv_matnr.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'S1_LGNUM'.
wa_it_bdcdata-fval = lv_lgnum.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'S1_LGTYP-LOW'.
wa_it_bdcdata-fval = lv_ltkze.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'S1_LGTYP-HIGH'.
wa_it_bdcdata-fval = lv_ltkze.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_OKCODE'.
wa_it_bdcdata-fval = 'ONLI'.
APPEND wa_it_bdcdata TO it_bdcdata.
CALL TRANSACTION 'LX02' USING it_bdcdata MODE 'E'.