Browse Source

Erste Version für UHI #1

master
Daniel Quathamer 2 days ago
parent
commit
f0f9de41db
  1. 179
      src-modules/module/userantrag/conf/userantrag.xml
  2. 636
      src-modules/module/userantrag/etl/user_antrag/Read_genehmigte_Antraege.ktr
  3. 628
      src-modules/module/userantrag/etl/user_antrag/Read_neue_Antraege.ktr
  4. 627
      src-modules/module/userantrag/etl/user_antrag/Read_neue_Antraege2.ktr
  5. 413
      src-modules/module/userantrag/etl/user_antrag/SendeBenutzerantragMail1.kjb
  6. 419
      src-modules/module/userantrag/etl/user_antrag/SendeBenutzerantragMail2.kjb
  7. 412
      src-modules/module/userantrag/etl/user_antrag/SendeBenutzerantragMail3.kjb
  8. 3
      src-modules/module/userantrag/etl/user_antrag/execute_mailversand3.x
  9. 7
      src-modules/module/userantrag/etl/user_antrag/execute_mailversand_1_bis_3.x
  10. 63
      src-modules/module/userantrag/etl/user_antrag/mailversand1.x
  11. 39
      src-modules/module/userantrag/etl/user_antrag/mailversand1.x.orig
  12. 23
      src-modules/module/userantrag/etl/user_antrag/mailversand2.x
  13. 36
      src-modules/module/userantrag/etl/user_antrag/mailversand3.x
  14. 32
      src-modules/module/userantrag/masken/50000_felderinfo.unl
  15. 1
      src-modules/module/userantrag/masken/50000_maske_system_bez.unl
  16. 30
      src-modules/module/userantrag/masken/50000_masken_felder_bez.unl
  17. 84
      src-modules/module/userantrag/masken/50000_maskeninfo.unl
  18. 1
      src-modules/module/userantrag/masken/50000_sachgeb_maske_bez.unl
  19. 34
      src-modules/module/userantrag/masken/50040_felderinfo.unl
  20. 1
      src-modules/module/userantrag/masken/50040_maske_system_bez.unl
  21. 5
      src-modules/module/userantrag/masken/50040_masken_felder_bez.unl
  22. 99
      src-modules/module/userantrag/masken/50040_maskeninfo.unl
  23. 1
      src-modules/module/userantrag/masken/50040_sachgeb_maske_bez.unl
  24. 5
      src-modules/module/userantrag/masken/50070_felderinfo.unl
  25. 1
      src-modules/module/userantrag/masken/50070_maske_system_bez.unl
  26. 5
      src-modules/module/userantrag/masken/50070_masken_felder_bez.unl
  27. 48
      src-modules/module/userantrag/masken/50070_maskeninfo.unl
  28. 1
      src-modules/module/userantrag/masken/50070_sachgeb_maske_bez.unl
  29. 37
      src-modules/module/userantrag/masken/50100_felderinfo.unl
  30. 1
      src-modules/module/userantrag/masken/50100_maske_system_bez.unl
  31. 7
      src-modules/module/userantrag/masken/50100_masken_felder_bez.unl
  32. 1
      src-modules/module/userantrag/masken/50100_maskeninfo.unl
  33. 1
      src-modules/module/userantrag/masken/50100_sachgeb_maske_bez.unl
  34. 98
      superx/edit/userantrag/user_antrag.css
  35. 171
      superx/edit/userantrag/user_antrag_anzeigen.jsp
  36. 147
      superx/edit/userantrag/user_antrag_anzeigen_allg.jsp
  37. 155
      superx/edit/userantrag/user_antrag_genehmigung1.jsp
  38. 139
      superx/edit/userantrag/user_antrag_genehmigung1_eintrag.jsp
  39. 4
      superx/edit/userantrag/user_antrag_genehmigung1_view.inc
  40. 167
      superx/edit/userantrag/user_antrag_genehmigung2.jsp
  41. 138
      superx/edit/userantrag/user_antrag_genehmigung2_eintrag.jsp
  42. 32
      superx/edit/userantrag/user_antrag_not_authorized.html
  43. 141
      superx/edit/userantrag/user_antrag_read.inc
  44. 60
      superx/edit/userantrag/user_antrag_view.inc

179
src-modules/module/userantrag/conf/userantrag.xml

@ -28,7 +28,7 @@
<column name="antragsart" type ="VARCHAR" size ="100" default ="" notnull ="true" description="Antragsart" /> <column name="antragsart" type ="VARCHAR" size ="100" default ="" notnull ="true" description="Antragsart" />
<column name="fin_personal_projekt" type ="VARCHAR" size ="100" default ="" notnull ="false" description="Projekt" /> <column name="fin_personal_projekt" type ="VARCHAR" size ="100" default ="" notnull ="false" description="Projekt" />
<column name="antragsdatum" type ="DATE" size ="13" default ="" notnull ="true" description="Antragsdatum" /> <column name="antragsdatum" type ="DATE" size ="13" default ="" notnull ="true" description="Antragsdatum" />
<column name="antragsempfaenger" type ="VARCHAR" size ="200" default ="" notnull ="true" description="Antragsempfänger" /> <column name="antragsempfaenger_id" type ="INTEGER" size ="200" default ="" notnull ="false" description="Antragsempfänger" />
<column name="antrag_email1adresse" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Antragsempfänger E-Mail" /> <column name="antrag_email1adresse" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Antragsempfänger E-Mail" />
<column name="antrag_email1_versendet" type ="DATETIME" size ="29" default ="" notnull ="false" description="Antragsempfänger Email versendet am" /> <column name="antrag_email1_versendet" type ="DATETIME" size ="29" default ="" notnull ="false" description="Antragsempfänger Email versendet am" />
<column name="genehmigung1_userid" type ="INTEGER" size ="10" default ="" notnull ="false" description="Genehmigung 1 von" /> <column name="genehmigung1_userid" type ="INTEGER" size ="10" default ="" notnull ="false" description="Genehmigung 1 von" />
@ -37,11 +37,16 @@
<column name="genehmigung1_vorname" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Genehmigung 1 Vorname" /> <column name="genehmigung1_vorname" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Genehmigung 1 Vorname" />
<column name="genehmigung1_nachname" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Genehmigung 1 Nachname" /> <column name="genehmigung1_nachname" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Genehmigung 1 Nachname" />
<column name="genehmigung1_email_versendet" type ="DATETIME" size ="29" default ="" notnull ="false" description="Genehmigung 1 Email versendet am" /> <column name="genehmigung1_email_versendet" type ="DATETIME" size ="29" default ="" notnull ="false" description="Genehmigung 1 Email versendet am" />
<column name="genehmigung1_notiz" type ="TEXT" size ="2147483647" default ="" notnull ="false" description="Genehmigung 1 Notiz" />
<column name="genehmigung2_userid" type ="INTEGER" size ="10" default ="" notnull ="false" description="Genehmigung 2 von" /> <column name="genehmigung2_userid" type ="INTEGER" size ="10" default ="" notnull ="false" description="Genehmigung 2 von" />
<column name="genehmigung2_zeitpunkt" type ="DATETIME" size ="29" default ="" notnull ="false" description="Genehmigung 2 Zeitpunkt" /> <column name="genehmigung2_zeitpunkt" type ="DATETIME" size ="29" default ="" notnull ="false" description="Genehmigung 2 Zeitpunkt" />
<column name="genehmigung2_notiz" type ="VARCHAR" size ="2147483647" default ="" notnull ="false" description="Genehmigung 2 Notiz" /> <column name="genehmigung2_titel" type ="VARCHAR" size ="100" default ="" notnull ="false" description="Genehmigung 2 Titel" />
<column name="genehmigung2_vorname" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Genehmigung 2 Vorname" />
<column name="genehmigung2_nachname" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Genehmigung 2 Nachname" />
<column name="genehmigung2_email_versendet" type ="DATETIME" size ="29" default ="" notnull ="false" description="Genehmigung 2 Email versendet am" />
<column name="genehmigung2_notiz" type ="TEXT" size ="2147483647" default ="" notnull ="false" description="Genehmigung 2 Notiz" />
<column name="uuid" type ="VARCHAR" size ="255" default ="" notnull ="false" description="UUID" /> <column name="uuid" type ="VARCHAR" size ="255" default ="" notnull ="false" description="UUID" />
<column name="genehmigung2_email_versendet" type ="DATETIME" size ="29" default ="" notnull ="false" description="Genehmigung 2 Email versendet" />
</columns> </columns>
<indexes></indexes> <indexes></indexes>
<primaryKeys><rs> <primaryKeys><rs>
@ -61,6 +66,80 @@
<privileges><rs> <privileges><rs>
</rs></privileges> </rs></privileges>
</table> </table>
<table name="user_antrag_empfaenger" thema="Administration" typ="Schlüsseltabelle" caption="Nutzungsanträge Empfänger">
<columns><column name="tid" type ="SERIAL" size ="10" default ="" notnull ="true" description="ID" />
<column name="uniquename" type ="VARCHAR" size ="200" default ="" notnull ="true" description="Antragsempfänger Schlüssel" ><comment>Schlüssel der Rolle, z.B. FB1</comment></column>
<column name="name" type ="VARCHAR" size ="200" default ="" notnull ="false" description="Antragsempfänger Name" ><comment>Name der Rolle, z.B. Dekanatsgeschäftsführung FB 1</comment></column>
<column name="kostenstelle" type ="CHAR" size ="10" default ="" notnull ="false" description="Kostenstelle" currentlyUsed="false"/>
<column name="aktiv" type ="SMALLINT" size ="29" default ="1" notnull ="false" description="Antragsempfänger Aktiv" ><comment>1=ja,0=nein</comment></column>
</columns>
<indexes></indexes>
<primaryKeys><rs>
<row>
<fld name='table_cat'></fld>
<fld name='table_schem'></fld>
<fld name='table_name'>user_antrag_empfaenger</fld>
<fld name='column_name'>tid</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>user_antrag_empfaenger_pkey</fld>
</row>
</rs></primaryKeys>
<foreignKeys><rs>
</rs></foreignKeys>
<importedKeys><rs>
</rs></importedKeys>
<privileges><rs>
</rs></privileges>
</table>
<table name="user_antrag_empfaenger_userinfo_bez" thema="Administration" typ="Schlüsseltabelle" caption="Nutzungsanträge Empfänger zu Kennungen">
<columns>
<column name="tid" type ="SERIAL" size ="10" default ="" notnull ="true" description="Antragsempfänger ID" />
<column name="antragsempfaenger_id" type ="INTEGER" size ="200" default ="" notnull ="true" isKey="true" description="Antragsempfänger" />
<column name="user_id" type ="INTEGER" size ="200" default ="" notnull ="true" description="Kennung Antragsempfänger User-ID" />
<column name="aktiv" type ="SMALLINT" size ="29" default ="1" notnull ="false" description="Kennung Antragsempfänger Aktiv" ><comment>1=ja,0=nein</comment></column>
</columns>
<indexes></indexes>
<primaryKeys><rs>
<row>
<fld name='table_cat'></fld>
<fld name='table_schem'></fld>
<fld name='table_name'>user_antrag_empfaenger_userinfo_bez</fld>
<fld name='column_name'>tid</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>user_antrag_empfaenger_userinfo_bez_pkey</fld>
</row>
</rs></primaryKeys>
<foreignKeys><rs>
</rs></foreignKeys>
<importedKeys><rs>
</rs></importedKeys>
<privileges><rs>
</rs></privileges>
</table>
<table name="user_antrag_genehmigung2_userinfo_bez" thema="Administration" typ="Schlüsseltabelle" caption="Nutzungsanträge Genehmigung 2 zu Kennungen">
<columns>
<column name="tid" type ="SERIAL" size ="10" default ="" notnull ="true" description="Antragsempfänger ID" />
<column name="user_id" type ="INTEGER" size ="200" default ="" notnull ="true" description="Kennung Antragsempfänger User-ID" />
<column name="aktiv" type ="SMALLINT" size ="29" default ="1" notnull ="false" description="Kennung Antragsempfänger Aktiv" ><comment>1=ja,0=nein</comment></column>
</columns>
<indexes></indexes>
<primaryKeys><rs>
<row>
<fld name='table_cat'></fld>
<fld name='table_schem'></fld>
<fld name='table_name'>user_antrag_genehmigung2_userinfo_bez</fld>
<fld name='column_name'>tid</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>user_antrag_genehmigung2_userinfo_bez_pkey</fld>
</row>
</rs></primaryKeys>
<foreignKeys><rs>
</rs></foreignKeys>
<importedKeys><rs>
</rs></importedKeys>
<privileges><rs>
</rs></privileges>
</table>
<table name="user_antrag_kostenstellen" thema="Administration" typ="Schlüsseltabelle" caption="Nutzungsanträge zu Kostenstellen"> <table name="user_antrag_kostenstellen" thema="Administration" typ="Schlüsseltabelle" caption="Nutzungsanträge zu Kostenstellen">
<columns> <columns>
<column name="tid" type="SERIAL" size="4" default="" notnull="true" description="Laufnummer" /> <column name="tid" type="SERIAL" size="4" default="" notnull="true" description="Laufnummer" />
@ -96,16 +175,37 @@
</themen> </themen>
<masken> <masken>
<maske tid="50000" name="Nutzungsantrag stellen" thema="Nutzungsanträge">
<description />
<src>
<path>$USERANTRAG_PFAD/masken</path>
</src>
</maske>
<maske tid="50040" name="Nutzungsantrag suchen" thema="Nutzungsanträge">
<description />
<src>
<path>$USERANTRAG_PFAD/masken</path>
</src>
</maske>
<maske tid="50100" name="Nutzungsantrag verwalten" thema="Nutzungsanträge">
<description />
<src>
<path>$USERANTRAG_PFAD/masken</path>
</src>
</maske>
</masken> </masken>
<data-integrity> <data-integrity>
<relation from="userinfo" to="user_antrag" delete="FALSE" <relation from="userinfo" to="user_antrag_empfaenger_userinfo_bez" delete="FALSE"
displayType="select" visibleFields="name" format="%s">
<relation-column from="tid" to="user_id" />
</relation>
<relation from="userinfo" to="user_antrag_genehmigung2_userinfo_bez" delete="FALSE"
displayType="select" visibleFields="name" format="%s"> displayType="select" visibleFields="name" format="%s">
<relation-column from="tid" to="genehmigung1_userid" /> <relation-column from="tid" to="user_id" />
</relation> </relation>
<relation from="userinfo" to="user_antrag" delete="FALSE" <relation from="user_antrag_empfaenger" to="user_antrag" delete="FALSE"
displayType="select" visibleFields="name" format="%s"> displayType="select" visibleFields="name" format="%s">
<relation-column from="tid" to="genehmigung2_userid" /> <relation-column from="tid" to="antragsempfaenger_id" />
</relation> </relation>
<relation from="organigramm" to="user_antrag_kostenstellen" delete="FALSE" <relation from="organigramm" to="user_antrag_kostenstellen" delete="FALSE"
displayType="select" visibleFields="trim(key_apnr) || ' - ' || trim(name)" displayType="select" visibleFields="trim(key_apnr) || ' - ' || trim(name)"
@ -117,6 +217,7 @@
format="%s"> format="%s">
<relation-column from="tid" to="antrag_id" /> <relation-column from="tid" to="antrag_id" />
</relation> </relation>
</data-integrity> </data-integrity>
</database> </database>
@ -198,7 +299,7 @@
<dbforms> <dbforms>
<form name="user_antrag_edit" <form name="user_antrag_edit"
table="user_antrag" table="user_antrag"
path="/edit/kern/user_antrag_edit.jsp" path="/edit/userantrag/user_antrag_edit.jsp"
followUp="" followUp=""
caption="Anträge verwalten" caption="Anträge verwalten"
orderBy="tid" orderBy="tid"
@ -213,6 +314,66 @@ mode="full"
</filters> </filters>
<field-selection complete="true" /> <field-selection complete="true" />
</form>
<form name="user_antrag_empfaenger_list"
table="user_antrag_empfaenger"
path="/edit/userantrag/user_antrag_empfaenger_list.jsp"
followUp=""
caption="Empfänger_innen Genehmigung Stufe 1"
orderBy="name"
gotoHt=""
helpfile=""
maxRows="*"
mode="full">
<description>In diesem Formular können Sie Empfänger_innen Genehmigung Stufe 1 verwalten.</description>
<filters>
</filters>
<field-selection complete="false" />
<customfield name="tid" nullFieldValue="" />
<customfield name="name" nullFieldValue="" visibleSize="30" />
<customfield name="aktiv" nullFieldValue="" visibleSize="30" />
<customfield type="link" name="Details" path="/superx/edit/userantrag/user_antrag_empfaenger_edit.jsp" linkid="tid" />
</form>
<form name="user_antrag_empfaenger_edit" table="user_antrag_empfaenger" path="/edit/userantrag/user_antrag_empfaenger_edit.jsp" followUp="" caption="Empfänger_innen Genehmigung Stufe 1 bearbeiten" orderBy="caption" gotoHt="" helpfile="" maxRows="1" mode="full">
<description>In diesem Formular können Sie Empfänger_innen Genehmigung Stufe 1 verwalten.</description>
<filters>
<filter mandatory="true" type="equals">tid</filter>
</filters>
<field-selection complete="false" />
<customfield name="tid" />
<customfield name="name" visibleSize="50" nullFieldValue="" />
<customfield name="uniquename" visibleSize="10" nullFieldValue="" />
<customfield name="aktiv" visibleSize="50" nullFieldValue="" />
<customfield name="Kennung(en)" type="subform" multipart="false" autoUpdate="false" maxRows="*" table="user_antrag_empfaenger_userinfo_bez"
parentField="tid" childField="antragsempfaenger_id" orderBy="tid" allowNew="true" mode="full">
<field-selection complete="false" />
<customfield name="antragsempfaenger_id" type="hidden" overrideValue="tid" />
<customfield name="user_id" />
<customfield name="aktiv" nullFieldValue="" visibleSize="10" />
<!--<customfield type="link" name="Details" path="/superx/edit/rpta/rpta_stylesheet2layout_edit.jsp"
linkVar="tid" linkid="tid" mandatoryFilter="" mandatoryFilterVar=""/>-->
</customfield>
</form>
<form name="user_antrag_genehmigung2_userinfo_bez_list"
table="user_antrag_genehmigung2_userinfo_bez"
path="/edit/userantrag/user_antrag_genehmigung2_userinfo_bez_list.jsp"
followUp=""
caption="Empfänger_innen Genehmigung Stufe 2"
orderBy="name"
gotoHt=""
helpfile=""
maxRows="*"
mode="full">
<description>In diesem Formular können Sie Empfänger_innen Genehmigung Stufe 2 verwalten.</description>
<filters>
</filters>
<field-selection complete="false" />
<customfield name="tid" nullFieldValue="" />
<customfield name="user_id" />
<customfield name="aktiv" nullFieldValue="" visibleSize="30" />
</form> </form>
</dbforms> </dbforms>

