Sunteți pe pagina 1din 17

*&-----------------------------------------------------------------------------*

*& Include ZSDAPI0007_FF


*&-----------------------------------------------------------------------------*
*& Description:
*& Subroutine Processing
*&
*& Developer-ID Developer Name Ticket Number Transport# Date-of-creation
*& CCHAUDHARYR Rohan Chaudhary HD-51930 DWTK942895 28-02-2018
*& DWTK943104
*&-----------------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_FCAT
*&---------------------------------------------------------------------*
* Preparing Field Catalogue
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_fcat .
TYPE-POOLS : abap.
*********************************************************************************
* DECLARATION FOR WORK AREA And LOCAL VARIABLE
*********************************************************************************

DATA: lw_fieldcat TYPE slis_fieldcat_alv,


lw_component TYPE abap_compdescr,
lw_textpool TYPE textpool,
lv_pos TYPE i,
lv_repid LIKE sy-repid,
lv_tabix LIKE sy-tabix,
lv_desc_tab TYPE REF TO cl_abap_tabledescr,
lv_desc_str TYPE REF TO cl_abap_structdescr.
**********************************************************************************
* LOCAL INTERNAL TABLE (LT_)
**********************************************************************************

DATA : lt_textpool TYPE STANDARD TABLE OF textpool,


lt_comp TYPE STANDARD TABLE OF abap_compdescr.

********************************************************************************
* LOCAL CONSTANT (LC_)
********************************************************************************

DATA : lc_just TYPE lvc_just VALUE 'C',


lc_15 TYPE outputlen VALUE '15',
lc_x TYPE c VALUE 'X',
lc_50 TYPE outputlen VALUE '50',
lc_txt4(5) TYPE c VALUE 'TXT04',
lc_txt41(6) TYPE c VALUE 'TXT041',
lc_pltxt(5) TYPE c VALUE 'PLTXT',
lc_aufnr(5) TYPE c VALUE 'AUFNR'.

READ TEXTPOOL 'ZSDAPRE0007' INTO lt_textpool LANGUAGE 'EN'.


IF NOT lt_textpool IS INITIAL.
lv_desc_tab ?= cl_abap_tabledescr=>describe_by_data( it_final ).
lv_desc_str ?= lv_desc_tab->get_table_line_type( ).
LOOP AT lv_desc_str->components INTO lw_component.
lv_tabix = sy-tabix.
IF NOT lw_component IS INITIAL.
READ TABLE lt_textpool INTO lw_textpool INDEX lv_tabix.
IF sy-subrc = 0.
lv_pos = lv_pos + 1.
lw_fieldcat-col_pos = lv_pos.
lw_fieldcat-fieldname = lw_component-name.
lw_fieldcat-seltext_l = lw_textpool-entry.
lw_fieldcat-just = lc_just.
IF lw_component-name = lc_txt4 OR lw_component-name = lc_txt41 OR
lw_component-name = lc_pltxt.
lw_fieldcat-outputlen = lc_50 .
ELSE.
lw_fieldcat-outputlen = lc_15.
ENDIF.
IF lw_component-name = lc_aufnr.
lw_fieldcat-no_zero = 'X'.
ENDIF.
APPEND lw_fieldcat TO it_fieldcatelog.
CLEAR : lw_fieldcat, lv_tabix .
CLEAR : lw_component,lw_textpool.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FCAT
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* Fetching Data
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .
TYPES:
BEGIN OF ty_aufk,
aufnr TYPE aufnr,
autyp TYPE auftyp,
auart TYPE aufart,
ernam TYPE auferfnam,
erdat TYPE auferfdat,
aenam TYPE aufaenam,
aedat TYPE aufaedat,
werks TYPE werks_d,
phas0 TYPE aufphas0 ,
phas1 TYPE aufphas0 ,
phas2 TYPE aufphas0 ,
phas3 TYPE aufphas0 ,
objnr TYPE j_objnr,
kdauf TYPE kdauf,
z_busin_segm TYPE kvgr1,
yybstnk TYPE yybstnk,
gksti TYPE dgeskosist,
END OF ty_aufk,

BEGIN OF ty_qmel,
qmtxt TYPE qmtxt,
aufnr TYPE aufnr,
vkbur TYPE vkbur,
END OF ty_qmel,
BEGIN OF ty_crhd,
objid TYPE cr_objid,
arbpl TYPE arbpl,
END OF ty_crhd,

BEGIN OF ty_afih,
aufnr TYPE aufnr,
priok TYPE priok,
iloan TYPE iloan,
ilart TYPE ila,
gewrk TYPE lgwid,
END OF ty_afih,

BEGIN OF ty_t356_t,
spras TYPE spras,
priok TYPE priok,
priokx TYPE priokx,
END OF ty_t356_t,

BEGIN OF ty_iloa,
iloan TYPE iloan,
tplnr TYPE tplnr,
END OF ty_iloa,

