Files
DATA-Hawk/src/#deso#dh_checks.clas.abap
2025-11-27 13:16:56 +00:00

1057 lines
32 KiB
ABAP

class /DESO/DH_CHECKS definition
public
create public .
public section.
class-data GR_UTIL type ref to /DESO/DH_UTILITIES .
methods CHECK_VKONT_AZAWE_EZAWE
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_HAUS_ADRESS
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_PARTNER_ADRESS
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_VKONT_ADRESS
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_PARTNER_MANDATORY
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_ANLAGE_INVOICING_PARTNER
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_PARTNER_BANK
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_VERTRAG_INVOICING_PART
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_VERTRAG_BIG_CHECK
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_VERTRAG_SERVICE_ID
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_INIT
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_VORLAGE
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_VS_SCENARIO
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_INPUT_VS_CUST
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CHECK_PARTNER_RELATION
importing
!IV_VIEW type /DESO/DH_VIEW
!IV_OBJECT type /DESO/DH_OBJECT
!IV_OBJKEY type EDC_REFKEY
changing
!IS_DATA type /DESO/DH_TT_DATA
!IS_MESSAGE type /DESO/DH_MESSAGE optional .
methods CONSTRUCTOR .
protected section.
private section.
ENDCLASS.
CLASS /DESO/DH_CHECKS IMPLEMENTATION.
METHOD check_anlage_invoicing_partner.
DATA lv_refkey TYPE edc_refkey.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-ieanl ASSIGNING FIELD-SYMBOL(<ls_eanl>).
SELECT SINGLE invoicing_party FROM eanlh
INTO @DATA(lv_serviceid)
WHERE anlage = @<ls_eanl>-anlage
AND bis = '99991231'.
SELECT SINGLE * FROM eservprov
INTO @DATA(ls_eservprov)
WHERE serviceid = @lv_serviceid.
IF sy-subrc <> 0.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'IEANL'
iv_refkey = CONV edc_refkey( <ls_eanl>-anlage )
iv_reffld = 'INVOICING_PARTY'
* iv_object_id = iv_object_id
iv_msgty = 'E'
iv_msgid = '/DESO/'
iv_msgtxt = 'Serviceanbieter nicht vorhanden'
CHANGING
is_data = is_message ).
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD check_haus_adress.
DATA: ls_adrc_struc_old TYPE adrc_struc.
DATA: ls_adrc_struc_new TYPE adrc_struc.
DATA: lv_rc TYPE ad_rcerror.
DATA: lt_addr_error TYPE TABLE OF addr_error.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-iehau ASSIGNING FIELD-SYMBOL(<ls_ehau>).
SELECT SINGLE * FROM iflot INTO @DATA(ls_iflot)
WHERE tplnr = @<ls_ehau>-haus.
SELECT adrnr FROM iloa
INTO TABLE @DATA(lt_addrnumber)
WHERE tplnr = @ls_iflot-tplnr.
LOOP AT lt_addrnumber ASSIGNING FIELD-SYMBOL(<ls_addrnumber>).
SELECT SINGLE * FROM adrc INTO @DATA(ls_adrc)
WHERE addrnumber = @<ls_addrnumber>-adrnr.
MOVE-CORRESPONDING ls_adrc TO ls_adrc_struc_old.
CALL FUNCTION 'ADDR_REGIONAL_DATA_CHECK'
EXPORTING
x_adrc_struc = ls_adrc_struc_old
IMPORTING
y_adrc_struc = ls_adrc_struc_new
y_retcode = lv_rc
TABLES
error_table = lt_addr_error.
IF lv_rc = 'W' or lv_rc = 'E'.
LOOP AT lt_addr_error ASSIGNING FIELD-SYMBOL(<ls_addr_error>).
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'IEHAU'
iv_refkey = CONV edc_refkey( <ls_ehau>-haus )
* iv_object_id = iv_object_id
iv_msgty = <ls_addr_error>-msg_type
iv_msgid = <ls_addr_error>-msg_id
iv_msgno = <ls_addr_error>-msg_number
iv_msgv1 = <ls_addr_error>-msg_var1
iv_msgv2 = <ls_addr_error>-msg_var2
iv_msgv3 = <ls_addr_error>-msg_var3
iv_msgv4 = <ls_addr_error>-msg_var4
* iv_msgtxt =
CHANGING
is_data = is_message ).
ENDLOOP.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD check_input_vs_cust.
DATA: lt_tabname TYPE /deso/dh_tt_tabname.
DATA: lt_check_field TYPE /deso/dh_tt_check_field.
DATA: ls_where TYPE string.
DATA: lv_msgid TYPE syst_msgid,
lv_msgno TYPE syst_msgno,
lv_msgty TYPE syst_msgty,
lv_msgv1 TYPE syst_msgv,
lv_msgv2 TYPE syst_msgv,
lv_msgv3 TYPE syst_msgv,
lv_msgv4 TYPE syst_msgv.
DATA: lr_data TYPE REF TO data.
FIELD-SYMBOLS: <ls_target> TYPE any.
CALL METHOD gr_util->get_tab
EXPORTING
iv_object = iv_object
IMPORTING
et_tabname = lt_tabname
et_check_field = lt_check_field
EXCEPTIONS
not_customized = 1
OTHERS = 2.
IF sy-subrc <> 0.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = iv_object
iv_refkey = iv_objkey
* iv_object_id = iv_object_id
iv_msgty = 'E'
iv_msgtxt = 'Fehler beim Ermiteln der Tabellen'
CHANGING
is_data = is_message
).
ENDIF.
LOOP AT lt_tabname ASSIGNING FIELD-SYMBOL(<ls_tab>).
CREATE DATA lr_data TYPE (<ls_tab>-tabname).
ASSIGN lr_data->* TO <ls_target>.
CALL METHOD gr_util->get_where
EXPORTING
iv_tabname = <ls_tab>-tabname
iv_object = iv_object
iv_objkey = iv_objkey
* iv_object_id = iv_object_id
.
SELECT SINGLE * FROM (<ls_tab>) INTO <ls_target>
WHERE (gr_util->gt_where).
LOOP AT lt_check_field ASSIGNING FIELD-SYMBOL(<ls_check_field>)
WHERE tabname = <ls_tab>.
ASSIGN COMPONENT <ls_check_field>-fieldname OF STRUCTURE <ls_target> TO FIELD-SYMBOL(<lv_field_value>).
CHECK NOT <lv_field_value> IS INITIAL.
* BREAK-POINT.
CLEAR: lv_msgid, lv_msgty, lv_msgno, lv_msgv1, lv_msgv2, lv_msgv3, lv_msgv4.
CALL FUNCTION 'DDUT_INPUT_CHECK'
EXPORTING
tabname = <ls_check_field>-tabname
fieldname = <ls_check_field>-fieldname
* CALLING_PROGRAM =
* STRUCNAME =
value = <lv_field_value>
* VALUE_IS_EXTERNAL = ' '
* ACCEPT_ALL_INITIAL = ' '
* VALUE_LIST =
* NO_FORKEY_CHECK = ' '
* KEEP_FIELDINFO = ' '
IMPORTING
msgid = lv_msgid
msgty = lv_msgty
msgno = lv_msgno
msgv1 = lv_msgv1
msgv2 = lv_msgv2
msgv3 = lv_msgv3
msgv4 = lv_msgv4
* VALUE_INTERNAL =
* TABLES
* FAILURE_TAB =
* CHANGING
* ADDITIONAL_FIELDS =
EXCEPTIONS
no_ddic_field = 1
illegal_move = 2
OTHERS = 3.
IF sy-subrc <> 0 OR NOT lv_msgty IS INITIAL.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = CONV /DESO/DH_OBJECT( <ls_check_field>-tabname )
iv_refkey = CONV EDC_REFKEY( iv_objkey )
iv_reffld = CONV FIELDNAME( <ls_check_field>-fieldname )
* iv_object_id = iv_object_id
iv_msgty = lv_msgty
iv_msgid = lv_msgid
iv_msgno = lv_msgno
iv_msgv1 = lv_msgv1
iv_msgv2 = lv_msgv2
iv_msgv3 = lv_msgv3
iv_msgv4 = lv_msgv4
* iv_msgtxt =
CHANGING
is_data = is_message ).
ENDIF.
ENDLOOP.
ENDLOOP.
* CALL FUNCTION 'BUS_BUPA_EVENT_FMOD1_OBJAP'
* EXPORTING
* IV_OBJAP = GV_OBJAP
* TABLES
* T_FELDSTLST = LT_FELDSTLST.
ENDMETHOD.
METHOD check_partner_adress.
DATA: ls_adrc_struc_old TYPE adrc_struc.
DATA: ls_adrc_struc_new TYPE adrc_struc.
DATA: lv_rc TYPE ad_rcerror.
DATA: lt_addr_error TYPE TABLE OF addr_error.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-iekun ASSIGNING FIELD-SYMBOL(<ls_ekun>).
SELECT addrnumber FROM but021_fs
INTO TABLE @DATA(lt_addrnumber)
WHERE partner = @<ls_ekun>-partner.
LOOP AT lt_addrnumber ASSIGNING FIELD-SYMBOL(<ls_addrnumber>).
SELECT SINGLE * FROM adrc INTO @DATA(ls_adrc)
WHERE addrnumber = @<ls_addrnumber>-addrnumber.
MOVE-CORRESPONDING ls_adrc to ls_adrc_struc_old.
CALL FUNCTION 'ADDR_REGIONAL_DATA_CHECK'
EXPORTING
x_adrc_struc = ls_adrc_struc_old
IMPORTING
y_adrc_struc = ls_adrc_struc_new
y_retcode = lv_rc
TABLES
error_table = lt_addr_error.
IF lv_rc = 'W' or lv_rc = 'E'.
LOOP AT lt_addr_error ASSIGNING FIELD-SYMBOL(<ls_addr_error>).
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'ADRC'
iv_refkey = CONV edc_refkey( <ls_addrnumber>-addrnumber )
* iv_object_id = iv_object_id
iv_msgty = <ls_addr_error>-msg_type
iv_msgid = <ls_addr_error>-msg_id
iv_msgno = <ls_addr_error>-msg_number
iv_msgv1 = <ls_addr_error>-msg_var1
iv_msgv2 = <ls_addr_error>-msg_var2
iv_msgv3 = <ls_addr_error>-msg_var3
iv_msgv4 = <ls_addr_error>-msg_var4
* iv_msgtxt =
CHANGING
is_data = is_message ).
ENDLOOP.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD check_partner_bank.
DATA: ls_but0bk TYPE but0bk.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-iekun ASSIGNING FIELD-SYMBOL(<ls_ekun>).
SELECT * FROM but0bk INTO ls_but0bk
WHERE partner = <ls_ekun>-partner.
CALL FUNCTION 'BANK_ACCOUNT_CHECK'
EXPORTING
bank_account = ls_but0bk-bankn
bank_control_key = ls_but0bk-bkont
bank_country = ls_but0bk-banks
bank_number = ls_but0bk-bankl
i_bkref = ls_but0bk-bkref
EXCEPTIONS
not_valid = 1
OTHERS = 2.
IF sy-subrc <> 0.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'BUT0BK'
iv_refkey = CONV edc_refkey( ls_but0bk-partner && ls_but0bk-bkvid )
* iv_object_id = iv_object_id
iv_msgty = sy-msgty
iv_msgid = sy-msgid
iv_msgno = sy-msgno
iv_msgv1 = sy-msgv1
iv_msgv2 = sy-msgv2
iv_msgv3 = sy-msgv3
iv_msgv4 = sy-msgv4
* iv_msgtxt =
CHANGING
is_data = is_message ).
ENDIF.
ENDSELECT.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD check_partner_mandatory.
DATA: lv_partner TYPE gpart_kk.
DATA: ls_auto TYPE isu01_partner_auto,
ls_obj TYPE isu01_partner.
DATA: lv_updateonline TYPE c.
DATA: lv_nodialog TYPE c VALUE 'X'.
DATA: lv_upd TYPE c.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-iekun ASSIGNING FIELD-SYMBOL(<ls_ekun>).
lv_partner = <ls_ekun>-partner.
CALL FUNCTION 'ISU_S_PARTNER_PROVIDE'
EXPORTING
x_partner = lv_partner
x_wmode = '2'
x_no_dialog = 'X'
IMPORTING
y_obj = ls_obj
y_auto = ls_auto
EXCEPTIONS
not_found = 1
partner_in_role_not_found = 2
foreign_lock = 3
not_authorized = 4
invalid_wmode = 5
different_type = 6
general_fault = 7
OTHERS = 8.
CALL FUNCTION 'ISU_O_PARTNER_CLOSE'
CHANGING
xy_obj = ls_obj.
CALL FUNCTION 'ISU_S_PARTNER_CHANGE'
EXPORTING
x_partner = lv_partner
x_upd_online = lv_updateonline
x_no_dialog = lv_nodialog
x_auto = ls_auto
x_obj = ls_obj
IMPORTING
y_db_update = lv_upd
EXCEPTIONS
not_found = 1
foreign_lock = 2
not_authorized = 3
cancelled = 4
input_error = 5
general_fault = 6
OTHERS = 7.
IF sy-subrc <> 0.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'IEKUN'
iv_refkey = CONV edc_refkey( lv_partner )
* iv_object_id = iv_object_id
iv_msgty = sy-msgty
iv_msgid = sy-msgid
iv_msgno = sy-msgno
iv_msgv1 = sy-msgv1
iv_msgv2 = sy-msgv2
iv_msgv3 = sy-msgv3
iv_msgv4 = sy-msgv4
* iv_msgtxt =
CHANGING
is_data = is_message ).
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD check_partner_relation.
*BUB_BUPR_BUT050_CHECK
*BAPI_BUPR_ACTIVITYP_EXISTCHECK
*BUPR_ACTIVITYP_EXISTCHECK
*
* DATA: lt_tabname TYPE /deso/inco_tt_tabname.
* DATA: lt_check_field TYPE /deso/inco_tt_check_field.
* DATA: ls_where TYPE string.
* DATA: lv_msgid TYPE syst_msgid,
* lv_msgno TYPE syst_msgno,
* lv_msgty TYPE syst_msgty,
* lv_msgv1 TYPE syst_msgv,
* lv_msgv2 TYPE syst_msgv,
* lv_msgv3 TYPE syst_msgv,
* lv_msgv4 TYPE syst_msgv.
*
*
* DATA: lr_util TYPE REF TO /deso/inco_utilities.
* DATA: lr_staging TYPE REF TO data.
*
* FIELD-SYMBOLS: <ls_target> TYPE any.
*
* CREATE OBJECT lr_util.
*
* CALL METHOD lr_util->get_tab
* EXPORTING
* iv_object = iv_object
* IMPORTING
* et_tabname = lt_tabname
* et_check_field = lt_check_field
* EXCEPTIONS
* not_customized = 1
* OTHERS = 2.
*
* IF sy-subrc <> 0.
* CALL METHOD lr_util->insert_message(
* iv_object = iv_object
* iv_object_id = iv_object_id
* iv_msgty = 'E'
* iv_msgtxt = 'Fehler beim Ermiteln der Tabellen'
* ).
* ENDIF.
*
* LOOP AT lt_tabname ASSIGNING FIELD-SYMBOL(<ls_tab>).
*
* CREATE DATA lr_staging TYPE (<ls_tab>-tabname).
* ASSIGN lr_staging->* TO <ls_target>.
*
* CALL METHOD lr_util->get_where
* EXPORTING
* iv_tabname = <ls_tab>-tabname
* iv_object_id = iv_object_id
* IMPORTING
* es_where = ls_where.
*
*
* SELECT SINGLE * FROM (<ls_tab>) INTO <ls_target>
* WHERE (ls_where).
*
* LOOP AT lt_check_field ASSIGNING FIELD-SYMBOL(<ls_check_field>).
*
* ASSIGN COMPONENT <ls_check_field> OF STRUCTURE <ls_target> TO FIELD-SYMBOL(<lv_field_value>).
*
* CHECK NOT <lv_field_value> IS INITIAL.
*
* CALL FUNCTION 'DDUT_INPUT_CHECK'
* EXPORTING
* tabname = <ls_check_field>-tabname
* fieldname = <ls_check_field>-fieldname
** CALLING_PROGRAM =
** STRUCNAME =
* value = <lv_field_value>
** VALUE_IS_EXTERNAL = ' '
** ACCEPT_ALL_INITIAL = ' '
** VALUE_LIST =
** NO_FORKEY_CHECK = ' '
** KEEP_FIELDINFO = ' '
* IMPORTING
* msgid = lv_msgid
* msgty = lv_msgty
* msgno = lv_msgno
* msgv1 = lv_msgv1
* msgv2 = lv_msgv2
* msgv3 = lv_msgv3
* msgv4 = lv_msgv4
** VALUE_INTERNAL =
** TABLES
** FAILURE_TAB =
** CHANGING
** ADDITIONAL_FIELDS =
* EXCEPTIONS
* no_ddic_field = 1
* illegal_move = 2
* OTHERS = 3.
* IF sy-subrc <> 0.
* CALL METHOD lr_util->insert_message(
* iv_object = iv_object
* iv_object_id = iv_object_id
* iv_msgty = lv_msgty
* iv_msgid = lv_msgid
* iv_msgno = lv_msgno
* iv_msgv1 = lv_msgv1
* iv_msgv2 = lv_msgv2
* iv_msgv3 = lv_msgv3
* iv_msgv4 = lv_msgv4
** iv_msgtxt =
* ).
*
* ENDIF.
* ENDLOOP.
* ENDLOOP.
ENDMETHOD.
METHOD check_vertrag_invoicing_part.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-iever ASSIGNING FIELD-SYMBOL(<ls_ever>).
SELECT SINGLE invoicing_party FROM ever
INTO @DATA(lv_serviceid)
WHERE vertrag = @<ls_ever>-vertrag.
SELECT SINGLE * FROM eservprov
INTO @DATA(ls_eservprov)
WHERE serviceid = @lv_serviceid.
IF sy-subrc <> 0.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'IEVER'
iv_refkey = CONV edc_refkey( <ls_ever>-vertrag )
iv_reffld = 'INVOICING_PARTY'
* iv_object_id = iv_object_id
iv_msgty = 'E'
iv_msgid = '/DESO/'
iv_msgtxt = 'Serviceanbieter nicht vorhanden'
CHANGING
is_data = is_message ).
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD check_vertrag_service_id.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-iever ASSIGNING FIELD-SYMBOL(<ls_ever>).
SELECT SINGLE serviceid FROM ever
INTO @DATA(lv_serviceid)
WHERE vertrag = @<ls_ever>-vertrag.
SELECT SINGLE * FROM eservprov
INTO @DATA(ls_eservprov)
WHERE serviceid = @lv_serviceid.
IF sy-subrc <> 0.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'IEVER'
iv_refkey = CONV edc_refkey( <ls_ever>-vertrag )
* iv_object_id = iv_object_id
iv_reffld = 'SERVICEID'
* iv_object_id = iv_object_id
iv_msgty = 'E'
iv_msgid = '/DESO/'
iv_msgtxt = 'Serviceanbieter nicht vorhanden'
CHANGING
is_data = is_message ).
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD check_vkont_adress.
DATA: ls_adrc_struc_old TYPE adrc_struc.
DATA: ls_adrc_struc_new TYPE adrc_struc.
DATA: lv_rc TYPE ad_rcerror.
DATA: lt_addr_error TYPE TABLE OF addr_error.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-ifkkvkp ASSIGNING FIELD-SYMBOL(<ls_fkkvkp>).
SELECT adrnb FROM fkkvkp
INTO TABLE @DATA(lt_addrnumber)
WHERE vkont = @<ls_fkkvkp>-vkont.
LOOP AT lt_addrnumber ASSIGNING FIELD-SYMBOL(<ls_addrnumber>).
SELECT SINGLE * FROM adrc INTO @DATA(ls_adrc)
WHERE addrnumber = @<ls_addrnumber>-adrnb.
MOVE-CORRESPONDING ls_adrc TO ls_adrc_struc_old.
CALL FUNCTION 'ADDR_REGIONAL_DATA_CHECK'
EXPORTING
x_adrc_struc = ls_adrc_struc_old
IMPORTING
y_adrc_struc = ls_adrc_struc_new
y_retcode = lv_rc
TABLES
error_table = lt_addr_error.
IF lv_rc = 'W' or lv_rc = 'E'.
LOOP AT lt_addr_error ASSIGNING FIELD-SYMBOL(<ls_addr_error>).
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'ADRC'
iv_refkey = CONV edc_refkey( <ls_addrnumber>-adrnb )
* iv_object_id = iv_object_id
iv_msgty = <ls_addr_error>-msg_type
iv_msgid = <ls_addr_error>-msg_id
iv_msgno = <ls_addr_error>-msg_number
iv_msgv1 = <ls_addr_error>-msg_var1
iv_msgv2 = <ls_addr_error>-msg_var2
iv_msgv3 = <ls_addr_error>-msg_var3
iv_msgv4 = <ls_addr_error>-msg_var4
* iv_msgtxt =
CHANGING
is_data = is_message ).
ENDLOOP.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD check_vkont_azawe_ezawe.
* CALL FUNCTION 'ADDR_REGIONAL_DATA_CHECK'
* EXPORTING
* x_adrc_struc = wa_adrc_struc_old
** X_DIALOG_ALLOWED = ' '
** X_ACCEPT_ERROR = ' '
** X_T005 =
** IV_NATION = ' '
** X_MASS_UPDATE = ' '
* IMPORTING
* y_adrc_struc = wa_adrc_struc_new
** Y_ADRC_REGIO =
* y_retcode = rc
* TABLES
* error_table = it_addr_error.
* DATA: lt_tabname TYPE /deso/inco_tt_tabname.
* DATA: lt_check_field TYPE /deso/inco_tt_check_field.
* DATA: ls_where TYPE string.
* DATA: lv_msgid TYPE syst_msgid,
* lv_msgno TYPE syst_msgno,
* lv_msgty TYPE syst_msgty,
* lv_msgv1 TYPE syst_msgv,
* lv_msgv2 TYPE syst_msgv,
* lv_msgv3 TYPE syst_msgv,
* lv_msgv4 TYPE syst_msgv.
*
*
* DATA: lr_util TYPE REF TO /deso/inco_utilities.
* DATA: lr_staging TYPE REF TO data.
*
* FIELD-SYMBOLS: <ls_target> TYPE any.
*
* CREATE OBJECT lr_util.
*
* CALL METHOD lr_util->get_tab
* EXPORTING
* iv_object = iv_object
* IMPORTING
* et_tabname = lt_tabname
* et_check_field = lt_check_field
* EXCEPTIONS
* not_customized = 1
* OTHERS = 2.
*
* IF sy-subrc <> 0.
* CALL METHOD lr_util->insert_message(
* iv_object = iv_object
* iv_object_id = iv_object_id
* iv_msgtxt = 'Fehler beim Ermiteln der Tabellen'
* ).
* ENDIF.
*
* LOOP AT lt_tabname ASSIGNING FIELD-SYMBOL(<ls_tab>).
*
* CREATE DATA lr_staging TYPE (<ls_tab>-tabname).
* ASSIGN lr_staging->* TO <ls_target>.
*
* CALL METHOD lr_util->get_where
* EXPORTING
* iv_tabname = <ls_tab>-tabname
* iv_object_id = iv_object_id
* IMPORTING
* es_where = ls_where.
*
*
* SELECT SINGLE * FROM (<ls_tab>) INTO <ls_target>
* WHERE (ls_where).
*
* LOOP AT lt_check_field ASSIGNING FIELD-SYMBOL(<ls_check_field>).
*
* ASSIGN COMPONENT <ls_check_field> OF STRUCTURE <ls_target> TO FIELD-SYMBOL(<lv_field_value>).
*
* CHECK NOT <lv_field_value> IS INITIAL.
*
* CALL FUNCTION 'DDUT_INPUT_CHECK'
* EXPORTING
* tabname = <ls_check_field>-tabname
* fieldname = <ls_check_field>-fieldname
** CALLING_PROGRAM =
** STRUCNAME =
* value = <lv_field_value>
** VALUE_IS_EXTERNAL = ' '
** ACCEPT_ALL_INITIAL = ' '
** VALUE_LIST =
** NO_FORKEY_CHECK = ' '
** KEEP_FIELDINFO = ' '
* IMPORTING
* msgid = lv_msgid
* msgty = lv_msgty
* msgno = lv_msgno
* msgv1 = lv_msgv1
* msgv2 = lv_msgv2
* msgv3 = lv_msgv3
* msgv4 = lv_msgv4
** VALUE_INTERNAL =
** TABLES
** FAILURE_TAB =
** CHANGING
** ADDITIONAL_FIELDS =
* EXCEPTIONS
* no_ddic_field = 1
* illegal_move = 2
* OTHERS = 3.
* IF sy-subrc <> 0.
* CALL METHOD lr_util->insert_message(
* iv_object = iv_object
* iv_object_id = iv_object_id
* iv_msgty = lv_msgty
* iv_msgid = lv_msgid
* iv_msgno = lv_msgno
* iv_msgv1 = lv_msgv1
* iv_msgv2 = lv_msgv2
* iv_msgv3 = lv_msgv3
* iv_msgv4 = lv_msgv4
** iv_msgtxt =
* ).
*
* ENDIF.
* ENDLOOP.
* ENDLOOP.
ENDMETHOD.
METHOD check_vorlage.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
ENDLOOP.
ENDMETHOD.
METHOD constructor.
CREATE OBJECT gr_util.
ENDMETHOD.
METHOD check_vertrag_big_check.
DATA: lv_date TYPE d.
lv_date = sy-datum.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-iever ASSIGNING FIELD-SYMBOL(<ls_ever>).
TRY.
CALL FUNCTION 'ISU_BILLING_CHECK'
EXPORTING
x_vertrag = <ls_ever>-vertrag
x_check_date = lv_date
EXCEPTIONS
big_check_error = 1
general_fault = 2
error_message = 100
OTHERS = 3.
CATCH cx_root INTO DATA(e_text).
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'IEVER'
iv_refkey = CONV edc_refkey( <ls_ever>-vertrag )
* iv_object_id = iv_object_id
iv_msgty = sy-msgty
iv_msgid = sy-msgid
iv_msgno = sy-msgno
iv_msgv1 = sy-msgv1
iv_msgv2 = sy-msgv2
iv_msgv3 = sy-msgv3
iv_msgv4 = sy-msgv4
* iv_msgtxt =
CHANGING
is_data = is_message ).
ENDTRY.
IF sy-subrc = 0.
ELSE.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'IEVER'
iv_refkey = CONV edc_refkey( <ls_ever>-vertrag )
* iv_object_id = iv_object_id
iv_msgty = sy-msgty
iv_msgid = sy-msgid
iv_msgno = sy-msgno
iv_msgv1 = sy-msgv1
iv_msgv2 = sy-msgv2
iv_msgv3 = sy-msgv3
iv_msgv4 = sy-msgv4
* iv_msgtxt =
CHANGING
is_data = is_message ).
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD CHECK_INIT.
* LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
* CALL METHOD /deso/dh_utilities=>set_param
* EXPORTING
* param = 'PARAM_NAME'
* value = 'PARAM_VALUE'
* CHANGING
* ch_data = <ls_data>.
* ENDLOOP.
ENDMETHOD.
METHOD check_vs_scenario.
DATA: ls_scen TYPE ederegscenario.
DATA: ls_scen_text TYPE e_deregscenariotxt.
LOOP AT is_data ASSIGNING FIELD-SYMBOL(<ls_data>).
LOOP AT <ls_data>-ieuiinstln ASSIGNING FIELD-SYMBOL(<ls_euiinstln>).
CALL FUNCTION 'ISU_O_SCENARIO_AT_POD_GET'
EXPORTING
x_int_ui = <ls_euiinstln>-int_ui
x_keydate = sy-datum
IMPORTING
y_scenario = ls_scen
y_scenariotxt = ls_scen_text
EXCEPTIONS
general_fault = 1
OTHERS = 2.
IF sy-subrc <> 0.
CALL METHOD gr_util->insert_message(
EXPORTING
iv_view = iv_view
iv_object = iv_object
iv_objkey = iv_objkey
iv_refobj = 'IEUIINSTLN'
iv_refkey = CONV edc_refkey( <ls_euiinstln>-int_ui )
iv_reffld = 'INT_UI'
iv_msgty = 'E'
iv_msgid = '/DESO/'
iv_msgtxt = 'VS-Szenario nicht ermittelbar'
CHANGING
is_data = is_message ).
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
ENDCLASS.