636
src-modules/module/userantrag/etl/user_antrag/Read_genehmigte_Antraege.ktr

@ -0,0 +1,636 @@
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
<info>
<name>Read_neue_Antraege</name>
<description/>
<extended_description/>
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>/</directory>
<parameters>
<parameter>
<name>AntragId</name>
<default_value>-1</default_value>
<description>AntragId des zu verarbeitenden Antrags</description>
</parameter>
</parameters>
<log>
<trans-log-table>
<connection/>
<schema/>
<table/>
<size_limit_lines/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STATUS</id>
<enabled>Y</enabled>
<name>STATUS</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
<subject/>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
<subject/>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
<subject/>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
<subject/>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
<subject/>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
<subject/>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>STARTDATE</id>
<enabled>Y</enabled>
<name>STARTDATE</name>
</field>
<field>
<id>ENDDATE</id>
<enabled>Y</enabled>
<name>ENDDATE</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>DEPDATE</id>
<enabled>Y</enabled>
<name>DEPDATE</name>
</field>
<field>
<id>REPLAYDATE</id>
<enabled>Y</enabled>
<name>REPLAYDATE</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>Y</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>EXECUTING_SERVER</id>
<enabled>N</enabled>
<name>EXECUTING_SERVER</name>
</field>
<field>
<id>EXECUTING_USER</id>
<enabled>N</enabled>
<name>EXECUTING_USER</name>
</field>
<field>
<id>CLIENT</id>
<enabled>N</enabled>
<name>CLIENT</name>
</field>
</trans-log-table>
<perf-log-table>
<connection/>
<schema/>
<table/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>SEQ_NR</id>
<enabled>Y</enabled>
<name>SEQ_NR</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>INPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>INPUT_BUFFER_ROWS</name>
</field>
<field>
<id>OUTPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>OUTPUT_BUFFER_ROWS</name>
</field>
</perf-log-table>
<channel-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>LOGGING_OBJECT_TYPE</id>
<enabled>Y</enabled>
<name>LOGGING_OBJECT_TYPE</name>
</field>
<field>
<id>OBJECT_NAME</id>
<enabled>Y</enabled>
<name>OBJECT_NAME</name>
</field>
<field>
<id>OBJECT_COPY</id>
<enabled>Y</enabled>
<name>OBJECT_COPY</name>
</field>
<field>
<id>REPOSITORY_DIRECTORY</id>
<enabled>Y</enabled>
<name>REPOSITORY_DIRECTORY</name>
</field>
<field>
<id>FILENAME</id>
<enabled>Y</enabled>
<name>FILENAME</name>
</field>
<field>
<id>OBJECT_ID</id>
<enabled>Y</enabled>
<name>OBJECT_ID</name>
</field>
<field>
<id>OBJECT_REVISION</id>
<enabled>Y</enabled>
<name>OBJECT_REVISION</name>
</field>
<field>
<id>PARENT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>PARENT_CHANNEL_ID</name>
</field>
<field>
<id>ROOT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>ROOT_CHANNEL_ID</name>
</field>
</channel-log-table>
<step-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>N</enabled>
<name>LOG_FIELD</name>
</field>
</step-log-table>
<metrics-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>METRICS_DATE</id>
<enabled>Y</enabled>
<name>METRICS_DATE</name>
</field>
<field>
<id>METRICS_CODE</id>
<enabled>Y</enabled>
<name>METRICS_CODE</name>
</field>
<field>
<id>METRICS_DESCRIPTION</id>
<enabled>Y</enabled>
<name>METRICS_DESCRIPTION</name>
</field>
<field>
<id>METRICS_SUBJECT</id>
<enabled>Y</enabled>
<name>METRICS_SUBJECT</name>
</field>
<field>
<id>METRICS_TYPE</id>
<enabled>Y</enabled>
<name>METRICS_TYPE</name>
</field>
<field>
<id>METRICS_VALUE</id>
<enabled>Y</enabled>
<name>METRICS_VALUE</name>
</field>
</metrics-log-table>
</log>
<maxdate>
<connection/>
<table/>
<field/>
<offset>0.0</offset>
<maxdiff>0.0</maxdiff>
</maxdate>
<size_rowset>10000</size_rowset>
<sleep_time_empty>50</sleep_time_empty>
<sleep_time_full>50</sleep_time_full>
<unique_connections>N</unique_connections>
<feedback_shown>Y</feedback_shown>
<feedback_size>50000</feedback_size>
<using_thread_priorities>Y</using_thread_priorities>
<shared_objects_file/>
<capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies>
</dependencies>
<partitionschemas>
</partitionschemas>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<created_user>-</created_user>
<created_date>2025/01/13 14:15:04.452</created_date>
<modified_user>-</modified_user>
<modified_date>2025/01/13 14:15:04.452</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<notepads>
</notepads>
<order>
<hop>
<from>read_user_antrag3</from>
<to>Copy rows to result</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>read_hochschulinfo</from>
<to>Switch / case</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>Switch / case</from>
<to>Abort wenn hochschulinfo nicht ok</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>Switch / case</from>
<to>read_user_antrag3</to>
<enabled>Y</enabled>
</hop>
</order>
<step>
<name>Abort wenn hochschulinfo nicht ok</name>
<type>Abort</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<row_threshold>0</row_threshold>
<message>Tabelle hochschulinfo enthält nicht genau eine Zeile</message>
<always_log_rows>Y</always_log_rows>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>307</xloc>
<yloc>386</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Copy rows to result</name>
<type>RowsToResult</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>720</xloc>
<yloc>224</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Switch / case</name>
<type>SwitchCase</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<fieldname>hsinfocount</fieldname>
<use_contains>N</use_contains>
<case_value_type>Integer</case_value_type>
<case_value_format/>
<case_value_decimal/>
<case_value_group/>
<default_target_step>Abort wenn hochschulinfo nicht ok</default_target_step>
<cases>
<case>
<value>1</value>
<target_step>read_user_antrag3</target_step>
</case>
</cases>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>323</xloc>
<yloc>274</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>read_hochschulinfo</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<sql>select count(*) hsinfocount from hochschulinfo</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>N</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>179</xloc>
<yloc>242</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>read_user_antrag3</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<sql>select A.tid,
--coalesce(antragsteller_titel||' ','')||antragsteller_vorname as antragsteller_vorname,antragsteller_nachname,
U.email as antrag_email1adresse,
(case when vorgesetzter_email is null or vorgesetzter_email='' then 'darina.hondong@uni-hildesheim.de' else vorgesetzter_email end) as vorgesetzter_email,
trim(superx_server) as superx_server,
uuid,
antragsteller_email
from userinfo U,user_antrag A,hochschulinfo, user_antrag_empfaenger E, user_antrag_empfaenger_userinfo_bez B
where A.antragsempfaenger_id=E.tid
and B.antragsempfaenger_id=E.tid
and U.tid=B.user_id
and B.aktiv=1
and E.aktiv=1
and A.uuid is not null and (A.tid=${AntragId} or
(A.genehmigung2_zeitpunkt is not null and A.genehmigung2_email_versendet is null)
)</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>Y</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>512</xloc>
<yloc>224</yloc>
<draw>Y</draw>
</GUI>
</step>
<step_error_handling>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<slave_transformation>N</slave_transformation>
</transformation>

628
src-modules/module/userantrag/etl/user_antrag/Read_neue_Antraege.ktr

@ -0,0 +1,628 @@
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
<info>
<name>Read_neue_Antraege</name>
<description/>
<extended_description/>
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>/</directory>
<parameters>
</parameters>
<log>
<trans-log-table>
<connection/>
<schema/>
<table/>
<size_limit_lines/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STATUS</id>
<enabled>Y</enabled>
<name>STATUS</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
<subject/>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
<subject/>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
<subject/>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
<subject/>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
<subject/>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
<subject/>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>STARTDATE</id>
<enabled>Y</enabled>
<name>STARTDATE</name>
</field>
<field>
<id>ENDDATE</id>
<enabled>Y</enabled>
<name>ENDDATE</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>DEPDATE</id>
<enabled>Y</enabled>
<name>DEPDATE</name>
</field>
<field>
<id>REPLAYDATE</id>
<enabled>Y</enabled>
<name>REPLAYDATE</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>Y</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>EXECUTING_SERVER</id>
<enabled>N</enabled>
<name>EXECUTING_SERVER</name>
</field>
<field>
<id>EXECUTING_USER</id>
<enabled>N</enabled>
<name>EXECUTING_USER</name>
</field>
<field>
<id>CLIENT</id>
<enabled>N</enabled>
<name>CLIENT</name>
</field>
</trans-log-table>
<perf-log-table>
<connection/>
<schema/>
<table/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>SEQ_NR</id>
<enabled>Y</enabled>
<name>SEQ_NR</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>INPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>INPUT_BUFFER_ROWS</name>
</field>
<field>
<id>OUTPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>OUTPUT_BUFFER_ROWS</name>
</field>
</perf-log-table>
<channel-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>LOGGING_OBJECT_TYPE</id>
<enabled>Y</enabled>
<name>LOGGING_OBJECT_TYPE</name>
</field>
<field>
<id>OBJECT_NAME</id>
<enabled>Y</enabled>
<name>OBJECT_NAME</name>
</field>
<field>
<id>OBJECT_COPY</id>
<enabled>Y</enabled>
<name>OBJECT_COPY</name>
</field>
<field>
<id>REPOSITORY_DIRECTORY</id>
<enabled>Y</enabled>
<name>REPOSITORY_DIRECTORY</name>
</field>
<field>
<id>FILENAME</id>
<enabled>Y</enabled>
<name>FILENAME</name>
</field>
<field>
<id>OBJECT_ID</id>
<enabled>Y</enabled>
<name>OBJECT_ID</name>
</field>
<field>
<id>OBJECT_REVISION</id>
<enabled>Y</enabled>
<name>OBJECT_REVISION</name>
</field>
<field>
<id>PARENT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>PARENT_CHANNEL_ID</name>
</field>
<field>
<id>ROOT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>ROOT_CHANNEL_ID</name>
</field>
</channel-log-table>
<step-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>N</enabled>
<name>LOG_FIELD</name>
</field>
</step-log-table>
<metrics-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>METRICS_DATE</id>
<enabled>Y</enabled>
<name>METRICS_DATE</name>
</field>
<field>
<id>METRICS_CODE</id>
<enabled>Y</enabled>
<name>METRICS_CODE</name>
</field>
<field>
<id>METRICS_DESCRIPTION</id>
<enabled>Y</enabled>
<name>METRICS_DESCRIPTION</name>
</field>
<field>
<id>METRICS_SUBJECT</id>
<enabled>Y</enabled>
<name>METRICS_SUBJECT</name>
</field>
<field>
<id>METRICS_TYPE</id>
<enabled>Y</enabled>
<name>METRICS_TYPE</name>
</field>
<field>
<id>METRICS_VALUE</id>
<enabled>Y</enabled>
<name>METRICS_VALUE</name>
</field>
</metrics-log-table>
</log>
<maxdate>
<connection/>
<table/>
<field/>
<offset>0.0</offset>
<maxdiff>0.0</maxdiff>
</maxdate>
<size_rowset>10000</size_rowset>
<sleep_time_empty>50</sleep_time_empty>
<sleep_time_full>50</sleep_time_full>
<unique_connections>N</unique_connections>
<feedback_shown>Y</feedback_shown>
<feedback_size>50000</feedback_size>
<using_thread_priorities>Y</using_thread_priorities>
<shared_objects_file/>
<capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies>
</dependencies>
<partitionschemas>
</partitionschemas>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<created_user>-</created_user>
<created_date>2025/01/13 14:15:04.452</created_date>
<modified_user>-</modified_user>
<modified_date>2025/01/13 14:15:04.452</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<notepads>
</notepads>
<order>
<hop>
<from>read_user_antrag</from>
<to>Copy rows to result</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>read_hochschulinfo</from>
<to>Switch / case</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>Switch / case</from>
<to>Abort wenn hochschulinfo nicht ok</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>Switch / case</from>
<to>read_user_antrag</to>
<enabled>Y</enabled>
</hop>
</order>
<step>
<name>Abort wenn hochschulinfo nicht ok</name>
<type>Abort</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<row_threshold>0</row_threshold>
<message>Tabelle hochschulinfo enthält nicht genau eine Zeile</message>
<always_log_rows>Y</always_log_rows>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>240</xloc>
<yloc>352</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Copy rows to result</name>
<type>RowsToResult</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>720</xloc>
<yloc>224</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Switch / case</name>
<type>SwitchCase</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<fieldname>hsinfocount</fieldname>
<use_contains>N</use_contains>
<case_value_type>Integer</case_value_type>
<case_value_format/>
<case_value_decimal/>
<case_value_group/>
<default_target_step>Abort wenn hochschulinfo nicht ok</default_target_step>
<cases>
<case>
<value>1</value>
<target_step>read_user_antrag</target_step>
</case>
</cases>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>256</xloc>
<yloc>240</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>read_hochschulinfo</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<sql>select count(*) as hsinfocount from hochschulinfo</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>N</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>112</xloc>
<yloc>208</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>read_user_antrag</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<sql>select A.tid,
--coalesce(antragsteller_titel||' ','')||antragsteller_vorname as antragsteller_vorname,antragsteller_nachname,
U.email as antrag_email1adresse,
(case when vorgesetzter_email is null or vorgesetzter_email='' then 'darina.hondong@uni-hildesheim.de' else vorgesetzter_email end) as vorgesetzter_email,
trim(superx_server) as superx_server,uuid,
antragsteller_email
from userinfo U,user_antrag A,hochschulinfo, user_antrag_empfaenger E, user_antrag_empfaenger_userinfo_bez B
where A.antragsempfaenger_id=E.tid
and B.antragsempfaenger_id=E.tid
and U.tid=B.user_id
and B.aktiv=1
and E.aktiv=1
and A.antrag_email1_versendet is null;</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>N</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>496</xloc>
<yloc>224</yloc>
<draw>Y</draw>
</GUI>
</step>
<step_error_handling>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<slave_transformation>N</slave_transformation>
</transformation>

627
src-modules/module/userantrag/etl/user_antrag/Read_neue_Antraege2.ktr