BEGIN OF ty_iflotx,
tplnr TYPE tplnr,
spras TYPE spras,
pltxt TYPE pltxt,
END OF ty_iflotx,

BEGIN OF ty_veda,
vbeln TYPE vbeln_va,
vbegdat TYPE vbdat_veda,
venddat TYPE vndat_veda,
END OF ty_veda,

BEGIN OF ty_jest,
objnr TYPE j_objnr,
stat TYPE j_status,
inact TYPE j_inact,
END OF ty_jest,

BEGIN OF ty_tj02t,
istat TYPE j_istat,
spras TYPE spras,
txt04 TYPE j_txt04,
END OF ty_tj02t,

BEGIN OF ty_jsto,
objnr TYPE j_objnr,
stsma TYPE j_stsma,
stat TYPE j_txt04,
END OF ty_jsto,

BEGIN OF ty_tj30t,
stsma TYPE j_stsma,
estat TYPE j_estat,
spras TYPE spras,
txt04 TYPE j_txt04,
END OF ty_tj30t,

BEGIN OF ty_vbak,
vbeln TYPE vbeln_va,
kvgr1 TYPE kvgr1,
END OF ty_vbak,

BEGIN OF ty_tvv1t,
kvgr1 TYPE kvgr1,
bezei TYPE bezei20,
END OF ty_tvv1t,

BEGIN OF ty_afvc,
aufpl TYPE co_aufpl,
aplzl TYPE co_aplzl,
larnt TYPE lstar,
END OF ty_afvc,

BEGIN OF ty_afvv,
aufpl TYPE co_aufpl,
aplzl TYPE co_aplzl,
arbei TYPE arbeit,
ntend TYPE vorgabeend2,
END OF ty_afvv,

BEGIN OF ty_afko,
aufnr TYPE aufnr,
aufpl TYPE co_aufpl,
gltrp TYPE co_gltrp,
END OF ty_afko,

BEGIN OF ty_pmco,
objnr TYPE bp_objekt,
wrttp TYPE co_wrttp,
wrt00 TYPE bp_wpl,
wrt01 TYPE bp_wpl,
wrt02 TYPE bp_wpl,
wrt03 TYPE bp_wpl,
wrt04 TYPE bp_wpl,
wrt05 TYPE bp_wpl,
wrt06 TYPE bp_wpl,
wrt07 TYPE bp_wpl,
wrt08 TYPE bp_wpl,
wrt09 TYPE bp_wpl,
wrt10 TYPE bp_wpl,
wrt11 TYPE bp_wpl,
wrt12 TYPE bp_wpl,
wrt13 TYPE bp_wpl,
wrt14 TYPE bp_wpl,
wrt15 TYPE bp_wpl,
wrt16 TYPE bp_wpl,
wrtsm TYPE bp_wpl,
END OF ty_pmco,

BEGIN OF ty_crtx,
objid TYPE cr_objid,
ktext_up TYPE cr_ktextup,
END OF ty_crtx,

BEGIN OF ty_text,
value TYPE j_txt04,
END OF ty_text,

BEGIN OF ty_jeststat,
objnr TYPE objnr,
stats TYPE status,
ustat TYPE status,
END OF ty_jeststat.

************************************************************************
* DECLARATION FOR INTERNAL TABLE
************************************************************************
DATA : lt_aufk TYPE STANDARD TABLE OF ty_aufk INITIAL SIZE 0,
lt_qmel TYPE STANDARD TABLE OF ty_qmel INITIAL SIZE 0,
lt_crhd TYPE STANDARD TABLE OF ty_crhd INITIAL SIZE 0,
lt_afih TYPE STANDARD TABLE OF ty_afih INITIAL SIZE 0,
lt_t356_t TYPE STANDARD TABLE OF ty_t356_t INITIAL SIZE 0,
lt_iloa TYPE STANDARD TABLE OF ty_iloa INITIAL SIZE 0,
lt_iflotx TYPE STANDARD TABLE OF ty_iflotx INITIAL SIZE 0,
lt_veda TYPE STANDARD TABLE OF ty_veda INITIAL SIZE 0,
lt_jest TYPE STANDARD TABLE OF ty_jest INITIAL SIZE 0,
lt_jest_tmp TYPE STANDARD TABLE OF ty_jest INITIAL SIZE 0,
lt_jest1 TYPE STANDARD TABLE OF ty_jest INITIAL SIZE 0,
lt_tj02t TYPE STANDARD TABLE OF ty_tj02t INITIAL SIZE 0,
lt_jsto TYPE STANDARD TABLE OF ty_jsto INITIAL SIZE 0,
lt_tj30t TYPE STANDARD TABLE OF ty_tj30t INITIAL SIZE 0,
lt_vbak TYPE STANDARD TABLE OF ty_vbak INITIAL SIZE 0,
lt_tvv1t TYPE STANDARD TABLE OF ty_tvv1t INITIAL SIZE 0,
lt_afko TYPE STANDARD TABLE OF ty_afko INITIAL SIZE 0,
lt_afvc TYPE STANDARD TABLE OF ty_afvc INITIAL SIZE 0,
lt_afvv TYPE STANDARD TABLE OF ty_afvv INITIAL SIZE 0,
lt_pmco TYPE STANDARD TABLE OF ty_pmco INITIAL SIZE 0,
lt_pmco1 TYPE STANDARD TABLE OF ty_pmco INITIAL SIZE 0,
lt_crtx TYPE STANDARD TABLE OF ty_crtx INITIAL SIZE 0,
lt_text TYPE STANDARD TABLE OF ty_text INITIAL SIZE 0,
lt_text1 TYPE STANDARD TABLE OF ty_text INITIAL SIZE 0,
lt_jeststat TYPE STANDARD TABLE OF ty_jeststat INITIAL SIZE 0,
lt_zsdapv0001 TYPE STANDARD TABLE OF zsdapv0001 INITIAL SIZE 0.

