683 lines
25 KiB
ABAP
683 lines
25 KiB
ABAP
*----------------------------------------------------------------------*
|
|
***INCLUDE /DESO/LFG_DH_CHECKF01.
|
|
*----------------------------------------------------------------------*
|
|
*&---------------------------------------------------------------------*
|
|
*& Form read_data
|
|
*&---------------------------------------------------------------------*
|
|
*& text
|
|
*&---------------------------------------------------------------------*
|
|
*& --> p1 text
|
|
*& <-- p2 text
|
|
*&---------------------------------------------------------------------*
|
|
FORM read_data USING check_view TYPE /deso/dh_view
|
|
objtype TYPE /deso/dh_object
|
|
objkey TYPE edc_refkey
|
|
check_dev TYPE flag
|
|
check_pod_rel TYPE flag
|
|
gt_data TYPE /deso/dh_tt_data
|
|
add_data TYPE flag
|
|
gr_util_f TYPE REF TO /deso/dh_utilities.
|
|
|
|
INCLUDE ieobjtyp.
|
|
INCLUDE iestread.
|
|
INCLUDE ie00flag.
|
|
|
|
REFRESH ipath . CLEAR ipath .
|
|
REFRESH istruc . CLEAR istruc .
|
|
|
|
REFRESH ibcont . CLEAR ibcont .
|
|
REFRESH ieabl . CLEAR ieabl .
|
|
REFRESH ieablg . CLEAR ieablg .
|
|
REFRESH ieabp . CLEAR ieabp .
|
|
REFRESH ieadz . CLEAR ieadz .
|
|
REFRESH ieanl . CLEAR ieanl .
|
|
REFRESH ieasti . CLEAR ieasti .
|
|
REFRESH ieastih . CLEAR ieastih .
|
|
REFRESH ieastl . CLEAR ieastl .
|
|
REFRESH ieasts . CLEAR ieasts .
|
|
REFRESH ieaus . CLEAR ieaus .
|
|
REFRESH ieausv . CLEAR ieausv .
|
|
REFRESH ieein . CLEAR ieein .
|
|
REFRESH ieeinv . CLEAR ieeinv .
|
|
REFRESH ieger . CLEAR ieger .
|
|
REFRESH iegpl . CLEAR iegpl .
|
|
REFRESH iehau . CLEAR iehau .
|
|
REFRESH iekun . CLEAR iekun .
|
|
REFRESH ietdz . CLEAR ietdz .
|
|
REFRESH ietins . CLEAR ietins .
|
|
REFRESH iettif . CLEAR iettif .
|
|
REFRESH ievbs . CLEAR ievbs .
|
|
REFRESH iever . CLEAR iever .
|
|
REFRESH iezug . CLEAR iezug .
|
|
REFRESH iezuz . CLEAR iezuz .
|
|
REFRESH ifkkvkp . CLEAR ifkkvkp .
|
|
REFRESH ite420 . CLEAR ite420 .
|
|
REFRESH ite422 . CLEAR ite422 .
|
|
|
|
IF add_data IS INITIAL.
|
|
REFRESH gt_data .
|
|
ENDIF.
|
|
|
|
DATA ls_mess_data TYPE /deso/dh_message.
|
|
|
|
DATA lv_stop_readness TYPE flag.
|
|
DATA lv_add_data TYPE flag.
|
|
DATA lv_tmp_objkey LIKE objkey.
|
|
DATA lt_tmp_objkey LIKE TABLE OF objkey.
|
|
DATA lv_tmp_equnr TYPE equnr.
|
|
DATA lt_tmp_ezug LIKE TABLE OF iezug.
|
|
DATA lt_tmp_pod_rel TYPE /deso/dh_tt_pod_rel.
|
|
DATA lt_tmp_ezuz LIKE TABLE OF iezuz.
|
|
DATA lt_tmp_eger LIKE TABLE OF ieger.
|
|
DATA lt_tmp_euiinstln TYPE /deso/dh_tt_euiinstln.
|
|
DATA lv_pod_rel_tabname TYPE tabname.
|
|
DATA ls_pod_rel TYPE /deso/dh_s_pod_rel.
|
|
CLEAR lv_pod_rel_tabname.
|
|
SELECT COUNT(*) FROM dd02l WHERE tabname = '/IDXGC/POD_REL'.
|
|
IF sy-subrc EQ 0.
|
|
lv_pod_rel_tabname = '/IDXGC/POD_REL'.
|
|
ELSE.
|
|
SELECT COUNT(*) FROM dd02l WHERE tabname = '/UCOM/POD_REL'.
|
|
IF sy-subrc EQ 0.
|
|
lv_pod_rel_tabname = '/UCOM/POD_REL'.
|
|
ENDIF.
|
|
ENDIF.
|
|
|
|
CLEAR lv_stop_readness.
|
|
|
|
CASE objtype.
|
|
************************************************************************
|
|
WHEN co_objtype_partner.
|
|
* partner found
|
|
iekun-partner = objkey.
|
|
APPEND iekun.
|
|
* set path for structure reader
|
|
estr_add_ipath 'EKUN' 'FKKVKP' space.
|
|
estr_add_ipath 'FKKVKP' 'EVER' space.
|
|
estr_add_ipath 'EVER' 'EANL' space.
|
|
estr_add_ipath 'EANL' 'EASTL' space.
|
|
estr_add_ipath 'EANL' 'EVBS' space.
|
|
estr_add_ipath 'EANL' 'EASTS' space.
|
|
estr_add_ipath 'EASTL' 'EGER' space.
|
|
estr_add_ipath 'EGER' 'EGPL' space.
|
|
estr_add_ipath 'EGER' 'EZUG' '1'.
|
|
estr_add_ipath 'EGER' 'EZUG' '2'.
|
|
estr_add_ipath 'EGER' 'ETDZ' space.
|
|
estr_add_ipath 'EGPL' 'EHAU' space.
|
|
estr_add_ipath 'ETDZ' 'EZUZ' space.
|
|
estr_add_ipath 'ETDZ' 'EASTI' space.
|
|
estr_add_ipath 'EVBS' 'EHAU' space.
|
|
|
|
|
|
************************************************************************
|
|
WHEN co_objtype_account.
|
|
* contract account found
|
|
ifkkvkp-vkont = objkey.
|
|
APPEND ifkkvkp.
|
|
* set path for structure reader
|
|
estr_add_ipath 'FKKVKP' 'EKUN' space.
|
|
estr_add_ipath 'FKKVKP' 'EVER' space.
|
|
estr_add_ipath 'EVER' 'EANL' space.
|
|
estr_add_ipath 'EANL' 'EASTL' space.
|
|
estr_add_ipath 'EANL' 'EVBS' space.
|
|
estr_add_ipath 'EANL' 'EASTS' space.
|
|
estr_add_ipath 'EASTL' 'EGER' space.
|
|
estr_add_ipath 'EGER' 'EGPL' space.
|
|
estr_add_ipath 'EGER' 'EZUG' '1'.
|
|
estr_add_ipath 'EGER' 'EZUG' '2'.
|
|
estr_add_ipath 'EGER' 'ETDZ' space.
|
|
estr_add_ipath 'EGPL' 'EHAU' space.
|
|
estr_add_ipath 'ETDZ' 'EZUZ' space.
|
|
estr_add_ipath 'ETDZ' 'EASTI' space.
|
|
estr_add_ipath 'EVBS' 'EHAU' space.
|
|
************************************************************************
|
|
WHEN co_objtype_contract.
|
|
* contract found
|
|
iever-vertrag = objkey.
|
|
APPEND iever.
|
|
* set path for structure reader
|
|
estr_add_ipath 'EVER' 'FKKVKP' space.
|
|
estr_add_ipath 'FKKVKP' 'EKUN' space.
|
|
estr_add_ipath 'EVER' 'EANL' space.
|
|
estr_add_ipath 'EANL' 'EASTL' space.
|
|
estr_add_ipath 'EANL' 'EVBS' space.
|
|
estr_add_ipath 'EANL' 'EASTS' space.
|
|
estr_add_ipath 'EASTL' 'EGER' space.
|
|
estr_add_ipath 'EGER' 'EGPL' space.
|
|
estr_add_ipath 'EGER' 'EZUG' '1'.
|
|
estr_add_ipath 'EGER' 'ETDZ' space.
|
|
estr_add_ipath 'EGPL' 'EHAU' space.
|
|
estr_add_ipath 'ETDZ' 'EZUZ' space.
|
|
estr_add_ipath 'ETDZ' 'EASTI' space.
|
|
estr_add_ipath 'EVBS' 'EHAU' space.
|
|
************************************************************************
|
|
WHEN co_objtype_connobj.
|
|
* connection object found
|
|
iehau-haus = objkey.
|
|
APPEND iehau.
|
|
* set path for structure reader
|
|
estr_add_ipath 'EHAU' 'EGPL' space.
|
|
estr_add_ipath 'EHAU' 'EVBS' space.
|
|
estr_add_ipath 'EGPL' 'EGER' space.
|
|
estr_add_ipath 'EVBS' 'EANL' space.
|
|
estr_add_ipath 'EANL' 'EASTL' space.
|
|
estr_add_ipath 'EANL' 'EASTS' space.
|
|
estr_add_ipath 'EANL' 'EVER' space.
|
|
estr_add_ipath 'EASTL' 'EGER' space.
|
|
estr_add_ipath 'EGER' 'EGPL' space.
|
|
estr_add_ipath 'EGER' 'EZUG' '1'.
|
|
estr_add_ipath 'EGER' 'EZUG' '2'.
|
|
estr_add_ipath 'EGER' 'ETDZ' space.
|
|
estr_add_ipath 'ETDZ' 'EZUZ' space.
|
|
estr_add_ipath 'ETDZ' 'EASTI' space.
|
|
estr_add_ipath 'EVER' 'FKKVKP' space.
|
|
estr_add_ipath 'FKKVKP' 'EKUN' space.
|
|
|
|
************************************************************************
|
|
WHEN co_objtype_premises.
|
|
* premise object found
|
|
ievbs-vstelle = objkey.
|
|
APPEND ievbs.
|
|
* set path for structure reader
|
|
estr_add_ipath 'EVBS' 'EANL' space.
|
|
estr_add_ipath 'EVBS' 'EHAU' space.
|
|
estr_add_ipath 'EHAU' 'EGPL' space.
|
|
estr_add_ipath 'EGPL' 'EGER' space.
|
|
estr_add_ipath 'EANL' 'EASTL' space.
|
|
estr_add_ipath 'EANL' 'EASTS' space.
|
|
estr_add_ipath 'EANL' 'EVER' space.
|
|
estr_add_ipath 'EASTL' 'EGER' space.
|
|
estr_add_ipath 'EGER' 'EGPL' space.
|
|
estr_add_ipath 'EGER' 'EZUG' '1'.
|
|
estr_add_ipath 'EGER' 'EZUG' '2'.
|
|
estr_add_ipath 'EGER' 'ETDZ' space.
|
|
estr_add_ipath 'ETDZ' 'EZUZ' space.
|
|
estr_add_ipath 'ETDZ' 'EASTI' space.
|
|
estr_add_ipath 'EVER' 'FKKVKP' space.
|
|
estr_add_ipath 'FKKVKP' 'EKUN' space.
|
|
|
|
************************************************************************
|
|
WHEN co_objtype_instln.
|
|
* installation object found
|
|
ieanl-anlage = objkey.
|
|
APPEND ieanl.
|
|
* set path for structure reader
|
|
estr_add_ipath 'EANL' 'EASTL' space.
|
|
estr_add_ipath 'EANL' 'EVBS' space.
|
|
estr_add_ipath 'EANL' 'EASTS' space.
|
|
estr_add_ipath 'EANL' 'EVER' space.
|
|
estr_add_ipath 'EASTL' 'EGER' space.
|
|
estr_add_ipath 'EGER' 'EGPL' space.
|
|
estr_add_ipath 'EGER' 'EZUG' '1'.
|
|
estr_add_ipath 'EGER' 'EZUG' '2'.
|
|
estr_add_ipath 'EGER' 'ETDZ' space.
|
|
estr_add_ipath 'EGPL' 'EHAU' space.
|
|
estr_add_ipath 'ETDZ' 'EZUZ' space.
|
|
estr_add_ipath 'ETDZ' 'EASTI' space.
|
|
estr_add_ipath 'EVBS' 'EHAU' space.
|
|
estr_add_ipath 'EVER' 'FKKVKP' space.
|
|
estr_add_ipath 'FKKVKP' 'EKUN' space.
|
|
|
|
************************************************************************
|
|
WHEN co_objtype_device.
|
|
* device object found
|
|
ieger-equnr = objkey.
|
|
APPEND ieger.
|
|
* set path for structure reader
|
|
estr_add_ipath 'EGER' 'EGPL' space.
|
|
estr_add_ipath 'EGER' 'EASTL' space.
|
|
estr_add_ipath 'EGER' 'EZUG' '1'.
|
|
estr_add_ipath 'EGER' 'EZUG' '2'.
|
|
estr_add_ipath 'EGER' 'EZUZ' space.
|
|
estr_add_ipath 'EGER' 'ETDZ' space.
|
|
|
|
estr_add_ipath 'EGPL' 'EHAU' space.
|
|
|
|
estr_add_ipath 'EASTL' 'EANL' space.
|
|
estr_add_ipath 'EANL' 'EVBS' space.
|
|
estr_add_ipath 'EVBS' 'EHAU' space.
|
|
|
|
estr_add_ipath 'ETDZ' 'EASTS' space.
|
|
estr_add_ipath 'ETDZ' 'EZUZ' space.
|
|
estr_add_ipath 'ETDZ' 'EASTI' space.
|
|
estr_add_ipath 'EANL' 'EVER' space.
|
|
estr_add_ipath 'EANL' 'EVBS' space.
|
|
estr_add_ipath 'EVBS' 'EHAU' space.
|
|
estr_add_ipath 'EVER' 'FKKVKP' space.
|
|
estr_add_ipath 'FKKVKP' 'EKUN' space.
|
|
|
|
************************************************************************
|
|
WHEN co_objtype_pod.
|
|
"Zählpunkt
|
|
SELECT * FROM euitrans INTO @DATA(ls_euitrans)
|
|
WHERE ext_ui = @objkey
|
|
AND dateto BETWEEN @sy-datum AND '99991231'.
|
|
objkey = ls_euitrans-int_ui.
|
|
SELECT * FROM euiinstln INTO @DATA(ls_euiinstln)
|
|
WHERE int_ui = @ls_euitrans-int_ui
|
|
AND datefrom <= @ls_euitrans-dateto
|
|
AND dateto >= @ls_euitrans-datefrom
|
|
AND dateto >= @sy-datum.
|
|
lv_tmp_objkey = ls_euiinstln-anlage.
|
|
PERFORM read_data USING check_view co_objtype_instln lv_tmp_objkey check_dev check_pod_rel gt_data space gr_util_f.
|
|
lv_stop_readness = 'X'.
|
|
ENDSELECT.
|
|
ENDSELECT.
|
|
ENDCASE.
|
|
|
|
CHECK lv_stop_readness IS INITIAL.
|
|
* call the structure reader
|
|
CALL FUNCTION 'ISU_STRUCTURE_READ'
|
|
EXPORTING
|
|
x_is_complete = co_flag_notmarked
|
|
x_actual = co_flag_notmarked
|
|
x_structure = co_flag_marked
|
|
x_ab = sy-datum
|
|
x_bis = '99991231'
|
|
x_text = co_flag_marked
|
|
x_language = sy-langu
|
|
x_progress_display = co_flag_marked
|
|
TABLES
|
|
xt_path = ipath
|
|
yt_struc = istruc
|
|
t_bcont = ibcont
|
|
t_eabl = ieabl
|
|
t_eablg = ieablg
|
|
t_eabp = ieabp
|
|
t_eadz = ieadz
|
|
t_eanl = ieanl
|
|
t_easti = ieasti
|
|
t_eastih = ieastih
|
|
t_eastl = ieastl
|
|
t_easts = ieasts
|
|
t_eaus = ieaus
|
|
t_eausv = ieausv
|
|
t_eein = ieein
|
|
t_eeinv = ieeinv
|
|
t_eger = ieger
|
|
t_egpl = iegpl
|
|
t_ehau = iehau
|
|
t_ekun = iekun
|
|
t_etdz = ietdz
|
|
t_etins = ietins
|
|
t_ettif = iettif
|
|
t_evbs = ievbs
|
|
t_ever = iever
|
|
t_ezug = iezug
|
|
t_ezuz = iezuz
|
|
t_fkkvkp = ifkkvkp
|
|
t_te420 = ite420
|
|
t_te422 = ite422
|
|
EXCEPTIONS
|
|
path_invalid = 1
|
|
date_invalid = 2
|
|
selection_failed = 3
|
|
OTHERS = 4.
|
|
IF sy-subrc <> 0.
|
|
* structure reader error
|
|
* leave form
|
|
EXIT.
|
|
ENDIF.
|
|
|
|
if objtype = co_objtype_device and ieger[] is INITIAL.
|
|
CALL METHOD gr_util_f->insert_message(
|
|
EXPORTING
|
|
iv_view = check_view
|
|
iv_object = co_objtype_device
|
|
iv_objkey = objkey
|
|
iv_refobj = co_objtype_device
|
|
iv_refkey = objkey
|
|
iv_msgty = 'E'
|
|
iv_msgid = '/DESO/'
|
|
iv_msgtxt = 'FEHLER BEIM LESEN DER DATEN ZUM OBJEKT!'
|
|
CHANGING
|
|
is_data = ls_mess_data ).
|
|
exit.
|
|
endif.
|
|
|
|
|
|
IF add_data IS INITIAL.
|
|
|
|
APPEND INITIAL LINE TO gt_data ASSIGNING FIELD-SYMBOL(<ls_data>).
|
|
<ls_data>-ieanl[] = ieanl[].
|
|
<ls_data>-ieasti[] = ieasti[].
|
|
<ls_data>-ieastl[] = ieastl[].
|
|
<ls_data>-ieasts[] = ieasts[].
|
|
<ls_data>-ieger[] = ieger[].
|
|
<ls_data>-iegpl[] = iegpl[].
|
|
<ls_data>-iehau[] = iehau[].
|
|
<ls_data>-iekun[] = iekun[].
|
|
<ls_data>-ietdz[] = ietdz[].
|
|
<ls_data>-ievbs[] = ievbs[].
|
|
<ls_data>-iever[] = iever[].
|
|
<ls_data>-iezug[] = iezug[].
|
|
<ls_data>-iezuz[] = iezuz[].
|
|
<ls_data>-ifkkvkp[] = ifkkvkp[].
|
|
ELSE.
|
|
DEFINE add_ls_data.
|
|
APPEND LINES OF &1[] TO <ls_data>-&1[].
|
|
SORT <ls_data>-&1[].
|
|
DELETE ADJACENT DUPLICATES FROM <ls_data>-&1[].
|
|
END-OF-DEFINITION.
|
|
IF NOT <ls_data> IS ASSIGNED.
|
|
READ TABLE gt_data INDEX lines( gt_data ) ASSIGNING <ls_data>.
|
|
ENDIF.
|
|
|
|
add_ls_data ieanl.
|
|
add_ls_data ieasti.
|
|
add_ls_data ieastl.
|
|
add_ls_data ieasts.
|
|
add_ls_data ieger.
|
|
add_ls_data iegpl.
|
|
add_ls_data iehau.
|
|
add_ls_data iekun.
|
|
add_ls_data ietdz.
|
|
add_ls_data ievbs.
|
|
add_ls_data iever.
|
|
add_ls_data iezug.
|
|
add_ls_data iezuz.
|
|
add_ls_data ifkkvkp.
|
|
|
|
ENDIF.
|
|
|
|
IF <ls_data> IS ASSIGNED AND NOT <ls_data>-ieanl[] IS INITIAL.
|
|
SELECT * FROM euiinstln INTO ls_euiinstln
|
|
FOR ALL ENTRIES IN <ls_data>-ieanl[]
|
|
WHERE anlage = <ls_data>-ieanl-anlage
|
|
AND dateto BETWEEN sy-datum AND '99991231'.
|
|
APPEND ls_euiinstln TO <ls_data>-ieuiinstln[].
|
|
SELECT * FROM euitrans INTO ls_euitrans
|
|
WHERE int_ui = ls_euiinstln-int_ui
|
|
AND dateto >= ls_euiinstln-datefrom
|
|
AND datefrom <= ls_euiinstln-dateto
|
|
AND dateto >= sy-datum.
|
|
APPEND ls_euitrans TO <ls_data>-ieuitrans[].
|
|
ENDSELECT.
|
|
ENDSELECT.
|
|
SORT <ls_data>-ieuiinstln[].
|
|
DELETE ADJACENT DUPLICATES FROM <ls_data>-ieuiinstln[].
|
|
SORT <ls_data>-ieuitrans[].
|
|
DELETE ADJACENT DUPLICATES FROM <ls_data>-ieuitrans[].
|
|
|
|
lt_tmp_euiinstln[] = <ls_data>-ieuiinstln[].
|
|
LOOP AT lt_tmp_euiinstln ASSIGNING FIELD-SYMBOL(<fs_euiinstln>).
|
|
|
|
|
|
SELECT * FROM (lv_pod_rel_tabname) INTO CORRESPONDING FIELDS OF ls_pod_rel
|
|
WHERE int_ui1 = <fs_euiinstln>-int_ui
|
|
AND dateto >= <fs_euiinstln>-datefrom
|
|
AND datefrom <= <fs_euiinstln>-dateto
|
|
AND dateto >= sy-datum.
|
|
APPEND ls_pod_rel TO <ls_data>-ipod_rel.
|
|
ENDSELECT.
|
|
SELECT * FROM (lv_pod_rel_tabname) INTO CORRESPONDING FIELDS OF ls_pod_rel
|
|
WHERE int_ui2 = <fs_euiinstln>-int_ui
|
|
AND dateto >= <fs_euiinstln>-datefrom
|
|
AND datefrom <= <fs_euiinstln>-dateto
|
|
AND dateto >= sy-datum.
|
|
APPEND ls_pod_rel TO <ls_data>-ipod_rel.
|
|
ENDSELECT.
|
|
SORT <ls_data>-ipod_rel.
|
|
DELETE ADJACENT DUPLICATES FROM <ls_data>-ipod_rel.
|
|
ENDLOOP.
|
|
|
|
|
|
ENDIF.
|
|
|
|
|
|
|
|
|
|
|
|
IF NOT check_pod_rel IS INITIAL AND <ls_data> IS ASSIGNED.
|
|
estr_refresh_all.
|
|
lt_tmp_pod_rel[] = <ls_data>-ipod_rel[].
|
|
LOOP AT lt_tmp_pod_rel ASSIGNING FIELD-SYMBOL(<fs_pod_rel>).
|
|
READ TABLE <ls_data>-ieuiinstln WITH KEY int_ui = <fs_pod_rel>-int_ui1 TRANSPORTING NO FIELDS.
|
|
IF sy-subrc NE 0.
|
|
SELECT anlage FROM euiinstln INTO TABLE lt_tmp_objkey
|
|
WHERE int_ui = <fs_pod_rel>-int_ui1
|
|
AND dateto >= sy-datum
|
|
AND datefrom <= <fs_pod_rel>-dateto
|
|
AND dateto >= <fs_pod_rel>-datefrom.
|
|
IF sy-subrc EQ 0.
|
|
LOOP AT lt_tmp_objkey INTO lv_tmp_objkey.
|
|
READ TABLE <ls_data>-ieanl WITH KEY anlage = lv_tmp_objkey TRANSPORTING NO FIELDS.
|
|
CHECK sy-subrc NE 0.
|
|
IF objtype NE co_objtype_instln OR objkey NE lv_tmp_objkey.
|
|
PERFORM read_data USING check_view co_objtype_instln lv_tmp_objkey check_dev check_pod_rel gt_data 'X' gr_util_f.
|
|
ELSE.
|
|
CALL METHOD gr_util_f->insert_message(
|
|
EXPORTING
|
|
iv_view = check_view
|
|
iv_object = co_objtype_instln
|
|
iv_objkey = lv_tmp_objkey
|
|
iv_refobj = co_objtype_instln
|
|
iv_refkey = lv_tmp_objkey
|
|
iv_msgty = 'E'
|
|
iv_msgid = '/DESO/'
|
|
iv_msgtxt = 'FEHLER BEIM LESEN DER DATEN ZUM OBJEKT!'
|
|
CHANGING
|
|
is_data = ls_mess_data ).
|
|
ENDIF.
|
|
ENDLOOP.
|
|
ENDIF.
|
|
ENDIF.
|
|
READ TABLE <ls_data>-ieuiinstln WITH KEY int_ui = <fs_pod_rel>-int_ui2 TRANSPORTING NO FIELDS.
|
|
IF sy-subrc NE 0.
|
|
SELECT anlage FROM euiinstln INTO TABLE lt_tmp_objkey
|
|
WHERE int_ui = <fs_pod_rel>-int_ui2
|
|
AND dateto >= sy-datum
|
|
AND datefrom <= <fs_pod_rel>-dateto
|
|
AND dateto >= <fs_pod_rel>-datefrom.
|
|
IF sy-subrc EQ 0.
|
|
LOOP AT lt_tmp_objkey INTO lv_tmp_objkey.
|
|
READ TABLE <ls_data>-ieanl WITH KEY anlage = lv_tmp_objkey TRANSPORTING NO FIELDS.
|
|
CHECK sy-subrc NE 0.
|
|
IF objtype NE co_objtype_instln OR objkey NE lv_tmp_objkey.
|
|
PERFORM read_data USING check_view co_objtype_instln lv_tmp_objkey check_dev check_pod_rel gt_data 'X' gr_util_f.
|
|
ELSE.
|
|
CALL METHOD gr_util_f->insert_message(
|
|
EXPORTING
|
|
iv_view = check_view
|
|
iv_object = co_objtype_instln
|
|
iv_objkey = lv_tmp_objkey
|
|
iv_refobj = co_objtype_instln
|
|
iv_refkey = lv_tmp_objkey
|
|
iv_msgty = 'E'
|
|
iv_msgid = '/DESO/'
|
|
iv_msgtxt = 'FEHLER BEIM LESEN DER DATEN ZUM OBJEKT!'
|
|
CHANGING
|
|
is_data = ls_mess_data ).
|
|
ENDIF.
|
|
ENDLOOP.
|
|
ENDIF.
|
|
ENDIF.
|
|
|
|
ENDLOOP.
|
|
ENDIF.
|
|
|
|
IF NOT check_dev IS INITIAL AND <ls_data> IS ASSIGNED.
|
|
estr_refresh_all.
|
|
lt_tmp_ezug[] = <ls_data>-iezug[]." DEV-Zuordnung
|
|
CLEAR lt_tmp_objkey[].
|
|
LOOP AT lt_tmp_ezug ASSIGNING FIELD-SYMBOL(<fs_ezug>).
|
|
|
|
READ TABLE <ls_data>-ieger[] WITH KEY logiknr = <fs_ezug>-logiknr TRANSPORTING NO FIELDS.
|
|
IF sy-subrc NE 0.
|
|
SELECT equnr FROM egerh APPENDING TABLE lt_tmp_objkey
|
|
WHERE logiknr = <fs_ezug>-logiknr
|
|
AND ab <= <fs_ezug>-bis
|
|
AND bis >= <fs_ezug>-ab
|
|
AND bis >= sy-datum.
|
|
ENDIF.
|
|
|
|
|
|
READ TABLE <ls_data>-ieger[] WITH KEY logiknr = <fs_ezug>-logiknr2 TRANSPORTING NO FIELDS.
|
|
IF sy-subrc NE 0.
|
|
SELECT equnr FROM egerh APPENDING TABLE lt_tmp_objkey
|
|
WHERE logiknr = <fs_ezug>-logiknr2
|
|
AND ab <= <fs_ezug>-bis
|
|
AND bis >= <fs_ezug>-ab
|
|
AND bis >= sy-datum.
|
|
ENDIF.
|
|
ENDLOOP.
|
|
|
|
SORT lt_tmp_objkey.
|
|
DELETE ADJACENT DUPLICATES FROM lt_tmp_objkey.
|
|
LOOP AT lt_tmp_objkey INTO lv_tmp_objkey.
|
|
READ TABLE <ls_data>-ieger WITH KEY equnr = lv_tmp_objkey TRANSPORTING NO FIELDS.
|
|
CHECK sy-subrc NE 0.
|
|
IF objtype NE co_objtype_device OR objkey NE lv_tmp_objkey.
|
|
PERFORM read_data USING check_view co_objtype_device lv_tmp_objkey check_dev check_pod_rel gt_data 'X' gr_util_f.
|
|
ELSE.
|
|
CALL METHOD gr_util_f->insert_message(
|
|
EXPORTING
|
|
iv_view = check_view
|
|
iv_object = co_objtype_device
|
|
iv_objkey = lv_tmp_objkey
|
|
iv_refobj = co_objtype_device
|
|
iv_refkey = lv_tmp_objkey
|
|
iv_msgty = 'E'
|
|
iv_msgid = '/DESO/'
|
|
iv_msgtxt = 'FEHLER BEIM LESEN DER DATEN ZUM OBJEKT!'
|
|
CHANGING
|
|
is_data = ls_mess_data ).
|
|
ENDIF.
|
|
ENDLOOP.
|
|
|
|
|
|
lt_tmp_ezuz[] = <ls_data>-iezuz[]." ZW-Zuordnung
|
|
CLEAR lt_tmp_objkey[].
|
|
LOOP AT lt_tmp_ezuz ASSIGNING FIELD-SYMBOL(<fs_ezuz>).
|
|
READ TABLE <ls_data>-ietdz[] WITH KEY logikzw = <fs_ezuz>-logikzw TRANSPORTING NO FIELDS.
|
|
IF sy-subrc NE 0.
|
|
SELECT equnr FROM etdz APPENDING TABLE lt_tmp_objkey
|
|
WHERE logikzw = <fs_ezuz>-logikzw
|
|
AND ab <= <fs_ezuz>-bis
|
|
AND bis >= <fs_ezuz>-ab
|
|
AND bis >= sy-datum.
|
|
ENDIF.
|
|
READ TABLE <ls_data>-ieger[] WITH KEY logiknr = <fs_ezuz>-logiknr2 TRANSPORTING NO FIELDS.
|
|
IF sy-subrc NE 0.
|
|
SELECT equnr FROM egerh APPENDING TABLE lt_tmp_objkey
|
|
WHERE logiknr = <fs_ezuz>-logiknr2
|
|
AND ab <= <fs_ezuz>-bis
|
|
AND bis >= <fs_ezuz>-ab
|
|
AND bis >= sy-datum.
|
|
ENDIF.
|
|
ENDLOOP.
|
|
|
|
SORT lt_tmp_objkey.
|
|
DELETE ADJACENT DUPLICATES FROM lt_tmp_objkey.
|
|
LOOP AT lt_tmp_objkey INTO lv_tmp_objkey.
|
|
READ TABLE <ls_data>-ieger WITH KEY equnr = lv_tmp_objkey TRANSPORTING NO FIELDS.
|
|
CHECK sy-subrc NE 0.
|
|
IF objtype NE co_objtype_device OR objkey NE lv_tmp_objkey.
|
|
PERFORM read_data USING check_view co_objtype_device lv_tmp_objkey check_dev check_pod_rel gt_data 'X' gr_util_f.
|
|
ELSE.
|
|
CALL METHOD gr_util_f->insert_message(
|
|
EXPORTING
|
|
iv_view = check_view
|
|
iv_object = co_objtype_device
|
|
iv_objkey = lv_tmp_objkey
|
|
iv_refobj = co_objtype_device
|
|
iv_refkey = lv_tmp_objkey
|
|
iv_msgty = 'E'
|
|
iv_msgid = '/DESO/'
|
|
iv_msgtxt = 'FEHLER BEIM LESEN DER DATEN ZUM OBJEKT!'
|
|
CHANGING
|
|
is_data = ls_mess_data ).
|
|
ENDIF.
|
|
ENDLOOP.
|
|
|
|
lt_tmp_eger[] = <ls_data>-ieger[]. "Gerätegruppe
|
|
DELETE lt_tmp_eger WHERE devgrp IS INITIAL.
|
|
SORT lt_tmp_eger BY devgrp.
|
|
DELETE ADJACENT DUPLICATES FROM lt_tmp_eger COMPARING devgrp.
|
|
CLEAR lt_tmp_objkey[].
|
|
LOOP AT lt_tmp_eger ASSIGNING FIELD-SYMBOL(<fs_eger>).
|
|
SELECT equnr FROM egerh INTO lv_tmp_equnr
|
|
WHERE devgrp = <fs_eger>-devgrp
|
|
AND ab <= <fs_eger>-bis
|
|
AND bis >= <fs_eger>-ab
|
|
AND bis >= sy-datum.
|
|
READ TABLE <ls_data>-ieger[] WITH KEY equnr = lv_tmp_equnr TRANSPORTING NO FIELDS.
|
|
IF sy-subrc NE 0.
|
|
lv_tmp_objkey = lv_tmp_equnr.
|
|
APPEND lv_tmp_objkey TO lt_tmp_objkey.
|
|
ENDIF.
|
|
ENDSELECT.
|
|
|
|
ENDLOOP.
|
|
SORT lt_tmp_objkey.
|
|
DELETE ADJACENT DUPLICATES FROM lt_tmp_objkey.
|
|
LOOP AT lt_tmp_objkey INTO lv_tmp_objkey.
|
|
READ TABLE <ls_data>-ieger WITH KEY equnr = lv_tmp_objkey TRANSPORTING NO FIELDS.
|
|
CHECK sy-subrc NE 0.
|
|
IF objtype NE co_objtype_device OR objkey NE lv_tmp_objkey.
|
|
PERFORM read_data USING check_view co_objtype_device lv_tmp_objkey check_dev check_pod_rel gt_data 'X' gr_util_f.
|
|
ELSE.
|
|
CALL METHOD gr_util_f->insert_message(
|
|
EXPORTING
|
|
iv_view = check_view
|
|
iv_object = co_objtype_device
|
|
iv_objkey = lv_tmp_objkey
|
|
iv_refobj = co_objtype_device
|
|
iv_refkey = lv_tmp_objkey
|
|
iv_msgty = 'E'
|
|
iv_msgid = '/DESO/'
|
|
iv_msgtxt = 'FEHLER BEIM LESEN DER DATEN ZUM OBJEKT!'
|
|
CHANGING
|
|
is_data = ls_mess_data ) .
|
|
ENDIF.
|
|
ENDLOOP.
|
|
|
|
ENDIF.
|
|
|
|
* sort the connection table istruc by tabto, indto, tabfrom
|
|
* this is important for binary search later !
|
|
SORT istruc BY tabto indto tabfrom.
|
|
ENDFORM.
|
|
*&---------------------------------------------------------------------*
|
|
*& Form init_all
|
|
*&---------------------------------------------------------------------*
|
|
*& text
|
|
*&---------------------------------------------------------------------*
|
|
*& --> p1 text
|
|
*& <-- p2 text
|
|
*&---------------------------------------------------------------------*
|
|
*FORM init_all .
|
|
* REFRESH ipath . CLEAR ipath .
|
|
* REFRESH istruc . CLEAR istruc .
|
|
*
|
|
* REFRESH ibcont . CLEAR ibcont .
|
|
* REFRESH ieabl . CLEAR ieabl .
|
|
* REFRESH ieablg . CLEAR ieablg .
|
|
* REFRESH ieabp . CLEAR ieabp .
|
|
* REFRESH ieadz . CLEAR ieadz .
|
|
* REFRESH ieanl . CLEAR ieanl .
|
|
* REFRESH ieasti . CLEAR ieasti .
|
|
* REFRESH ieastih . CLEAR ieastih .
|
|
* REFRESH ieastl . CLEAR ieastl .
|
|
* REFRESH ieasts . CLEAR ieasts .
|
|
* REFRESH ieaus . CLEAR ieaus .
|
|
* REFRESH ieausv . CLEAR ieausv .
|
|
* REFRESH ieein . CLEAR ieein .
|
|
* REFRESH ieeinv . CLEAR ieeinv .
|
|
* REFRESH ieger . CLEAR ieger .
|
|
* REFRESH iegpl . CLEAR iegpl .
|
|
* REFRESH iehau . CLEAR iehau .
|
|
* REFRESH iekun . CLEAR iekun .
|
|
* REFRESH ietdz . CLEAR ietdz .
|
|
* REFRESH ietins . CLEAR ietins .
|
|
* REFRESH iettif . CLEAR iettif .
|
|
* REFRESH ievbs . CLEAR ievbs .
|
|
* REFRESH iever . CLEAR iever .
|
|
* REFRESH iezug . CLEAR iezug .
|
|
* REFRESH iezuz . CLEAR iezuz .
|
|
* REFRESH ifkkvkp . CLEAR ifkkvkp .
|
|
* REFRESH ite420 . CLEAR ite420 .
|
|
* REFRESH ite422 . CLEAR ite422 .
|
|
* REFRESH gt_data .
|
|
*ENDFORM.
|