@ -0,0 +1,627 @@
<?xml version="1.0" encoding="UTF-8"?>
<transformation>
<info>
<name>Read_neue_Antraege</name>
<description/>
<extended_description/>
<trans_version/>
<trans_type>Normal</trans_type>
<trans_status>0</trans_status>
<directory>/</directory>
<parameters>
<parameter>
<name>AntragId</name>
<default_value>-1</default_value>
<description>AntragId des zu verarbeitenden Antrags</description>
</parameter>
</parameters>
<log>
<trans-log-table>
<connection/>
<schema/>
<table/>
<size_limit_lines/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STATUS</id>
<enabled>Y</enabled>
<name>STATUS</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
<subject/>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
<subject/>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
<subject/>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
<subject/>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
<subject/>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
<subject/>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>STARTDATE</id>
<enabled>Y</enabled>
<name>STARTDATE</name>
</field>
<field>
<id>ENDDATE</id>
<enabled>Y</enabled>
<name>ENDDATE</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>DEPDATE</id>
<enabled>Y</enabled>
<name>DEPDATE</name>
</field>
<field>
<id>REPLAYDATE</id>
<enabled>Y</enabled>
<name>REPLAYDATE</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>Y</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>EXECUTING_SERVER</id>
<enabled>N</enabled>
<name>EXECUTING_SERVER</name>
</field>
<field>
<id>EXECUTING_USER</id>
<enabled>N</enabled>
<name>EXECUTING_USER</name>
</field>
<field>
<id>CLIENT</id>
<enabled>N</enabled>
<name>CLIENT</name>
</field>
</trans-log-table>
<perf-log-table>
<connection/>
<schema/>
<table/>
<interval/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>SEQ_NR</id>
<enabled>Y</enabled>
<name>SEQ_NR</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>INPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>INPUT_BUFFER_ROWS</name>
</field>
<field>
<id>OUTPUT_BUFFER_ROWS</id>
<enabled>Y</enabled>
<name>OUTPUT_BUFFER_ROWS</name>
</field>
</perf-log-table>
<channel-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>LOGGING_OBJECT_TYPE</id>
<enabled>Y</enabled>
<name>LOGGING_OBJECT_TYPE</name>
</field>
<field>
<id>OBJECT_NAME</id>
<enabled>Y</enabled>
<name>OBJECT_NAME</name>
</field>
<field>
<id>OBJECT_COPY</id>
<enabled>Y</enabled>
<name>OBJECT_COPY</name>
</field>
<field>
<id>REPOSITORY_DIRECTORY</id>
<enabled>Y</enabled>
<name>REPOSITORY_DIRECTORY</name>
</field>
<field>
<id>FILENAME</id>
<enabled>Y</enabled>
<name>FILENAME</name>
</field>
<field>
<id>OBJECT_ID</id>
<enabled>Y</enabled>
<name>OBJECT_ID</name>
</field>
<field>
<id>OBJECT_REVISION</id>
<enabled>Y</enabled>
<name>OBJECT_REVISION</name>
</field>
<field>
<id>PARENT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>PARENT_CHANNEL_ID</name>
</field>
<field>
<id>ROOT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>ROOT_CHANNEL_ID</name>
</field>
</channel-log-table>
<step-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>TRANSNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>STEPNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>STEP_COPY</id>
<enabled>Y</enabled>
<name>STEP_COPY</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>N</enabled>
<name>LOG_FIELD</name>
</field>
</step-log-table>
<metrics-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>METRICS_DATE</id>
<enabled>Y</enabled>
<name>METRICS_DATE</name>
</field>
<field>
<id>METRICS_CODE</id>
<enabled>Y</enabled>
<name>METRICS_CODE</name>
</field>
<field>
<id>METRICS_DESCRIPTION</id>
<enabled>Y</enabled>
<name>METRICS_DESCRIPTION</name>
</field>
<field>
<id>METRICS_SUBJECT</id>
<enabled>Y</enabled>
<name>METRICS_SUBJECT</name>
</field>
<field>
<id>METRICS_TYPE</id>
<enabled>Y</enabled>
<name>METRICS_TYPE</name>
</field>
<field>
<id>METRICS_VALUE</id>
<enabled>Y</enabled>
<name>METRICS_VALUE</name>
</field>
</metrics-log-table>
</log>
<maxdate>
<connection/>
<table/>
<field/>
<offset>0.0</offset>
<maxdiff>0.0</maxdiff>
</maxdate>
<size_rowset>10000</size_rowset>
<sleep_time_empty>50</sleep_time_empty>
<sleep_time_full>50</sleep_time_full>
<unique_connections>N</unique_connections>
<feedback_shown>Y</feedback_shown>
<feedback_size>50000</feedback_size>
<using_thread_priorities>Y</using_thread_priorities>
<shared_objects_file/>
<capture_step_performance>N</capture_step_performance>
<step_performance_capturing_delay>1000</step_performance_capturing_delay>
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
<dependencies>
</dependencies>
<partitionschemas>
</partitionschemas>
<slaveservers>
</slaveservers>
<clusterschemas>
</clusterschemas>
<created_user>-</created_user>
<created_date>2025/01/13 14:15:04.452</created_date>
<modified_user>-</modified_user>
<modified_date>2025/01/13 14:15:04.452</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<notepads>
</notepads>
<order>
<hop>
<from>read_user_antrag2</from>
<to>Copy rows to result</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>read_hochschulinfo</from>
<to>Switch / case</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>Switch / case</from>
<to>Abort wenn hochschulinfo nicht ok</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>Switch / case</from>
<to>read_user_antrag2</to>
<enabled>Y</enabled>
</hop>
</order>
<step>
<name>Abort wenn hochschulinfo nicht ok</name>
<type>Abort</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<row_threshold>0</row_threshold>
<message>Tabelle hochschulinfo enthält nicht genau eine Zeile</message>
<always_log_rows>Y</always_log_rows>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>307</xloc>
<yloc>386</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Copy rows to result</name>
<type>RowsToResult</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>720</xloc>
<yloc>224</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>Switch / case</name>
<type>SwitchCase</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<fieldname>hsinfocount</fieldname>
<use_contains>N</use_contains>
<case_value_type>Integer</case_value_type>
<case_value_format/>
<case_value_decimal/>
<case_value_group/>
<default_target_step>Abort wenn hochschulinfo nicht ok</default_target_step>
<cases>
<case>
<value>1</value>
<target_step>read_user_antrag2</target_step>
</case>
</cases>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>323</xloc>
<yloc>274</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>read_hochschulinfo</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<sql>select count(*) hsinfocount from hochschulinfo</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>N</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>179</xloc>
<yloc>242</yloc>
<draw>Y</draw>
</GUI>
</step>
<step>
<name>read_user_antrag2</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>eduetl</connection>
<sql>select U.tid,
--coalesce(antragsteller_titel||' ','')||antragsteller_vorname as antragsteller_vorname,antragsteller_nachname,antrag_email1adresse,
trim(superx_server) as superx_server
from user_antrag U,hochschulinfo where (U.tid=${AntragId} or
(U.genehmigung1_email_versendet is null
and U.genehmigung1_zeitpunkt is not null)
);</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>Y</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<cluster_schema/>
<remotesteps>
<input>
</input>
<output>
</output>
</remotesteps>
<GUI>
<xloc>512</xloc>
<yloc>224</yloc>
<draw>Y</draw>
</GUI>
</step>
<step_error_handling>
</step_error_handling>
<slave-step-copy-partition-distribution>
</slave-step-copy-partition-distribution>
<slave_transformation>N</slave_transformation>
</transformation>

413
src-modules/module/userantrag/etl/user_antrag/SendeBenutzerantragMail1.kjb

