REPORT Z_MATHESAN.
tables: AFIH, AUFK,JEST,TJ30T.
DATA: lv_char(100) TYPE C.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: S_AUFNR1 FOR lv_char ."OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN.
"***Selection screen validations***
IF S_AUFNR1 IS INITIAL.
message : e953(zidx) with 'Please enter Service order'(002).
ENDIF.
START-OF-SELECTION.
TYPES: BEGIN OF T_AUFK,
AUFNR TYPE AUFNR,
ERNAM TYPE AUFAENAM,
ERDAT TYPE AUFERFDAT,
ERFZEIT TYPE CO_INS_TIME,
OBJNR TYPE J_OBJNR,
STAT TYPE J_STATUS,
UDATE TYPE UDATE,
UTIME TYPE UTIME,
INACT TYPE J_INACT,
STSMA TYPE J_STSMA,
ESTAT TYPE J_ESTAT,
ISTAT TYPE J_ISTAT,
SPRAS TYPE SPRAS,
TXT30 TYPE J_TXT30,
SSTAT TYPE J_TXT30,
END OF T_AUFK.
DATA: LT_JOIN TYPE TABLE OF T_AUFK,
lwa_JOIN type T_AUFK,
TT_JOIN TYPE TABLE OF T_AUFK,
twa_join TYPE t_aufk,
kt_join TYPE TABLE OF t_aufk,
kwa_join type t_aufk,
MT_join TYPE TABLE OF t_aufk,
mwa_join type t_aufk.
SELECT a~AUFNR
a~ERNAM
a~ERDAT
a~ERFZEIT
a~OBJNR
b~STAT
b~UDATE
b~UTIME
b~INACT
FROM AUFK AS a
INNER JOIN JCDS AS b
ON a~OBJNR EQ b~OBJNR
INTO CORRESPONDING FIELDS OF TABLE LT_JOIN
where a~AUFNR In s_aufnr1 and
b~INACT EQ '' and
b~STAT LIKE 'I%'.
SORT LT_JOIN by UDATE UTIME DESCENDING.
loop at lt_join INTO lwa_join.
kwa_join-AUFNR = lwa_join-aufnr.
kwa_join-ERNAM = lwa_join-ERNAM.
kwa_join-ERDAT = lwa_join-ERDAT.
kwa_join-ERFZEIT = lwa_join-ERFZEIT.
kwa_join-STAT = lwa_join-STAT.
ENDLOOP.
select c~STAT
c~INACT
c~OBJNR
d~STSMA
d~ESTAT
d~SPRAS
d~TXT30
from JEST as c INNER JOIN TJ30T as d on c~STAT EQ d~ESTAT
INTO CORRESPONDING FIELDS OF TABLE TT_JOIN FOR ALL ENTRIES IN LT_JOIN
WHERE c~OBJNR eq lt_join-objnr and
d~STSMA EQ 'ZEDFE'.
loop at tt_join INTO twa_join.
kwa_join-STSMA = twa_join-STSMA.
kwa_join-ESTAT = twa_join-ESTAT.
kwa_join-TXT30 = twa_join-TXT30.
ENDLOOP.
select b~STAT
b~UDATE
b~UTIME
b~INACT
b~OBJNR
e~ISTAT
e~SPRAS
e~TXT30
from JCDS as b INNER JOIN TJ02T as e
on b~STAT EQ e~ISTAT
INTO CORRESPONDING FIELDS OF TABLE MT_JOIN FOR ALL ENTRIES IN LT_JOIN
WHERE b~OBJNR eq lt_join-objnr and
b~INACT EQ '' and
e~SPRAS EQ 'E'.
loop at mt_join INTO mwa_join.
kwa_join-ISTAT = mwa_join-ISTAT.
kwa_join-SSTAT = mwa_join-TXT30.
ENDLOOP.
APPEND kwa_join to kt_join.
END-OF-SELECTION.
* Generating the ALV log
DATA: lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: lwa_fieldcat TYPE slis_fieldcat_alv.
DATA: lwa_layout TYPE slis_layout_alv.
* lwa_layout-colwidth_optimize = 'X'.
lwa_fieldcat-fieldname = 'AUFNR'.
lwa_fieldcat-seltext_m = 'Order'.
APPEND lwa_fieldcat to lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'ERNAM'.
lwa_fieldcat-seltext_m = 'Entered by'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'ERDAT'.
lwa_fieldcat-seltext_m = 'Date'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'ERFZEIT'.
lwa_fieldcat-seltext_m = 'TimCreated'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'STAT'.
lwa_fieldcat-seltext_m = 'STATUS'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'STSMA'.
lwa_fieldcat-seltext_m = 'Status Profile'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'ESTAT'.
lwa_fieldcat-seltext_m = 'UserStat.'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'TXT30'.
lwa_fieldcat-seltext_m = 'Description'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'ISTAT'.
lwa_fieldcat-seltext_m = 'SYs.Stat.'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
lwa_fieldcat-fieldname = 'SSTAT'.
lwa_fieldcat-seltext_m = 'Description'.
APPEND lwa_fieldcat TO lt_fieldcat.
CLEAR lwa_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IS_LAYOUT = lwa_layout
IT_FIELDCAT = lt_fieldcat
TABLES
T_OUTTAB = KT_JOIN
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.