2014 Nov 18 9:47 AM
Dear forumers,
In my report codes, I will need to display the stock balance quantities along with the corresponding batch data.
For this, I have done the following:-
TYPES: BEGIN OF bestand,
bwkey LIKE mbew-bwkey,
werks LIKE mseg-werks,
matnr LIKE mseg-matnr,
charg LIKE mseg-charg,
endmenge(09) TYPE p DECIMALS 3,
anfmenge(09) TYPE p DECIMALS 3,
meins LIKE mara-meins,
endwert(09) TYPE p DECIMALS 2,
anfwert(09) TYPE p DECIMALS 2,
soll(09) TYPE p DECIMALS 3,
haben(09) TYPE p DECIMALS 3,
sollwert(09) TYPE p DECIMALS 2,
habenwert(09) TYPE p DECIMALS 2,
waers LIKE t001-waers,
sort_criteria(52) TYPE c,
END OF bestand.
DATA: gt_bestand TYPE STANDARD TABLE OF bestand.
"Get Stock Closing Value from MB5B
SUBMIT rm07mlbd WITH matnr IN s_matnr
WITH werks IN ls_werks
WITH datum IN s_datum
WITH lgbst EQ 'X'
WITH bwbst EQ ''
WITH sbbst EQ ''
WITH pa_sumfl EQ 'X'
EXPORTING LIST TO MEMORY AND RETURN.
IMPORT bestand TO gt_bestand FROM MEMORY ID 'MB5B_RESULT'.
From the IMPORT statement above, I am able to see all the relevant data fields that have been populated from MB5B.
However, in all my tests, all of the batch data is always missing.
Is there something that I may have missed out in my codes?
Please help. Appreciate any inputs at all.
Many thanks.
Regards,
Deborah
2014 Nov 18 10:30 AM
Hi Deborah Tan ,
Please Use below code for Submit Syntax. Please make sure you have pass all necessary parameters in Submit Program syntax.
DATA: LR_PAY_CONF_DATA TYPE REF TO DATA,
LR_PAY_CONF_DATA1 TYPE REF TO DATA.
FIELD-SYMBOLS:
<LT_PAY_CONF_DATA> TYPE STANDARD TABLE,
<LS_PAY_CONF_DATA> TYPE ANY,
<LV_FIELD> TYPE ANY,
<LT_PAY_CONF_DATA1> TYPE STANDARD TABLE,
<LS_PAY_CONF_DATA1> TYPE ANY,
<LV_FIELD1> TYPE ANY.
DATA: GIT_DATA TYPE stab_totals_flat WITH HEADER LINE,
GWA_DATA TYPE stype_totals_flat.
REFRESH : GIT_DATA[].
REFRESH : GIT_DATA.
CLEAR : LR_PAY_CONF_DATA.
CL_SALV_BS_RUNTIME_INFO=>SET(
EXPORTING DISPLAY = ABAP_FALSE
METADATA = ABAP_FALSE
DATA = ABAP_TRUE ).
SUBMIT RM07MLBD USING SELECTION-SCREEN 1000
WITH matnr IN s_matnr
WITH werks IN ls_werks
WITH datum IN s_datum
WITH lgbst EQ 'X'
WITH bwbst EQ ''
WITH SBBST EQ ''
WITH pa_sumfl EQ 'X' AND RETURN.
CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(
IMPORTING R_DATA = LR_PAY_CONF_DATA ).
ASSIGN LR_PAY_CONF_DATA->* TO <LT_PAY_CONF_DATA>.
IF SY-SUBRC <> 0.
CLEAR : SY-UCOMM.
MESSAGE I076(ZMM) WITH 'No Actua Cost Found for ' IN_KSCHL-LOW ' '.
ELSE.
LOOP AT <LT_PAY_CONF_DATA> ASSIGNING <LS_PAY_CONF_DATA>.
DO.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE <LS_PAY_CONF_DATA> TO
<LV_FIELD>.
IF SY-SUBRC <> 0.
EXIT.
ELSE.
ENDIF.
ENDDO.
ENDLOOP.
APPEND LINES OF <LT_PAY_CONF_DATA> TO GIT_DATA.
ENDIF.
CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).
In GIT_DATA you will get all relevant data.
Please let me know if it is helpful.
Regards,
Sagar
2014 Nov 18 9:59 AM
Hi,
Create zprogram and use submit <zprogram>.
Export this internal table G_T_TOTALS_FLAT to memory.
Arivazhagan S
2014 Nov 19 2:34 AM
Hi Arivazhagan,
Would you please elaborate on this further?
Thanks.
Deborah
2014 Nov 19 2:41 AM
Hi,
Create program ZRM07MLBD from RM07MLBD.
Find the internal table G_T_TOTALS_FLAT in program ZRM07MLBD.
Before Display the output (ALV) export the itab to memory.
Arivazhagan S
2014 Nov 19 7:15 AM
2014 Nov 20 5:42 AM
Hi Arivazhagan,
I've tried this as well - but in G_T_TOTALS_FLAT, the batch data field is still empty.
Can you please help?
Deborah
2014 Nov 18 10:30 AM
Hi Deborah Tan ,
Please Use below code for Submit Syntax. Please make sure you have pass all necessary parameters in Submit Program syntax.
DATA: LR_PAY_CONF_DATA TYPE REF TO DATA,
LR_PAY_CONF_DATA1 TYPE REF TO DATA.
FIELD-SYMBOLS:
<LT_PAY_CONF_DATA> TYPE STANDARD TABLE,
<LS_PAY_CONF_DATA> TYPE ANY,
<LV_FIELD> TYPE ANY,
<LT_PAY_CONF_DATA1> TYPE STANDARD TABLE,
<LS_PAY_CONF_DATA1> TYPE ANY,
<LV_FIELD1> TYPE ANY.
DATA: GIT_DATA TYPE stab_totals_flat WITH HEADER LINE,
GWA_DATA TYPE stype_totals_flat.
REFRESH : GIT_DATA[].
REFRESH : GIT_DATA.
CLEAR : LR_PAY_CONF_DATA.
CL_SALV_BS_RUNTIME_INFO=>SET(
EXPORTING DISPLAY = ABAP_FALSE
METADATA = ABAP_FALSE
DATA = ABAP_TRUE ).
SUBMIT RM07MLBD USING SELECTION-SCREEN 1000
WITH matnr IN s_matnr
WITH werks IN ls_werks
WITH datum IN s_datum
WITH lgbst EQ 'X'
WITH bwbst EQ ''
WITH SBBST EQ ''
WITH pa_sumfl EQ 'X' AND RETURN.
CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(
IMPORTING R_DATA = LR_PAY_CONF_DATA ).
ASSIGN LR_PAY_CONF_DATA->* TO <LT_PAY_CONF_DATA>.
IF SY-SUBRC <> 0.
CLEAR : SY-UCOMM.
MESSAGE I076(ZMM) WITH 'No Actua Cost Found for ' IN_KSCHL-LOW ' '.
ELSE.
LOOP AT <LT_PAY_CONF_DATA> ASSIGNING <LS_PAY_CONF_DATA>.
DO.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE <LS_PAY_CONF_DATA> TO
<LV_FIELD>.
IF SY-SUBRC <> 0.
EXIT.
ELSE.
ENDIF.
ENDDO.
ENDLOOP.
APPEND LINES OF <LT_PAY_CONF_DATA> TO GIT_DATA.
ENDIF.
CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).
In GIT_DATA you will get all relevant data.
Please let me know if it is helpful.
Regards,
Sagar
2014 Nov 19 2:36 AM
Hi Sagar,
I've tried the codes you posted, but unfortunately, the structures, stab_totals_flat and stype_totals_flat do not exist in my system. Any other ideas around this, perhaps?
Deborah
2014 Nov 19 2:40 AM
Hi Sagar,
Found the structures defined in the program, RM07MLDD.
Will let you know how this goes.
Deborah
2014 Nov 19 7:16 AM
2014 Nov 19 8:46 AM
2014 Nov 20 3:35 AM
Hi Sagar,
I tested my codes again today, and found that the internal table GIT_DATA no longer contains batch data. Is there something that could have gone wrong? If so, how may I check & resolve this?
P/S:
I am using the same test data that I used yesterday. When I check the same test data in MB5B, there are stocks with batches - but all of these batch data are left blank in GIT_DATA.
Also, the production data has been copied to the development box (on which I am working on) yesterday evening.
Any idea on how I can proceed, please?
Deborah
2014 Nov 20 11:09 AM
Hi Deborah,
I Got the reason why you are not getting batch number in GIT_DATA. As i mentioned in my ans that you have to pass all mandatory parameters in SUBMIT syntax.
I just have pass the all parameters in SUBMIT and i got the o/p.
You can Refer Complete code : Run with any material and Plant Value.
*&---------------------------------------------------------------------*
*& Report ZSAM_DEMO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zsam_demo.
TYPE-POOLS : slis.
TYPES: BEGIN OF slis_specialcol_alv,
fieldname TYPE slis_fieldname,
color TYPE slis_color,
nokeycol(1) TYPE c,
END OF slis_specialcol_alv.
TYPES: slis_t_specialcol_alv TYPE slis_specialcol_alv OCCURS 1.
TYPES : BEGIN OF stype_totals_flat,
matnr LIKE mbew-matnr,
maktx LIKE makt-maktx,
bwkey LIKE mbew-bwkey,
werks LIKE mseg-werks,
charg LIKE mseg-charg,
sobkz LIKE mslb-sobkz,
name1 LIKE t001w-name1, "n999530
start_date LIKE sy-datlo,
end_date LIKE sy-datlo,
anfmenge(09) TYPE p DECIMALS 3,
meins LIKE mara-meins,
soll(09) TYPE p DECIMALS 3,
haben(09) TYPE p DECIMALS 3,
endmenge(09) TYPE p DECIMALS 3.
TYPES: anfwert(09) TYPE p DECIMALS 2,
waers LIKE t001-waers, "Währungsschlüssel
sollwert(09) TYPE p DECIMALS 2,
habenwert(09) TYPE p DECIMALS 2,
endwert(09) TYPE p DECIMALS 2,
color TYPE slis_t_specialcol_alv,
END OF stype_totals_flat.
TYPES : stab_totals_flat TYPE STANDARD TABLE OF stype_totals_flat
WITH DEFAULT KEY.
DATA: lr_pay_conf_data TYPE REF TO data,
lr_pay_conf_data1 TYPE REF TO data.
FIELD-SYMBOLS:
<lt_pay_conf_data> TYPE STANDARD TABLE,
<ls_pay_conf_data> TYPE any,
<lv_field> TYPE any,
<lt_pay_conf_data1> TYPE STANDARD TABLE,
<ls_pay_conf_data1> TYPE any,
<lv_field1> TYPE any.
DATA: git_data TYPE stab_totals_flat WITH HEADER LINE,
gwa_data LIKE LINE OF git_data.
TABLES : t001w,mard,mkpf,t001l,mchb,mbew,mseg,t001.
SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS : s_matnr FOR mard-matnr MEMORY ID mat
MATCHCODE OBJECT mat1,
s_bukrs FOR t001-bukrs,
s_lgort FOR t001l-lgort,
s_charg FOR mchb-charg,
s_bwtar FOR mbew-bwtar,
s_bwart FOR mseg-bwart,
ls_werks FOR t001w-werks MEMORY ID wrk,
s_datum FOR mkpf-budat NO-EXTENSION.
PARAMETERS : p_sobkz LIKE mseg-sobkz.
SELECTION-SCREEN END OF BLOCK b1.
REFRESH : git_data[].
REFRESH : git_data.
CLEAR : lr_pay_conf_data.
cl_salv_bs_runtime_info=>set(
EXPORTING display = abap_false
metadata = abap_false
data = abap_true ).
SUBMIT rm07mlbd USING SELECTION-SCREEN 1000
WITH matnr IN s_matnr
WITH bukrs IN s_bukrs
WITH werks IN ls_werks
WITH lgort IN s_lgort
WITH charg IN s_charg
WITH bwtar IN s_bwtar
WITH bwart IN s_bwart
WITH datum IN s_datum
WITH sobkz EQ p_sobkz
WITH lgbst EQ 'X'
WITH bwbst EQ ' '
WITH sbbst EQ ' '
WITH xsum EQ ' '
WITH xchar EQ ' '
WITH nosto EQ ' '
WITH pa_sumfl EQ 'X'
WITH xnomchb EQ 'X'
WITH archive EQ ' '
WITH pa_sflva EQ ' '
WITH p_vari EQ ' ' AND RETURN.
cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING r_data = lr_pay_conf_data ).
ASSIGN lr_pay_conf_data->* TO <lt_pay_conf_data>.
IF sy-subrc <> 0.
CLEAR : sy-ucomm.
* error message
ELSE.
LOOP AT <lt_pay_conf_data> ASSIGNING <ls_pay_conf_data>.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE <ls_pay_conf_data> TO
<lv_field>.
IF sy-subrc <> 0.
EXIT.
ELSE.
ENDIF.
ENDDO.
ENDLOOP.
APPEND LINES OF <lt_pay_conf_data> TO git_data.
ENDIF.
cl_salv_bs_runtime_info=>clear_all( ).
BREAK-POINT.
Hope it will Helpful.
Regards,
Sagar