@ -0,0 +1,413 @@
<?xml version="1.0" encoding="UTF-8"?>
<job>
<name>SendeBenutzerantragMail1</name>
<description/>
<extended_description/>
<job_version/>
<directory>/</directory>
<created_user>-</created_user>
<created_date>2025/01/13 14:22:46.723</created_date>
<modified_user>-</modified_user>
<modified_date>2025/01/13 14:22:46.723</modified_date>
<parameters>
</parameters>
<slaveservers>
</slaveservers>
<job-log-table>
<connection/>
<schema/>
<table/>
<size_limit_lines/>
<interval/>
<timeout_days/>
<field>
<id>ID_JOB</id>
<enabled>Y</enabled>
<name>ID_JOB</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>JOBNAME</id>
<enabled>Y</enabled>
<name>JOBNAME</name>
</field>
<field>
<id>STATUS</id>
<enabled>Y</enabled>
<name>STATUS</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>STARTDATE</id>
<enabled>Y</enabled>
<name>STARTDATE</name>
</field>
<field>
<id>ENDDATE</id>
<enabled>Y</enabled>
<name>ENDDATE</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>DEPDATE</id>
<enabled>Y</enabled>
<name>DEPDATE</name>
</field>
<field>
<id>REPLAYDATE</id>
<enabled>Y</enabled>
<name>REPLAYDATE</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>Y</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>EXECUTING_SERVER</id>
<enabled>N</enabled>
<name>EXECUTING_SERVER</name>
</field>
<field>
<id>EXECUTING_USER</id>
<enabled>N</enabled>
<name>EXECUTING_USER</name>
</field>
<field>
<id>START_JOB_ENTRY</id>
<enabled>N</enabled>
<name>START_JOB_ENTRY</name>
</field>
<field>
<id>CLIENT</id>
<enabled>N</enabled>
<name>CLIENT</name>
</field>
</job-log-table>
<jobentry-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>JOBNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>JOBENTRYNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>RESULT</id>
<enabled>Y</enabled>
<name>RESULT</name>
</field>
<field>
<id>NR_RESULT_ROWS</id>
<enabled>Y</enabled>
<name>NR_RESULT_ROWS</name>
</field>
<field>
<id>NR_RESULT_FILES</id>
<enabled>Y</enabled>
<name>NR_RESULT_FILES</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>N</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>COPY_NR</id>
<enabled>N</enabled>
<name>COPY_NR</name>
</field>
</jobentry-log-table>
<channel-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>LOGGING_OBJECT_TYPE</id>
<enabled>Y</enabled>
<name>LOGGING_OBJECT_TYPE</name>
</field>
<field>
<id>OBJECT_NAME</id>
<enabled>Y</enabled>
<name>OBJECT_NAME</name>
</field>
<field>
<id>OBJECT_COPY</id>
<enabled>Y</enabled>
<name>OBJECT_COPY</name>
</field>
<field>
<id>REPOSITORY_DIRECTORY</id>
<enabled>Y</enabled>
<name>REPOSITORY_DIRECTORY</name>
</field>
<field>
<id>FILENAME</id>
<enabled>Y</enabled>
<name>FILENAME</name>
</field>
<field>
<id>OBJECT_ID</id>
<enabled>Y</enabled>
<name>OBJECT_ID</name>
</field>
<field>
<id>OBJECT_REVISION</id>
<enabled>Y</enabled>
<name>OBJECT_REVISION</name>
</field>
<field>
<id>PARENT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>PARENT_CHANNEL_ID</name>
</field>
<field>
<id>ROOT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>ROOT_CHANNEL_ID</name>
</field>
</channel-log-table>
<pass_batchid>N</pass_batchid>
<shared_objects_file/>
<entries>
<entry>
<name>Start</name>
<description/>
<type>SPECIAL</type>
<attributes/>
<start>Y</start>
<dummy>N</dummy>
<repeat>N</repeat>
<schedulerType>0</schedulerType>
<intervalSeconds>0</intervalSeconds>
<intervalMinutes>60</intervalMinutes>
<hour>12</hour>
<minutes>0</minutes>
<weekDay>1</weekDay>
<DayOfMonth>1</DayOfMonth>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>64</xloc>
<yloc>192</yloc>
<attributes_kjc/>
</entry>
<entry>
<name>Read neue Antraege</name>
<description/>
<type>TRANS</type>
<attributes/>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>${Internal.Entry.Current.Directory}/Read_neue_Antraege.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
<exec_per_row>N</exec_per_row>
<clear_rows>N</clear_rows>
<clear_files>N</clear_files>
<set_logfile>N</set_logfile>
<logfile/>
<logext/>
<add_date>N</add_date>
<add_time>N</add_time>
<loglevel>Basic</loglevel>
<cluster>N</cluster>
<slave_server_name/>
<set_append_logfile>N</set_append_logfile>
<wait_until_finished>Y</wait_until_finished>
<follow_abort_remote>N</follow_abort_remote>
<create_parent_folder>N</create_parent_folder>
<logging_remote_work>N</logging_remote_work>
<run_configuration>Pentaho local</run_configuration>
<parameters>
<pass_all_parameters>Y</pass_all_parameters>
</parameters>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>208</xloc>
<yloc>192</yloc>
<attributes_kjc/>
</entry>
<entry>
<name>SendeEmail1</name>
<description/>
<type>SHELL</type>
<attributes/>
<filename>${Internal.Job.Filename.Directory}/mailversand1.x</filename>
<work_directory>${Internal.Job.Filename.Directory}</work_directory>
<arg_from_previous>Y</arg_from_previous>
<exec_per_row>Y</exec_per_row>
<set_logfile>N</set_logfile>
<logfile/>
<set_append_logfile>N</set_append_logfile>
<logext/>
<add_date>N</add_date>
<add_time>N</add_time>
<insertScript>N</insertScript>
<script/>
<loglevel>Basic</loglevel>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>576</xloc>
<yloc>160</yloc>
<attributes_kjc/>
</entry>
</entries>
<hops>
<hop>
<from>Start</from>
<to>Read neue Antraege</to>
<from_nr>0</from_nr>
<to_nr>0</to_nr>
<enabled>Y</enabled>
<evaluation>Y</evaluation>
<unconditional>Y</unconditional>
</hop>
<hop>
<from>Read neue Antraege</from>
<to>SendeEmail1</to>
<from_nr>0</from_nr>
<to_nr>0</to_nr>
<enabled>Y</enabled>
<evaluation>Y</evaluation>
<unconditional>N</unconditional>
</hop>
</hops>
<notepads>
</notepads>
<attributes>
<group>
<name>METASTORE.pentaho</name>
<attribute>
<key>Default Run Configuration</key>
<value>{"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null}</value>
</attribute>
</group>
<group>
<name>{"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"}</name>
<attribute>
<key>Pentaho local</key>
<value>{"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]}</value>
</attribute>
</group>
</attributes>
</job>

419
src-modules/module/userantrag/etl/user_antrag/SendeBenutzerantragMail2.kjb

@ -0,0 +1,419 @@
<?xml version="1.0" encoding="UTF-8"?>
<job>
<name>SendeBenutzerantragMail2</name>
<description/>
<extended_description/>
<job_version/>
<job_status>0</job_status>
<directory>/</directory>
<created_user>-</created_user>
<created_date>2025/01/13 14:22:46.723</created_date>
<modified_user>-</modified_user>
<modified_date>2025/01/13 14:22:46.723</modified_date>
<parameters>
<parameter>
<name>AntragId</name>
<default_value>-1</default_value>
<description>AntragId des zu verarbeitenden Antrags</description>
</parameter>
</parameters>
<slaveservers>
</slaveservers>
<job-log-table>
<connection/>
<schema/>
<table/>
<size_limit_lines/>
<interval/>
<timeout_days/>
<field>
<id>ID_JOB</id>
<enabled>Y</enabled>
<name>ID_JOB</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>JOBNAME</id>
<enabled>Y</enabled>
<name>JOBNAME</name>
</field>
<field>
<id>STATUS</id>
<enabled>Y</enabled>
<name>STATUS</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>STARTDATE</id>
<enabled>Y</enabled>
<name>STARTDATE</name>
</field>
<field>
<id>ENDDATE</id>
<enabled>Y</enabled>
<name>ENDDATE</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>DEPDATE</id>
<enabled>Y</enabled>
<name>DEPDATE</name>
</field>
<field>
<id>REPLAYDATE</id>
<enabled>Y</enabled>
<name>REPLAYDATE</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>Y</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>EXECUTING_SERVER</id>
<enabled>N</enabled>
<name>EXECUTING_SERVER</name>
</field>
<field>
<id>EXECUTING_USER</id>
<enabled>N</enabled>
<name>EXECUTING_USER</name>
</field>
<field>
<id>START_JOB_ENTRY</id>
<enabled>N</enabled>
<name>START_JOB_ENTRY</name>
</field>
<field>
<id>CLIENT</id>
<enabled>N</enabled>
<name>CLIENT</name>
</field>
</job-log-table>
<jobentry-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>JOBNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>JOBENTRYNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>RESULT</id>
<enabled>Y</enabled>
<name>RESULT</name>
</field>
<field>
<id>NR_RESULT_ROWS</id>
<enabled>Y</enabled>
<name>NR_RESULT_ROWS</name>
</field>
<field>
<id>NR_RESULT_FILES</id>
<enabled>Y</enabled>
<name>NR_RESULT_FILES</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>N</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>COPY_NR</id>
<enabled>N</enabled>
<name>COPY_NR</name>
</field>
</jobentry-log-table>
<channel-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>LOGGING_OBJECT_TYPE</id>
<enabled>Y</enabled>
<name>LOGGING_OBJECT_TYPE</name>
</field>
<field>
<id>OBJECT_NAME</id>
<enabled>Y</enabled>
<name>OBJECT_NAME</name>
</field>
<field>
<id>OBJECT_COPY</id>
<enabled>Y</enabled>
<name>OBJECT_COPY</name>
</field>
<field>
<id>REPOSITORY_DIRECTORY</id>
<enabled>Y</enabled>
<name>REPOSITORY_DIRECTORY</name>
</field>
<field>
<id>FILENAME</id>
<enabled>Y</enabled>
<name>FILENAME</name>
</field>
<field>
<id>OBJECT_ID</id>
<enabled>Y</enabled>
<name>OBJECT_ID</name>
</field>
<field>
<id>OBJECT_REVISION</id>
<enabled>Y</enabled>
<name>OBJECT_REVISION</name>
</field>
<field>
<id>PARENT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>PARENT_CHANNEL_ID</name>
</field>
<field>
<id>ROOT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>ROOT_CHANNEL_ID</name>
</field>
</channel-log-table>
<pass_batchid>N</pass_batchid>
<shared_objects_file/>
<entries>
<entry>
<name>Start</name>
<description/>
<type>SPECIAL</type>
<attributes/>
<start>Y</start>
<dummy>N</dummy>
<repeat>N</repeat>
<schedulerType>0</schedulerType>
<intervalSeconds>0</intervalSeconds>
<intervalMinutes>60</intervalMinutes>
<hour>12</hour>
<minutes>0</minutes>
<weekDay>1</weekDay>
<DayOfMonth>1</DayOfMonth>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>64</xloc>
<yloc>192</yloc>
<attributes_kjc/>
</entry>
<entry>
<name>Read neue Antraege2</name>
<description/>
<type>TRANS</type>
<attributes/>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>${Internal.Entry.Current.Directory}/Read_neue_Antraege2.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
<exec_per_row>N</exec_per_row>
<clear_rows>N</clear_rows>
<clear_files>N</clear_files>
<set_logfile>N</set_logfile>
<logfile/>
<logext/>
<add_date>N</add_date>
<add_time>N</add_time>
<loglevel>Basic</loglevel>
<cluster>N</cluster>
<slave_server_name/>
<set_append_logfile>N</set_append_logfile>
<wait_until_finished>Y</wait_until_finished>
<follow_abort_remote>N</follow_abort_remote>
<create_parent_folder>N</create_parent_folder>
<logging_remote_work>N</logging_remote_work>
<run_configuration>Pentaho local</run_configuration>
<parameters>
<pass_all_parameters>Y</pass_all_parameters>
</parameters>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>208</xloc>
<yloc>192</yloc>
<attributes_kjc/>
</entry>
<entry>
<name>SendeEmail2</name>
<description/>
<type>SHELL</type>
<attributes/>
<filename>${Internal.Job.Filename.Directory}/mailversand2.x</filename>
<work_directory>${Internal.Job.Filename.Directory}</work_directory>
<arg_from_previous>Y</arg_from_previous>
<exec_per_row>Y</exec_per_row>
<set_logfile>N</set_logfile>
<logfile/>
<set_append_logfile>N</set_append_logfile>
<logext/>
<add_date>N</add_date>
<add_time>N</add_time>
<insertScript>N</insertScript>
<script/>
<loglevel>Basic</loglevel>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>400</xloc>
<yloc>176</yloc>
<attributes_kjc/>
</entry>
</entries>
<hops>
<hop>
<from>Start</from>
<to>Read neue Antraege2</to>
<from_nr>0</from_nr>
<to_nr>0</to_nr>
<enabled>Y</enabled>
<evaluation>Y</evaluation>
<unconditional>Y</unconditional>
</hop>
<hop>
<from>Read neue Antraege2</from>
<to>SendeEmail2</to>
<from_nr>0</from_nr>
<to_nr>0</to_nr>
<enabled>Y</enabled>
<evaluation>Y</evaluation>
<unconditional>N</unconditional>
</hop>
</hops>
<notepads>
</notepads>
<attributes>
<group>
<name>METASTORE.pentaho</name>
<attribute>
<key>Default Run Configuration</key>
<value>{"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null}</value>
</attribute>
</group>
<group>
<name>{"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"}</name>
<attribute>
<key>Pentaho local</key>
<value>{"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]}</value>
</attribute>
</group>
</attributes>
</job>

412
src-modules/module/userantrag/etl/user_antrag/SendeBenutzerantragMail3.kjb

@ -0,0 +1,412 @@
<?xml version="1.0" encoding="UTF-8"?>
<job>
<name>SendeBenutzerantragMail3</name>
<description/>
<extended_description/>
<job_version/>
<job_status>0</job_status>
<directory>/</directory>
<created_user>-</created_user>
<created_date>2025/01/13 14:22:46.723</created_date>
<modified_user>-</modified_user>
<modified_date>2025/01/13 14:22:46.723</modified_date>
<parameters>
<parameter>
<name>AntragId</name>
<default_value>-1</default_value>
<description>AntragId des zu verarbeitenden Antrags</description>
</parameter>
</parameters>
<slaveservers>
</slaveservers>
<job-log-table>
<connection/>
<schema/>
<table/>
<size_limit_lines/>
<interval/>
<timeout_days/>
<field>
<id>ID_JOB</id>
<enabled>Y</enabled>
<name>ID_JOB</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>JOBNAME</id>
<enabled>Y</enabled>
<name>JOBNAME</name>
</field>
<field>
<id>STATUS</id>
<enabled>Y</enabled>
<name>STATUS</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>STARTDATE</id>
<enabled>Y</enabled>
<name>STARTDATE</name>
</field>
<field>
<id>ENDDATE</id>
<enabled>Y</enabled>
<name>ENDDATE</name>
</field>
<field>
<id>LOGDATE</id>
<enabled>Y</enabled>
<name>LOGDATE</name>
</field>
<field>
<id>DEPDATE</id>
<enabled>Y</enabled>
<name>DEPDATE</name>
</field>
<field>
<id>REPLAYDATE</id>
<enabled>Y</enabled>
<name>REPLAYDATE</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>Y</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>EXECUTING_SERVER</id>
<enabled>N</enabled>
<name>EXECUTING_SERVER</name>
</field>
<field>
<id>EXECUTING_USER</id>
<enabled>N</enabled>
<name>EXECUTING_USER</name>
</field>
<field>
<id>START_JOB_ENTRY</id>
<enabled>N</enabled>
<name>START_JOB_ENTRY</name>
</field>
<field>
<id>CLIENT</id>
<enabled>N</enabled>
<name>CLIENT</name>
</field>
</job-log-table>
<jobentry-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>JOBNAME</id>
<enabled>Y</enabled>
<name>TRANSNAME</name>
</field>
<field>
<id>JOBENTRYNAME</id>
<enabled>Y</enabled>
<name>STEPNAME</name>
</field>
<field>
<id>LINES_READ</id>
<enabled>Y</enabled>
<name>LINES_READ</name>
</field>
<field>
<id>LINES_WRITTEN</id>
<enabled>Y</enabled>
<name>LINES_WRITTEN</name>
</field>
<field>
<id>LINES_UPDATED</id>
<enabled>Y</enabled>
<name>LINES_UPDATED</name>
</field>
<field>
<id>LINES_INPUT</id>
<enabled>Y</enabled>
<name>LINES_INPUT</name>
</field>
<field>
<id>LINES_OUTPUT</id>
<enabled>Y</enabled>
<name>LINES_OUTPUT</name>
</field>
<field>
<id>LINES_REJECTED</id>
<enabled>Y</enabled>
<name>LINES_REJECTED</name>
</field>
<field>
<id>ERRORS</id>
<enabled>Y</enabled>
<name>ERRORS</name>
</field>
<field>
<id>RESULT</id>
<enabled>Y</enabled>
<name>RESULT</name>
</field>
<field>
<id>NR_RESULT_ROWS</id>
<enabled>Y</enabled>
<name>NR_RESULT_ROWS</name>
</field>
<field>
<id>NR_RESULT_FILES</id>
<enabled>Y</enabled>
<name>NR_RESULT_FILES</name>
</field>
<field>
<id>LOG_FIELD</id>
<enabled>N</enabled>
<name>LOG_FIELD</name>
</field>
<field>
<id>COPY_NR</id>
<enabled>N</enabled>
<name>COPY_NR</name>
</field>
</jobentry-log-table>
<channel-log-table>
<connection/>
<schema/>
<table/>
<timeout_days/>
<field>
<id>ID_BATCH</id>
<enabled>Y</enabled>
<name>ID_BATCH</name>
</field>
<field>
<id>CHANNEL_ID</id>
<enabled>Y</enabled>
<name>CHANNEL_ID</name>
</field>
<field>
<id>LOG_DATE</id>
<enabled>Y</enabled>
<name>LOG_DATE</name>
</field>
<field>
<id>LOGGING_OBJECT_TYPE</id>
<enabled>Y</enabled>
<name>LOGGING_OBJECT_TYPE</name>
</field>
<field>
<id>OBJECT_NAME</id>
<enabled>Y</enabled>
<name>OBJECT_NAME</name>
</field>
<field>
<id>OBJECT_COPY</id>
<enabled>Y</enabled>
<name>OBJECT_COPY</name>
</field>
<field>
<id>REPOSITORY_DIRECTORY</id>
<enabled>Y</enabled>
<name>REPOSITORY_DIRECTORY</name>
</field>
<field>
<id>FILENAME</id>
<enabled>Y</enabled>
<name>FILENAME</name>
</field>
<field>
<id>OBJECT_ID</id>
<enabled>Y</enabled>
<name>OBJECT_ID</name>
</field>
<field>
<id>OBJECT_REVISION</id>
<enabled>Y</enabled>
<name>OBJECT_REVISION</name>
</field>
<field>
<id>PARENT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>PARENT_CHANNEL_ID</name>
</field>
<field>
<id>ROOT_CHANNEL_ID</id>
<enabled>Y</enabled>
<name>ROOT_CHANNEL_ID</name>
</field>
</channel-log-table>
<pass_batchid>N</pass_batchid>
<shared_objects_file/>
<entries>
<entry>
<name>Start</name>
<description/>
<type>SPECIAL</type>
<start>Y</start>
<dummy>N</dummy>
<repeat>N</repeat>
<schedulerType>0</schedulerType>
<intervalSeconds>0</intervalSeconds>
<intervalMinutes>60</intervalMinutes>
<hour>12</hour>
<minutes>0</minutes>
<weekDay>1</weekDay>
<DayOfMonth>1</DayOfMonth>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>64</xloc>
<yloc>192</yloc>
</entry>
<entry>
<name>Read genehmigte Antraege</name>
<description/>
<type>TRANS</type>
<specification_method>filename</specification_method>
<trans_object_id/>
<filename>${Internal.Entry.Current.Directory}/Read_genehmigte_Antraege.ktr</filename>
<transname/>
<arg_from_previous>N</arg_from_previous>
<params_from_previous>N</params_from_previous>
<exec_per_row>N</exec_per_row>
<clear_rows>N</clear_rows>
<clear_files>N</clear_files>
<set_logfile>N</set_logfile>
<logfile/>
<logext/>
<add_date>N</add_date>
<add_time>N</add_time>
<loglevel>Basic</loglevel>
<cluster>N</cluster>
<slave_server_name/>
<set_append_logfile>N</set_append_logfile>
<wait_until_finished>Y</wait_until_finished>
<follow_abort_remote>N</follow_abort_remote>
<create_parent_folder>N</create_parent_folder>
<logging_remote_work>N</logging_remote_work>
<parameters>
<pass_all_parameters>Y</pass_all_parameters>
</parameters>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>208</xloc>
<yloc>192</yloc>
</entry>
<entry>
<name>SendeEmail3</name>
<description/>
<type>SHELL</type>
<filename>${Internal.Job.Filename.Directory}/mailversand3.x</filename>
<work_directory>${Internal.Job.Filename.Directory}</work_directory>
<arg_from_previous>Y</arg_from_previous>
<exec_per_row>Y</exec_per_row>
<set_logfile>N</set_logfile>
<logfile/>
<set_append_logfile>N</set_append_logfile>
<logext/>
<add_date>N</add_date>
<add_time>N</add_time>
<insertScript>N</insertScript>
<script/>
<loglevel>Basic</loglevel>
<parallel>N</parallel>
<draw>Y</draw>
<nr>0</nr>
<xloc>400</xloc>
<yloc>176</yloc>
</entry>
</entries>
<hops>
<hop>
<from>Start</from>
<to>Read genehmigte Antraege</to>
<from_nr>0</from_nr>
<to_nr>0</to_nr>
<enabled>Y</enabled>
<evaluation>Y</evaluation>
<unconditional>Y</unconditional>
</hop>
<hop>
<from>Read genehmigte Antraege</from>
<to>SendeEmail3</to>
<from_nr>0</from_nr>
<to_nr>0</to_nr>
<enabled>Y</enabled>
<evaluation>Y</evaluation>
<unconditional>N</unconditional>
</hop>
</hops>
<notepads>
</notepads>
<attributes>
<group>
<name>METASTORE.pentaho</name>
<attribute>
<key>Default Run Configuration</key>
<value>{"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null}</value>
</attribute>
</group>
<group>
<name>{"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"}</name>
<attribute>
<key>Pentaho local</key>
<value>{"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]}</value>
</attribute>
</group>
</attributes>
</job>

3
src-modules/module/userantrag/etl/user_antrag/execute_mailversand3.x

@ -0,0 +1,3 @@
#!/bin/bash
. ~/db/bin/SQL_ENV
sx_kitchen.x -file SendeBenutzerantragMail3.kjb

7
src-modules/module/userantrag/etl/user_antrag/execute_mailversand_1_bis_3.x

@ -0,0 +1,7 @@
#!/bin/bash
. ~/db/bin/SQL_ENV
cd $USERANTRAG_PFAD/etl/user_antrag
sx_kitchen.x -file SendeBenutzerantragMail1.kjb
sx_kitchen.x -file SendeBenutzerantragMail2.kjb
sx_kitchen.x -file SendeBenutzerantragMail3.kjb

63
src-modules/module/userantrag/etl/user_antrag/mailversand1.x

@ -0,0 +1,63 @@
#!/bin/bash
. /home/superx/db/bin/SQL_ENV
ANTRAGTID=$1
ANTRAGEMPFAENGER=$2
VORGESETZTER_EMAIL=$3
SUPERX_SERVER=$4
UUID=$5
ANTRAGSTELLER_EMAIL=$6
ANTRAG_VON=` psql -x -c "SELECT
antragsteller_vorname || ' ' || antragsteller_nachname as \"Antrag von\",
(case when daten_bewerber_zulassung=1 then 'Ja' else 'Nein' end) as \"Bereich Bewerbung/Zulassung\",
(case when daten_stud_absolv=1 then 'Ja' else 'Nein' end) as \"Bereich Studierende/Absolvierende\",
(case when daten_personal_stellen=1 then 'Ja' else 'Nein' end) as \"Bereich Personal/Stellen\"
FROM user_antrag
where tid=$ANTRAGTID;" -q $DBNAME `
#Bei Fehlern kein Update machen!
set -e
$MAILPROG -s "Neuer Benutzerantrag im DataCockpit" $ANTRAGEMPFAENGER <<EOF
Es liegt ein neuer Antrag für das DataCockpit vor. Bitte prüfen Sie die Berechtigungen und melden Sie sich dafür zunächst beim DataCockpit an.
Danach haben Sie folgende Bearbeitungsmöglichkeit:
https://$SUPERX_SERVER/superx/edit/userantrag/user_antrag_genehmigung1.jsp?antrag=$ANTRAGTID&uuid=$UUID
oder gehen zu Administration | Benutzer verwalten | Benutzerantrag suchen und bearbeiten den Antrag darüber.
Bei Rückfragen wenden Sie sich mit Angabe der Antrags-ID $UUID an die Administration (datacockpit@uni-hildesheim.de).
Diese E-Mail wurde automatisch generiert.
EOF
$MAILPROG -s "Neuer Benutzerantrag im DataCockpit" $VORGESETZTER_EMAIL <<EOF
Es liegt ein neuer Antrag
$ANTRAG_VON
zur Kenntnisnahme für das DataCockpit aus Ihrem Bereich vor.
Grundsätzlich müssen Sie nicht tätig werden. Bei Rückfragen wenden sie sich mit Angabe der Antrags-ID $UUID an die Administration (datacockpit@uni-hildesheim.de).
Diese E-Mail wurde automatisch generiert.
EOF
$MAILPROG -s "Ihr Benutzerantrag zum DataCockpit ist eingegangen" $ANTRAGSTELLER_EMAIL <<EOF
Ihr Antrag für das DataCockpit ist eingegangen und hat die ID $UUID.
Bei Rückfragen wenden Sie sich mit Angabe der Antrags-ID $UUID an die Administration (datacockpit@uni-hildesheim.de)
Hinweis: Im Rahmen der Benutzerantragstellung für das DataCockpit verarbeitet die Stiftung Universität Hildesheim
die von Ihnen angegebenen personenbezogenen Daten (u.a. Name, E-Mail, Benutzerkennung, Dienstfunktion, ggf. Befristung)
sowie die Freigabe-/Kontaktdaten der/des Vorgesetzten und die beantragten Module/Berechtigungen, um den Zugang einzurichten,
zu verwalten und Berechtigungen zu vergeben bzw. zu ändern.
Zugriff erhalten nur die mit Prüfung, Freigabe und technischer Umsetzung betrauten Stellen; eine Weitergabe an externe Dienstleister erfolgt nicht.
Die Daten werden nur so lange gespeichert, wie es für Antrag, Berechtigungsverwaltung und IT-Sicherheit erforderlich ist,
und anschließend nach den geltenden Regelungen gelöscht.
Es gelten die Betroffenenrechte nach DSGVO (u.a. Auskunft, Berichtigung, Löschung, Widerspruch).
Diese E-Mail wurde automatisch generiert.
EOF
export SX_CLIENT=jdbc
DOQUERY "update user_antrag set antrag_email1_versendet=now() where tid=$ANTRAGTID;"

39
src-modules/module/userantrag/etl/user_antrag/mailversand1.x.orig

@ -0,0 +1,39 @@
#!/bin/bash
. /home/superx/db/bin/SQL_ENV
ANTRAGTID=$1
ANTRAGEMPFAENGER=$2
VORGESETZTER_EMAIL=$3
SUPERX_SERVER=$4
UUID=$5
#Bei Fehlern kein Update machen!
set -e
$MAILPROG -s "Neuer Benutzerantrag im DataCockpit" $ANTRAGEMPFAENGER <<EOF
Es liegt ein neuer Antrag für das DataCockpit vor.
<<<<<<< HEAD
Bitte prüfen Sie die Berechtigungen und melden Sie sich dafür zunächst beim DataCockpit an.
Danach haben Sie folgende Bearbeitungsmöglichkeit:
https://$SUPERX_SERVER/superx/edit/kern/user_antrag/user_antrag_genehmigung1.jsp?antrag=$ANTRAGTID
=======
Wichtig: Melden Sie sich zunächst beim Datacockpit an,
--> danach haben Sie folgende Bearbeitungsmöglichkeiten:
https://$SUPERX_SERVER/superx/edit/kern/user_antrag/user_antrag_genehmigung1.jsp?antrag=$ANTRAGTID&uuid=$UUID
>>>>>>> 1ced1d3 (Überprüfung uuid auch für Vorgesetzte #20)
oder gehen zu Adminstration | Benutzer verwalten | Benutzerantrag suchen und bearbeiten den Antrag darüber.
Diese Email wurde automatisch generiert.
Bei Rückfragen wenden Sie sich mit Angabe der AntragId $ANTRAGTID an die Administration.
EOF
$MAILPROG -s "Neuer Benutzerantrag im DataCockpit" $VORGESETZTER_EMAIL <<EOF
Es liegt ein neuer Antrag für das DataCockpit aus Ihrem Bereich vor.
Diesen können Sie sich hier anzeigen lassen:
https://$SUPERX_SERVER/superx/edit/kern/user_antrag/user_antrag_anzeigen_allg.jsp?antrag=$ANTRAGTID&uuid=$UUID
Diese Email wurde automatisch generiert.
Bei Rückfragen wenden Sie sich mit Angabe der AntragId $ANTRAGTID an die Administration.
EOF
export SX_CLIENT=jdbc
DOQUERY "update user_antrag set antrag_email1_versendet=now() where tid=$ANTRAGTID;"

23
src-modules/module/userantrag/etl/user_antrag/mailversand2.x

@ -0,0 +1,23 @@
#!/bin/bash
. /home/superx/db/bin/SQL_ENV
ANTRAGTID=$1
SUPERX_SERVER=$2
EMPFAENGER_SERVER=$SUPERX_SERVER
if [ "$EMPFAENGER_SERVER" != "mbisping.de" ]; then
EMPFAENGER_SERVER="uni-hildesheim.de"
fi
#Bei Fehlern nicht weiter machen
set -e
$MAILPROG -s "Neuer Benutzerantrag im DataCockpit" datacockpit@$EMPFAENGER_SERVER <<EOF
Es liegt ein neuer Antrag für das DataCockpit vor.
Dieser wurde bereits von der Dekanatsgeschäftsführung bzw. dem Controlling genehmigt.
Bitte prüfen Sie die Berechtigungen und melden Sie sich dafür zunächst beim DataCockpit an.
Danach haben Sie folgende Bearbeitungsmöglichkeit:
https://$SUPERX_SERVER/superx/edit/userantrag/user_antrag_genehmigung2.jsp?antrag=$ANTRAGTID
oder gehen zu Administration | Benutzer verwalten | Benutzerantrag suchen und bearbeiten den Antrag darüber.
Diese E-Mail wurde automatisch generiert.
EOF
export SX_CLIENT=jdbc
DOQUERY "update user_antrag set genehmigung1_email_versendet=now() where tid=$ANTRAGTID;"

36
src-modules/module/userantrag/etl/user_antrag/mailversand3.x

@ -0,0 +1,36 @@
#!/bin/bash
. ~/db/bin/SQL_ENV
ANTRAGTID=$1
ANTRAGEMPFAENGER=$2
VORGESETZTER_EMAIL=$3
SUPERX_SERVER=$4
UUID=$5
ANTRAGSTELLER_EMAIL=$6
if [ "$EMPFAENGER_SERVER" != "mbisping.de" ]; then
EMPFAENGER_SERVER="uni-hildesheim.de"
fi
#Bei Fehlern nicht weiter machen
set -e
ANTRAG_VON=` psql -x -c "SELECT
antragsteller_vorname || ' ' || antragsteller_nachname as \"Antrag von\",
(case when daten_bewerber_zulassung=1 then 'Ja' else 'Nein' end) as \"Bereich Bewerbung/Zulassung\",
(case when daten_stud_absolv=1 then 'Ja' else 'Nein' end) as \"Bereich Studierende/Absolvierende\",
(case when daten_personal_stellen=1 then 'Ja' else 'Nein' end) as \"Bereich Personal/Stellen\"
FROM user_antrag
where tid=$ANTRAGTID;" -q $DBNAME `
$MAILPROG -s "Benutzerantrag im DataCockpit genehmigt" -c $VORGESETZTER_EMAIL $ANTRAGSTELLER_EMAIL <<EOF
Der Benutzerantrag
$ANTRAG_VON
wurde genehmigt.
Bitte melden Sie sich mit Ihrem Benutzernamen und Passwort im DataCockpit an: https://$SUPERX_SERVER/superx/
EOF
export SX_CLIENT=jdbc
DOQUERY "update user_antrag set genehmigung2_email_versendet=now() where tid=$ANTRAGTID;"

32
src-modules/module/userantrag/masken/50000_felderinfo.unl

@ -0,0 +1,32 @@
50000^1. ANTRAGSTELLER*IN^0^0^0^140^200^1^char^100^0^8^^ ^ ^
50001^Antragsteller_Titel^1^0^0^140^200^1^char^100^0^0^^ ^ ^
50002^Antragsteller_Nachname^2^350^-1^140^200^1^char^100^1^0^^ ^ ^
50003^Antragsteller_Vorname^3^0^0^130^200^1^char^100^1^0^^ ^ ^
50004^Antragsteller_Email^14^350^-1^140^200^1^char^100^1^0^^ ^ ^
50005^Benutzerkennung beim Rechenzentrum^33^0^0^140^200^1^char^100^1^0^^ ^ ^
50006^Antragsteller_Einrichtung^40^0^0^140^200^1^char^100^1^0^^ ^ ^
50007^Funktion^50^350^-1^140^200^1^char^100^1^1^<<SQL>> select 'Präsident*in', 'Präsident*in',1::integer as ord union select 'Vizepräsident*in', 'Vizepräsident*in',10 union select 'Dekan*in', 'Dekan*in',20 union select 'Dekanatsgeschäftsführung', 'Dekanatsgeschäftsführung',30 union select 'Leitung Einrichtung/Institut', 'Leitung Einrichtung/Institut',40 union select 'Leitung Kostenstelle', 'Leitung Kostenstelle',50 union select 'Leitung Projekt', 'Leitung Projekt',60 union select 'Koordination Projekt', 'Koordination Projekt',70 union select 'Koordination Studiengang', 'Koordination Studiengang',80 union select 'Mitarbeiter*in', 'Mitarbeiter*in',90 order by 3^ ^ ^
50008^Voraussetzung1^-10^0^0^140^200^1^char^100^0^5^^ ^Funktionsfähiger Internet-Browser^
50009^Funktion_gueltig_bis^60^350^-1^140^200^1^date^100^0^0^^ ^ ^
50010^2. ANGABEN VORGESETZTE*R^110^0^0^140^200^1^char^100^0^8^^ ^ ^
50011^Vorgesetzter_Titel^120^0^0^140^200^1^char^100^0^0^^ ^ ^
50012^Vorgesetzter_Nachname^125^0^0^150^200^1^char^100^1^0^^ ^ ^
50013^Vorgesetzter_Vorname^130^0^0^140^200^1^char^100^1^0^^ ^ ^
50014^Vorgesetzter_Email^150^0^0^100^200^1^char^100^1^0^^ ^ ^
50015^3. ZUGANGSBERECHTIGUNG MODUL^160^0^0^100^200^1^char^100^0^8^^ ^ ^
50016^Bewerbungen_Zulassungen^170^0^0^100^200^1^char^100^0^10^^ ^ ^
50017^Studierende_Absolventen^180^350^-1^140^200^1^char^100^0^10^^ ^ ^
50018^Personal_Stellen^190^350^-1^140^200^1^char^100^0^10^^ ^ ^
50019^Finanzen^200^350^-1^140^200^1^char^100^0^10^^hidden^ ^
50020^Art des Antrags^201^0^0^100^200^1^char^100^1^1^<<SQL>> select 'Neu','Neuantrag' from xdummy union select 'Wechsel','Wechsel' from xdummy order by 1^ ^<<SQL>> select 'Neu','Neuantrag'^
50021^4. FREISCHALTUNG FINANZEN/PERSONAL^210^0^0^140^200^1^char^100^0^8^^hidden^ ^
50022^_customValidation^2000^0^0^100^200^1^char^100^0^13^^ ^validateEmailsNutzerantragFormular^
50024^Kostenstelle^240^350^-1^150^200^3^char^100^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Kern-Kostenstellen-Sicht' order by sortnr;^hidden^ ^
50025^Projektnummer^290^350^-1^150^200^1^char^100^0^1^<<SQL>> select key_apnr,trim(key_apnr)||'-'||drucktext from organigramm where orgstruktur=60 order by 1^hidden^ ^
50026^4. ANTRAG VERSENDEN^300^350^-1^150^200^1^char^100^0^8^^ ^ ^
50027^Antragsempfaenger^310^350^-1^150^200^1^char^100^1^1^<<SQL>>\
select tid,name from user_antrag_empfaenger where aktiv=1\
order by 2^ ^ ^
50028^Voraussetzung2^-9^0^0^140^200^1^char^100^0^5^^ ^Kennung beim Rechenzentrum^
50029^Voraussetzung3^-8^0^0^140^200^1^char^100^0^5^^ ^Ausgefüllter Benutzerantrag^
50030^VORAUSSETZUNGEN:^-20^0^0^140^200^1^char^100^0^8^^ ^ ^

1
src-modules/module/userantrag/masken/50000_maske_system_bez.unl

@ -0,0 +1 @@
50000^190^

30
src-modules/module/userantrag/masken/50000_masken_felder_bez.unl

@ -0,0 +1,30 @@
50000^50000^
50000^50001^
50000^50002^
50000^50003^
50000^50004^
50000^50005^
50000^50006^
50000^50007^
50000^50008^
50000^50009^
50000^50010^
50000^50011^
50000^50012^
50000^50013^
50000^50014^
50000^50015^
50000^50016^
50000^50017^
50000^50018^
50000^50019^
50000^50020^
50000^50021^
50000^50022^
50000^50024^
50000^50025^
50000^50026^
50000^50027^
50000^50028^
50000^50029^
50000^50030^

84
src-modules/module/userantrag/masken/50000_maskeninfo.unl

@ -0,0 +1,84 @@
50000^Nutzungsantrag stellen^--freemarker template\
<sqlvars>\
<sqlvar name="superx_server">select superx_server from hochschulinfo</sqlvar>\
</sqlvars>\
\
begin work;\
\
create temp table tmp_neue_antragsid(id integer);\
\
\
WITH neuer_antrag AS ( \
insert into user_antrag (\
antragsteller_titel,\
antragsteller_vorname,\
antragsteller_nachname,\
antragsteller_email,\
antragsteller_benutzerkennung,\
antragsteller_einrichtung,\
antragsteller_funktion,\
vorgesetzter_titel ,\
vorgesetzter_vorname,\
vorgesetzter_nachname,\
vorgesetzter_email,\
daten_bewerber_zulassung,\
daten_stud_absolv,\
daten_personal_stellen,\
daten_finanzen,\
antragsart,\
antragsdatum,\
antragsempfaenger_id,\
uuid)\
values \
(\
'${Antragsteller_Titel}',\
'${Antragsteller_Vorname}',\
'${Antragsteller_Nachname}',\
'${Antragsteller_Email}',\
'${.vars["Benutzerkennung beim Rechenzentrum"]}',\
'${Antragsteller_Einrichtung}',\
'${Funktion}',\
'${Vorgesetzter_Titel}',\
'${Vorgesetzter_Vorname}',\
'${Vorgesetzter_Nachname}',\
'${Vorgesetzter_Email}',\
<#if Bewerbungen_Zulassungen='true'>1<#else>0</#if>,\
<#if Studierende_Absolventen='true'> 1 <#else> 0 </#if> ,\
<#if Personal_Stellen='true'> 1 <#else> 0 </#if> ,\
<#if Finanzen='true'> 1 <#else> 0 </#if> ,\
'${.vars["Art des Antrags"]}',\
\
today(), --antragsdatum,\
<<Antragsempfaenger>>,\
gen_random_uuid()\
)\
\
RETURNING tid)\
insert into tmp_neue_antragsid (id) select tid from neuer_antrag ;\
\
<#if Funktion_gueltig_bis!="">\
update user_antrag set antragsteller_funktion_gueltig_bis=date_val(${.vars["Funktion_gueltig_bis"]}) where tid=(select id from tmp_neue_antragsid);\
</#if>\
\
<#if (Kostenstelle.selectionCount>0)>\
<#foreach kst in Kostenstelle.selectedelementsonly>\
insert into user_antrag_kostenstellen (antrag_id,kostenstelle)\
select id,'${kst.id}' from tmp_neue_antragsid;\
</#foreach>\
</#if>\
\
<#if Projektnummer!="">\
update user_antrag set fin_personal_projekt='${Projektnummer}' where tid=(select id from tmp_neue_antragsid);\
</#if>\
\
commit;\
\
select 'Neuer Antrag angelegt mit der ID '||id from tmp_neue_antragsid;^--Freemarker Template \
XIL List\
sizable_columns horizontal_scrolling\
white_space_color=COLOR_WHITE fixed_columns=0\
min_heading_height=35\
Column CID=1 heading_text="Ergebnis" explanation="" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=20\
@@@^Altersgruppe^Anzahl^Einen Nutzungsantrag stellen^drop table tmp_neue_antragsid;^^3^700^360^^1^^

1
src-modules/module/userantrag/masken/50000_sachgeb_maske_bez.unl

@ -0,0 +1 @@
190^50000^

34
src-modules/module/userantrag/masken/50040_felderinfo.unl

@ -0,0 +1,34 @@
50040^Antrag Laufnummer^1^0^0^100^150^3^integer^30^0^1^<<SQL>>--freemarker template\
select A.tid,A.tid || '-' || E.name\
from user_antrag A, user_antrag_empfaenger E\
where A.antragsempfaenger_id=E.tid\
<#if !UserIsAdmin> \
and (\
--entweder Antragsempfänger -> Genehmigung 1 \
(<<UserID>> in (select U.user_id \
from user_antrag_empfaenger_userinfo_bez U\
where E.tid=U.antragsempfaenger_id)\
)\
--oder Genehmigung2:\
or <<UserID>> in (select user_id from user_antrag_genehmigung2_userinfo_bez)\
)\
</#if> order by 1 desc^ ^ ^
50041^Genehmigung^50^0^0^100^200^1^char^30^0^1^<<SQL>> select 'og1','ohne Genehmigung1' from xdummy union select 'og2','ohne Genehmigung2' from xdummy\
union select 'mg1','mit Genehmigung1' from xdummy union select 'mg2','mit Genehmigung2' from xdummy order by 2^ ^ ^
50042^Antragsteller Nachname^10^0^0^100^200^1^char^100^0^1^<<SQL>> --freemarker template\
select distinct antragsteller_nachname,antragsteller_nachname \
from user_antrag U,user_antrag_empfaenger E where 1=1 \
<#if !UserIsAdmin> \
and (\
--entweder Antragsempfänger -> Genehmigung 1 \
(<<UserID>> in (select U.user_id \
from user_antrag_empfaenger_userinfo_bez U\
where E.tid=U.antragsempfaenger_id)\
)\
--oder Genehmigung2:\
or <<UserID>> in (select user_id from user_antrag_genehmigung2_userinfo_bez)\
) \
</#if>\
order by 1^ ^ ^
50043^Antragsdatum ab^2^0^0^100^200^1^date^30^0^0^^ ^ ^
50044^UUID^100^0^0^100^200^1^char^30^0^0^^ ^ ^

1
src-modules/module/userantrag/masken/50040_maske_system_bez.unl

@ -0,0 +1 @@
50040^190^

5
src-modules/module/userantrag/masken/50040_masken_felder_bez.unl

@ -0,0 +1,5 @@
50040^50040^
50040^50041^
50040^50042^
50040^50043^
50040^50044^

99
src-modules/module/userantrag/masken/50040_maskeninfo.unl

@ -0,0 +1,99 @@
50040^Nutzungsantrag suchen^--Freemarker Template\
<sqlvars>\
<sqlvar name="UsernameBenutzerantraegeNichtFBs">select benutzer from userinfo where info='BenutzerantraegeNichtFBs'</sqlvar>\
</sqlvars>\
create temp table tmp_erg\
(tid integer,\
antragssteller varchar(250),\
antragsdatum date,\
genehmigung1_zeitpunkt timestamp,\
genehmigung2_zeitpunkt timestamp,\
nextedit1 varchar(255),\
nextedit2 varchar(255)\
);\
insert into tmp_erg \
select A.tid,\
coalesce(A.antragsteller_titel||' ','')||A.antragsteller_vorname||' '||A.antragsteller_nachname,\
A.antragsdatum,\
genehmigung1_zeitpunkt,\
genehmigung2_zeitpunkt,\
'/superx/edit/userantrag/user_antrag_anzeigen.jsp?antrag='||A.tid ,\
<#if UserIsAdmin>\
'/superx/edit/userantrag/user_antrag_edit.jsp?tid='||A.tid \
<#else>\
''\
</#if>\
from user_antrag A \
where\
1=1\
/* and A.tid in (<<Antrag Laufnummer>>) */\
/* and A.antragsteller_nachname=<<Antragsteller Nachname>> */\
/* and A.antragsdatum>=date_val(<<Antragsdatum ab>>) */\
/* and position(<<UUID>> in A.uuid) >0 */\
<#if Genehmigung!=''>\
<#switch Genehmigung>\
<#case "og1">\
and genehmigung1_zeitpunkt is null\
<#break>\
<#case "og2">\
and genehmigung2_zeitpunkt is null\
<#break>\
<#case "mg1">\
and genehmigung2_zeitpunkt is not null\
<#break>\
<#case "mg2">\
and genehmigung2_zeitpunkt is not null\
<#break>\
</#switch>\
</#if>\
<#if !UserIsAdmin> --Genehmigung2-Maske?Datacockpit=AlleRechte\
and (\
--entweder Antragsempfänger -> Genehmigung 1 \
(A.antragsempfaenger_id in (select E.tid from user_antrag_empfaenger E, user_antrag_empfaenger_userinfo_bez U\
where E.tid=U.antragsempfaenger_id\
and U.user_id=<<UserID>>)\
)\
--oder Genehmigung2:\
or <<UserID>> in (select user_id from user_antrag_genehmigung2_userinfo_bez)\
)\
</#if>\
\
;\
\
select tid,\
antragssteller,\
antragsdatum,\
genehmigung1_zeitpunkt,\
genehmigung2_zeitpunkt,\
nextedit1,\
nextedit2\
from tmp_erg\
order by 1;^--Freemarker Template\
XIL List\
drop_and_delete movable_columns sizable_columns horizontal_scrolling\
white_space_color=COLOR_WHITE fixed_columns=2\
min_heading_height=35\
Column CID=0 heading_text="ID" explanation="" center_heading\
row_selectable col_selectable heading_platform readonly\
width=20 text_size=100\
Column CID=1 heading_text="Antragsteller" explanation="" center_heading\
row_selectable col_selectable heading_platform readonly\
width=20 text_size=100\
Column CID=1 heading_text="Antragsdatum" explanation="" center_heading\
row_selectable col_selectable heading_platform readonly\
width=20 text_size=100\
Column CID=2 heading_text="Genehmigung1" explanation="" center_heading\
row_selectable col_selectable heading_platform readonly\
width=20 text_size=15\
Column CID=3 heading_text="Genehmigung2" explanation="" center_heading\
row_selectable col_selectable heading_platform readonly\
width=30 text_size=15\
Column CID=4 heading_text="Ansehen / Bearbeiten" explanation="" center_heading\
row_selectable col_selectable heading_platform readonly\
width=50 text_size=15 \
<#if UserIsAdmin>\
Column CID=4 heading_text="Verwalten" explanation="" center_heading\
row_selectable col_selectable heading_platform readonly\
width=50 text_size=15\
</#if>\
@@@^ ^ ^Übersicht und ggfs. Bearbeitungsmöglichkeit für Benutzeranträge^drop table tmp_erg;^^1^440^360^^0^^

1
src-modules/module/userantrag/masken/50040_sachgeb_maske_bez.unl

@ -0,0 +1 @@
190^50040^

5
src-modules/module/userantrag/masken/50070_felderinfo.unl

@ -0,0 +1,5 @@
50070^Genehmigung1_Titel^10^0^0^150^50^1^char^30^0^0^^ ^ ^
50071^Genehmigung1_Nachname^20^0^0^150^200^1^char^200^1^0^^ ^ ^
50072^Genehmigung1_Vorname^30^0^0^150^200^1^char^200^1^0^^ ^ ^
50073^AntragId^0^0^0^150^200^1^integer^200^1^1^<<SQL>> select A.tid,A.tid from user_antrag A left outer join user_antrag_genehmigung G on (A.tid =G.antrag_id) where G.genehmigung1_userid is null order by 1^ ^ ^
50074^Notiz^100^0^0^100^200^1^char^255^0^0^ ^{InputCheck:disabled}^^

1
src-modules/module/userantrag/masken/50070_maske_system_bez.unl

@ -0,0 +1 @@
50070^9^

5
src-modules/module/userantrag/masken/50070_masken_felder_bez.unl

@ -0,0 +1,5 @@
50070^50070^
50070^50071^
50070^50072^
50070^50073^
50070^50074^

48
src-modules/module/userantrag/masken/50070_maskeninfo.unl

@ -0,0 +1,48 @@
50070^Nutzungsantrag Genehmigung1 Verarbeitung^--freemarker template\
<sqlvars>\
<sqlvar name="genehmigung1count">select count(*) from user_antrag where tid=<<AntragId>> </sqlvar>\
<sqlvar name="genehmigung1ok">select count(*) from user_antrag A left outer join user_antrag_genehmigung G\
on (G.antrag_id=A.tid)\
where A.tid=<<AntragId>> \
and G.genehmigung1_userid is null; </sqlvar>\
</sqlvars>\
begin work;\
\
<#if genehmigung1count!=1>\
select 'Kein Antrag mit Id <<AntragId>> gefunden' from xdummy;\
<#elseif genehmigung1ok=0>\
select 'Fehler: Antrag mit Id <<AntragId>> wurde bereits vorher genehmigt' from xdummy;\
<#else>\
insert into user_antrag_genehmigung(antrag_id,\
antragsempfaenger_id,\
genehmigung1_userid,\
genehmigung1_zeitpunkt,\
genehmigung1_titel,\
genehmigung1_vorname,\
genehmigung1_nachname,\
genehmigung1_notiz)\
select <<AntragId>>,\
A.antragsempfaenger_id,\
<<UserID>> as genehmigung1_userid,\
now() as genehmigung1_zeitpunkt,\
'${Genehmigung1_Titel}',\
'${Genehmigung1_Vorname}',\
'${Genehmigung1_Nachname}',\
'${Notiz}'\
from user_antrag A left outer join user_antrag_genehmigung G\
on (G.antrag_id=A.tid)\
where A.tid=<<AntragId>> \
--sicherheitshalber\
and G.genehmigung1_userid is null;\
select 'Genehmigung für Antrag <<AntragId>> gespeichert' from xdummy;\
</#if>\
\
commit;^XIL List\
drop_and_delete movable_columns sizable_columns horizontal_scrolling\
white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=35\
Column CID=0 heading_text="Ergebnis " center_heading\
row_selectable col_selectable heading_platform readonly\
width=50 text_size=100\
\
@@@^ ^ ^^ ^^2^440^360^^1^^

1
src-modules/module/userantrag/masken/50070_sachgeb_maske_bez.unl

@ -0,0 +1 @@
0^50070^

37
src-modules/module/userantrag/masken/50100_felderinfo.unl

@ -0,0 +1,37 @@
50100^Antrag Laufnummer^1^0^0^100^150^3^integer^30^0^1^<<SQL>>--freemarker template\
select A.tid,A.tid || '-' || E.name\
from user_antrag A, user_antrag_empfaenger E\
where A.antragsempfaenger_id=E.tid\
<#if !UserIsAdmin> \
and (\
--entweder Antragsempfänger -> Genehmigung 1 \
(<<UserID>> in (select U.user_id \
from user_antrag_empfaenger_userinfo_bez U\
where E.tid=U.antragsempfaenger_id)\
)\
--oder Genehmigung2:\
or <<UserID>> in (select user_id from user_antrag_genehmigung2_userinfo_bez)\
)\
</#if> order by 1 desc^ ^ ^
50101^Genehmigung^50^0^0^100^200^1^char^30^0^1^<<SQL>> select 'og1','ohne Genehmigung1' from xdummy union select 'og2','ohne Genehmigung2' from xdummy\
union select 'mg1','mit Genehmigung1' from xdummy union select 'mg2','mit Genehmigung2' from xdummy order by 2^ ^ ^
50102^Antragsteller Nachname^10^0^0^100^200^1^char^100^0^1^<<SQL>> \
<sqlvars>\
<sqlvar name="UsernameBenutzerantraegeNichtFBs">select benutzer from userinfo where info='BenutzerantraegeNichtFBs'</sqlvar>\
</sqlvars>\
\
select distinct antragsteller_nachname,antragsteller_nachname from user_antrag where 1=1 \
<#if !UserIsAdmin&&UserMaskRights?index_of(",9800230,")==-1> --Genehmigung2-Maske?Datacockpit=AlleRechte\
<#if Username?starts_with("dgf")> and antragsempfaenger='${Username}'\
<#elseif Username==UsernameBenutzerantraegeNichtFBs> and antragsempfaenger='BenutzerantraegeNichtFBs'\
\
<#else>\
and 1=0 -- keine Rechte!\
</#if>\
\
</#if>\
order by 1^ ^ ^
50103^Antragsdatum ab^2^0^0^100^200^1^date^30^0^0^^ ^ ^
50104^UUID^100^0^0^100^200^1^char^30^0^0^^ ^ ^
50105^Genehmigung 1^200^0^0^150^300^1^char^30^0^18^^^<<SQL>>select '../edit/userantrag/user_antrag_empfaenger_list.jsp' from xdummy;^
50106^Genehmigung 2^300^0^0^150^300^1^char^30^0^18^^^<<SQL>>select '../edit/userantrag/user_antrag_genehmigung2_userinfo_bez_list.jsp' from xdummy;^

1
src-modules/module/userantrag/masken/50100_maske_system_bez.unl

@ -0,0 +1 @@
50100^190^

7
src-modules/module/userantrag/masken/50100_masken_felder_bez.unl

@ -0,0 +1,7 @@
50100^50100^
50100^50101^
50100^50102^
50100^50103^
50100^50104^
50100^50105^
50100^50106^

1
src-modules/module/userantrag/masken/50100_maskeninfo.unl

@ -0,0 +1 @@
50100^Nutzungsanträge verwalten^<sximport>select select_stmt from maskeninfo where tid=50040</sximport>^<sximport>select xil_proplist from maskeninfo where tid=50040</sximport>^ ^ ^Administrationsmaske für Nutzungsanträge^<sximport>select cleanup_stmt from maskeninfo where tid=50040</sximport>^^1^440^360^^0^^

1
src-modules/module/userantrag/masken/50100_sachgeb_maske_bez.unl

@ -0,0 +1 @@
0^50100^

98
superx/edit/userantrag/user_antrag.css

@ -0,0 +1,98 @@
body {
font-family: Arial, sans-serif;
margin: 20px;
background-color: #f9f9f9;
color: #333;
}
h2 {
color: #0056b3;
border-bottom: 2px solid #0056b3;
padding-bottom: 5px;
}
.container {
background: #fff;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
padding: 20px;
max-width: 600px;
margin: auto;
}
.info-section {
margin-bottom: 20px;
}
.info-section p {
margin: 5px 0;
line-height: 1.6;
}
ul {
margin: 10px 0;
padding-left: 20px;
}
ul li {
margin: 5px 0;
}
.highlight {
font-weight: bold;
color: #0056b3;
}
form p {
margin-bottom: 15px;
font-size: 1em;
}
.highlightform {
font-weight: bold;
color: #0056b3;
display: inline-block;
min-width: 120px;
}
.highlightForm2 {
font-weight: bold;
color: #0056b3;
display: block;
margin-bottom: 4px; /* Abstand zwischen Label und Textarea */
}
input[type="text"] {
width: calc(100% - 140px); /* Platz für Label */
padding: 8px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1em;
margin-left: 10px;
box-sizing: border-box;
}
input[type="text"]:focus {
border-color: #0056b3;
outline: none;
}
button {
margin-top: 10px;
padding: 10px 15px;
background-color: #0056b3;
color: #fff;
border: none;
border-radius: 4px;
font-size: 1em;
cursor: pointer;
}
button:hover {
background-color: #004494;
}
.footer {
margin-top: 20px;
font-size: 0.9em;
color: #555;
}

171
superx/edit/userantrag/user_antrag_anzeigen.jsp

@ -0,0 +1,171 @@
<!-- Anzeige mit Bearbeitungsfunktionen -->
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<!-- org.apache.commons.lang.StringEscapeUtils.escapeHtml muss ggfs. bei Kernmodulaktualisierung angepasst werden-->
<%@ page import ="org.apache.commons.lang.StringEscapeUtils,org.dbforms.config.DbFormsConfigRegistry,de.superx.common.SxUser, java.sql.Connection,java.sql.PreparedStatement,java.sql.Statement,java.sql.ResultSet,java.text.SimpleDateFormat,java.io.IOException" %>
<head xmlns:sx="http://memtext.de">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="0" http-equiv="expires">
<LINK href="user_antrag.css" type="text/css" REL="stylesheet">
<title>DataCockpit-Benutzerantrag</title>
</head>
<body class="clsPageBody">
<%
SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat zeitpunktFormat = new SimpleDateFormat("HH:mm:ss");
System.out.println("Aufruf Userantrag_anzeigen "+germanDateFormat.format(new java.util.Date())+" "+zeitpunktFormat.format(new java.util.Date()));
String antragId=request.getParameter("antrag");
System.out.println("Aufruf für AntragID "+antragId);
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))mandantenid="";
Connection conn=null;
SxUser sxuser = (SxUser) request.getSession().getAttribute("user");
try {
if (sxuser==null) { %> <jsp:forward page="user_antrag_not_authorized.html"/> <% }
String antragsteller_titel="";String antragsteller_vorname="";String antragsteller_nachname="";String antragsteller_email="";
String antragsteller_benutzerkennung="";
String antragsteller_einrichtung="";
String antragsteller_funktion="";
java.sql.Date antragsteller_funktion_gueltig_bis=null;
String vorgesetzter_titel="";String vorgesetzter_vorname="";String vorgesetzter_nachname="";String vorgesetzter_email="";
int daten_bewerber_zulassung=0;
int daten_stud_absolv=0;
int daten_personal_stellen=0;
int daten_finanzen=0;
String antragsart="";
String fin_personal_projekt="";
String fin_personal_projekt_drucktext="";
java.sql.Date antragsdatum=null;
int genehmigung1_userid=0;
String genehmigung1_userkennung="";
java.sql.Timestamp genehmigung1_zeitpunkt=null;
String genehmigung1_titel="", genehmigung1_vorname="",genehmigung1_nachname="";
java.util.List<String> kostenstellenliste=new java.util.LinkedList<String>();
String uuid="";
//Für Rückmeldung falls bei Genehmigung zwei noch keine Genehmigung 1 gegeben
String antragsempfaenger=null;
int antragsempfaenger_id=0;
//Kontrolle Genehmigung 2
int genehmigung2_userid=0;
String genehmigung2_userkennung="",genehmigung2_titel="", genehmigung2_vorname="",genehmigung2_nachname="";
java.sql.Timestamp genehmigung2_zeitpunkt=null;
String genehmigung1_notiz="";
String genehmigung2_notiz="";
String genehmigung1_userkennungen=null;
String genehmigung2_userkennungen=null;
boolean userIsAntragsempfaenger=false;
boolean userIsGenehmigung2=false;
boolean isAdmin=false;
conn = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid);
%>
<%@ include file="user_antrag_read.inc" %>
<%
if(isAdmin || userIsAntragsempfaenger || userIsGenehmigung2)
{%>
<div class="container">
<%@ include file="user_antrag_view.inc" %>
</div>
<% if (genehmigung1_userid==0) { %>
<div class="container">
<div class="info-section">
<% if (isAdmin || userIsAntragsempfaenger)
{%>
Der Antrag wurde noch nicht genehmigt.<br>
Sie können ihn <a href="/superx/edit/userantrag/user_antrag_genehmigung1.jsp?antrag=<%=antragId%>&uuid=<%=uuid%>">hier bearbeiten</a>.<br>
<%} else {
String formLink=request.getRequestURL().toString().replaceAll("user_antrag_anzeigen.jsp","user_antrag_genehmigung1.jsp?antrag="+antragId+"&uuid="+uuid);
%>
Es liegt noch keine Genehmigung vor von <%=antragsempfaenger%> <br>
<br>
Bitte überprüfen Sie den Benutzerantrag.<br>
Anschließend klicken Sie bitte auf folgenden Link:<br> <a href="<%=formLink%>"><%=formLink%></a><br>
Alternativ können Sie im DataCockpit über Administration | Benutzer verwalten | "Benutzerantrag suchen" den Benutzerantrag anzeigen lassen und ihn dann bearbeiten.
<% }
%>
</div>
</div>
<% } else
{%>
<div class="container">
<hr>
<%@ include file="user_antrag_genehmigung1_view.inc" %>
</div>
<% if (genehmigung2_userid!=0) { %>
<div class="container">
<div class="info-section">
<h3>Genehmigung durch HSE/Controlling</h3>
<p><span class="highlight">Benutzerkennung:</span> <%= genehmigung2_userkennung %></p>
<p><span class="highlight">am </span> <%= germanDateFormat.format(genehmigung2_zeitpunkt)%> um <%= zeitpunktFormat.format(genehmigung2_zeitpunkt)%></p>
<p>
<label for="Genehmigung2_Notiz" class="highlightForm2">Notiz:</label>
<textarea name="Genehmigung2_Notiz" rows="6" cols="60" readonly><%=org.apache.commons.lang.StringEscapeUtils.escapeHtml(genehmigung2_notiz)%></textarea>
</p>
</div>
</div>
<% } else { %>
<div class="container">
<div class="info-section">
<p> Es liegt noch keine Genehmigung von HSE/Controlling vor.<p>
<% if (isAdmin || userIsGenehmigung2)
out.println("Klicken Sie <a href='/superx/edit/userantrag/user_antrag_genehmigung2.jsp?antrag="+antragId+"'> hier</a> zum Bearbeiten");
%>
</div>
</div>
<% }
}
}
else
{
%>
<jsp:forward page="user_antrag_not_authorized.html"/>
<%
}
}
catch (Exception e) {
out.print("<html><body>Verarbeitungsfehler: "+e+ " <br>MandantID: "+mandantenid+"</body></html>");
e.printStackTrace();
}
finally
{
if (conn!=null) conn.close();
}
%>
</body>
</html>

147
superx/edit/userantrag/user_antrag_anzeigen_allg.jsp

@ -0,0 +1,147 @@
<!-- Anzeige ohne Bearbeitungsfunktion, man muss nicht eingeloggt sein, richtige UUID reicht -->
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<!-- org.apache.commons.lang.StringEscapeUtils.escapeHtml muss ggfs. bei Kernmodulaktualisierung angepasst werden-->
<%@ page import ="org.apache.commons.lang.StringEscapeUtils,org.dbforms.config.DbFormsConfigRegistry,de.superx.common.SxUser, java.sql.Connection,java.sql.PreparedStatement,java.sql.Statement,java.sql.ResultSet,java.text.SimpleDateFormat,java.io.IOException" %>
<head xmlns:sx="http://memtext.de">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="0" http-equiv="expires">
<LINK href="user_antrag.css" type="text/css" REL="stylesheet">
<title>DataCockpit-Benutzerantrag</title>
</head>
<body class="clsPageBody">
<%
SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat zeitpunktFormat = new SimpleDateFormat("HH:mm:ss");
System.out.println("Aufruf Userantrag_anzeigen_allg "+germanDateFormat.format(new java.util.Date())+" "+zeitpunktFormat.format(new java.util.Date()));
String antragId=request.getParameter("antrag");
System.out.println("Aufruf für AntragID "+antragId);
String paramUuid=request.getParameter("uuid");
System.out.println("Aufruf mit uuid "+paramUuid);
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default")) mandantenid="";
Connection conn=null;
String antragsteller_titel="";String antragsteller_vorname="";String antragsteller_nachname="";String antragsteller_email="";
String antragsteller_benutzerkennung="";
String antragsteller_einrichtung="";
String antragsteller_funktion="";
java.sql.Date antragsteller_funktion_gueltig_bis=null;
String vorgesetzter_titel="";String vorgesetzter_vorname="";String vorgesetzter_nachname="";String vorgesetzter_email="";
int daten_bewerber_zulassung=0;
int daten_stud_absolv=0;
int daten_personal_stellen=0;
int daten_finanzen=0;
String antragsart="";
String fin_personal_projekt="";
String fin_personal_projekt_drucktext="";
java.sql.Date antragsdatum=null;
int genehmigung1_userid=0;
String genehmigung1_userkennung="";
java.sql.Timestamp genehmigung1_zeitpunkt=null;
String genehmigung1_titel="", genehmigung1_vorname="",genehmigung1_nachname="";
java.util.List<String> kostenstellenliste=new java.util.LinkedList<String>();
String uuid="";
//Für Rückmeldung falls bei Genehmigung zwei noch keine Genehmigung 1 gegeben
String antragsempfaenger=null;String antrag_email1adresse="";
//Kontrolle Genehmigung 2
int genehmigung2_userid=0;
String genehmigung2_userkennung="";
java.sql.Timestamp genehmigung2_zeitpunkt=null;
String genehmigung2_notiz="";
try {
conn = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid);
%>
<%@ include file="user_antrag_read.inc" %>
<%
if(paramUuid!=null&&paramUuid.equals(uuid))
{%>
<div class="container">
<%@ include file="user_antrag_view.inc" %>
</div>
<% if (genehmigung1_userid==0) { %>
<div class="container">
<div class="info-section">
Es liegt noch keine Genehmigung vor von Benutzer <%=antragsempfaenger%> (<%=antrag_email1adresse%>)
</div>
</div>
<% } else
{%>
<div class="container">
<hr>
<%@ include file="user_antrag_genehmigung1_view.inc" %>
</div>
<% if (genehmigung2_userid!=0) { %>
<div class="container">
<div class="info-section">
<h3>Genehmigung durch HSE/Controlling</h3>
<p><span class="highlight">Benutzerkennung:</span> <%= genehmigung2_userkennung %></p>
<p><span class="highlight">am </span> <%= germanDateFormat.format(genehmigung2_zeitpunkt)%> um <%= zeitpunktFormat.format(genehmigung2_zeitpunkt)%></p>
<p>
<label for="Genehmigung2_Notiz" class="highlightForm2">Notiz:</label>
<textarea name="Genehmigung2_Notiz" rows="6" cols="60" readonly><%=org.apache.commons.lang.StringEscapeUtils.escapeHtml(genehmigung2_notiz)%></textarea>
</p>
</div>
</div>
<% } else { %>
<div class="container">
<div class="info-section">
<p> Es liegt noch keine Genehmigung von HSE/Controlling vor.<p>
</div>
</div>
<% }
}
}
else
{
%>
<jsp:forward page="user_antrag_not_authorized.html"/>
<%
}
}
catch (Exception e) {
out.print("<html><body>Verarbeitungsfehler: "+e+ " <br>MandantID: "+mandantenid+"</body></html>");
e.printStackTrace();
}
finally
{
if (conn!=null) conn.close();
}
%>
</body>
</html>

155
superx/edit/userantrag/user_antrag_genehmigung1.jsp

@ -0,0 +1,155 @@
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<%@ page import ="org.dbforms.config.DbFormsConfigRegistry,de.superx.common.SxUser, java.sql.Connection,java.sql.PreparedStatement,java.sql.Statement,java.sql.ResultSet,java.text.SimpleDateFormat" %>
<head xmlns:sx="http://memtext.de">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="0" http-equiv="expires">
<LINK href="user_antrag.css" type="text/css" REL="stylesheet">
<title>DataCockpit-Benutzerantrag</title>
</head>
<body class="clsPageBody">
<%
SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat zeitpunktFormat = new SimpleDateFormat("HH:mm:ss");
System.out.println("Aufruf Userantrag Genehmigung1 "+germanDateFormat.format(new java.util.Date())+" "+zeitpunktFormat.format(new java.util.Date()));
String antragId=request.getParameter("antrag");
System.out.println("Aufruf Genehmigung1 für AntragID "+antragId);
String paramUuid=request.getParameter("uuid");
System.out.println("Aufruf mit uuid "+paramUuid);
SxUser sxuser = (SxUser) request.getSession().getAttribute("user");
if (sxuser==null) { System.out.println("Kein User in Session gefunden"); }
else
{
System.out.println("User: "+sxuser.getUsername());
}
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))
mandantenid="";
String antragsteller_titel="";String antragsteller_vorname="";String antragsteller_nachname="";String antragsteller_email="";
String antragsteller_benutzerkennung="";
String antragsteller_einrichtung="";
String antragsteller_funktion="";
java.sql.Date antragsteller_funktion_gueltig_bis=null;
String vorgesetzter_titel="";String vorgesetzter_vorname="";String vorgesetzter_nachname="";String vorgesetzter_email="";
int daten_bewerber_zulassung=0;
int daten_stud_absolv=0;
int daten_personal_stellen=0;
int daten_finanzen=0;
String antragsart="";
String fin_personal_projekt="";
String fin_personal_projekt_drucktext="";
java.sql.Date antragsdatum=null;
int genehmigung1_userid=0;
String genehmigung1_userkennung="";
java.sql.Timestamp genehmigung1_zeitpunkt=null;
String genehmigung1_titel="", genehmigung1_vorname="",genehmigung1_nachname="";
java.util.List<String> kostenstellenliste=new java.util.LinkedList<String>();
String uuid="";
//Für Rückmeldung falls bei Genehmigung zwei noch keine Genehmigung 1 gegeben und Rechtekontrolle
String antragsempfaenger=null;
int antragsempfaenger_id=0;
//Kontrolle Genehmigung 2
int genehmigung2_userid=0;
String genehmigung2_userkennung="",genehmigung2_titel="", genehmigung2_vorname="",genehmigung2_nachname="";;
java.sql.Timestamp genehmigung2_zeitpunkt=null;
String genehmigung1_notiz="";
String genehmigung2_notiz="";
String genehmigung1_userkennungen=null;
String genehmigung2_userkennungen=null;
boolean userIsAntragsempfaenger=false;
boolean userIsGenehmigung2=false;
boolean isAdmin=false;
Connection conn=null;
try {
conn = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid);
%>
<%@ include file="user_antrag_read.inc" %>
<%
System.out.println("isAdmin:"+isAdmin);
System.out.println("userIsAntragsempfaenger:"+userIsAntragsempfaenger);
if(isAdmin || userIsAntragsempfaenger )
{
%>
<div class="container">
<%@ include file="user_antrag_view.inc" %>
</div>
<% if (genehmigung1_userid!=0) { %>
<div class="container">
<hr>
<%@ include file="user_antrag_genehmigung1_view.inc" %>
</div>
<% }
else
{
%>
<div class="container">
<div class="info-section">
<h3>Genehmigung des Antrags <%=antragId%></h3>
<form method="post" charset="UTF-8" action="user_antrag_genehmigung1_eintrag.jsp">
<input type="hidden" name="AntragId" value="<%=antragId%>">
<p>
<label for="Genehmigung1_Notiz" class="highlightForm2">Notiz:</label>
<textarea name="Genehmigung1_Notiz" rows="6" cols="60"></textarea>
</p>
Sie sind als Benutzer <b><%=sxuser.getUsername()%></b> angemeldet.<br>
Durch Klicken den folgenden Button können Sie den Antrag genehmigen.<br>
<button type="submit">Antrag genehmigen</button>
</form>
</div>
</div>
<% } %>
<%
}
else
{
System.out.println("Zugriffe abgelehnt - nur Benutzer der "+antragsempfaenger+" oder Admin darf Genehmigung erteilen!");
%>
<jsp:forward page="user_antrag_not_authorized.html"/>
<%
}
}
catch (Exception e) {
e.printStackTrace();
out.print("<html><body>Verarbeitungsfehler: "+e+ " <br>MandantID: "+mandantenid+"</body></html>");
}
finally
{
if (conn!=null) conn.close();
}
%>
</body>
</html>

