FUNCTION yfm_rfc_practice_102.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(GV_MAX_ROW) TYPE I DEFAULT 100
*" TABLES
*" GI_HEADER STRUCTURE YTA_HEADER_101 OPTIONAL
*" GR_MATKL STRUCTURE YST_RANGE_MATKL OPTIONAL
*" GR_MATNR STRUCTURE YST_RANGE_MATNR OPTIONAL
*"----------------------------------------------------------------------
DATA: gi_makt TYPE STANDARD TABLE OF makt WITH HEADER LINE,
gi_t006a TYPE STANDARD TABLE OF t006a WITH HEADER LINE.
DATA: lv_counter TYPE i.
* Collect Master Material
SELECT matnr matkl bismt meins
INTO CORRESPONDING FIELDS OF TABLE gi_header
FROM mara
WHERE
matkl IN gr_matkl AND
matnr IN gr_matnr.
* Collect Material Decription
SELECT matnr maktx
INTO CORRESPONDING FIELDS OF TABLE gi_makt
FROM makt
FOR ALL ENTRIES IN gi_header
WHERE
matnr = gi_header-matnr AND
spras = sy-langu.
* Collect Measurement Text
SELECT msehi mseht
INTO CORRESPONDING FIELDS OF TABLE gi_t006a
FROM t006a
FOR ALL ENTRIES IN gi_header
WHERE
msehi = gi_header-meins AND
spras = sy-langu.
*Get other requirement information
LOOP AT gi_header.
* Max Row Checking
ADD 1 TO lv_counter.
IF lv_counter <= gv_max_row OR gv_max_row = 0.
* Get Material Description
READ TABLE gi_makt WITH KEY matnr = gi_header-matnr.
IF sy-subrc = 0.
gi_header-maktx = gi_makt-maktx.
ENDIF.
* Get Measurement Text
READ TABLE gi_t006a WITH KEY msehi = gi_header-meins.
IF sy-subrc = 0.
gi_header-mseht = gi_t006a-mseht.
ENDIF.
MODIFY gi_header.
ELSE.
DELETE gi_header.
ENDIF.
ENDLOOP.
ENDFUNCTION.
|