************************************************************************
* DECLARATION FOR WORK AREA
************************************************************************
DATA : lw_aufk TYPE ty_aufk ,
lw_qmel TYPE ty_qmel ,
lw_crhd TYPE ty_crhd ,
lw_afih TYPE ty_afih ,
lw_t356_t TYPE ty_t356_t ,
lw_iloa TYPE ty_iloa ,
lw_iflotx TYPE ty_iflotx ,
lw_veda TYPE ty_veda ,
lw_jest TYPE ty_jest ,
lw_jest1 TYPE ty_jest ,
lw_jest_tmp TYPE ty_jest ,
lw_tj02t TYPE ty_tj02t ,
lw_jsto TYPE ty_jsto ,
lw_tj30t TYPE ty_tj30t ,
lw_vbak TYPE ty_vbak ,
lw_tvv1t TYPE ty_tvv1t ,
lw_afko TYPE ty_afko ,
lw_afvc TYPE ty_afvc ,
lw_afvv TYPE ty_afvv ,
lw_pmco TYPE ty_pmco ,
lw_pmco1 TYPE ty_pmco ,
lw_crtx TYPE ty_crtx ,
lw_text TYPE ty_text ,
lw_text1 TYPE ty_text ,
lw_jeststat TYPE ty_jeststat,
lw_final TYPE ty_final,
lw_zsdapv0001 TYPE zsdapv0001.

************************************************************************
* DECLARATION FOR LOCAL VARIABLE
************************************************************************
DATA : lv_syst TYPE status,
lv_usrst TYPE status,
lv_index TYPE sy-tabix,
lv_tabix TYPE sy-tabix,
lv_lines TYPE sy-tfill,
lv_sum TYPE bp_wpl,
lv_wrt00 TYPE bp_wpl,
lv_wrt01 TYPE bp_wpl,
lv_wrt02 TYPE bp_wpl,
lv_wrt03 TYPE bp_wpl,
lv_wrt04 TYPE bp_wpl,
lv_wrt05 TYPE bp_wpl,
lv_wrt06 TYPE bp_wpl,
lv_wrt07 TYPE bp_wpl,
lv_wrt08 TYPE bp_wpl,
lv_wrt09 TYPE bp_wpl,
lv_wrt10 TYPE bp_wpl,
lv_wrt11 TYPE bp_wpl,
lv_wrt12 TYPE bp_wpl,
lv_wrt13 TYPE bp_wpl,
lv_wrt14 TYPE bp_wpl,
lv_wrt15 TYPE bp_wpl,
lv_wrt16 TYPE bp_wpl,

flag TYPE c VALUE '0',


flag1 TYPE c VALUE '0',
lv_subrc LIKE sy-subrc.

************************************************************************
* Data Fteching
************************************************************************

SELECT * FROM zsdapv0001 INTO TABLE lt_zsdapv0001


WHERE autyp = '30'
AND werks IN s_werks
AND auart IN s_auart
AND erdat IN s_erdat
AND phas2 = space
AND phas3 = space
AND z_busin_segm IN s_kvgr1.
IF sy-subrc = 0.
SORT lt_zsdapv0001 by aufnr objnr kdauf z_busin_segm
aufpl priok iloan.
ENDIF.

* SELECT aufnr
* autyp
* auart
* ernam
* erdat
* aenam
* aedat
* werks
* phas0
* phas1
* phas2
* phas3
* objnr
* kdauf
* z_busin_segm
* yybstnk
* FROM aufk INTO TABLE lt_aufk
* WHERE autyp = '30'
* AND werks IN s_werks
* AND auart IN s_auart
* AND erdat IN s_erdat
* AND phas2 = space
* AND phas3 = space
* AND z_busin_segm IN s_kvgr1.
* IF sy-subrc = 0.
* SORT lt_aufk BY aufnr objnr kdauf z_busin_segm.
* ENDIF.
IF NOT lt_zsdapv0001 IS INITIAL.
* SELECT aufnr
* aufpl
* gltrp
* FROM afko INTO TABLE lt_afko
* FOR ALL ENTRIES IN lt_aufk
* WHERE aufnr = lt_aufk-aufnr.
* IF sy-subrc = 0.
* SORT lt_afko BY aufpl.
* ENDIF.
* IF NOT lt_afko IS INITIAL.
SELECT aufpl
aplzl
larnt
FROM afvc INTO TABLE lt_afvc
FOR ALL ENTRIES IN lt_zsdapv0001
WHERE aufpl = lt_zsdapv0001-aufpl
AND larnt IN s_larnt.