139
superx/edit/userantrag/user_antrag_genehmigung1_eintrag.jsp

@ -0,0 +1,139 @@
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<%@ page import ="org.dbforms.config.DbFormsConfigRegistry,de.superx.common.SxUser, java.sql.Connection,java.sql.PreparedStatement,java.sql.Statement,java.sql.ResultSet,java.text.SimpleDateFormat" %>
<head xmlns:sx="http://memtext.de">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="0" http-equiv="expires">
<LINK href="user_antrag.css" type="text/css" REL="stylesheet">
<title>DataCockpit-Benutzerantrag</title>
</head>
<body class="clsPageBody">
<%
SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat zeitpunktFormat = new SimpleDateFormat("HH:mm:ss");
SxUser sxuser = (SxUser) request.getSession().getAttribute("user");
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
if(sxuser == null||request.getSession().getAttribute("UserMaskRights")==null)
{
%>
<jsp:forward page="user_antrag_not_authorized.html"/>
<%
}
else
{
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))
mandantenid="";
String antragId=request.getParameter("AntragId");
String antragsteller_titel="";String antragsteller_vorname="";String antragsteller_nachname="";String antragsteller_email="";
String antragsteller_benutzerkennung="";
String antragsteller_einrichtung="";
String antragsteller_funktion="";
java.sql.Date antragsteller_funktion_gueltig_bis=null;
String vorgesetzter_titel="";String vorgesetzter_vorname="";String vorgesetzter_nachname="";String vorgesetzter_email="";
int daten_bewerber_zulassung=0;
int daten_stud_absolv=0;
int daten_personal_stellen=0;
int daten_finanzen=0;
String antragsart="";
String fin_personal_projekt="";
String fin_personal_projekt_drucktext="";
java.sql.Date antragsdatum=null;
int genehmigung1_userid=0;
String genehmigung1_userkennung="";
java.sql.Timestamp genehmigung1_zeitpunkt=null;
String genehmigung1_titel="", genehmigung1_vorname="",genehmigung1_nachname="";
String genehmigung2_titel="", genehmigung2_vorname="",genehmigung2_nachname="";
java.util.List<String> kostenstellenliste=new java.util.LinkedList<String>();
String uuid="";
//Für Rückmeldung falls bei Genehmigung zwei noch keine Genehmigung 1 gegeben
String antragsempfaenger=null;
int antragsempfaenger_id=0;
//Kontrolle Genehmigung 2
int genehmigung2_userid=0;
String genehmigung2_userkennung="";
String genehmigung1_notiz="";
String genehmigung2_notiz="";
String genehmigung1_userkennungen=null;
String genehmigung2_userkennungen=null;
boolean userIsAntragsempfaenger=false;
boolean userIsGenehmigung2=false;
boolean isAdmin=false;
java.sql.Timestamp genehmigung2_zeitpunkt=null;
Connection conn=null;
try {
conn = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid);
%>
<%@ include file="user_antrag_read.inc" %>
<% if (genehmigung1_userid!=0) { %>
<p> FEHLER! Antrag <%=antragId%> wurde bereits genehmigt</p>
<% }
else
{
if(isAdmin || userIsAntragsempfaenger)
{
//muss erst hier geholt werden, genehmigung2_notiz wird aus DB gelesen und ist noch null
String param_genehmigung1_notiz=request.getParameter("Genehmigung1_Notiz");
PreparedStatement pst=conn.prepareStatement("update user_antrag set genehmigung1_zeitpunkt=now(),genehmigung1_userid=?,genehmigung1_nachname=?,genehmigung1_notiz=? where tid=? and genehmigung1_userid is null");
pst.setInt(1, ((Integer)sxuser.getId()).intValue());
pst.setString(2, ((String)sxuser.getUsername()));
pst.setString(3,param_genehmigung1_notiz);
pst.setInt(4,Integer.parseInt(antragId));
pst.executeUpdate();
System.out.println("Executing SQL: " + pst.toString());
%>
<div class="container">
<h2>Datacokpit-Benutzerantrag</h2>
Genehmigung eingetragen.<br>
</div>
<% }
%>
<a href="user_antrag_genehmigung1.jsp?antrag=<%=antragId%>">Zur Antragsansicht</a>
<%
}%>
<%
}
catch (Exception e) {
System.out.println("AntragId "+antragId);
e.printStackTrace();
out.print("<html><body>Verarbeitungsfehler: "+e+ " <br>MandantID: "+mandantenid+"</body></html>");
}
finally
{
if (conn!=null) conn.close();
}
}
%>
</body>
</html>

