
*&---------------------------------------------------------------------*
*& Report ZMAP_FIELD_INFOOBJECT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMAP_FIELD_INFOOBJECT.
TABLES: RSTRAN, RSTRANRULE, RSTRANFIELD.
TYPES: BEGIN OF ST_RESULT,
ZFIELDNM TYPE RSFIELDNM,
ZIOBJNM TYPE RSIOBJNM,
SOURCETYPE TYPE RSO_TLOGO_SUBTYPE,
SOURCENAME TYPE SOBJ_NAME,
TARGETTYPE TYPE RSTLOGO,
TARGETNAME TYPE SOBJ_NAME,
TRANID TYPE RSTRANID,
OBJVERS TYPE RSOBJVERS,
RULEID TYPE RSTRAN_RULEID,
SEQNR TYPE RSTRAN_SEQNR,
GROUPID TYPE RSTRAN_GROUPID,
GROUPTYPE TYPE RSTRAN_GROUPTYPE,
RULETYPE TYPE RSTRAN_RULETYPE,
SEGID TYPE RSTRAN_SEGID,
STEPID TYPE RSTRAN_STEPID,
PARAMTYPE TYPE RSTRAN_PARAMTYPE,
PARAMNM TYPE RSFIELDNM,
FIELDTYPE TYPE RSTRAN_FIELDTYPE,
RULEPOSIT TYPE RSPOSIT,
ZSOURCE_POSIT TYPE RSPOSIT,
ZTARGET_POSIT TYPE RSPOSIT,
END OF ST_RESULT.
DATA: WA_RESULT TYPE ST_RESULT,
WA_RESULT1 TYPE ST_RESULT,
WA_RESULT2 TYPE ST_RESULT,
IT_RESULT TYPE TABLE OF ST_RESULT,
IT_RESULT1 TYPE TABLE OF ST_RESULT,
IT_RESULT2 TYPE TABLE OF ST_RESULT,
LV_COUNT TYPE I,
GR_TABLE TYPE REF TO CL_SALV_TABLE.
SELECT-OPTIONS: P_FIELD FOR RSTRANFIELD-FIELDNM.
SELECT RSTRAN~TRANID
RSTRAN~OBJVERS
RSTRAN~SOURCETYPE
RSTRAN~SOURCENAME
RSTRAN~TARGETTYPE
RSTRAN~TARGETNAME
RSTRANRULE~RULEID
RSTRANRULE~SEQNR
RSTRANRULE~GROUPID
RSTRANRULE~GROUPTYPE
RSTRANRULE~RULETYPE
RSTRANFIELD~SEGID
RSTRANFIELD~STEPID
RSTRANFIELD~PARAMTYPE "0=Importing - 1=Exporting
RSTRANFIELD~PARAMNM
RSTRANFIELD~FIELDTYPE "F=Field - I=InfoObject
RSTRANFIELD~RULEPOSIT
INTO CORRESPONDING FIELDS OF TABLE IT_RESULT1
FROM RSTRAN
INNER JOIN RSTRANRULE ON RSTRAN~TRANID = RSTRANRULE~TRANID
AND RSTRAN~OBJVERS = RSTRANRULE~OBJVERS
INNER JOIN RSTRANFIELD ON RSTRANRULE~TRANID = RSTRANFIELD~TRANID
AND RSTRANRULE~OBJVERS = RSTRANFIELD~OBJVERS
AND RSTRANRULE~RULEID = RSTRANFIELD~RULEID
WHERE RSTRAN~OBJVERS = 'D' "Content
AND RSTRAN~SOURCETYPE = 'RSDS' "DataSource
AND RSTRANRULE~RULETYPE IN ('DIRECT' , 'TIME').
APPEND LINES OF IT_RESULT1 TO IT_RESULT.
DELETE IT_RESULT WHERE PARAMNM NOT IN P_FIELD.
DELETE IT_RESULT WHERE PARAMTYPE NE 0
AND FIELDTYPE NE 'F'.
SORT IT_RESULT BY TRANID RULEID.
CLEAR: WA_RESULT.
LOOP AT IT_RESULT INTO WA_RESULT.
WA_RESULT-ZSOURCE_POSIT = WA_RESULT-RULEPOSIT.
WA_RESULT-ZFIELDNM = WA_RESULT-PARAMNM.
CLEAR: WA_RESULT1, LV_COUNT, IT_RESULT2.
LOOP AT IT_RESULT1 INTO WA_RESULT1 WHERE TRANID = WA_RESULT-TRANID
AND RULEID = WA_RESULT-RULEID
AND PARAMTYPE = 1
AND FIELDTYPE = 'I'.
APPEND WA_RESULT1 TO IT_RESULT2.
ENDLOOP.
IF SY-SUBRC NE 0.
ENDIF.
DESCRIBE TABLE IT_RESULT2 LINES LV_COUNT.
IF LV_COUNT = 1.
WA_RESULT-ZTARGET_POSIT = WA_RESULT1-RULEPOSIT.
WA_RESULT-ZIOBJNM = WA_RESULT1-PARAMNM.
ENDIF.
MODIFY IT_RESULT FROM WA_RESULT.
ENDLOOP.
DELETE IT_RESULT WHERE ZIOBJNM IS INITIAL.
SORT IT_RESULT BY ZFIELDNM ZIOBJNM SOURCETYPE TARGETTYPE SOURCENAME TARGETNAME.
CALL METHOD CL_SALV_TABLE=>FACTORY
IMPORTING
R_SALV_TABLE = GR_TABLE
CHANGING
T_TABLE = IT_RESULT.
CALL METHOD GR_TABLE->DISPLAY.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
9 | |
6 | |
6 | |
6 | |
5 | |
5 | |
4 | |
4 | |
4 | |
4 |