‎2007 Feb 07 5:53 PM
Hello Rich Heilman,
When i select a basicdata button in secondary list window i am getting the correct screen which i have called. When i select salesdata,mrpdata buttons i have to get their corresponding screens, but i am getting the same basicdata screen until i execute the program.
Kindly help. U can execute the below code and see
REPORT Y_RK_REPORT_TASK2 NO STANDARD PAGE HEADING
LINE-SIZE 200
LINE-COUNT 25(5).
&----
*& I N I T I A L I Z A T I O N *
&----
TABLES: MARA,MARC,MARD,MBEW,MVKE,MAKT.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF I_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS,
EKGRP LIKE MARC-EKGRP,
PSTAT LIKE MARC-PSTAT,
END OF I_MARC.
DATA: BEGIN OF I_MARD OCCURS 0,
MATNR LIKE MARD-MATNR,
LGORT LIKE MARD-LGORT,
ERSDA LIKE MARD-ERSDA,
LABST LIKE MARD-LABST,
WERKS LIKE MARD-WERKS,
END OF I_MARD.
DATA: BEGIN OF I_MBEW OCCURS 0,
MATNR LIKE MBEW-MATNR,
BWKEY LIKE MBEW-BWKEY,
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
END OF I_MBEW.
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MATKL LIKE MARA-MATKL,
MEINS LIKE MARA-MEINS,
MBRSH LIKE MARA-MBRSH,
END OF I_MARA.
DATA: BEGIN OF I_MVKE OCCURS 0,
MATNR LIKE MVKE-MATNR,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VRKME LIKE MVKE-VRKME,
END OF I_MVKE.
DATA: BEGIN OF I_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_MAKT.
DATA: BEGIN OF I_OUT OCCURS 0,
MATNR LIKE MARC-MATNR,
MEINS LIKE MARA-MEINS,
MBRSH LIKE MARA-MBRSH,
MATKL LIKE MARA-MATKL,
MTART LIKE MARA-MTART,
WERKS LIKE MARD-WERKS,
EKGRP LIKE MARC-EKGRP,
PSTAT LIKE MARC-PSTAT,
LGORT LIKE MARD-LGORT,
ERSDA LIKE MARD-ERSDA,
LABST LIKE MARD-LABST,
BWKEY LIKE MBEW-BWKEY,
STPRS LIKE MBEW-STPRS,
PEINH LIKE MBEW-PEINH,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
VRKME LIKE MVKE-VRKME,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_OUT.
&----
*& A T - S E L E C T I O N - S C R E E N *
&----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR . "OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-101.
PARAMETERS: P_WERKS LIKE MARD-WERKS.
SELECTION-SCREEN END OF BLOCK B2.
&----
*& T O P - O F - P A G E *
&----
TOP-OF-PAGE.
WRITE: / SY-ULINE.
SKIP.
WRITE : /84 'MATERIAL MASTER REPORT -- BASIC LIST',
SY-ULINE.
WRITE: /2 'MATNR',
22 'MEINS',
26 'MBRSH',
31 'MATKL',
42 'MTART',
49 'WERKS',
57 'EKGRP',
66 'PSTAT',
76 'LGORT',
82 'ERSDA',
92 'LABST',
107 'BWKEY',
113 'STPRS',
126 'PEINH',
133 'VKORG',
139 'VRKME',
144 'VTWEG',
148 'SPRAS',
151 'MAKTX'.
&----
*& E N D - O F - P A G E *
&----
END-OF-PAGE.
WRITE: / SY-ULINE.
SKIP.
WRITE: /85 'PAGNO: ',SY-PAGNO,
SY-ULINE.
&----
*& S T A R T - O F - S E L E C T I O N *
&----
START-OF-SELECTION.
SELECT MATNR EKGRP PSTAT FROM MARC INTO
CORRESPONDING FIELDS OF TABLE I_MARC
WHERE WERKS = P_WERKS AND MATNR IN S_MATNR.
SELECT MATNR MTART MBRSH MEINS MATKL FROM MARA INTO
CORRESPONDING FIELDS OF TABLE I_MARA FOR ALL ENTRIES IN I_MARC
WHERE MATNR EQ I_MARC-MATNR.
SELECT MATNR SPRAS MAKTX FROM MAKT INTO
CORRESPONDING FIELDS OF TABLE I_MAKT
FOR ALL ENTRIES IN I_MARC
WHERE MATNR = I_MARC-MATNR
.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD INTO
CORRESPONDING FIELDS OF TABLE
I_MARD FOR ALL ENTRIES IN I_MAKT
WHERE MATNR = I_MAKT-MATNR
AND WERKS = P_WERKS.
SELECT MATNR BWKEY STPRS PEINH FROM MBEW INTO TABLE I_MBEW
FOR ALL ENTRIES IN I_MARD
WHERE MATNR = I_MARD-MATNR.
SELECT MATNR VKORG VTWEG VRKME FROM MVKE INTO TABLE I_MVKE
FOR ALL ENTRIES IN I_MBEW
WHERE MATNR = I_MBEW-MATNR.
&----
*& E N D -- O F -- S E L E C T I O N *
&----
END-OF-SELECTION.
LOOP AT I_MARC.
MOVE I_MARC-MATNR TO I_OUT-MATNR.
*MOVE I_MARC-WERKS TO I_OUT-WERKS.
MOVE I_MARC-EKGRP TO I_OUT-EKGRP.
MOVE I_MARC-PSTAT TO I_OUT-PSTAT.
READ TABLE I_MARA WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MARA-MTART TO I_OUT-MTART.
MOVE I_MARA-MBRSH TO I_OUT-MBRSH.
MOVE I_MARA-MEINS TO I_OUT-MEINS.
MOVE I_MARA-MATKL TO I_OUT-MATKL.
READ TABLE I_MAKT WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MAKT-SPRAS TO I_OUT-SPRAS.
MOVE I_MAKT-MAKTX TO I_OUT-MAKTX.
READ TABLE I_MARD WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MARD-LGORT TO I_OUT-LGORT.
MOVE I_MARD-ERSDA TO I_OUT-ERSDA.
MOVE I_MARD-LABST TO I_OUT-LABST.
MOVE I_MARD-WERKS TO I_OUT-WERKS.
READ TABLE I_MBEW WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MBEW-BWKEY TO I_OUT-BWKEY.
MOVE I_MBEW-STPRS TO I_OUT-STPRS.
MOVE I_MBEW-PEINH TO I_OUT-PEINH.
READ TABLE I_MVKE WITH KEY MATNR = I_MARC-MATNR.
MOVE I_MVKE-VKORG TO I_OUT-VKORG.
MOVE I_MVKE-VTWEG TO I_OUT-VTWEG.
MOVE I_MVKE-VRKME TO I_OUT-VRKME.
APPEND I_OUT.
CLEAR I_OUT.
ENDLOOP.
LOOP AT I_OUT.
FORMAT HOTSPOT ON.
WRITE: /2 I_OUT-MATNR,
22 I_OUT-MEINS,
26 I_OUT-MBRSH,
31 I_OUT-MATKL,
42 I_OUT-MTART,
49 I_OUT-WERKS,
57 I_OUT-EKGRP,
66 I_OUT-PSTAT,
76 I_OUT-LGORT,
82 I_OUT-ERSDA,
92 I_OUT-LABST,
107 I_OUT-BWKEY,
113 I_OUT-STPRS,
126 I_OUT-PEINH,
133 I_OUT-VKORG,
139 I_OUT-VRKME,
144 I_OUT-VTWEG,
148 I_OUT-SPRAS,
151 I_OUT-MAKTX.
HIDE I_OUT-MATNR.
FORMAT HOTSPOT OFF.
ENDLOOP.
&----
*& A T - L I N E - S E L E C T I O N *
&----
AT LINE-SELECTION.
SET PF-STATUS 'SELECTION'.
CASE SY-LSIND.
WHEN 1.
SELECT MATNR LGORT ERSDA LABST WERKS FROM MARD
INTO TABLE I_MARD WHERE MATNR = I_OUT-MATNR
AND WERKS = P_WERKS.
IF SY-SUBRC = 0.
LOOP AT I_MARD.
WINDOW STARTING AT 20 60.
WRITE:/ 'MATERIAL NUMBER:'.
WRITE: I_MARD-MATNR.
WRITE:/ 'PLANT:'.
WRITE: I_MARD-WERKS.
WRITE:/ 'STORAGE LOCATION:' .
WRITE: I_MARD-LGORT.
SKIP.
ENDLOOP.
ELSE.
MESSAGE E000(1)
WITH 'PLEASE SELECT PLANT WHICH YOU GIVEN IN SELECTON'.
ENDIF.
ENDCASE.
&----
*& A T - U S E R - C O M M O N D *
&----
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'BASICDATA'.
PERFORM BASIC.
WHEN 'SALESDATA'.
perform SALES.
WHEN 'MRPDATA'.
perform MRP.
ENDCASE.
----
FORM BASIC
----
FORM BASIC.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=AUSW'.
perform bdc_field using 'RMMG1-MATNR'
I_OUT-MATNR.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
'X'.
perform bdc_transaction using 'MM03'.
ENDFORM.
----
FORM SALES
----
FORM SALES.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=AUSW'.
perform bdc_field using 'RMMG1-MATNR'
I_OUT-MATNR.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(04)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(04)'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '0080'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-WERKS'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-WERKS'
'3000'.
perform bdc_transaction using 'MM03'.
ENDFORM.
----
FORM MRP
----
FORM MRP.
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=AUSW'.
perform bdc_field using 'RMMG1-MATNR'
I_OUT-MATNR.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(06)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(06)'
'X'.
perform bdc_dynpro using 'SAPLMGMM' '0080'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-LGORT'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'RMMG1-WERKS'
'3000'.
perform bdc_field using 'RMMG1-LGORT'
'0001'.
perform bdc_transaction using 'MM03'.
ENDFORM.
----
FORM BDC_TRANSACTION *
----
FORM bdc_transaction USING tcode.
CALL TRANSACTION tcode USING bdcdata MODE 'E'.
ENDFORM.
----
FORM BDC_DYNPRO *
----
----
--> PROGRAM *
--> DYNPRO *
----
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM.
*----
*
Insert field *
*----
*
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM.
Thanks and Regards
seenu
‎2007 Feb 07 5:58 PM
If you want only Rich Heilman help, may be you should send a mail to him.
Regards.
‎2007 Feb 07 5:58 PM
If you want only Rich Heilman help, may be you should send a mail to him.
Regards.
‎2007 Feb 07 6:04 PM
‎2007 Feb 07 6:09 PM
I think you are missing the step to clear the bdcdata. Please add the clear and refresh here..
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'BASICDATA'.
clear bdcdata. refresh bdcdata.
PERFORM BASIC.
WHEN 'SALESDATA'.
clear bdcdata. refresh bdcdata.
perform SALES.
WHEN 'MRPDATA'.
clear bdcdata. refresh bdcdata.
perform MRP.
ENDCASE.
Regards,
Rich Heilman
‎2007 Feb 07 6:20 PM
HI,
SORRY FOR THAT. YESTERDAY HE WAS DEALING WITH THAT PIECE OF CODE. SO I REFERRED HIS NAME. I DEFINITELY KNOW THERE'S A LOT OF TALENT IN HERE. THATS THE REASON I COME HERE TO LEARN ABAP. ITS HERE THAT I LEARNT MOSTLY.
SEENU
‎2007 Feb 07 6:44 PM
Hi,
If you want to display the material, you can use a simple logic like
set parameter id 'MAT' FIELD I_OUT-MATNR.
CALL TRANSACTION 'MM03' and skip first screen.
Hope this helps your problem.
Enjoy SAP
Rajasekhar