IF sy-subrc = 0 .
SORT lt_afvc BY aufpl aplzl.
ENDIF.
IF NOT lt_afvc IS INITIAL.
SELECT aufpl
aplzl
arbei
ntend
FROM afvv INTO TABLE lt_afvv
FOR ALL ENTRIES IN lt_afvc
WHERE aufpl = lt_afvc-aufpl
AND aplzl = lt_afvc-aplzl.
IF sy-subrc = 0.
SORT lt_afvv BY aufpl aplzl.
ENDIF.
ENDIF.
ENDIF.

SELECT vbeln
kvgr1
FROM vbak INTO TABLE lt_vbak
FOR ALL ENTRIES IN lt_zsdapv0001
WHERE vbeln = lt_zsdapv0001-kdauf
AND kvgr1 IN s_kvgr1.
IF sy-subrc = 0.
SORT lt_vbak BY vbeln kvgr1.
ENDIF.
IF NOT lt_vbak IS INITIAL .
SELECT kvgr1
bezei
FROM tvv1t INTO TABLE lt_tvv1t
ORDER BY kvgr1 bezei ASCENDING.
ENDIF.
SELECT qmtxt
aufnr
vkbur
FROM qmel INTO TABLE lt_qmel
FOR ALL ENTRIES IN lt_zsdapv0001
WHERE aufnr = lt_zsdapv0001-aufnr
AND vkbur IN s_vkbur.
IF sy-subrc = 0.
SORT lt_qmel BY aufnr.
ENDIF.
* SELECT aufnr
* priok
* iloan
* ilart
* gewrk
* FROM afih INTO TABLE lt_afih
* FOR ALL ENTRIES IN lt_aufk
* WHERE aufnr = lt_aufk-aufnr.
* IF sy-subrc = 0 .
* SORT lt_afih BY aufnr priok iloan.
* ENDIF.
* IF NOT lt_afih IS INITIAL.
* SELECT iloan
* tplnr
* FROM iloa INTO TABLE lt_iloa
* FOR ALL ENTRIES IN lt_afih
* WHERE iloan = lt_afih-iloan.
* IF sy-subrc = 0.
* SORT lt_iloa BY iloan tplnr.
* ENDIF.
* IF NOT lt_iloa IS INITIAL .
SELECT tplnr
spras
pltxt
FROM iflotx INTO TABLE lt_iflotx
FOR ALL ENTRIES IN lt_zsdapv0001
WHERE tplnr = lt_zsdapv0001-tplnr
AND spras = 'EN'.
IF sy-subrc = 0.
SORT lt_iflotx BY tplnr.
ENDIF.
* ENDIF.
SELECT spras
priok
priokx
FROM t356_t INTO TABLE lt_t356_t
FOR ALL ENTRIES IN lt_zsdapv0001
WHERE spras = 'EN'
AND priok = lt_zsdapv0001-priok.
IF sy-subrc = 0.
SORT lt_t356_t BY priok.
ENDIF.
SELECT objid
arbpl
FROM crhd INTO TABLE lt_crhd
FOR ALL ENTRIES IN lt_zsdapv0001
WHERE objid = lt_zsdapv0001-gewrk
AND arbpl IN s_arbpl.
IF sy-subrc = 0.
SORT lt_crhd BY objid.
ENDIF.
IF NOT lt_crhd IS INITIAL.
SELECT objid
ktext_up
FROM crtx INTO TABLE lt_crtx
FOR ALL ENTRIES IN lt_crhd
WHERE objid = lt_crhd-objid.
IF sy-subrc = 0.
SORT lt_crtx BY objid.
ENDIF.
ENDIF.
* ENDIF.
SELECT vbeln
vbegdat
venddat
FROM veda INTO TABLE lt_veda
FOR ALL ENTRIES IN lt_zsdapv0001
WHERE vbeln = lt_zsdapv0001-kdauf.
IF sy-subrc = 0 .
SORT lt_veda BY vbeln.
ENDIF.
* SORT lt_aufk BY objnr.
* CALL FUNCTION 'PM_WORKORDER_COSTS_LIST'
* EXPORTING
* list_currency = ' '
** PMCO_DETAIL = ' '
** ALL_CURRENCIES = ' '
** EXTERNAL_CALL = ' '
* TABLES
* list_aufk = lt_aufk
** LIST_PMCO =
** COMP_PMCO =
* EXCEPTIONS
* no_orders = 1
* no_currency = 2
* no_costs_found = 3
* OTHERS = 4
* .
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
*
SELECT objnr
wrttp
wrt00
wrt01
wrt02
wrt03
wrt04
wrt05
wrt06
wrt07
wrt08
wrt09
wrt10
wrt11
wrt12
wrt13
wrt14
wrt15
wrt16
FROM pmco INTO TABLE lt_pmco
FOR ALL ENTRIES IN lt_zsdapv0001
WHERE objnr = lt_zsdapv0001-objnr
AND wrttp = '04'.
IF sy-subrc = 0.
SORT lt_pmco BY objnr.
ENDIF.
* SELECT objnr
* stat
* inact
* FROM jest INTO TABLE lt_jest
* FOR ALL ENTRIES IN lt_aufk
* WHERE objnr = lt_aufk-objnr
* AND stat IN ('I0001','I0002')
* AND inact = ' '
* %_HINTS ORACLE 'INDEX("JEST","JEST~Z01")'.
* IF sy-subrc = 0.
* SORT lt_jest BY objnr stat.
* ENDIF.
* SELECT objnr
* stat
* inact
* FROM jest INTO TABLE lt_jest1
* FOR ALL ENTRIES IN lt_jest
* WHERE objnr = lt_jest-objnr
* AND inact = ' '
* %_HINTS ORACLE 'INDEX("JEST","JEST~Z01")'.
* IF sy-subrc = 0.
* SORT lt_jest1 BY objnr stat.
* ENDIF.