4
superx/edit/userantrag/user_antrag_genehmigung1_view.inc

@ -0,0 +1,4 @@
<div class="info-section">
<p><span class="highlight">Genehmigt durch: </span> <%= genehmigung1_nachname %> ( Benutzerkennung: <%=genehmigung1_userkennung%>) </p>
<p><span class="highlight">Genehmigt am: </span> <%= germanDateFormat.format(genehmigung1_zeitpunkt)%> um <%= zeitpunktFormat.format(genehmigung1_zeitpunkt)%></p>
</div>

167
superx/edit/userantrag/user_antrag_genehmigung2.jsp

@ -0,0 +1,167 @@
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<!-- org.apache.commons.lang.StringEscapeUtils.escapeHtml muss ggfs. bei Kernmodulaktualisierung angepasst werden-->
<%@ page import ="org.apache.commons.lang.StringEscapeUtils,org.dbforms.config.DbFormsConfigRegistry,de.superx.common.SxUser, java.sql.Connection,java.sql.PreparedStatement,java.sql.Statement,java.sql.ResultSet,java.text.SimpleDateFormat" %>
<head xmlns:sx="http://memtext.de">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="0" http-equiv="expires">
<LINK href="user_antrag.css" type="text/css" REL="stylesheet">
<title>DataCockpit-Benutzerantrag</title>
</head>
<body class="clsPageBody">
<%
SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat zeitpunktFormat = new SimpleDateFormat("HH:mm:ss");
String antragId=request.getParameter("antrag");
System.out.println("Aufruf Userantrag Genehmigung 2 "+germanDateFormat.format(new java.util.Date())+" "+zeitpunktFormat.format(new java.util.Date()));
System.out.println("Aufruf Genehmigung2 für AntragID "+antragId);
SxUser sxuser = (SxUser) request.getSession().getAttribute("user");
if (sxuser==null) { System.out.println("Kein User in Session gefunden"); }
else
{
System.out.println("User: "+sxuser.getUsername());
boolean hasAccess = request.getSession().getAttribute("UserMaskRights").toString().contains(",9800230,");
System.out.println("Rechte für Maske 9800230 " + (hasAccess ? "ja" : "nein"));
}
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))
mandantenid="";
String antragsteller_titel="";String antragsteller_vorname="";String antragsteller_nachname="";String antragsteller_email="";
String antragsteller_benutzerkennung="";
String antragsteller_einrichtung="";
String antragsteller_funktion="";
java.sql.Date antragsteller_funktion_gueltig_bis=null;
String vorgesetzter_titel="";String vorgesetzter_vorname="";String vorgesetzter_nachname="";String vorgesetzter_email="";
int daten_bewerber_zulassung=0;
int daten_stud_absolv=0;
int daten_personal_stellen=0;
int daten_finanzen=0;
String antragsart="";
String fin_personal_projekt="";
String fin_personal_projekt_drucktext="";
java.sql.Date antragsdatum=null;
int genehmigung1_userid=0;
String genehmigung1_userkennung="";
java.sql.Timestamp genehmigung1_zeitpunkt=null;
String genehmigung1_titel="", genehmigung1_vorname="",genehmigung1_nachname="";
String genehmigung2_titel="", genehmigung2_vorname="",genehmigung2_nachname="";
java.util.List<String> kostenstellenliste=new java.util.LinkedList<String>();
//Für Rückmeldung falls bei Genehmigung zwei noch keine Genehmigung 1 gegeben
String antragsempfaenger=null;
int antragsempfaenger_id=0;
//Kontrolle Genehmigung 2
int genehmigung2_userid=0;
String genehmigung2_userkennung="";
java.sql.Timestamp genehmigung2_zeitpunkt=null;
String genehmigung1_notiz="";
String genehmigung2_notiz="";
String uuid="";
String genehmigung1_userkennungen=null;
String genehmigung2_userkennungen=null;
boolean userIsAntragsempfaenger=false;
boolean userIsGenehmigung2=false;
boolean isAdmin=false;
Connection conn=null;
try {
conn = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid);
%>
<%@ include file="user_antrag_read.inc" %>
<div class="container">
<%@ include file="user_antrag_view.inc" %>
</div>
<% if (genehmigung1_userid==0) { %>
<div class="container">
<div class="info-section">Es liegt noch keine Genehmigung vor von
<% if (userIsAntragsempfaenger) { %> <%=antragsempfaenger%> <%}
else
{ %> Vorgesetzter: <%=vorgesetzter_titel%> <%=vorgesetzter_vorname%> <%=vorgesetzter_nachname%> <%} %>
<br>
Senden Sie ihr/ihm eine Erinnerung mit diesem Link https://www.uni-hildesheim.de/superx/edit/userantrag/user_antrag_genehmigung1.jsp?antrag=<%=antragId%>&uuid=<%=uuid%>
<% }
else
{
%>
<div class="container">
<hr>
<%@ include file="user_antrag_genehmigung1_view.inc" %>
</div>
<% if (genehmigung2_userid!=0) { %>
<div class="container">
<div class="info-section">
<h3>Genehmigung durch HSE/Controlling</h3>
<p><span class="highlight">Benutzerkennung:</span> <%= genehmigung2_userkennung %></p>
<p><span class="highlight">am </span> <%= germanDateFormat.format(genehmigung2_zeitpunkt)%> um <%= zeitpunktFormat.format(genehmigung2_zeitpunkt)%></p>
<p>
<label for="Genehmigung2_Notiz" class="highlightForm2">Notiz:</label>
<textarea name="Genehmigung2_Notiz" rows="6" cols="60" readonly><%=org.apache.commons.lang.StringEscapeUtils.escapeHtml(genehmigung2_notiz)%></textarea>
</p>
</div>
</div>
<% } else { %>
<div class="container">
<div class="info-section">
<h3>Genehmigung durch HSE/Controlling</h3>
<form method="post" charset="UTF-8" action="user_antrag_genehmigung2_eintrag.jsp">
<input type="hidden" name="AntragId" value="<%=antragId%>">
<p>
<label for="Genehmigung2_Notiz" class="highlightForm2">Notiz:</label>
<textarea name="Genehmigung2_Notiz" rows="6" cols="60"></textarea>
</p>
Sie sind als Benutzer <b><%=sxuser.getUsername()%></b> angemeldet.<br>
Durch Klicken den folgenden Button können Sie den Antrag genehmigen.<br>
<button type="submit">Antrag genehmigen</button>
</form>
</div>
</div>
<% } %>
<% } %>
<%
}
catch (Exception e) {
out.print("<html><body>Verarbeitungsfehler: "+e+ " <br>MandantID: "+mandantenid+"</body></html>");
e.printStackTrace();
}
finally
{
if (conn!=null) conn.close();
}
%>
</body>
</html>

