diff --git a/.abapgit.xml b/.abapgit.xml
new file mode 100644
index 0000000..607f652
--- /dev/null
+++ b/.abapgit.xml
@@ -0,0 +1,10 @@
+
+
+
+
+ D
+ /src/
+ FULL
+
+
+
diff --git a/src/#deso#.nspc.xml b/src/#deso#.nspc.xml
new file mode 100644
index 0000000..273bbd2
--- /dev/null
+++ b/src/#deso#.nspc.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ /DESO/
+ 31120315153559132970
+
+
+ D
+ Namensraum für Dechange Solutions
+ DeMa
+
+
+
+
diff --git a/src/#deso#data_hawk rf.sush.xml b/src/#deso#data_hawk rf.sush.xml
new file mode 100644
index 0000000..805f31a
--- /dev/null
+++ b/src/#deso#data_hawk rf.sush.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ /DESO/DATA_HAWK
+ RF
+ /DESO/DATA_HAWK
+ Datenprüfung
+
+
+
+
diff --git a/src/#deso#data_hawk.tran.xml b/src/#deso#data_hawk.tran.xml
new file mode 100644
index 0000000..189c723
--- /dev/null
+++ b/src/#deso#data_hawk.tran.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ /DESO/DATA_HAWK
+ /DESO/DH_HAWK
+ 1000
+ gA==
+
+
+ /DESO/DATA_HAWK
+
+
+ D
+ /DESO/DATA_HAWK
+ DeSo: Datenanalyse
+
+
+
+
diff --git a/src/#deso#de_dh_lizenz.dtel.xml b/src/#deso#de_dh_lizenz.dtel.xml
new file mode 100644
index 0000000..1ead7b1
--- /dev/null
+++ b/src/#deso#de_dh_lizenz.dtel.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ /DESO/DE_DH_LIZENZ
+ D
+ /DESO/DH_DO_LIZENZ
+ 20
+ 06
+ 10
+ 15
+ DeSo: Lizenzschlüssel
+ Lizenzschlüssel
+ Lizenz
+ Lizenzsch.
+ Lizenzschlüssel
+ D
+ D
+
+
+
+
diff --git a/src/#deso#dh_activ.dtel.xml b/src/#deso#dh_activ.dtel.xml
new file mode 100644
index 0000000..bc7b022
--- /dev/null
+++ b/src/#deso#dh_activ.dtel.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ /DESO/DH_ACTIV
+ D
+ KENNZX
+ 20
+ 05
+ 10
+ 15
+ DATA Hawk: Kennzeichen Prüfung aktiv
+ Prüfung aktiv
+ aktiv
+ aktiv
+ Prüfung aktiv
+ D
+ D
+
+
+
+
diff --git a/src/#deso#dh_c_cla.tabl.xml b/src/#deso#dh_c_cla.tabl.xml
new file mode 100644
index 0000000..44518ef
--- /dev/null
+++ b/src/#deso#dh_c_cla.tabl.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+ /DESO/DH_C_CLA
+ D
+ TRANSP
+ X
+ DATA Hawk: Methoden zu Objekten
+ X
+ A
+ 1
+
+
+ /DESO/DH_C_CLA
+ A
+ 0
+ USER
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ 0
+ X
+ E
+
+
+ CHECK_VIEW
+ X
+ /DESO/DH_VIEW
+ 0
+ X
+ E
+
+
+ OBJECT
+ X
+ /DESO/DH_OBJECT
+ 0
+ X
+ E
+
+
+ CLASS
+ X
+ SEOCLSNAME
+ 0
+ X
+ E
+
+
+ DESCRIPT
+ DSCR
+ 0
+ E
+
+
+
+
+ /DESO/DH_C_CLA
+ &NC&
+
+
+
+
+
diff --git a/src/#deso#dh_c_clas.tobj.xml b/src/#deso#dh_c_clas.tobj.xml
new file mode 100644
index 0000000..2e724d0
--- /dev/null
+++ b/src/#deso#dh_c_clas.tobj.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+ /DESO/DH_C_CLA
+ S
+ X
+ APPL
+ 3
+
+
+ D
+ /DESO/DH_C_CLA
+ S
+ DATA Hawk: Methoden zu Objekten
+
+
+
+ /DESO/DH_C_CLA
+ S
+ /DESO/DH_C_CLA
+ X
+ X
+
+
+
+
+ /DESO/DH_C_CLA
+ &NC&
+
+
+ /DESO/DH_C_CLA
+ /DESO/FG_DH_CUST
+ 1
+ 0003
+ X
+ X
+
+
+
+
+
diff --git a/src/#deso#dh_c_ht.tabl.xml b/src/#deso#dh_c_ht.tabl.xml
new file mode 100644
index 0000000..df7e514
--- /dev/null
+++ b/src/#deso#dh_c_ht.tabl.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+ /DESO/DH_C_HT
+ D
+ TRANSP
+ X
+ DATA Hawk: Customizing allgemein
+ X
+ A
+ 1
+
+
+ /DESO/DH_C_HT
+ A
+ 0
+ USER
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ 0
+ X
+ E
+
+
+ CHECK_VIEW
+ X
+ /DESO/DH_VIEW
+ 0
+ X
+ E
+
+
+ LIZENZ
+ /DESO/DE_DH_LIZENZ
+ 0
+ E
+
+
+ DESCRIPT
+ DSCR
+ 0
+ E
+
+
+ BGRFC_DEST
+ RFCDEST
+ 0
+ D
+ E
+
+
+ BGRFC_PACK
+ 0
+ X
+ 000004
+ INT4
+ 000010
+ INT4
+
+
+ BATCH_COUNT
+ 0
+ X
+ 000004
+ INT4
+ 000010
+ INT4
+
+
+
+
+ /DESO/DH_C_HT
+ &NC&
+
+
+
+
+
diff --git a/src/#deso#dh_c_hts.tobj.xml b/src/#deso#dh_c_hts.tobj.xml
new file mode 100644
index 0000000..4802f07
--- /dev/null
+++ b/src/#deso#dh_c_hts.tobj.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+ /DESO/DH_C_HT
+ S
+ X
+ APPL
+ 3
+
+
+ D
+ /DESO/DH_C_HT
+ S
+ DATA Hawk: Customizing allgemein
+
+
+
+ /DESO/DH_C_HT
+ S
+ /DESO/DH_C_HT
+ X
+ X
+
+
+
+
+ /DESO/DH_C_HT
+ &NC&
+
+
+ /DESO/DH_C_HT
+ /DESO/FG_DH_CUST
+ 1
+ 0001
+ X
+ X
+
+
+
+
+
diff --git a/src/#deso#dh_c_met.tabl.xml b/src/#deso#dh_c_met.tabl.xml
new file mode 100644
index 0000000..6ef14e6
--- /dev/null
+++ b/src/#deso#dh_c_met.tabl.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+ /DESO/DH_C_MET
+ D
+ TRANSP
+ X
+ DATA Hawk: Methoden zu Objekten
+ X
+ A
+ 1
+
+
+ /DESO/DH_C_MET
+ A
+ 0
+ USER
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ 0
+ X
+ E
+
+
+ CHECK_VIEW
+ X
+ /DESO/DH_VIEW
+ 0
+ X
+ E
+
+
+ OBJECT
+ X
+ /DESO/DH_OBJECT
+ 0
+ X
+ E
+
+
+ CLASS
+ X
+ SEOCLSNAME
+ 0
+ X
+ E
+
+
+ METHOD
+ X
+ SEOCPDNAME
+ 0
+ X
+ E
+
+
+ DESCRIPT
+ DSCR
+ 0
+ E
+
+
+
+
+ /DESO/DH_C_MET
+ &NC&
+
+
+
+
+
diff --git a/src/#deso#dh_c_mets.tobj.xml b/src/#deso#dh_c_mets.tobj.xml
new file mode 100644
index 0000000..a96242b
--- /dev/null
+++ b/src/#deso#dh_c_mets.tobj.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+ /DESO/DH_C_MET
+ S
+ X
+ APPL
+ 3
+
+
+ D
+ /DESO/DH_C_MET
+ S
+ DATA Hawk: Methoden zu Objekten
+
+
+
+ /DESO/DH_C_MET
+ S
+ /DESO/DH_C_MET
+ X
+ X
+
+
+
+
+ /DESO/DH_C_MET
+ &NC&
+
+
+ /DESO/DH_C_MET
+ /DESO/FG_DH_CUST
+ 1
+ 0004
+ X
+ X
+
+
+
+
+
diff --git a/src/#deso#dh_c_obj.tabl.xml b/src/#deso#dh_c_obj.tabl.xml
new file mode 100644
index 0000000..43b8a1c
--- /dev/null
+++ b/src/#deso#dh_c_obj.tabl.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+ /DESO/DH_C_OBJ
+ D
+ TRANSP
+ X
+ DATA Hawk: Prüfobjekte
+ X
+ A
+ 1
+
+
+ /DESO/DH_C_OBJ
+ A
+ 0
+ USER
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ 0
+ X
+ E
+
+
+ CHECK_VIEW
+ X
+ /DESO/DH_VIEW
+ 0
+ X
+ E
+
+
+ OBJECT
+ X
+ /DESO/DH_OBJECT
+ 0
+ X
+ E
+
+
+ DESCRIPT
+ DSCR
+ 0
+ E
+
+
+
+
+ /DESO/DH_C_OBJ
+ &NC&
+
+
+
+
+
diff --git a/src/#deso#dh_c_objs.tobj.xml b/src/#deso#dh_c_objs.tobj.xml
new file mode 100644
index 0000000..d50b624
--- /dev/null
+++ b/src/#deso#dh_c_objs.tobj.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+ /DESO/DH_C_OBJ
+ S
+ X
+ APPL
+ 3
+
+
+ D
+ /DESO/DH_C_OBJ
+ S
+ DATA Hawk: Prüfobjekte
+
+
+
+ /DESO/DH_C_OBJ
+ S
+ /DESO/DH_C_OBJ
+ X
+ X
+
+
+
+
+ /DESO/DH_C_OBJ
+ &NC&
+
+
+ /DESO/DH_C_OBJ
+ /DESO/FG_DH_CUST
+ 1
+ 0002
+ X
+ X
+
+
+
+
+
diff --git a/src/#deso#dh_c_rep.tabl.xml b/src/#deso#dh_c_rep.tabl.xml
new file mode 100644
index 0000000..8b9d494
--- /dev/null
+++ b/src/#deso#dh_c_rep.tabl.xml
@@ -0,0 +1,100 @@
+
+
+
+
+
+ /DESO/DH_C_REP
+ D
+ TRANSP
+ X
+ DATA Hawk: Methoden zu Objekten
+ X
+ A
+ 1
+
+
+ /DESO/DH_C_REP
+ A
+ 0
+ USER
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ 0
+ X
+ E
+
+
+ CHECK_VIEW
+ X
+ /DESO/DH_VIEW
+ 0
+ X
+ E
+
+
+ OBJECT
+ X
+ /DESO/DH_OBJECT
+ 0
+ X
+ E
+
+
+ MSGTY
+ X
+ MSGTY
+ 0
+ X
+ X
+ F
+ E
+
+
+ MSGID
+ X
+ MSGID
+ 0
+ X
+ E
+
+
+ MSGNO
+ X
+ MSGNO
+ 0
+ X
+ E
+
+
+ REP_CLASS
+ SEOCLSNAME
+ 0
+ E
+
+
+ REP_METHOD
+ SEOCPDNAME
+ 0
+ E
+
+
+ DESCRIPT
+ DSCR
+ 0
+ E
+
+
+
+
+ /DESO/DH_C_REP
+ &NC&
+
+
+
+
+
diff --git a/src/#deso#dh_c_reps.tobj.xml b/src/#deso#dh_c_reps.tobj.xml
new file mode 100644
index 0000000..9a0db8c
--- /dev/null
+++ b/src/#deso#dh_c_reps.tobj.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+ /DESO/DH_C_REP
+ S
+ X
+ APPL
+ 3
+
+
+ D
+ /DESO/DH_C_REP
+ S
+ DATA Hawk: Methoden zu Objekten
+
+
+
+ /DESO/DH_C_REP
+ S
+ /DESO/DH_C_REP
+ X
+ X
+
+
+
+
+ /DESO/DH_C_REP
+ &NC&
+
+
+ /DESO/DH_C_REP
+ /DESO/FG_DH_CUST
+ 1
+ 0006
+ X
+ X
+
+
+
+
+
diff --git a/src/#deso#dh_c_tab.tabl.xml b/src/#deso#dh_c_tab.tabl.xml
new file mode 100644
index 0000000..efa06d3
--- /dev/null
+++ b/src/#deso#dh_c_tab.tabl.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+ /DESO/DH_C_TAB
+ D
+ TRANSP
+ X
+ DATA Hawk: Tabellen zu Objekten
+ X
+ A
+ 1
+
+
+ /DESO/DH_C_TAB
+ A
+ 0
+ USER
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ 0
+ X
+ E
+
+
+ CHECK_VIEW
+ X
+ /DESO/DH_VIEW
+ 0
+ X
+ E
+
+
+ OBJECT
+ X
+ /DESO/DH_OBJECT
+ 0
+ X
+ E
+
+
+ TABNAME
+ X
+ TABNAME
+ 0
+ X
+ E
+
+
+ DESCRIPT
+ DSCR
+ 0
+ E
+
+
+
+
+ /DESO/DH_C_TAB
+ &NC&
+
+
+
+
+
diff --git a/src/#deso#dh_c_tabs.tobj.xml b/src/#deso#dh_c_tabs.tobj.xml
new file mode 100644
index 0000000..fb64cd4
--- /dev/null
+++ b/src/#deso#dh_c_tabs.tobj.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+ /DESO/DH_C_TAB
+ S
+ X
+ APPL
+ 3
+
+
+ D
+ /DESO/DH_C_TAB
+ S
+ DATA Hawk: Tabellen zu Objekten
+
+
+
+ /DESO/DH_C_TAB
+ S
+ /DESO/DH_C_TAB
+ X
+ X
+
+
+
+
+ /DESO/DH_C_TAB
+ &NC&
+
+
+ /DESO/DH_C_TAB
+ /DESO/FG_DH_CUST
+ 1
+ 0005
+ X
+ X
+
+
+
+
+
diff --git a/src/#deso#dh_checks.clas.abap b/src/#deso#dh_checks.clas.abap
new file mode 100644
index 0000000..6feace0
--- /dev/null
+++ b/src/#deso#dh_checks.clas.abap
@@ -0,0 +1,1056 @@
+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().
+ LOOP AT -ieanl ASSIGNING FIELD-SYMBOL().
+
+ SELECT SINGLE invoicing_party FROM eanlh
+ INTO @DATA(lv_serviceid)
+ WHERE anlage = @-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( -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().
+ LOOP AT -iehau ASSIGNING FIELD-SYMBOL().
+
+ SELECT SINGLE * FROM iflot INTO @DATA(ls_iflot)
+ WHERE tplnr = @-haus.
+
+ SELECT adrnr FROM iloa
+ INTO TABLE @DATA(lt_addrnumber)
+ WHERE tplnr = @ls_iflot-tplnr.
+
+ LOOP AT lt_addrnumber ASSIGNING FIELD-SYMBOL().
+
+ SELECT SINGLE * FROM adrc INTO @DATA(ls_adrc)
+ WHERE 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().
+ 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( -haus )
+* iv_object_id = iv_object_id
+ iv_msgty = -msg_type
+ iv_msgid = -msg_id
+ iv_msgno = -msg_number
+ iv_msgv1 = -msg_var1
+ iv_msgv2 = -msg_var2
+ iv_msgv3 = -msg_var3
+ iv_msgv4 = -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: 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().
+
+ CREATE DATA lr_data TYPE (-tabname).
+ ASSIGN lr_data->* TO .
+
+ CALL METHOD gr_util->get_where
+ EXPORTING
+ iv_tabname = -tabname
+ iv_object = iv_object
+ iv_objkey = iv_objkey
+* iv_object_id = iv_object_id
+ .
+
+
+ SELECT SINGLE * FROM () INTO
+ WHERE (gr_util->gt_where).
+
+ LOOP AT lt_check_field ASSIGNING FIELD-SYMBOL()
+ WHERE tabname = .
+
+ ASSIGN COMPONENT -fieldname OF STRUCTURE TO FIELD-SYMBOL().
+
+ CHECK NOT 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 = -tabname
+ fieldname = -fieldname
+* CALLING_PROGRAM =
+* STRUCNAME =
+ 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( -tabname )
+ iv_refkey = CONV EDC_REFKEY( iv_objkey )
+ iv_reffld = CONV FIELDNAME( -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().
+ LOOP AT -iekun ASSIGNING FIELD-SYMBOL().
+
+ SELECT addrnumber FROM but021_fs
+ INTO TABLE @DATA(lt_addrnumber)
+ WHERE partner = @-partner.
+
+ LOOP AT lt_addrnumber ASSIGNING FIELD-SYMBOL().
+
+ SELECT SINGLE * FROM adrc INTO @DATA(ls_adrc)
+ WHERE 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().
+ 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( -addrnumber )
+* iv_object_id = iv_object_id
+ iv_msgty = -msg_type
+ iv_msgid = -msg_id
+ iv_msgno = -msg_number
+ iv_msgv1 = -msg_var1
+ iv_msgv2 = -msg_var2
+ iv_msgv3 = -msg_var3
+ iv_msgv4 = -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().
+ LOOP AT -iekun ASSIGNING FIELD-SYMBOL().
+
+ SELECT * FROM but0bk INTO ls_but0bk
+ WHERE partner = -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().
+ LOOP AT -iekun ASSIGNING FIELD-SYMBOL().
+
+ lv_partner = -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: 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().
+*
+* CREATE DATA lr_staging TYPE (-tabname).
+* ASSIGN lr_staging->* TO .
+*
+* CALL METHOD lr_util->get_where
+* EXPORTING
+* iv_tabname = -tabname
+* iv_object_id = iv_object_id
+* IMPORTING
+* es_where = ls_where.
+*
+*
+* SELECT SINGLE * FROM () INTO
+* WHERE (ls_where).
+*
+* LOOP AT lt_check_field ASSIGNING FIELD-SYMBOL().
+*
+* ASSIGN COMPONENT OF STRUCTURE TO FIELD-SYMBOL().
+*
+* CHECK NOT IS INITIAL.
+*
+* CALL FUNCTION 'DDUT_INPUT_CHECK'
+* EXPORTING
+* tabname = -tabname
+* fieldname = -fieldname
+** CALLING_PROGRAM =
+** STRUCNAME =
+* 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().
+ LOOP AT -iever ASSIGNING FIELD-SYMBOL().
+
+ SELECT SINGLE invoicing_party FROM ever
+ INTO @DATA(lv_serviceid)
+ WHERE vertrag = @-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( -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().
+ LOOP AT -iever ASSIGNING FIELD-SYMBOL().
+ SELECT SINGLE serviceid FROM ever
+ INTO @DATA(lv_serviceid)
+ WHERE vertrag = @-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( -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().
+ LOOP AT -ifkkvkp ASSIGNING FIELD-SYMBOL().
+
+ SELECT adrnb FROM fkkvkp
+ INTO TABLE @DATA(lt_addrnumber)
+ WHERE vkont = @-vkont.
+
+ LOOP AT lt_addrnumber ASSIGNING FIELD-SYMBOL().
+
+ SELECT SINGLE * FROM adrc INTO @DATA(ls_adrc)
+ WHERE 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().
+ 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( -adrnb )
+* iv_object_id = iv_object_id
+ iv_msgty = -msg_type
+ iv_msgid = -msg_id
+ iv_msgno = -msg_number
+ iv_msgv1 = -msg_var1
+ iv_msgv2 = -msg_var2
+ iv_msgv3 = -msg_var3
+ iv_msgv4 = -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: 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().
+*
+* CREATE DATA lr_staging TYPE (-tabname).
+* ASSIGN lr_staging->* TO .
+*
+* CALL METHOD lr_util->get_where
+* EXPORTING
+* iv_tabname = -tabname
+* iv_object_id = iv_object_id
+* IMPORTING
+* es_where = ls_where.
+*
+*
+* SELECT SINGLE * FROM () INTO
+* WHERE (ls_where).
+*
+* LOOP AT lt_check_field ASSIGNING FIELD-SYMBOL().
+*
+* ASSIGN COMPONENT OF STRUCTURE TO FIELD-SYMBOL().
+*
+* CHECK NOT IS INITIAL.
+*
+* CALL FUNCTION 'DDUT_INPUT_CHECK'
+* EXPORTING
+* tabname = -tabname
+* fieldname = -fieldname
+** CALLING_PROGRAM =
+** STRUCNAME =
+* 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().
+
+ 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().
+ LOOP AT -iever ASSIGNING FIELD-SYMBOL().
+ TRY.
+ CALL FUNCTION 'ISU_BILLING_CHECK'
+ EXPORTING
+ x_vertrag = -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( -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( -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().
+* CALL METHOD /deso/dh_utilities=>set_param
+* EXPORTING
+* param = 'PARAM_NAME'
+* value = 'PARAM_VALUE'
+* CHANGING
+* ch_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().
+ LOOP AT -ieuiinstln ASSIGNING FIELD-SYMBOL().
+
+ CALL FUNCTION 'ISU_O_SCENARIO_AT_POD_GET'
+ EXPORTING
+ x_int_ui = -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( -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.
diff --git a/src/#deso#dh_checks.clas.xml b/src/#deso#dh_checks.clas.xml
new file mode 100644
index 0000000..efea179
--- /dev/null
+++ b/src/#deso#dh_checks.clas.xml
@@ -0,0 +1,286 @@
+
+
+
+
+
+ /DESO/DH_CHECKS
+ D
+ Klasse für Prüfungen
+ 1
+ X
+ X
+ X
+
+
+
+ CHECK_ANLAGE_INVOICING_PARTNER
+ D
+ ANLAGE: Prüfung fakt. Serviceanbieter
+
+
+ CHECK_HAUS_ADRESS
+ D
+ CONNOBJ: Prüfung Adressdaten
+
+
+ CHECK_INIT
+ D
+ Initiale Methode
+
+
+ CHECK_INPUT_VS_CUST
+ D
+ Prüfung auf Eingaben gegen Customizing
+
+
+ CHECK_PARTNER_ADRESS
+ D
+ PARTNER: Prüfung Adressdaten
+
+
+ CHECK_PARTNER_BANK
+ D
+ PARTNER: Prüfung Bankdaten
+
+
+ CHECK_PARTNER_MANDATORY
+ D
+ PARTNER: Prüfung Pflichtfelder
+
+
+ CHECK_PARTNER_RELATION
+ D
+ PARTNER: Prüfung Partnerbeziehung
+
+
+ CHECK_VERTRAG_BIG_CHECK
+ D
+ VERTRAG: Prüfung Vertrag Serviceanbieter
+
+
+ CHECK_VERTRAG_INVOICING_PART
+ D
+ VERTRAG: Prüfung Vertrag fakt. Serviceanbieter
+
+
+ CHECK_VERTRAG_SERVICE_ID
+ D
+ VERTRAG: Prüfung Vertrag Serviceanbieter
+
+
+ CHECK_VKONT_ADRESS
+ D
+ ACCOUNT: Prüfung Adressdaten
+
+
+ CHECK_VKONT_AZAWE_EZAWE
+ D
+ ACCOUNT: Prüfung Adressdaten
+
+
+ CHECK_VORLAGE
+ D
+ Vorlage
+
+
+ CHECK_VS_SCENARIO
+ D
+ VSCEN: Prüfung Versorgungsszenario
+
+
+ GR_UTIL
+ D
+ Werkzeuge
+
+
+
+
+ CHECK_ANLAGE_INVOICING_PARTNER
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_ANLAGE_INVOICING_PARTNER
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_HAUS_ADRESS
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_HAUS_ADRESS
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_INIT
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_INIT
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_INPUT_VS_CUST
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_INPUT_VS_CUST
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_PARTNER_ADRESS
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_PARTNER_ADRESS
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_PARTNER_BANK
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_PARTNER_BANK
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_PARTNER_MANDATORY
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_PARTNER_MANDATORY
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_PARTNER_RELATION
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_PARTNER_RELATION
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_VERTRAG_BIG_CHECK
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_VERTRAG_BIG_CHECK
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_VERTRAG_INVOICING_PART
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_VERTRAG_INVOICING_PART
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_VERTRAG_SERVICE_ID
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_VERTRAG_SERVICE_ID
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_VKONT_ADRESS
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_VKONT_ADRESS
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_VKONT_AZAWE_EZAWE
+ IS_DATA
+ D
+ DATA Hawk: Daten für die Verarbeitung
+
+
+ CHECK_VKONT_AZAWE_EZAWE
+ IS_MESSAGE
+ D
+ DATA Hawk: Message
+
+
+ CHECK_VKONT_AZAWE_EZAWE
+ IV_VIEW
+ D
+ DATA Hawk: Variante
+
+
+ CHECK_VORLAGE
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_VORLAGE
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+ CHECK_VS_SCENARIO
+ IS_DATA
+ D
+ DATA Hawk: Fehlerprotokolltabelle
+
+
+ CHECK_VS_SCENARIO
+ IV_OBJECT
+ D
+ SAP ArchiveLink: Objekttyp des Business Objekts
+
+
+
+
+
diff --git a/src/#deso#dh_cust.tran.xml b/src/#deso#dh_cust.tran.xml
new file mode 100644
index 0000000..9b6d51c
--- /dev/null
+++ b/src/#deso#dh_cust.tran.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+ /DESO/DH_CUST
+ Ag==
+
+
+ /DESO/DH_CUST
+ 1
+ X
+ X
+
+
+ D
+ /DESO/DH_CUST
+ DATA Hawk: Customizing
+
+
+ /DESO/DH_CUST
+ /*SM34 VCLDIR-VCLNAME=/DESO/DH_CUST;UPDATE=x;
+
+
+
+
diff --git a/src/#deso#dh_cust.vcls.xml b/src/#deso#dh_cust.vcls.xml
new file mode 100644
index 0000000..99fa351
--- /dev/null
+++ b/src/#deso#dh_cust.vcls.xml
@@ -0,0 +1,180 @@
+
+
+
+
+
+ /DESO/DH_CUST
+ Customizing für DATA-Hawk
+
+
+
+ /DESO/DH_CUST
+
+ Varianten
+ /DESO/DH_C_HT
+ R
+ 01
+ 01
+ X
+
+
+ /DESO/DH_CUST
+
+ Objekte
+ /DESO/DH_C_HT
+ S
+ 02
+ 02
+
+
+ /DESO/DH_CUST
+
+ Tabellen
+ /DESO/DH_C_OBJ
+ S
+ 03
+ 03
+
+
+ /DESO/DH_CUST
+
+ Prüfklasse
+ /DESO/DH_C_OBJ
+ S
+ 04
+ 03
+
+
+ /DESO/DH_CUST
+
+ Prüfmethoden
+ /DESO/DH_C_CLA
+ S
+ 05
+ 04
+
+
+ /DESO/DH_CUST
+
+ Reparaturmethode
+ /DESO/DH_C_OBJ
+ S
+ 06
+ 03
+
+
+
+
+ /DESO/DH_CUST
+
+ CHECK_VIEW
+ /DESO/DH_C_OBJ
+ CHECK_VIEW
+
+
+ /DESO/DH_CUST
+
+ MANDT
+ /DESO/DH_C_OBJ
+ MANDT
+
+
+ /DESO/DH_CUST
+
+ OBJECT
+ /DESO/DH_C_OBJ
+ OBJECT
+
+
+ /DESO/DH_CUST
+
+ /DESO/DH_C_HT
+
+
+ /DESO/DH_CUST
+
+ CHECK_VIEW
+ /DESO/DH_C_CLA
+ CHECK_VIEW
+
+
+ /DESO/DH_CUST
+
+ CLASS
+ /DESO/DH_C_CLA
+ CLASS
+
+
+ /DESO/DH_CUST
+
+ MANDT
+ /DESO/DH_C_CLA
+ MANDT
+
+
+ /DESO/DH_CUST
+
+ OBJECT
+ /DESO/DH_C_CLA
+ OBJECT
+
+
+ /DESO/DH_CUST
+
+ CHECK_VIEW
+ /DESO/DH_C_HT
+ CHECK_VIEW
+
+
+ /DESO/DH_CUST
+
+ MANDT
+ /DESO/DH_C_HT
+ MANDT
+
+
+ /DESO/DH_CUST
+
+ CHECK_VIEW
+ /DESO/DH_C_OBJ
+ CHECK_VIEW
+
+
+ /DESO/DH_CUST
+
+ MANDT
+ /DESO/DH_C_OBJ
+ MANDT
+
+
+ /DESO/DH_CUST
+
+ OBJECT
+ /DESO/DH_C_OBJ
+ OBJECT
+
+
+ /DESO/DH_CUST
+
+ CHECK_VIEW
+ /DESO/DH_C_OBJ
+ CHECK_VIEW
+
+
+ /DESO/DH_CUST
+
+ MANDT
+ /DESO/DH_C_OBJ
+ MANDT
+
+
+ /DESO/DH_CUST
+
+ OBJECT
+ /DESO/DH_C_OBJ
+ OBJECT
+
+
+
+
+
diff --git a/src/#deso#dh_custc.tobj.xml b/src/#deso#dh_custc.tobj.xml
new file mode 100644
index 0000000..a0d02b7
--- /dev/null
+++ b/src/#deso#dh_custc.tobj.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+ /DESO/DH_CUST
+ C
+ X
+ APPL
+ 3
+
+
+ D
+ /DESO/DH_CUST
+ C
+ Customizing für DATA-Hawk
+
+
+
+ /DESO/DH_CUST
+ C
+ /DESO/DH_C_CLA
+ X
+
+
+ /DESO/DH_CUST
+ C
+ /DESO/DH_C_HT
+ X
+
+
+ /DESO/DH_CUST
+ C
+ /DESO/DH_C_MET
+ X
+
+
+ /DESO/DH_CUST
+ C
+ /DESO/DH_C_OBJ
+ X
+
+
+ /DESO/DH_CUST
+ C
+ /DESO/DH_C_REP
+ X
+
+
+ /DESO/DH_CUST
+ C
+ /DESO/DH_C_TAB
+ X
+
+
+
+
+
diff --git a/src/#deso#dh_do_active.doma.xml b/src/#deso#dh_do_active.doma.xml
new file mode 100644
index 0000000..6aca142
--- /dev/null
+++ b/src/#deso#dh_do_active.doma.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+ /DESO/DH_DO_ACTIVE
+ D
+ CHAR
+ 000001
+ 000001
+ X
+ DATA Hawk: Checkbox (Aktiv/Inaktiv)
+
+
+
+ 0001
+ D
+ X
+ Aktiv
+
+
+ 0002
+ D
+ Inaktiv
+
+
+
+ E
+
+
+ -
+ E
+ Checkbox (Active/Inactive)
+
+
+
+ -
+ 0001
+ E
+ X
+ Active
+
+ -
+ 0002
+ E
+ Inactive
+
+
+
+
+
diff --git a/src/#deso#dh_do_lizenz.doma.xml b/src/#deso#dh_do_lizenz.doma.xml
new file mode 100644
index 0000000..8a5ef03
--- /dev/null
+++ b/src/#deso#dh_do_lizenz.doma.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ /DESO/DH_DO_LIZENZ
+ D
+ CHAR
+ 000030
+ 000030
+ X
+ DeSo: Lizenzschlüssel
+
+
+
+
diff --git a/src/#deso#dh_do_object.doma.xml b/src/#deso#dh_do_object.doma.xml
new file mode 100644
index 0000000..16538a0
--- /dev/null
+++ b/src/#deso#dh_do_object.doma.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ /DESO/DH_DO_OBJECT
+ D
+ CHAR
+ 000010
+ 000010
+ TOJTB
+ DATA Hawk: Object
+
+
+
+
diff --git a/src/#deso#dh_hawk.prog.abap b/src/#deso#dh_hawk.prog.abap
new file mode 100644
index 0000000..d0e1cd4
--- /dev/null
+++ b/src/#deso#dh_hawk.prog.abap
@@ -0,0 +1,19 @@
+*&---------------------------------------------------------------------*
+*& Report /DESO/INCO_HAWK
+*&---------------------------------------------------------------------*
+*&
+*&---------------------------------------------------------------------*
+REPORT /deso/dh_hawk.
+INCLUDE /deso/dh_hawk_se .
+INCLUDE /deso/dh_hawk_da .
+INCLUDE /deso/dh_hawk_fo .
+INCLUDE /deso/dh_hawk_me .
+INCLUDE /deso/dh_hawk_mo .
+
+START-OF-SELECTION.
+
+ CREATE OBJECT g_application.
+
+ mac_check_lizenz.
+
+ CALL SCREEN 9000.
diff --git a/src/#deso#dh_hawk.prog.screen_9000.abap b/src/#deso#dh_hawk.prog.screen_9000.abap
new file mode 100644
index 0000000..a8a3ca0
--- /dev/null
+++ b/src/#deso#dh_hawk.prog.screen_9000.abap
@@ -0,0 +1,20 @@
+PROCESS BEFORE OUTPUT.
+*&SPWIZARD: PBO FLOW LOGIC FOR TABSTRIP 'TABSTRIP'
+ MODULE tabstrip_active_tab_set.
+ CALL SUBSCREEN:
+ 9001_sca INCLUDING g_tabstrip-prog '9001',
+ 9002_sca INCLUDING g_tabstrip-prog '9002',
+ 9003_sca INCLUDING g_tabstrip-prog '9003'.
+* 9004_sca INCLUDING g_tabstrip-prog '9004'.
+ MODULE cont0.
+ MODULE status_9000.
+*
+PROCESS AFTER INPUT.
+*&SPWIZARD: PAI FLOW LOGIC FOR TABSTRIP 'TABSTRIP'
+ CALL SUBSCREEN:
+ 9001_sca,
+ 9002_sca,
+ 9003_sca.
+
+ MODULE user_command_9000.
+ MODULE tabstrip_active_tab_get.
diff --git a/src/#deso#dh_hawk.prog.screen_9001.abap b/src/#deso#dh_hawk.prog.screen_9001.abap
new file mode 100644
index 0000000..fdb73a6
--- /dev/null
+++ b/src/#deso#dh_hawk.prog.screen_9001.abap
@@ -0,0 +1,10 @@
+PROCESS BEFORE OUTPUT.
+ MODULE status_9001.
+ MODULE fill_variant.
+
+PROCESS AFTER INPUT.
+ MODULE user_command_9001.
+
+PROCESS ON VALUE-REQUEST.
+
+ FIELD gv_var MODULE create_dropbox_variant.
diff --git a/src/#deso#dh_hawk.prog.screen_9002.abap b/src/#deso#dh_hawk.prog.screen_9002.abap
new file mode 100644
index 0000000..379093a
--- /dev/null
+++ b/src/#deso#dh_hawk.prog.screen_9002.abap
@@ -0,0 +1,8 @@
+PROCESS BEFORE OUTPUT.
+ MODULE STATUS_9002.
+ CALL SUBSCREEN subscreen INCLUDING '/DESO/DH_HAWK' '0100'.
+*
+PROCESS AFTER INPUT.
+
+ CALL SUBSCREEN subscreen.
+ MODULE USER_COMMAND_9002.
diff --git a/src/#deso#dh_hawk.prog.screen_9003.abap b/src/#deso#dh_hawk.prog.screen_9003.abap
new file mode 100644
index 0000000..8f540d0
--- /dev/null
+++ b/src/#deso#dh_hawk.prog.screen_9003.abap
@@ -0,0 +1,5 @@
+PROCESS BEFORE OUTPUT.
+ MODULE status_9003.
+*
+PROCESS AFTER INPUT.
+ MODULE user_command_9003.
diff --git a/src/#deso#dh_hawk.prog.xml b/src/#deso#dh_hawk.prog.xml
new file mode 100644
index 0000000..8837f4e
--- /dev/null
+++ b/src/#deso#dh_hawk.prog.xml
@@ -0,0 +1,724 @@
+
+
+
+
+
+ /DESO/DH_HAWK
+ 1
+ D
+ X
+ X
+
+
+ -
+
+ /DESO/DH_HAWK
+ 9000
+ D
+ Hauptbildschirm
+ N
+ 9000
+ 055
+ 255
+
+
+
+ SCREEN
+ SCREEN
+
+
+ CUST_CTRL
+ CONT0
+ SCREEN
+ 001
+ 001
+ 255
+ 007
+
+
+ STRIP_CTRL
+ TABSTRIP
+ SCREEN
+ 010
+ 001
+ 255
+ 046
+ X
+ X
+ 006
+ 015
+
+
+ SUBSCREEN
+ 9001_SCA
+ TABSTRIP
+ 012
+ 002
+ 253
+ 043
+ X
+ X
+ 003
+ 012
+ X
+ X
+
+
+ SUBSCREEN
+ 9002_SCA
+ TABSTRIP
+ 012
+ 002
+ 253
+ 043
+ X
+ X
+ 003
+ 012
+ X
+ X
+
+
+ SUBSCREEN
+ 9003_SCA
+ TABSTRIP
+ 012
+ 002
+ 253
+ 043
+ X
+ X
+ 003
+ 012
+ X
+ X
+
+
+
+
+ SCREEN
+ SCREEN
+ PUSH
+ BUT_CUST
+ Customizing_
+ ICON_ALV_VARIANTS
+ X
+ 009
+ 241
+ 017
+ 015
+ 001
+ CUST
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+ STRIP_CTRL
+ TABSTRIP
+ PUSH
+ TABSTRIP_TAB1
+ Varianten
+ 001
+ 001
+ 009
+ 009
+ 001
+ TABSTRIP_FC1
+ P
+ CHAR
+ N
+ 9001_SCA
+
+
+ STRIP_CTRL
+ TABSTRIP
+ PUSH
+ TABSTRIP_TAB2
+ Verarbeitung
+ 001
+ 002
+ 012
+ 012
+ 001
+ TABSTRIP_FC2
+ P
+ CHAR
+ N
+ 9002_SCA
+
+
+ STRIP_CTRL
+ TABSTRIP
+ PUSH
+ TABSTRIP_TAB3
+ Ergebnis
+ 001
+ 003
+ 008
+ 008
+ 001
+ TABSTRIP_FC3
+ P
+ CHAR
+ N
+ 9003_SCA
+
+
+
+ -
+
+ /DESO/DH_HAWK
+ 9001
+ D
+ Varianten
+ I
+ 0000
+ 024
+ 252
+
+
+
+ SCREEN
+ SCREEN
+
+
+ CUST_CTRL
+ CONT1
+ SCREEN
+ 003
+ 001
+ 251
+ 022
+
+
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ TXT_VAR
+ Variante:
+ 001
+ 001
+ 009
+ 009
+ 001
+ CHAR
+ N
+ X
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ GV_VAR
+ __________
+ K
+ 001
+ 011
+ 010
+ 012
+ 001
+ SEL_VARI
+ CHAR
+ X
+ X
+ R
+ 1
+
+
+ SCREEN
+ SCREEN
+ PUSH
+ BUT_CREATE
+ anlegen__
+ ICON_CREATE
+ X
+ 001
+ 025
+ 014
+ 012
+ 001
+ NEW
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ PUSH
+ BUT_SAVE
+ sichern__
+ ICON_SYSTEM_SAVE
+ X
+ 001
+ 039
+ 014
+ 012
+ 001
+ SAVE
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ PUSH
+ BUT_DELETE
+ löschen__
+ ICON_DELETE
+ X
+ 001
+ 053
+ 014
+ 012
+ 001
+ DELETE
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+
+ -
+
+ /DESO/DH_HAWK
+ 9002
+ D
+ Verarbeitung
+ I
+ 0000
+ 044
+ 255
+
+
+
+ SCREEN
+ SCREEN
+
+
+ SUBSCREEN
+ SUBSCREEN
+ SCREEN
+ 003
+ 001
+ 250
+ 010
+
+
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ TXT_SEL
+ Selektionskriterien
+ 001
+ 002
+ 019
+ 019
+ 001
+ CHAR
+ N
+ X
+
+
+ SCREEN
+ SCREEN
+ PUSH
+ BUT_START
+ Verarbeitung_starten
+ ICON_EXECUTE_OBJECT
+ X
+ 001
+ 022
+ 025
+ 021
+ 001
+ START
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+
+ -
+
+ /DESO/DH_HAWK
+ 9003
+ D
+ Ergebnis
+ I
+ 0000
+ 024
+ 255
+
+
+
+ SCREEN
+ SCREEN
+
+
+ CUST_CTRL
+ CONT2
+ SCREEN
+ 003
+ 001
+ 253
+ 022
+
+
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ %#AUTOTEXT001
+ Ergebnis_der_Analyse
+ 001
+ 001
+ 020
+ 020
+ 001
+ CHAR
+ N
+ X
+
+
+ SCREEN
+ SCREEN
+ PUSH
+ BUT_REF
+ Aktualisieren
+ ICON_REFRESH
+ X
+ 001
+ 029
+ 018
+ 015
+ 001
+ REF
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ PUSH
+ BUT_DELETE
+ Zurücksetzen
+ ICON_DELETE
+ X
+ 001
+ 045
+ 017
+ 015
+ 001
+ DELE
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ PUSH
+ BUT_KORREKTUR
+ Korrektur_starten
+ ICON_EXECUTE_OBJECT
+ X
+ 001
+ 066
+ 022
+ 017
+ 001
+ KORR_RUN
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+
+
+
+
+ 000001
+ 000001
+
+
+
+ 9000
+ D
+ 000001
+ 000001
+ 0001
+ 9000
+
+
+
+
+ BACK
+ 001
+ S
+ Zurück
+
+
+ EXIT
+ 001
+ S
+ Beenden
+
+
+ EXIT
+ 002
+ S
+ ICON_CANCEL
+ @0W@
+ Abbrechen
+
+
+
+
+ 000001
+ 03
+ BACK
+ 001
+
+
+ 000001
+ 12
+ EXIT
+ 002
+
+
+ 000001
+ 15
+ EXIT
+ 001
+
+
+
+
+ 9000
+ BACK
+
+
+ 9000
+ EXIT
+
+
+
+
+ A
+ 000001
+ D
+ 9000
+
+
+ P
+ 000001
+ D
+ 9000
+
+
+ B
+ 000001
+ 0001
+ D
+ 9000
+
+
+
+
+ /DESO/DH_HAWK
+ DeSo: DATA Hawk
+
+
+ /DESO/MIGCOCKPIT
+ DeSo: DATA-Hawk
+
+
+
+
+ -
+ I
+ 001
+ Selektion
+ 20
+
+ -
+ I
+ 002
+ Verarbeitungsart
+ 27
+
+ -
+ R
+ DeSo: DATA Hawk
+ 18
+
+ -
+ S
+ PA_AKT
+ Nur aktive Verträge
+ 28
+
+ -
+ S
+ PA_BATCH
+ Batchverarbeitung
+ 25
+
+ -
+ S
+ PA_BGRFC
+ BgRFC-Verarbeitung
+ 26
+
+ -
+ S
+ PA_COUNT
+ Anzahl Batchjobs
+ 24
+
+ -
+ S
+ PA_DEST
+ BgRFC-Verbindung
+ 24
+
+ -
+ S
+ PA_DEV
+ Gerätebeziehungen beachten
+ 34
+
+ -
+ S
+ PA_PACK
+ BgRFC-Packetgröße
+ 25
+
+ -
+ S
+ PA_PREL
+ ZP-Beziehungen beachten
+ 31
+
+ -
+ S
+ SO_ANL
+ .
+ 9
+ D
+
+ -
+ S
+ SO_AO
+ Anschlussobjekt
+ 23
+
+ -
+ S
+ SO_BUKRS
+ .
+ 9
+ D
+
+ -
+ S
+ SO_EXTUI
+ .
+ 9
+ D
+
+ -
+ S
+ SO_GER
+ Geräte
+ 14
+
+ -
+ S
+ SO_GINF
+ Geräteinfosätze
+ 23
+
+ -
+ S
+ SO_GPART
+ .
+ 9
+ D
+
+ -
+ S
+ SO_MATNR
+ Gerätetyp
+ 17
+
+ -
+ S
+ SO_VERT
+ .
+ 9
+ D
+
+ -
+ S
+ SO_VKONT
+ .
+ 9
+ D
+
+ -
+ S
+ SO_VST
+ .
+ 9
+ D
+
+
+
+
+
diff --git a/src/#deso#dh_hawk_btc.prog.abap b/src/#deso#dh_hawk_btc.prog.abap
new file mode 100644
index 0000000..95f4ac1
--- /dev/null
+++ b/src/#deso#dh_hawk_btc.prog.abap
@@ -0,0 +1,128 @@
+*&---------------------------------------------------------------------*
+*& Report /DESO/DH_HAWK_BTC
+*&---------------------------------------------------------------------*
+*&
+*&---------------------------------------------------------------------*
+REPORT /deso/dh_hawk_btc.
+TABLES: fkkvkp,
+ ever,
+ evbs,
+ equi,
+ egerr,
+ ehauisu,
+ euitrans.
+
+DATA: gt_sel TYPE TABLE OF /deso/s_select.
+DATA: gt_sel_pack TYPE /deso/dh_tt_select.
+
+PARAMETERS: pa_view TYPE /deso/dh_view.
+SELECT-OPTIONS so_gpart FOR fkkvkp-gpart.
+SELECT-OPTIONS so_vkont FOR fkkvkp-vkont.
+SELECT-OPTIONS so_vert FOR ever-vertrag.
+SELECT-OPTIONS so_bukrs FOR ever-bukrs.
+SELECT-OPTIONS so_anl FOR ever-anlage.
+SELECT-OPTIONS so_vst FOR evbs-vstelle.
+SELECT-OPTIONS so_ao FOR ehauisu-haus.
+SELECT-OPTIONS so_matnr FOR equi-matnr.
+SELECT-OPTIONS so_ger FOR equi-equnr.
+SELECT-OPTIONS so_ginf FOR egerr-equnr.
+SELECT-OPTIONS so_extui FOR euitrans-ext_ui.
+PARAMETERS: pa_akt AS CHECKBOX.
+PARAMETERS: pa_dev TYPE flag. "Zusatzdaten beim Gerät beachten: ZW-/Gerätezuordnungen, ZW-Beziehungen und weitere Daten nachladen
+PARAMETERS: pa_prel TYPE flag. "ZP-Beziehungen lesen und Daten zu den in der Beziehungen vorkommenden ZP nachladen
+
+PARAMETERS: pa_bgrfc RADIOBUTTON GROUP 1,
+ pa_batch RADIOBUTTON GROUP 1.
+PARAMETERS: pa_btcnt(2) TYPE n DEFAULT 1.
+PARAMETERS: pa_btc." NO-DISPLAY.
+
+START-OF-SELECTION.
+
+ IF NOT so_gpart IS INITIAL.
+ SELECT 'ISUPARTNER' AS objekt, partner AS objkey FROM but100
+ APPENDING TABLE @gt_sel
+ WHERE partner IN @so_gpart.
+ ENDIF.
+ IF NOT so_vkont IS INITIAL.
+ SELECT 'ISUACCOUNT' AS objekt, vkont AS objkey FROM fkkvk
+ APPENDING TABLE @gt_sel
+ WHERE vkont IN @so_vkont.
+ ENDIF.
+
+ IF NOT so_vert IS INITIAL.
+ IF pa_akt IS INITIAL.
+ SELECT 'ISUCONTRCT' AS objekt, vertrag AS objkey FROM ever
+ APPENDING TABLE @gt_sel
+ WHERE vertrag IN @so_vert
+ AND bukrs IN @so_bukrs.
+ ELSE.
+ SELECT 'ISUCONTRCT' AS objekt, vertrag AS objkey FROM ever
+ APPENDING TABLE @gt_sel
+ WHERE vertrag IN @so_vert
+ AND bukrs IN @so_bukrs
+ AND auszdat EQ '99991231'.
+ ENDIF.
+ ENDIF.
+
+ IF NOT so_anl IS INITIAL.
+ SELECT 'INSTLN' AS objekt, anlage AS objkey FROM eanl
+ APPENDING TABLE @gt_sel
+ WHERE anlage IN @so_anl.
+ ENDIF.
+
+ IF NOT so_vst IS INITIAL.
+ SELECT 'PREMISES' AS objekt, vstelle AS objkey FROM evbs
+ APPENDING TABLE @gt_sel
+ WHERE vstelle IN @so_vst.
+ ENDIF.
+
+ IF NOT so_ao IS INITIAL.
+ SELECT 'CONNOBJ' AS objekt, haus AS objkey FROM ehauisu
+ APPENDING TABLE @gt_sel
+ WHERE haus IN @so_ao.
+ ENDIF.
+
+ IF NOT so_matnr IS INITIAL.
+ SELECT 'DEVICE' AS objekt, equnr AS objkey FROM equi
+ APPENDING TABLE @gt_sel
+ WHERE matnr IN @so_matnr.
+ SELECT 'DEVICE' AS objekt, equnr AS objkey FROM egerr
+ APPENDING TABLE @gt_sel
+ WHERE matnr IN @so_matnr
+ AND bis = '99991231'.
+ ENDIF.
+
+
+ IF NOT so_ger IS INITIAL.
+ SELECT 'DEVICE' AS objekt, equnr AS objkey FROM equi
+ APPENDING TABLE @gt_sel
+ WHERE equnr IN @so_ger.
+ ENDIF.
+
+ IF NOT so_ginf IS INITIAL.
+ SELECT 'DEVINFO' AS objekt, equnr AS objkey FROM egerr
+ APPENDING TABLE @gt_sel
+ WHERE equnr IN @so_ginf.
+ ENDIF.
+
+ IF NOT so_extui IS INITIAL.
+ SELECT 'ISUPOD' AS objekt, ext_ui AS objkey FROM euitrans
+ APPENDING TABLE @gt_sel
+ WHERE ext_ui IN @so_extui.
+ ENDIF.
+
+
+ SORT gt_sel.
+ DELETE ADJACENT DUPLICATES FROM gt_sel.
+
+ IF pa_btc = abap_true.
+ PERFORM work_btc.
+ ELSE.
+ IF pa_batch = abap_true.
+ PERFORM run_batch.
+ ELSE.
+ PERFORM run_bgrfc.
+ ENDIF.
+ ENDIF.
+
+ INCLUDE /deso/dh_hawk_btc_f.
diff --git a/src/#deso#dh_hawk_btc.prog.xml b/src/#deso#dh_hawk_btc.prog.xml
new file mode 100644
index 0000000..9f15758
--- /dev/null
+++ b/src/#deso#dh_hawk_btc.prog.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+ /DESO/DH_HAWK_BTC
+ 1
+ D
+ X
+ X
+
+
+ -
+ R
+ DeSo: DATA Hawk Analysereport
+ 29
+
+ -
+ S
+ PA_VIEW
+ .
+ 9
+ D
+
+ -
+ S
+ SO_ANL
+ .
+ 9
+ D
+
+ -
+ S
+ SO_AO
+ .
+ 9
+ D
+
+ -
+ S
+ SO_GER
+ .
+ 9
+ D
+
+ -
+ S
+ SO_GINF
+ .
+ 9
+ D
+
+ -
+ S
+ SO_GPART
+ .
+ 9
+ D
+
+ -
+ S
+ SO_VERT
+ .
+ 9
+ D
+
+ -
+ S
+ SO_VKONT
+ .
+ 9
+ D
+
+ -
+ S
+ SO_VST
+ .
+ 9
+ D
+
+
+
+
+
diff --git a/src/#deso#dh_hawk_btc_f.prog.abap b/src/#deso#dh_hawk_btc_f.prog.abap
new file mode 100644
index 0000000..70997b2
--- /dev/null
+++ b/src/#deso#dh_hawk_btc_f.prog.abap
@@ -0,0 +1,375 @@
+*----------------------------------------------------------------------*
+***INCLUDE /DESO/DH_HAWK_BTC_F.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Form run_bgrfc
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& --> p1 text
+*& <-- p2 text
+*&---------------------------------------------------------------------*
+FORM run_bgrfc .
+ SELECT SINGLE bgrfc_dest FROM /deso/dh_c_ht
+ INTO @DATA(lv_bgrfc).
+
+ SELECT SINGLE bgrfc_pack FROM /deso/dh_c_ht
+ INTO @DATA(lv_pack).
+
+ DATA(lo_dest) = cl_bgrfc_destination_inbound=>create( lv_bgrfc ).
+
+ DO.
+ DATA(lo_unit) = lo_dest->create_trfc_unit( ).
+
+ APPEND LINES OF gt_sel FROM 1 TO lv_pack TO gt_sel_pack.
+
+ IF lines( gt_sel_pack ) = 0.
+ EXIT.
+ ENDIF.
+
+ CALL FUNCTION '/DESO/DATA_HAWK'
+ IN BACKGROUND UNIT lo_unit
+ EXPORTING
+ iv_check_view = pa_view
+ IV_CHECK_DEV = pa_dev
+ IV_CHECK_PODREL = pa_prel
+ TABLES
+ it_data = gt_sel_pack.
+
+ COMMIT WORK.
+ DELETE gt_sel FROM 1 TO lv_pack.
+ REFRESH gt_sel_pack.
+
+ ENDDO.
+
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Form run_batch
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& --> p1 text
+*& <-- p2 text
+*&---------------------------------------------------------------------*
+FORM run_batch .
+ DEFINE mac_so.
+
+ LOOP AT &1.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = &1-sign.
+ -option = &1-option.
+ -kind = 'S'.
+ -selname = '&1'.
+ -low = &1-low.
+ -high = &1-high.
+ ENDLOOP.
+
+ END-OF-DEFINITION.
+
+ DATA: lv_jobname TYPE tbtcjob-jobname.
+ DATA: lv_jobcount LIKE tbtcjob-jobcount.
+ DATA: BEGIN OF ls_starttime.
+ INCLUDE STRUCTURE tbtcstrt.
+ DATA: END OF ls_starttime.
+ DATA: lt_selection TYPE TABLE OF rsparams.
+ DATA: startimmediate LIKE btch0000-char1.
+ DATA: job_already_released.
+
+ lv_jobname = '/DESO/DATA_HAWK' && '_' && pa_view.
+
+ CALL FUNCTION 'JOB_OPEN'
+ EXPORTING
+ jobname = lv_jobname
+ IMPORTING
+ jobcount = lv_jobcount
+ EXCEPTIONS
+ cant_create_job = 1
+ invalid_job_data = 2
+ jobname_missing = 3
+ OTHERS = 4.
+ IF sy-subrc <> 0.
+* Implement suitable error handling here
+ ELSE.
+
+ APPEND INITIAL LINE TO lt_selection ASSIGNING FIELD-SYMBOL().
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_VIEW'.
+ -low = pa_view.
+
+
+ mac_so so_gpart.
+ mac_so so_vkont.
+ mac_so so_vert.
+ mac_so so_anl.
+ mac_so so_vst.
+ mac_so so_ao.
+ mac_so so_matnr.
+ mac_so so_ger.
+ mac_so so_ginf.
+ mac_so so_extui.
+
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_DEV'.
+ -low = pa_dev.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_PREL'.
+ -low = pa_prel.
+
+
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_BTC'.
+ -low = abap_true.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_BATCH'.
+ -low = abap_true.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_BTCNT'.
+ -low = pa_btcnt.
+
+* -high = &1-high.
+
+ SUBMIT /deso/dh_hawk_btc WITH SELECTION-TABLE lt_selection
+ VIA JOB lv_jobname NUMBER lv_jobcount AND RETURN.
+
+* CALL FUNCTION 'BP_START_DATE_EDITOR'
+* EXPORTING
+* stdt_dialog = 'N'
+* stdt_input = ls_starttime
+* stdt_opcode = '14'
+* IMPORTING
+** stdt_modify_type = start_modify_flag
+* stdt_output = ls_starttime
+* EXCEPTIONS
+* fcal_id_not_defined = 01
+* incomplete_last_startdate = 02
+* incomplete_startdate = 03
+* invalid_dialog_type = 04
+* invalid_eventid = 05
+* invalid_opcode = 06
+* invalid_opmode_name = 07
+* invalid_periodbehaviour = 08
+* invalid_predecessor_jobname = 09
+* last_startdate_in_the_past = 10
+* no_period_data_given = 11
+* no_startdate_given = 12
+* period_and_predjob_no_way = 13
+* period_too_small_for_limit = 14
+* predecessor_jobname_not_unique = 15
+* startdate_interval_too_large = 16
+* startdate_in_the_past = 17
+* startdate_is_a_holiday = 18
+* startdate_out_of_fcal_range = 19
+* stdt_before_holiday_in_past = 20
+* unknown_fcal_error_occured = 21.
+*
+*
+* CASE ls_starttime-startdttyp.
+* WHEN 'I'. "User selected immediate start
+* startimmediate = 'X'.
+* ENDCASE.
+
+ CALL FUNCTION 'JOB_CLOSE'
+ EXPORTING
+* at_opmode = ' '
+* at_opmode_periodic = ' '
+* calendar_id = ' '
+* event_id = ls_starttime-eventid
+* event_param = ls_starttime-eventparm
+* event_periodic = ' '
+ jobcount = lv_jobcount
+ jobname = lv_jobname
+* laststrtdt = ls_starttime-laststrtdt
+* laststrttm = ls_starttime-laststrttm
+* prddays = ls_starttime-prddays
+* prdhours = ls_starttime-prdhours
+* prdmins = ls_starttime-prdmins
+* prdmonths = ls_starttime-prdmonths
+* prdweeks = ls_starttime-prdweeks
+* predjob_checkstat = ' '
+* pred_jobcount = ' '
+* pred_jobname = ' '
+* sdlstrtdt = ls_starttime-sdlstrtdt
+* sdlstrttm = ls_starttime-sdlstrttm
+* startdate_restriction = btc_process_always
+ strtimmed = 'X' "startimmediate'
+ IMPORTING
+ job_was_released = job_already_released
+ EXCEPTIONS
+ cant_start_immediate = 01
+ invalid_startdate = 02
+ jobname_missing = 03
+ job_close_failed = 04
+ job_nosteps = 05
+ job_notex = 06
+ lock_failed = 07.
+ IF sy-subrc = 0.
+ IF startimmediate = abap_true.
+ MESSAGE s000(/deso/mig_message) WITH lv_jobname.
+* Job &1 wurde angelegt und gestartet.
+ ELSE.
+ MESSAGE s001(/deso/mig_message) WITH lv_jobname.
+* Job &1 wurde angelegt und eingeplant.
+ ENDIF.
+ ENDIF.
+
+ ENDIF.
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Form work_btc
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& --> p1 text
+*& <-- p2 text
+*&---------------------------------------------------------------------*
+FORM work_btc .
+ DEFINE mac_so.
+
+ LOOP AT &1.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = &1-sign.
+ -option = &1-option.
+ -kind = 'S'.
+ -selname = '&1'.
+ -low = &1-low.
+ -high = &1-high.
+ ENDLOOP.
+
+ END-OF-DEFINITION.
+
+ DATA: lv_jobname TYPE tbtcjob-jobname.
+ DATA: lv_jobcount LIKE tbtcjob-jobcount.
+ DATA: BEGIN OF ls_starttime.
+ INCLUDE STRUCTURE tbtcstrt.
+ DATA: END OF ls_starttime.
+ DATA: lt_selection TYPE TABLE OF rsparams.
+ DATA: startimmediate LIKE btch0000-char1.
+ DATA: job_already_released.
+ DATA: lv_n3(3) TYPE n.
+
+ DATA: lv_pack TYPE int4.
+ lv_pack = lines( gt_sel ) / pa_btcnt.
+
+ DO pa_btcnt TIMES.
+ MOVE sy-index TO lv_n3.
+ APPEND LINES OF gt_sel FROM 1 TO lv_pack TO gt_sel_pack.
+ DELETE gt_sel FROM 1 TO lv_pack.
+ lv_jobname = '/DESO/DATA_HAWK_ST' && '_' && pa_view && '_' && lv_n3.
+
+ CALL FUNCTION 'JOB_OPEN'
+ EXPORTING
+ jobname = lv_jobname
+ IMPORTING
+ jobcount = lv_jobcount
+ EXCEPTIONS
+ cant_create_job = 1
+ invalid_job_data = 2
+ jobname_missing = 3
+ OTHERS = 4.
+ IF sy-subrc <> 0.
+* Implement suitable error handling here
+ ELSE.
+ REFRESH lt_selection.
+ "Steps mit 500
+ WHILE lines( gt_sel_pack ) > 0.
+ READ TABLE gt_sel_pack ASSIGNING FIELD-SYMBOL() INDEX 1.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING FIELD-SYMBOL().
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'S'.
+ -selname = 'SO_SEL'.
+ -low(10) = -object.
+ -low+10 = -objkey.
+ DELETE gt_sel_pack INDEX 1.
+
+* IF lines( lt_selection ) = 10.
+* APPEND INITIAL LINE TO lt_selection ASSIGNING .
+* -sign = 'I'.
+* -option = 'EQ'.
+* -kind = 'P'.
+* -selname = 'PA_VIEW'.
+* -low = pa_view.
+*
+*
+* SUBMIT /deso/dh_hawk_btc WITH SELECTION-TABLE lt_selection
+* VIA JOB lv_jobname NUMBER lv_jobcount AND RETURN.
+* REFRESH lt_selection.
+* ENDIF.
+
+ ENDWHILE.
+ IF lines( lt_selection ) > 0.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_VIEW'.
+ -low = pa_view.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_DEV'.
+ -low = pa_dev.
+ APPEND INITIAL LINE TO lt_selection ASSIGNING .
+ -sign = 'I'.
+ -option = 'EQ'.
+ -kind = 'P'.
+ -selname = 'PA_PREL'.
+ -low = pa_prel.
+
+ SUBMIT /deso/dh_hawk_btc_start WITH SELECTION-TABLE lt_selection
+ VIA JOB lv_jobname NUMBER lv_jobcount AND RETURN.
+ REFRESH lt_selection.
+
+ ENDIF.
+ CALL FUNCTION 'JOB_CLOSE'
+ EXPORTING
+ jobcount = lv_jobcount
+ jobname = lv_jobname
+ strtimmed = 'X'
+ IMPORTING
+ job_was_released = job_already_released
+ EXCEPTIONS
+ cant_start_immediate = 01
+ invalid_startdate = 02
+ jobname_missing = 03
+ job_close_failed = 04
+ job_nosteps = 05
+ job_notex = 06
+ lock_failed = 07.
+ IF sy-subrc = 0.
+ IF startimmediate = abap_true.
+ MESSAGE s000(/deso/mig_message) WITH lv_jobname.
+* Job &1 wurde angelegt und gestartet.
+ ELSE.
+ MESSAGE s001(/deso/mig_message) WITH lv_jobname.
+* Job &1 wurde angelegt und eingeplant.
+ ENDIF.
+ ENDIF.
+
+ ENDIF.
+
+ ENDDO. "Jobs
+
+
+
+
+
+ENDFORM.
diff --git a/src/#deso#dh_hawk_btc_f.prog.xml b/src/#deso#dh_hawk_btc_f.prog.xml
new file mode 100644
index 0000000..9d5126f
--- /dev/null
+++ b/src/#deso#dh_hawk_btc_f.prog.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ /DESO/DH_HAWK_BTC_F
+ I
+ D
+ X
+
+
+ -
+ R
+ Include für /DESO/DH_HAWK_BTC Forms
+ 35
+
+
+
+
+
diff --git a/src/#deso#dh_hawk_btc_start.prog.abap b/src/#deso#dh_hawk_btc_start.prog.abap
new file mode 100644
index 0000000..7140cd6
--- /dev/null
+++ b/src/#deso#dh_hawk_btc_start.prog.abap
@@ -0,0 +1,30 @@
+*&---------------------------------------------------------------------*
+*& Report /DESO/DH_HAWK_BTC_START
+*&---------------------------------------------------------------------*
+*&
+*&---------------------------------------------------------------------*
+REPORT /DESO/DH_HAWK_BTC_START.
+data ls_sel type /deso/s_select.
+data lt_sel type TABLE of /deso/s_select.
+data ls_sel_txt type char80.
+
+PARAMETERS: pa_view TYPE /deso/dh_view.
+PARAMETERS: pa_dev TYPE flag. "Zusatzdaten beim Gerät beachten: ZW-/Gerätezuordnungen, ZW-Beziehungen und weitere Daten nachladen
+PARAMETERS: pa_prel TYPE flag. "ZP-Beziehungen lesen und Daten zu den in der Beziehungen vorkommenden ZP nachladen
+
+SELECT-OPTIONS so_sel for ls_sel_txt.
+
+
+LOOP AT so_sel ASSIGNING FIELD-SYMBOL().
+ ls_sel-object = -low(10).
+ ls_sel-objkey = -low+10.
+ append ls_sel to lt_sel.
+ENDLOOP.
+
+ CALL FUNCTION '/DESO/DATA_HAWK'
+ EXPORTING
+ iv_check_view = pa_view
+ IV_CHECK_DEV = pa_dev
+ IV_CHECK_PODREL = pa_prel
+ TABLES
+ it_data = lt_sel.
diff --git a/src/#deso#dh_hawk_btc_start.prog.xml b/src/#deso#dh_hawk_btc_start.prog.xml
new file mode 100644
index 0000000..7db0dd2
--- /dev/null
+++ b/src/#deso#dh_hawk_btc_start.prog.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+ /DESO/DH_HAWK_BTC_START
+ 1
+ D
+ X
+ X
+
+
+ -
+ R
+ DeSo: DATA Hawk Analyse Startreport
+ 35
+
+ -
+ S
+ PA_DEV
+ .
+ 9
+ D
+
+ -
+ S
+ PA_PREL
+ .
+ 9
+ D
+
+ -
+ S
+ PA_VIEW
+ .
+ 9
+ D
+
+ -
+ S
+ SO_SEL
+ Selektion
+ 17
+
+
+
+
+
diff --git a/src/#deso#dh_hawk_correct.prog.abap b/src/#deso#dh_hawk_correct.prog.abap
new file mode 100644
index 0000000..20cf73b
--- /dev/null
+++ b/src/#deso#dh_hawk_correct.prog.abap
@@ -0,0 +1,64 @@
+*&---------------------------------------------------------------------*
+*& Report /DESO/DH_HAWK_CORRECT
+*&---------------------------------------------------------------------*
+*&
+*&---------------------------------------------------------------------*
+REPORT /deso/dh_hawk_correct.
+
+DATA: gr_repare TYPE REF TO /deso/dh_repare.
+DATA: lv_update TYPE kennzx.
+
+PARAMETERS: pa_view TYPE /deso/dh_view,
+ pa_obj TYPE /deso/dh_message-object,
+ pa_refob TYPE /deso/dh_object,
+ pa_reffl TYPE /deso/dh_message-reffld,
+ pa_msgty TYPE sy-msgty,
+ pa_msgid TYPE sy-msgid,
+ pa_msgno TYPE sy-msgno,
+ pa_class TYPE seoclsname,
+ pa_meth TYPE seocpdname.
+
+START-OF-SELECTION.
+
+ SELECT * FROM /deso/dh_message
+ INTO TABLE @DATA(lt_message)
+ WHERE check_view = @pa_view
+ AND object = @pa_obj
+ AND refobject = @pa_refob
+ AND reffld = @pa_reffl
+ AND msgty = @pa_msgty
+ AND msgid = @pa_msgid
+ AND msgno = @pa_msgno.
+
+ CREATE OBJECT gr_repare TYPE (pa_class).
+
+ LOOP AT lt_message ASSIGNING FIELD-SYMBOL().
+
+ CALL METHOD gr_repare->(pa_meth)
+ EXPORTING
+ iv_view = -check_view
+ iv_object = -object
+ iv_objkey = -objkey
+ CHANGING
+ cs_message =
+ RECEIVING
+ rv_update = lv_update.
+
+ IF lv_update = abap_true.
+
+ UPDATE /deso/dh_message SET status = '@08@'
+ WHERE check_view = pa_view
+ AND object = pa_obj
+ AND refobject = pa_refob
+ AND reffld = pa_reffl
+ AND refobjkey = -refobjkey
+ AND msgty = pa_msgty
+ AND msgid = pa_msgid
+ AND msgno = pa_msgno.
+ COMMIT WORK.
+ ELSE.
+* Update war nicht erfolgreich.
+ ROLLBACK WORK.
+ ENDIF.
+
+ ENDLOOP.
diff --git a/src/#deso#dh_hawk_correct.prog.xml b/src/#deso#dh_hawk_correct.prog.xml
new file mode 100644
index 0000000..42879dc
--- /dev/null
+++ b/src/#deso#dh_hawk_correct.prog.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+ /DESO/DH_HAWK_CORRECT
+ 1
+ D
+ X
+ X
+
+
+ -
+ R
+ DeSo: DATA Hawk Korrekturreport
+ 31
+
+ -
+ S
+ PA_CLASS
+ Reparaturklasse
+ 23
+
+ -
+ S
+ PA_METH
+ Reparaturmethode
+ 24
+
+ -
+ S
+ PA_MSGID
+ .
+ 9
+ D
+
+ -
+ S
+ PA_MSGNO
+ .
+ 9
+ D
+
+ -
+ S
+ PA_MSGTY
+ .
+ 9
+ D
+
+ -
+ S
+ PA_OBJ
+ Prüfobjekt
+ 18
+
+ -
+ S
+ PA_REFFL
+ .
+ 9
+ D
+
+ -
+ S
+ PA_REFOB
+ .
+ 9
+ D
+
+ -
+ S
+ PA_VIEW
+ .
+ 9
+ D
+
+
+
+
+
diff --git a/src/#deso#dh_hawk_da.prog.abap b/src/#deso#dh_hawk_da.prog.abap
new file mode 100644
index 0000000..d45892f
--- /dev/null
+++ b/src/#deso#dh_hawk_da.prog.abap
@@ -0,0 +1,107 @@
+*&---------------------------------------------------------------------*
+*& Include /DESO/DH_HAWK_D
+*&---------------------------------------------------------------------*
+
+ DATA gv_version(10) VALUE '1.25.08.07'.
+
+ CLASS lcl_application DEFINITION DEFERRED.
+
+ DATA: encoded TYPE string,
+ decoded TYPE string,
+ code TYPE string,
+ c_last_error TYPE i.
+ DEFINE mac_check_lizenz.
+ SELECT SINGLE lizenz FROM /deso/dh_c_ht INTO code.
+ SYSTEM-CALL ict
+ DID
+ ihttp_scid_base64_unescape
+ PARAMETERS
+ code " >
+ decoded " <
+ c_last_error. " < return code
+
+ IF sy-datum >= decoded.
+ MESSAGE i000(em) WITH 'Keine gültige Lizenz'
+ space
+ space
+ space.
+ CALL TRANSACTION '/DESO/DH_CUST'.
+ LEAVE PROGRAM.
+ ENDIF.
+ END-OF-DEFINITION.
+
+*&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'TABSTRIP'
+ CONSTANTS: BEGIN OF c_tabstrip,
+ tab1 LIKE sy-ucomm VALUE 'TABSTRIP_FC1',
+ tab2 LIKE sy-ucomm VALUE 'TABSTRIP_FC2',
+ tab3 LIKE sy-ucomm VALUE 'TABSTRIP_FC3',
+ tab4 LIKE sy-ucomm VALUE 'TABSTRIP_FC4',
+ END OF c_tabstrip.
+*&SPWIZARD: DATA FOR TABSTRIP 'TABSTRIP'
+ CONTROLS: tabstrip TYPE TABSTRIP.
+ DATA: BEGIN OF g_tabstrip,
+ subscreen LIKE sy-dynnr,
+ prog LIKE sy-repid VALUE '/DESO/DH_HAWK',
+ pressed_tab LIKE sy-ucomm VALUE c_tabstrip-tab1,
+ END OF g_tabstrip.
+ DATA: ok_code LIKE sy-ucomm.
+
+ DATA: go_container_html TYPE REF TO cl_gui_custom_container,
+ go_picture_html TYPE REF TO cl_gui_html_viewer,
+ lv_url_html TYPE cndp_url,
+ ls_raw_html_line TYPE c LENGTH 255,
+ lt_raw_html LIKE STANDARD TABLE OF ls_raw_html_line.
+
+ DATA: lv_last_version TYPE char20.
+
+ DATA: ra_gpart TYPE RANGE OF gpart.
+ DATA: ra_vkont TYPE RANGE OF vkont_kk.
+ DATA: ra_vert TYPE RANGE OF vertrag.
+
+ DATA: gv_var TYPE /deso/dh_view.
+ DATA: g_custom_container TYPE REF TO cl_gui_custom_container.
+ DATA: g_custom_container_result TYPE REF TO cl_gui_custom_container.
+
+ DATA: o_alv1 TYPE REF TO cl_gui_alv_grid,
+ o_alv2 TYPE REF TO cl_gui_alv_grid,
+ o_dock TYPE REF TO cl_gui_docking_container,
+ o_dial TYPE REF TO cl_gui_dialogbox_container,
+ alv_ok_code TYPE sy-ucomm VALUE 'INCLUDE'.
+
+ DATA: gt_fieldcat TYPE lvc_t_fcat,
+ gt_fieldcat_result TYPE lvc_t_fcat,
+ gt_fieldcat_detail TYPE lvc_t_fcat,
+ g_grid TYPE REF TO cl_gui_alv_grid,
+ g_grid_result TYPE REF TO cl_gui_alv_grid.
+ DATA: gs_layout TYPE lvc_s_layo.
+ DATA: gs_layout_result TYPE lvc_s_layo.
+ DATA: gs_variant TYPE disvariant.
+ DATA: gs_variant_result TYPE disvariant.
+
+ CONSTANTS: cl_st TYPE disvariant-variant VALUE '/ST'.
+
+ DATA: g_application TYPE REF TO lcl_application.
+
+ DATA: gt_var TYPE TABLE OF /deso/dh_variant.
+ DATA: gt_ht TYPE TABLE OF /deso/dh_c_ht.
+ DATA: gt_obj TYPE TABLE OF /deso/dh_c_obj.
+ DATA: gt_tab TYPE TABLE OF /deso/dh_c_tab.
+ DATA: gt_cla TYPE TABLE OF /deso/dh_c_cla.
+ DATA: gt_met TYPE TABLE OF /deso/dh_c_met.
+ DATA: gt_rep TYPE TABLE OF /deso/dh_c_rep.
+
+ TYPES: BEGIN OF ty_result_show.
+ INCLUDE TYPE /deso/dh_message.
+ TYPES: count TYPE i,
+ END OF ty_result_show.
+
+ DATA: gs_result_show TYPE ty_result_show.
+ DATA: gt_result TYPE TABLE OF /deso/dh_message.
+ DATA: gt_result_detail TYPE TABLE OF /deso/dh_message.
+ DATA: gt_result_show LIKE TABLE OF gs_result_show.
+
+ DATA: gt_result_collect TYPE TABLE OF /deso/dh_c_rep.
+
+ DATA init.
+
+ DATA: lt_exclude TYPE ui_functions.
diff --git a/src/#deso#dh_hawk_da.prog.xml b/src/#deso#dh_hawk_da.prog.xml
new file mode 100644
index 0000000..9fc2dd0
--- /dev/null
+++ b/src/#deso#dh_hawk_da.prog.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+ /DESO/DH_HAWK_DA
+ I
+ S
+ D
+
+
+ -
+ R
+ Include für DATA Hawk Datendeklaration
+ 41
+
+
+
+
+
diff --git a/src/#deso#dh_hawk_fo.prog.abap b/src/#deso#dh_hawk_fo.prog.abap
new file mode 100644
index 0000000..03d8d32
--- /dev/null
+++ b/src/#deso#dh_hawk_fo.prog.abap
@@ -0,0 +1,924 @@
+*&---------------------------------------------------------------------*
+*& Include /DESO/DH_HAWK_F
+*&---------------------------------------------------------------------*
+
+
+*&---------------------------------------------------------------------*
+*& Form build_fieldcat
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& --> p1 text
+*& <-- p2 text
+*&---------------------------------------------------------------------*
+FORM build_fieldcat .
+
+ CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
+ EXPORTING
+ i_structure_name = '/DESO/DH_VARIANT'
+ i_bypassing_buffer = abap_true
+ CHANGING
+ ct_fieldcat = gt_fieldcat.
+
+ LOOP AT gt_fieldcat ASSIGNING FIELD-SYMBOL().
+
+ CASE -fieldname.
+ WHEN 'MANDT'.
+ DELETE gt_fieldcat INDEX sy-tabix.
+ CONTINUE.
+ WHEN 'AKTIV'.
+ -checkbox = abap_true.
+ -edit = abap_true.
+ -outputlen = 5.
+ WHEN OTHERS.
+ ENDCASE.
+
+ ENDLOOP.
+
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Form build_layout
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& --> p1 text
+*& <-- p2 text
+*&---------------------------------------------------------------------*
+FORM build_layout .
+ CLEAR gs_layout.
+ gs_layout-sel_mode = '0'.
+* gs_layout-stylefname = 'CELLTAB'.
+* gs_layout-ctab_fname = 'CELLCOL'.
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Form exclude_tb_functions
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& <-- LT_EXCLUDE
+*&---------------------------------------------------------------------*
+FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
+* Only allow to change data not to create new entries (exclude
+* generic functions).
+ DATA ls_exclude TYPE ui_func.
+
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
+ APPEND ls_exclude TO pt_exclude.
+ ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
+ APPEND ls_exclude TO pt_exclude.
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Form build_data
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& --> p1 text
+*& <-- p2 text
+*&---------------------------------------------------------------------*
+FORM build_data .
+
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Module CREATE_DROPBOX_VARIANT INPUT
+*&---------------------------------------------------------------------*
+* text
+*----------------------------------------------------------------------*
+MODULE create_dropbox_variant INPUT.
+* DATA: lt_vari TYPE TABLE OF /deso/dh_vari_t.
+
+ SELECT check_view FROM /deso/dh_vari_t
+ INTO TABLE @DATA(lt_vari).
+
+ CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
+ EXPORTING
+ retfield = 'CHECK_VIEW'
+ value_org = 'S'
+* dynpprog = '/DESO/CH_HAWK'
+* dynpnr = '9001'
+* dynprofield = 'GV_VAR'
+ window_title = 'Variante wählen'
+ multiple_choice = space
+ TABLES
+ value_tab = lt_vari
+* return_tab = lt_return
+ EXCEPTIONS
+ parameter_error = 1
+ no_values_found = 2
+ OTHERS = 3.
+
+ENDMODULE.
+*&---------------------------------------------------------------------*
+*& Module USER_COMMAND_9001 INPUT
+*&---------------------------------------------------------------------*
+* text
+*----------------------------------------------------------------------*
+MODULE user_command_9001 INPUT.
+ CALL METHOD g_grid->check_changed_data.
+ CASE sy-ucomm.
+ WHEN 'SEL_VARI'.
+* BREAK-POINT.
+ DATA: ls_var TYPE /deso/dh_variant.
+ SELECT * FROM /deso/dh_variant INTO CORRESPONDING FIELDS OF TABLE gt_var
+ WHERE check_view = gv_var.
+
+ SELECT * FROM /deso/dh_c_met APPENDING CORRESPONDING FIELDS OF TABLE gt_var.
+
+ SORT gt_var.
+
+ LOOP AT gt_var ASSIGNING FIELD-SYMBOL()
+ WHERE aktiv = abap_true.
+ READ TABLE gt_var INTO ls_var WITH KEY check_view = -check_view
+ object = -object
+ aktiv = abap_false.
+ IF sy-subrc = 0.
+ DELETE gt_var INDEX sy-tabix.
+ ENDIF.
+
+ ENDLOOP.
+
+ SORT gt_var.
+ LOOP AT gt_var ASSIGNING .
+ -check_view = gv_var.
+ ENDLOOP.
+ g_tabstrip-pressed_tab = 'TABSTRIP_FC1'.
+ WHEN 'DELETE'.
+ g_tabstrip-pressed_tab = 'TABSTRIP_FC1'.
+ DATA: lv_answer_del_var.
+ CALL FUNCTION 'POPUP_TO_CONFIRM'
+ EXPORTING
+ titlebar = 'DATA Hawk'
+ text_question = 'Variante wirklich löschen?'
+ default_button = '2'
+ display_cancel_button = wfcst_cfalse
+ popup_type = 'ICON_MESSAGE_WARNING'
+ IMPORTING
+ answer = lv_answer_del_var
+ EXCEPTIONS
+ text_not_found = 1
+ OTHERS = 2.
+
+ IF lv_answer_del_var = '1'.
+ DELETE FROM /deso/dh_variant
+ WHERE check_view = gv_var.
+ DELETE FROM /deso/dh_vari_t
+ WHERE check_view = gv_var.
+ REFRESH gt_var.
+ ENDIF.
+ WHEN 'NEW'.
+ DATA: lt_sval TYPE TABLE OF sval.
+ DATA: lv_rc.
+
+ REFRESH lt_sval.
+
+ APPEND INITIAL LINE TO lt_sval ASSIGNING FIELD-SYMBOL().
+ -tabname = '/DESO/DH_VARI_T'.
+ -fieldname = 'CHECK_VIEW'.
+ -fieldtext = 'Variante'.
+
+ APPEND INITIAL LINE TO lt_sval ASSIGNING .
+ -tabname = '/DESO/DH_VARI_T'.
+ -fieldname = 'DESCRIPT'.
+ -fieldtext = 'Bezeichnung'.
+
+
+ CALL FUNCTION 'POPUP_GET_VALUES'
+ EXPORTING
+* NO_VALUE_CHECK = ' '
+ popup_title = 'Neue Variante anlegen'
+* START_COLUMN = '5'
+* START_ROW = '5'
+ IMPORTING
+ returncode = lv_rc
+ TABLES
+ fields = lt_sval
+ EXCEPTIONS
+ error_in_fields = 1
+ OTHERS = 2.
+ IF sy-subrc <> 0.
+* Implement suitable error handling here
+ ENDIF.
+ IF lv_rc NE 'A'.
+* BREAK-POINT.
+ DATA: lv_vari_t TYPE /deso/dh_vari_t.
+ LOOP AT lt_sval ASSIGNING .
+ CASE -fieldname.
+ WHEN 'CHECK_VIEW'.
+ lv_vari_t-check_view = -value.
+ WHEN 'DESCRIPT'.
+ lv_vari_t-descript = -value.
+ ENDCASE.
+ ENDLOOP.
+ INSERT INTO /deso/dh_vari_t VALUES lv_vari_t.
+
+
+ SELECT * FROM /deso/dh_c_ht INTO CORRESPONDING FIELDS OF TABLE gt_ht
+ WHERE check_view = 'VIEW1'.
+
+ LOOP AT gt_ht ASSIGNING FIELD-SYMBOL().
+ -check_view = lv_vari_t-check_view.
+ -descript = lv_vari_t-descript.
+ ENDLOOP.
+ INSERT /deso/dh_c_ht FROM TABLE gt_ht.
+
+ SELECT * FROM /deso/dh_c_obj INTO CORRESPONDING FIELDS OF TABLE gt_obj
+ WHERE check_view = 'VIEW1'.
+
+ LOOP AT gt_obj ASSIGNING FIELD-SYMBOL().
+ -check_view = lv_vari_t-check_view.
+ ENDLOOP.
+ INSERT /deso/dh_c_obj FROM TABLE gt_obj.
+
+ SELECT * FROM /deso/dh_c_tab INTO CORRESPONDING FIELDS OF TABLE gt_tab
+ WHERE check_view = 'VIEW1'.
+
+ LOOP AT gt_tab ASSIGNING FIELD-SYMBOL().
+ -check_view = lv_vari_t-check_view.
+ ENDLOOP.
+ INSERT /deso/dh_c_tab FROM TABLE gt_tab.
+
+ SELECT * FROM /deso/dh_c_cla INTO CORRESPONDING FIELDS OF TABLE gt_cla
+ WHERE check_view = 'VIEW1'.
+
+ LOOP AT gt_cla ASSIGNING FIELD-SYMBOL().
+