* IF NOT lt_jest1 IS INITIAL.


* SELECT stsma
* estat
* spras
* txt04
* FROM tj30t INTO TABLE lt_tj30t
* FOR ALL ENTRIES IN lt_jest1
* WHERE estat = lt_jest1-stat
* AND spras = 'EN'.
* IF sy-subrc = 0.
* SORT lt_tj30t BY stsma estat.
* ENDIF.
* SELECT objnr
* stsma
* FROM jsto INTO TABLE lt_jsto
* FOR ALL ENTRIES IN lt_jest1
* WHERE objnr = lt_jest1-objnr.
* IF sy-subrc = 0.
* SORT lt_jsto BY objnr stsma.
* ENDIF.
* SELECT istat
* spras
* txt04
* FROM tj02t INTO TABLE lt_tj02t
* FOR ALL ENTRIES IN lt_jest1
* WHERE istat = lt_jest1-stat
* AND spras = 'EN'.
* IF sy-subrc = 0.
* SORT lt_tj02t BY istat.
* ENDIF.
* ENDIF.
* ENDIF.

IF NOT lt_pmco IS INITIAL.


DESCRIBE TABLE lt_pmco LINES lv_lines.
lt_pmco1 = lt_pmco.
DELETE ADJACENT DUPLICATES FROM lt_pmco COMPARING objnr.

LOOP AT lt_pmco INTO lw_pmco.


READ TABLE lt_pmco1 INTO lw_pmco1 WITH KEY objnr = lw_pmco-objnr BINARY
SEARCH.
IF sy-subrc = 0.
lv_tabix = sy-tabix.
LOOP AT lt_pmco1 INTO lw_pmco1 FROM lv_tabix.
lv_index = sy-tabix.
IF lw_pmco-objnr NE lw_pmco1-objnr.
lv_sum = lv_wrt00 + lv_wrt01 + lv_wrt02 + lv_wrt03 +
lv_wrt04 + lv_wrt05 + lv_wrt06 + lv_wrt07 +
lv_wrt08 + lv_wrt09 + lv_wrt10 + lv_wrt11 +
lv_wrt12 + lv_wrt13 + lv_wrt14 + lv_wrt15 + lv_wrt16.
lw_pmco-wrtsm = lv_sum.
MODIFY lt_pmco FROM lw_pmco TRANSPORTING wrtsm.
CLEAR : lv_sum,lv_wrt01, lv_wrt02, lv_wrt03,
lv_wrt02, lv_wrt03, lv_wrt04,
lv_wrt05, lv_wrt06, lv_wrt07,
lv_wrt08, lv_wrt09, lv_wrt10,
lv_wrt11, lv_wrt12, lv_wrt13,
lv_wrt14, lv_wrt15, lv_wrt16,lv_wrt00,
lw_pmco.
EXIT.
ENDIF.
lv_wrt00 = lv_wrt00 + lw_pmco1-wrt00.
lv_wrt01 = lv_wrt01 + lw_pmco1-wrt01.
lv_wrt02 = lv_wrt02 + lw_pmco1-wrt02.
lv_wrt03 = lv_wrt03 + lw_pmco1-wrt03.
lv_wrt04 = lv_wrt04 + lw_pmco1-wrt04.
lv_wrt05 = lv_wrt05 + lw_pmco1-wrt05.
lv_wrt06 = lv_wrt06 + lw_pmco1-wrt06.
lv_wrt07 = lv_wrt07 + lw_pmco1-wrt07.
lv_wrt08 = lv_wrt08 + lw_pmco1-wrt08.
lv_wrt09 = lv_wrt09 + lw_pmco1-wrt09.
lv_wrt10 = lv_wrt10 + lw_pmco1-wrt10.
lv_wrt11 = lv_wrt11 + lw_pmco1-wrt11.
lv_wrt12 = lv_wrt12 + lw_pmco1-wrt12.
lv_wrt13 = lv_wrt13 + lw_pmco1-wrt13.
lv_wrt14 = lv_wrt14 + lw_pmco1-wrt14.
lv_wrt15 = lv_wrt15 + lw_pmco1-wrt15.
lv_wrt16 = lv_wrt16 + lw_pmco1-wrt16.
ENDLOOP.
IF lv_lines = lv_index.
lv_sum = lv_wrt00 + lv_wrt01 + lv_wrt02 + lv_wrt03 +
lv_wrt04 + lv_wrt05 + lv_wrt06 + lv_wrt07 +
lv_wrt08 + lv_wrt09 + lv_wrt10 + lv_wrt11 +
lv_wrt12 + lv_wrt13 + lv_wrt14 + lv_wrt15 + lv_wrt16.
lw_pmco-wrtsm = lv_sum.
MODIFY lt_pmco FROM lw_pmco TRANSPORTING wrtsm.
CLEAR : lv_sum,lv_wrt01, lv_wrt02, lv_wrt03,
lv_wrt02, lv_wrt03, lv_wrt04,
lv_wrt05, lv_wrt06, lv_wrt07,
lv_wrt08, lv_wrt09, lv_wrt10,
lv_wrt11, lv_wrt12, lv_wrt13,
lv_wrt14, lv_wrt15, lv_wrt16,
lw_pmco.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.