138
superx/edit/userantrag/user_antrag_genehmigung2_eintrag.jsp

@ -0,0 +1,138 @@
<%@page pageEncoding="utf-8" contentType="text/html; charset=UTF-8" %>
<%@ page import ="org.dbforms.config.DbFormsConfigRegistry,de.superx.common.SxUser, java.sql.Connection,java.sql.PreparedStatement,java.sql.Statement,java.sql.ResultSet,java.text.SimpleDateFormat" %>
<head xmlns:sx="http://memtext.de">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="0" http-equiv="expires">
<LINK href="user_antrag.css" type="text/css" REL="stylesheet">
<title>DataCockpit-Benutzerantrag</title>
</head>
<body class="clsPageBody">
<%
SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat zeitpunktFormat = new SimpleDateFormat("HH:mm:ss");
SxUser sxuser = (SxUser) request.getSession().getAttribute("user");
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
if(sxuser == null||request.getSession().getAttribute("UserMaskRights")==null)
{
%>
<jsp:forward page="user_antrag_not_authorized.html"/>
<%
}
else
{
Object mandantobject=request.getSession().getAttribute("MandantenID");
String mandantenid="";
if(mandantobject != null)
mandantenid=mandantobject.toString();
//der superx-Default-Mandant ist bei dbforms ein Leerstring
if(mandantenid.equals("default"))
mandantenid="";
String antragId=request.getParameter("AntragId");
String antragsteller_titel="";String antragsteller_vorname="";String antragsteller_nachname="";String antragsteller_email="";
String antragsteller_benutzerkennung="";
String antragsteller_einrichtung="";
String antragsteller_funktion="";
java.sql.Date antragsteller_funktion_gueltig_bis=null;
String vorgesetzter_titel="";String vorgesetzter_vorname="";String vorgesetzter_nachname="";String vorgesetzter_email="";
int daten_bewerber_zulassung=0;
int daten_stud_absolv=0;
int daten_personal_stellen=0;
int daten_finanzen=0;
String antragsart="";
String fin_personal_projekt="";
String fin_personal_projekt_drucktext="";
java.sql.Date antragsdatum=null;
int genehmigung1_userid=0;
String genehmigung1_userkennung="";
java.sql.Timestamp genehmigung1_zeitpunkt=null;
String genehmigung1_titel="", genehmigung1_vorname="",genehmigung1_nachname="";
String genehmigung2_titel="", genehmigung2_vorname="",genehmigung2_nachname="";
java.util.List<String> kostenstellenliste=new java.util.LinkedList<String>();
String uuid="";
//Für Rückmeldung falls bei Genehmigung zwei noch keine Genehmigung 1 gegeben
String antragsempfaenger=null;
int antragsempfaenger_id=0;
//Kontrolle Genehmigung 2
int genehmigung2_userid=0;
String genehmigung2_userkennung="";
String genehmigung1_notiz="";
String genehmigung2_notiz="";
String genehmigung1_userkennungen=null;
String genehmigung2_userkennungen=null;
boolean userIsAntragsempfaenger=false;
boolean userIsGenehmigung2=false;
boolean isAdmin=false;
java.sql.Timestamp genehmigung2_zeitpunkt=null;
Connection conn=null;
try {
conn = DbFormsConfigRegistry.instance().lookup().getConnection(mandantenid);
%>
<%@ include file="user_antrag_read.inc" %>
<% if (genehmigung2_userid!=0) { %>
<p> FEHLER! Antrag <%=antragId%> wurde bereits von HSE/Controlling genehmigt</p>
<% }
else
{
if(isAdmin || userIsGenehmigung2)
{
//muss erst hier geholt werden, genehmigung2_notiz wird aus DB gelesen und ist noch null
String param_genehmigung2_notiz=request.getParameter("Genehmigung2_Notiz");
PreparedStatement pst=conn.prepareStatement("update user_antrag set genehmigung2_zeitpunkt=now(),genehmigung2_userid=?,genehmigung2_notiz=? where tid=? and genehmigung2_userid is null");
pst.setInt(1, ((Integer)sxuser.getId()).intValue());
pst.setString(2,param_genehmigung2_notiz);
pst.setInt(3,Integer.parseInt(antragId));
pst.executeUpdate();
System.out.println("Executing SQL: " + pst.toString());
%>
<div class="container">
<h2>Datacokpit-Benutzerantrag</h2>
Genehmigung eingetragen.<br>
</div>
<% }
%>
<a href="user_antrag_genehmigung2.jsp?antrag=<%=antragId%>">Zur Antragsansicht</a>
<%
}%>
<%
}
catch (Exception e) {
System.out.println("AntragId "+antragId);
e.printStackTrace();
out.print("<html><body>Verarbeitungsfehler: "+e+ " <br>MandantID: "+mandantenid+"</body></html>");
}
finally
{
if (conn!=null) conn.close();
}
}
%>
</body>
</html>