CLEAR : lv_tabix , lv_index, lv_lines.

* IF NOT lt_jest IS INITIAL.


* DESCRIBE TABLE lt_jest LINES lv_lines.
* LOOP AT lt_jest INTO lw_jest.
* READ TABLE lt_jest1 INTO lw_jest1 WITH KEY objnr = lw_jest BINARY SEARCH.
* IF sy-subrc = 0.
* lv_tabix = sy-tabix.
* LOOP AT lt_jest1 INTO lw_jest1 FROM lv_tabix.
* lv_index = sy-tabix.
* IF lw_jest-objnr NE lw_jest1-objnr.
* CONCATENATE LINES OF lt_text INTO lv_syst SEPARATED BY space.
* CONCATENATE LINES OF lt_text1 INTO lv_usrst SEPARATED BY space.
* lw_jeststat-objnr = lw_jest-objnr.
* lw_jeststat-stats = lv_syst.
* lw_jeststat-ustat = lv_usrst.
* APPEND lw_jeststat TO lt_jeststat.
* CLEAR :lw_jeststat, lt_text, lt_text1.
* EXIT.
* ENDIF.
* READ TABLE lt_tj02t INTO lw_tj02t WITH KEY istat = lw_jest1-stat BINARY
SEARCH.
* IF sy-subrc = 0.
* lw_text-value = lw_tj02t-txt04.
* APPEND lw_text TO lt_text.
* CLEAR lw_text.
* ENDIF.
* READ TABLE lt_jsto INTO lw_jsto WITH KEY objnr = lw_jest1-objnr BINARY
SEARCH.
* IF sy-subrc = 0.
* READ TABLE lt_tj30t INTO lw_tj30t WITH KEY stsma = lw_jsto-stsma
* estat = lw_jest1-stat
BINARY SEARCH.
* IF sy-subrc = 0.
* lw_text1-value = lw_tj30t-txt04.
* APPEND lw_text1 TO lt_text1.
* CLEAR lw_text1.
* ENDIF.
* ENDIF.
* CLEAR : lw_jsto,lw_tj30t,lw_tj02t.
* ENDLOOP.
* IF lv_index = lv_lines.
* CONCATENATE LINES OF lt_text INTO lv_syst SEPARATED BY space.
* CONCATENATE LINES OF lt_text1 INTO lv_usrst SEPARATED BY space.
* lw_jeststat-objnr = lw_jest-objnr.
* lw_jeststat-stats = lv_syst.
* lw_jeststat-ustat = lv_usrst.
* APPEND lw_jeststat TO lt_jeststat.
* CLEAR : lw_text , lw_jeststat, lt_text, lt_text1.
* ENDIF.
* ENDIF.
* CLEAR : lw_jest1,lw_jest.
* ENDLOOP.
* ENDIF.
* IF NOT lt_jeststat IS INITIAL.
* SORT lt_jeststat BY objnr.
* ENDIF.

* IF ( NOT s_arbpl IS INITIAL ) OR ( NOT s_larnt IS INITIAL ) OR


* ( NOT s_vkbur IS INITIAL ) OR ( NOT s_kvgr1 IS INITIAL ).
* LOOP AT lt_aufk INTO lw_aufk.
* IF NOT s_arbpl IS INITIAL.
* READ TABLE lt_afih INTO lw_afih WITH KEY aufnr = lw_aufk-aufnr BINARY
SEARCH.
* IF sy-subrc = 0.
* READ TABLE lt_crhd INTO lw_crhd WITH KEY objid = lw_afih-gewrk BINARY
SEARCH .
* IF sy-subrc NE 0.
* DELETE lt_aufk WHERE aufnr = lw_afih-aufnr.
* ENDIF.
* ENDIF.
* ENDIF.
* IF NOT s_larnt IS INITIAL.
* READ TABLE lt_afko INTO lw_afko WITH KEY aufnr = lw_aufk-aufnr BINARY
SEARCH.
* IF sy-subrc = 0.
* READ TABLE lt_afvc INTO lw_afvc WITH KEY aufpl = lw_afko-aufpl BINARY
SEARCH.
* IF sy-subrc NE 0.
* DELETE lt_aufk WHERE aufnr = lw_afko-aufnr.
* ENDIF.
* ENDIF.
* ENDIF.
* IF NOT s_vkbur IS INITIAL.
* READ TABLE lt_qmel INTO lw_qmel WITH KEY aufnr = lw_aufk-aufnr BINARY
SEARCH .
* IF sy-subrc NE 0.
* DELETE lt_aufk WHERE aufnr = lw_aufk-aufnr.
* ENDIF.
* ENDIF.
* IF NOT s_kvgr1 IS INITIAL.
* READ TABLE lt_vbak INTO lw_vbak WITH KEY vbeln = lw_aufk-kdauf BINARY
SEARCH.
* IF sy-subrc NE 0.
* DELETE lt_aufk WHERE aufnr = lw_aufk-kdauf.
* ENDIF.
* ENDIF.
* CLEAR : lw_aufk,lw_afih,lw_crhd,lw_afko,lw_afvc,lw_qmel,lw_vbak.
* ENDLOOP.
* ENDIF.

LOOP AT lt_zsdapv0001 INTO lw_zsdapv0001.

CALL FUNCTION 'STATUS_TEXT_EDIT'


EXPORTING
client = sy-mandt
flg_user_stat = 'X'
objnr = lw_zsdapv0001-objnr
only_active = 'X'
spras = sy-langu
IMPORTING
line = lw_final-txt04
user_line = lw_final-txt041
EXCEPTIONS
object_not_found = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

* READ TABLE lt_afko INTO lw_afko WITH KEY aufnr = lw_aufk-aufnr BINARY SEARCH.
* IF sy-subrc = 0.
lw_final-gltrp = lw_zsdapv0001-gltrp.
READ TABLE lt_afvc INTO lw_afvc WITH KEY aufpl = lw_zsdapv0001-aufpl BINARY
SEARCH.
IF sy-subrc = 0.
READ TABLE lt_afvv INTO lw_afvv WITH KEY aufpl = lw_afvc-aufpl
aplzl = lw_afvc-aplzl BINARY
SEARCH .
IF sy-subrc = 0 .
lw_final-ntend = lw_afvv-ntend.
IF lw_afvc-larnt = 'BR9000'.
lw_final-arbei = lw_afvv-arbei.
ELSE.
lw_final-arbei = ' '.
ENDIF.
IF lw_afko-gltrp > lw_afvv-ntend.
lw_final-ntend1 = lw_afko-gltrp.
ELSEIF lw_afvv-ntend > lw_afko-gltrp.
lw_final-ntend1 = lw_afvv-ntend.
ELSE.
lw_final-ntend1 = lw_afvv-ntend.
ENDIF.
ENDIF.
ENDIF.
* ENDIF.
* READ TABLE lt_afih INTO lw_afih WITH KEY aufnr = lw_aufk-aufnr BINARY SEARCH.
* IF sy-subrc = 0.
lw_final-ilart = lw_zsdapv0001-ilart.
* READ TABLE lt_iloa INTO lw_iloa WITH KEY iloan = lw_afih-iloan BINARY
SEARCH.
* IF sy-subrc = 0.
READ TABLE lt_iflotx INTO lw_iflotx WITH KEY tplnr = lw_zsdapv0001-tplnr
BINARY SEARCH.
IF sy-subrc = 0.
lw_final-tplnr = lw_zsdapv0001-tplnr.
lw_final-pltxt = lw_iflotx-pltxt.
ENDIF.
* ENDIF.
READ TABLE lt_t356_t INTO lw_t356_t WITH KEY priok = lw_zsdapv0001-priok
BINARY SEARCH.
IF sy-subrc = 0.
lw_final-priokx = lw_t356_t-priokx.
ENDIF.
READ TABLE lt_crhd INTO lw_crhd WITH KEY objid = lw_zsdapv0001-gewrk BINARY
SEARCH .
IF sy-subrc = 0.
lw_final-arbpl = lw_crhd-arbpl.
READ TABLE lt_crtx INTO lw_crtx WITH KEY objid = lw_crhd-objid BINARY
SEARCH .
IF sy-subrc = 0.
lw_final-gewrk = lw_crtx-ktext_up.
ENDIF.
ENDIF.
* ENDIF.