32
superx/edit/userantrag/user_antrag_not_authorized.html

@ -0,0 +1,32 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Not authorized</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<base target="_self">
<LINK REL="stylesheet" type="text/css" href="../style/superx.css"/>
</head>
<body>
<div id="bg">
<div id="inhalt">
<h1>Fehlende Rechte</h1>
<p>
<STRONG>Ihre Benutzerkennung besitzt nicht die Rechte f&uuml;r diese Aktion.</STRONG><br />
Bitte wenden Sie sich an Ihre Administrator_in, um die Rechte zu bekommen.
</P>
<div id="fuss">
<!-- /seite_empfehlen.php -->
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
</div>
<!-- Ende Inhaltsbereich -->
<!-- Ende Linkboxen und Subnavigation dritte Ebene-->
</div>
<!-- Ende Backgroundlayer -->
<!-- -->
</body>
</html>

141
superx/edit/userantrag/user_antrag_read.inc

@ -0,0 +1,141 @@
<%
isAdmin=request.getSession().getAttribute("UserIsAdmin").toString().equals("true");
System.out.println("User "+sxuser.getUsername()+" Admin : "+isAdmin);
PreparedStatement pst_antrag;
ResultSet rs_antrag;
pst_antrag=conn.prepareStatement("select antragsteller_titel,antragsteller_vorname,antragsteller_nachname,antragsteller_email,antragsteller_benutzerkennung,antragsteller_einrichtung,"+
" antragsteller_funktion,antragsteller_funktion_gueltig_bis,vorgesetzter_titel,vorgesetzter_vorname,vorgesetzter_nachname,vorgesetzter_email,"+
" daten_bewerber_zulassung,daten_stud_absolv,daten_personal_stellen,daten_finanzen,antragsart,fin_personal_projekt,antragsdatum,"+
" genehmigung1_userid,genehmigung1_zeitpunkt,genehmigung1_titel,genehmigung1_vorname,genehmigung1_nachname,vorgesetzter_titel,vorgesetzter_vorname,vorgesetzter_nachname,A.antragsempfaenger_id,E.name as antragsempfaenger,"+
" genehmigung2_userid, genehmigung2_zeitpunkt, genehmigung2_notiz,uuid,"+
"(select min(drucktext) from organigramm where orgstruktur=60 and key_apnr=fin_personal_projekt) as fin_personal_projekt_drucktext "+
" from user_antrag A, user_antrag_empfaenger E where E.tid=A.antragsempfaenger_id and A.tid=? "
);
pst_antrag.setInt(1,Integer.parseInt(antragId));
rs_antrag = pst_antrag.executeQuery();
while (rs_antrag.next())
{
antragsteller_titel=rs_antrag.getString("antragsteller_titel");
antragsteller_vorname=rs_antrag.getString("antragsteller_vorname");
antragsteller_nachname=rs_antrag.getString("antragsteller_nachname");
antragsteller_email=rs_antrag.getString("antragsteller_email");
antragsteller_benutzerkennung=rs_antrag.getString("antragsteller_benutzerkennung");
antragsteller_einrichtung=rs_antrag.getString("antragsteller_einrichtung");
antragsteller_funktion=rs_antrag.getString("antragsteller_funktion");
antragsteller_funktion_gueltig_bis=rs_antrag.getDate("antragsteller_funktion_gueltig_bis");
vorgesetzter_titel=rs_antrag.getString("vorgesetzter_titel");
if (vorgesetzter_titel==null) vorgesetzter_titel="";
vorgesetzter_vorname=rs_antrag.getString("vorgesetzter_vorname");
vorgesetzter_nachname=rs_antrag.getString("vorgesetzter_nachname");
vorgesetzter_email=rs_antrag.getString("vorgesetzter_email");
daten_bewerber_zulassung=rs_antrag.getInt("daten_bewerber_zulassung");
daten_stud_absolv=rs_antrag.getInt("daten_stud_absolv");
daten_personal_stellen=rs_antrag.getInt("daten_personal_stellen");
daten_finanzen=rs_antrag.getInt("daten_finanzen");
antragsart=rs_antrag.getString("antragsart");
fin_personal_projekt=rs_antrag.getString("fin_personal_projekt");
fin_personal_projekt_drucktext=rs_antrag.getString("fin_personal_projekt_drucktext");
antragsdatum=rs_antrag.getDate("antragsdatum");
genehmigung1_userid=rs_antrag.getInt("genehmigung1_userid");
genehmigung1_zeitpunkt=rs_antrag.getTimestamp("genehmigung1_zeitpunkt");
genehmigung1_titel=rs_antrag.getString("genehmigung1_titel");
if (genehmigung1_titel==null) genehmigung1_titel="";
genehmigung1_vorname=rs_antrag.getString("genehmigung1_vorname");
genehmigung1_nachname=rs_antrag.getString("genehmigung1_nachname");
//wird zur Info in Genehmigung 2 gebraucht, falls noch keine Genehmigung 1 vorhanden...und zur Rechteverwaltung
antragsempfaenger_id=rs_antrag.getInt("antragsempfaenger_id");
antragsempfaenger=rs_antrag.getString("antragsempfaenger");
//wird zur Info über Genehmigung 2 HSE/Controlling gebraucht
genehmigung2_userid=rs_antrag.getInt("genehmigung2_userid");
genehmigung2_zeitpunkt=rs_antrag.getTimestamp("genehmigung2_zeitpunkt");
genehmigung2_notiz=rs_antrag.getString("genehmigung2_notiz");
uuid=rs_antrag.getString("uuid");
}
rs_antrag.close();
pst_antrag.close();
String sqlGenehmigung1kennungen="select ',' || array_to_string(array_agg(trim(U.benutzer)),',','') || ',' "+
" from userinfo U, user_antrag_empfaenger_userinfo_bez B "+
" where U.tid=B.user_id and B.aktiv=1 and B.antragsempfaenger_id=?";
PreparedStatement pst_genehmigung1_userkennung=conn.prepareStatement(sqlGenehmigung1kennungen);
pst_genehmigung1_userkennung.setInt(1,antragsempfaenger_id);
ResultSet rs_genehmigung= pst_genehmigung1_userkennung.executeQuery();
while (rs_genehmigung.next())
{
genehmigung1_userkennungen=rs_genehmigung.getString(1);
}
rs_genehmigung.close();
System.out.println("genehmigung1_userkennungen:"+genehmigung1_userkennungen);
String sqlGenehmigung2kennungen="select ',' || array_to_string(array_agg(trim(U.benutzer)),',','') || ',' "+
" from userinfo U, user_antrag_genehmigung2_userinfo_bez B "+
" where U.tid=B.user_id";
PreparedStatement pst_genehmigung2_userkennung=conn.prepareStatement(sqlGenehmigung2kennungen);
ResultSet rs_genehmigung2= pst_genehmigung2_userkennung.executeQuery();
while (rs_genehmigung2.next())
{
genehmigung2_userkennungen=rs_genehmigung2.getString(1);
}
rs_genehmigung2.close();
System.out.println("genehmigung2_userkennungen:"+genehmigung2_userkennungen);
if(genehmigung1_userkennungen!=null)
{
userIsAntragsempfaenger=(genehmigung1_userkennungen.indexOf(sxuser.getUsername())!=-1?true:false);
}
System.out.println("User ist Antragsempfaenger :"+(userIsAntragsempfaenger ? "ja" : "nein"));
if(genehmigung2_userkennungen!=null)
{
userIsGenehmigung2=(genehmigung2_userkennungen.indexOf(sxuser.getUsername())!=-1?true:false);
}
System.out.println("User ist Genehmigung2 :"+(userIsGenehmigung2 ? "ja" : "nein"));
PreparedStatement pst_userkennung=conn.prepareStatement("select benutzer from userinfo where tid=?");
if (genehmigung1_userid!=0)
{
pst_userkennung.setInt(1,genehmigung1_userid);
ResultSet rs= pst_userkennung.executeQuery();
while (rs.next())
{
genehmigung1_userkennung=rs.getString(1);
}
rs.close();
}
if (genehmigung2_userid!=0)
{
pst_userkennung.clearParameters();
pst_userkennung.setInt(1,genehmigung2_userid);
ResultSet rs= pst_userkennung.executeQuery();
while (rs.next())
{
genehmigung2_userkennung=rs.getString(1);
}
rs.close();
}
pst_userkennung.close();
PreparedStatement pst_kostenstellen=
conn.prepareStatement("select kostenstelle,coalesce(O.name,'UNBEKANNT') from user_antrag_kostenstellen UK left outer join organigramm O on UK.kostenstelle=O.key_apnr where antrag_id=? order by 1");
pst_kostenstellen.setInt(1,Integer.parseInt(antragId));
ResultSet rs_kostenstellen= pst_kostenstellen.executeQuery();
while (rs_kostenstellen.next())
{
kostenstellenliste.add(rs_kostenstellen.getString(1)+"-"+rs_kostenstellen.getString(2));
}
rs_kostenstellen.close();pst_kostenstellen.close();
%>

60
superx/edit/userantrag/user_antrag_view.inc

@ -0,0 +1,60 @@
<h2>DataCockpit-Benutzerantrag</h2>
<div class="info-section">Es gibt folgenden Antrag auf Zugang zum DataCockpit</div>
<div class="info-section">
<p><span class="highlight">Antrag ID:</span> <%= antragId %></p>
<p><span class="highlight">Antragsteller:</span>
<%= antragsteller_titel %> <%= antragsteller_vorname %> <%= antragsteller_nachname %></p>
<p><span class="highlight">Antragsdatum:</span> <%= germanDateFormat.format(antragsdatum) %></p>
<p><span class="highlight">E-Mail:</span> <%= antragsteller_email %></p>
<p><span class="highlight">Benutzerkennung:</span> <%= antragsteller_benutzerkennung %></p>
<p><span class="highlight">Einrichtung:</span> <%= antragsteller_einrichtung %></p>
<p><span class="highlight">Funktion:</span> <%= antragsteller_funktion %></p>
<% if (antragsteller_funktion_gueltig_bis != null) { %>
<p><span class="highlight">Funktion g&uuml;ltig bis:</span> <%= germanDateFormat.format(antragsteller_funktion_gueltig_bis) %></p>
<% } %>
<p><span class="highlight">Vorgesetzter:</span>
<%= vorgesetzter_titel %> <%= vorgesetzter_vorname %> <%= vorgesetzter_nachname %>
(<%= vorgesetzter_email %>)</p>
</div>
<div class="info-section">
<p><span class="highlight">Beantragte Datenzugriffe:</span></p>
<ul>
<% if (daten_bewerber_zulassung == 1) { %>
<li>Bewerbung/Zulassung</li>
<% } %>
<% if (daten_stud_absolv == 1) { %>
<li>Studierende/Absolventen</li>
<% } %>
<% if (daten_personal_stellen == 1) { %>
<li>Personal/Stellen</li>
<% } %>
<% if (daten_finanzen == 1) { %>
<li>Finanzen</li>
<% } %>
</ul>
</div>
<p><span class="highlight">Antragsart:</span> <%= antragsart %></p>
<% if (kostenstellenliste.size()>0){%>
<div class="info-section">
<p><span class="highlight">Freischaltung Finanzen und/oder Personal f&uuml;r Verantwortungsbereich:</span></p>
<%-- <% if (kostenstellenliste.size()>1) out.print("n");%> --%>
<ul>
<% for (String eineKst : kostenstellenliste) {%>
<li><%=eineKst%></li>
<% }%>
</ul>
</div>
<% }%>
<% if (fin_personal_projekt != null) { %>
<div class="info-section">
<p><span class="highlight">Projekt:</span> <%= fin_personal_projekt %>&nbsp; <%= fin_personal_projekt_drucktext %> </p>
</div>
<% } %>
<%--
<div class="footer">
<p>DataCockpit Uni Hildesheim</p>
</div> --%>
Loading…
Cancel
Save