READ TABLE lt_veda INTO lw_veda WITH KEY vbeln = lw_zsdapv0001-kdauf BINARY
SEARCH .
IF sy-subrc = 0.
lw_final-vbeln = lw_veda-vbeln.
lw_final-vbegdat = lw_veda-vbegdat.
lw_final-venddat = lw_veda-venddat.
ELSE.
lw_final-vbeln = ' '.
ENDIF.

READ TABLE lt_pmco INTO lw_pmco WITH KEY objnr = lw_zsdapv0001-objnr BINARY
SEARCH.
IF sy-subrc = 0.
lw_final-wrt00 = lw_pmco-wrtsm.
ENDIF.

* READ TABLE lt_jest INTO lw_jest WITH KEY objnr = lw_aufk-objnr BINARY SEARCH.
* IF sy-subrc = 0.
* READ TABLE lt_jeststat INTO lw_jeststat WITH KEY objnr = lw_jest-objnr
BINARY SEARCH.
* IF sy-subrc = 0.
* lw_final-txt04 = lw_jeststat-stats.
* lw_final-txt041 = lw_jeststat-ustat.
* ENDIF.
* ENDIF.

IF lw_zsdapv0001-auart = 'ZCRR' OR lw_zsdapv0001-auart = 'ZCSC'


OR lw_zsdapv0001-auart = 'ZCSD'.
READ TABLE lt_vbak INTO lw_vbak WITH KEY vbeln = lw_zsdapv0001-kdauf BINARY
SEARCH.
IF sy-subrc = 0.
lw_final-kvgr1 = lw_vbak-kvgr1.
READ TABLE lt_tvv1t INTO lw_tvv1t WITH KEY kvgr1 = lw_vbak-kvgr1 BINARY
SEARCH.
IF sy-subrc = 0.
lw_final-bezei = lw_tvv1t-bezei.
ENDIF.
ENDIF.
ELSE.
lw_final-kvgr1 = lw_aufk-z_busin_segm.
READ TABLE lt_tvv1t INTO lw_tvv1t WITH KEY kvgr1 = lw_zsdapv0001-z_busin_segm
BINARY SEARCH.
IF sy-subrc = 0.
lw_final-bezei = lw_tvv1t-bezei.
ENDIF.
ENDIF.

READ TABLE lt_qmel INTO lw_qmel WITH KEY aufnr = lw_zsdapv0001-aufnr BINARY
SEARCH.
IF sy-subrc = 0.
lw_final-vkbur = lw_qmel-vkbur.
lw_final-qmtxt = lw_qmel-qmtxt.
ENDIF.
lw_final-aufnr = lw_zsdapv0001-aufnr.
lw_final-werks = lw_zsdapv0001-werks.
lw_final-erdat = lw_zsdapv0001-erdat.
lw_final-auart = lw_zsdapv0001-auart.
lw_final-ernam = lw_zsdapv0001-ernam.
lw_final-aenam = lw_zsdapv0001-aenam.
lw_final-aedat = lw_zsdapv0001-aedat.
lw_final-yybstnk = lw_zsdapv0001-yybstnk.
APPEND lw_final TO it_final.

CLEAR : lw_final ,lw_zsdapv0001,lw_qmel ,lw_crhd,lw_afih,


lw_t356_t,lw_iloa,lw_iflotx,lw_veda,lw_jest,
lw_vbak,lw_tvv1t ,lw_afko,lw_afvc,lw_afvv,
lw_pmco,lw_crtx,lw_jeststat.
ENDLOOP.
IF NOT it_final IS INITIAL.
DELETE it_final WHERE txt04 = ' '
AND txt041 = ' '.
ENDIF.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* Displaying ALV List.
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_data .
**********************************************************************************
* LOCAL INTERNAL TABLE (LT_)
**********************************************************************************

DATA : lt_layout TYPE slis_layout_alv,


lt_variant TYPE disvariant.

********************************************************************************
* LOCAL CONSTANT (LC_) AND VARIABLES
********************************************************************************

DATA : lc_just TYPE lvc_just VALUE 'C',


lc_x TYPE c VALUE 'X',
lv_repid LIKE sy-repid.

* Build Layout.
lt_layout-zebra = lc_x.

* Passing report name


lv_repid = sy-repid.

* Displaying ALV.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_repid
is_layout = lt_layout
it_fieldcat = it_fieldcatelog
i_default = lc_x
i_save = lc_x
is_variant = lt_variant
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " DISPLAY_DATA

1001438356 00000009

S-ar putea să vă placă și