Browse Source

Datenblatt Promotionsvorhaben erstellt #1

master
Daniel Quathamer 1 year ago
parent
commit
e8814ecc22
  1. 81
      build.xml
  2. 10
      src-modules/module/promstat/conf/excludes.txt
  3. 3
      src-modules/module/promstat/conf/includes.txt
  4. 310
      src-modules/module/promstat/conf/promstat.xml
  5. 22
      src-modules/module/promstat/datentabellen/vacuum_pg.sql
  6. 120
      src-modules/module/promstat/hilfstabellen/promstat_docprogram_aggr_fuellen.sql
  7. 15
      src-modules/module/promstat/masken/46000_felderinfo.unl
  8. 1
      src-modules/module/promstat/masken/46000_maske_system_bez.unl
  9. 14
      src-modules/module/promstat/masken/46000_masken_felder_bez.unl
  10. 122
      src-modules/module/promstat/masken/46000_maskeninfo.unl
  11. 1
      src-modules/module/promstat/masken/46000_sachgeb_maske_bez.unl
  12. 5
      src-modules/module/promstat/promstat_modul_entfernen.x
  13. 4
      src-modules/module/promstat/promstat_modul_erzeugen.x
  14. 65
      src-modules/module/promstat/promstat_update.x
  15. 2
      src-modules/module/promstat/rohdaten/PROMSTAT_ENV.sam
  16. 1131
      src-modules/module/promstat/rohdaten/promstat_unload.xml
  17. 102
      src-modules/module/promstat/schluesseltabellen/captions_fuellen.sql
  18. 34
      src-modules/module/promstat/schluesseltabellen/captions_fuellen.x
  19. 0
      src-modules/module/promstat/schluesseltabellen/promstat_captions.unl
  20. 7
      src-modules/module/promstat/schluesseltabellen/promstat_feste_konstanten_entfernen.sql
  21. 103
      src-modules/module/promstat/schluesseltabellen/promstat_feste_konstanten_fuellen.sql
  22. 165
      src-modules/module/promstat/schluesseltabellen/sx_stylesheets_einfuegen.sql
  23. 15
      src-modules/module/promstat/upgrade/lm_upgrade_man.sql
  24. 14
      superx/WEB-INF/conf/edustore/db/bin/SQL_ENV_promstat.sam

81
build.xml

@ -0,0 +1,81 @@ @@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="ModuleCreation" default="help" basedir=".">
<!--Aufruf mit
-->
<dirname file="${ant.file}" property="moduleCreateBaseDir" />
<property name="BASE_DIR" value="${moduleCreateBaseDir}/../.." />
<property name="WEBAPP" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
<path id="classpath">
<!--WEB-INF/lib-->
<fileset dir="${WEBAPP}/WEB-INF">
<include name="lib/**/*.jar" />
<include name="classes" />
</fileset>
</path>
<condition property="isWindoze">
<os family="windows" />
</condition>
<condition property="isUnix">
<os family="unix" />
</condition>
<target name="init">
<tstamp>
<format property="SX_TIMESTAMP" pattern="dd.MM.yyyy HH:mm:ss" />
</tstamp>
</target>
<target name="help" description="Bedienung">
<echo message="Aufruf: " />
<echo message="ant -DMODULE_PATH=$PROMSTAT_PFAD -DBASE_DIR=. -DWEBAPP=$WEBAPP -DMODULE=promstat all" />
<echo message="So erzeugen Sie dann ein SuperX-Paket:" />
<echo message="ant -DMODULE_PATH=$PROMSTAT_PFAD -DWEBAPP_DIR=$WEBAPP -DMODULE=promstat dist" />
</target>
<target name="all" description="Gruppe: Kopiere Modul Sourcen in den WEB-INF-Verzeichnisbaum">
<antcall target="module_copy_source" />
<antcall target="call_module_scripts_create_ant" />
<antcall target="module_copy_webapp_files" />
</target>
<target name="module_copy_source" description="Kopiere Modul Sourcen in den WEB-INF-Verzeichnisbaum">
<echo message="Start module_copy_sources für Modul ${MODULE} in Pfad ${MODULE_PATH}" />
<copy todir="${MODULE_PATH}" overwrite="true">
<fileset dir="${BASE_DIR}/src-modules/module/${MODULE}" />
</copy>
</target>
<target name="module_copy_webapp_files" description="Kopiere webapp-Dateien in den WEBAPP-Verzeichnisbaum">
<echo message="Start module_copy_webapp_files für Modul ${MODULE} in Pfad ${MODULE_PATH}" />
<copy todir="${WEBAPP}" overwrite="true">
<fileset dir="${BASE_DIR}/superx" />
</copy>
</target>
<target name="call_module_scripts_create_ant" description="Call to module_scripts_create_ant">
<subant target="all">
<!--<property name="basedir" value="${MODULE_PATH}/../../conf/" />-->
<property name="MODULE" value="${MODULE}" />
<property name="DATABASE" value="POSTGRES" />
<property name="WEBAPP_EXT_MODULE" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
<property name="WEBAPP" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
<property name="SUPERX_BASE" value="${WEBAPP}/WEB-INF" />
<fileset dir="${MODULE_PATH}/../../conf" includes="module_scripts_create_ant.xml" />
</subant>
</target>
<target name="dist" description="Create Download package">
<subant target="erzeuge_paket">
<!--<property name="basedir" value="${MODULE_PATH}/../../conf/" />-->
<property name="MODULE" value="${MODULE}" />
<property name="PFAD" value="/home/superx/fertige_module" />
<property name="DATABASE" value="POSTGRES" />
<property name="ENCODING" value="utf8" />
<property name="PLATFORM" value="superx" />
<property name="WEBAPP_EXT_MODULE" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
<property name="WEBAPP" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
<property name="SUPERX_BASE" value="${WEBAPP}/WEB-INF" />
<fileset dir="${MODULE_PATH}/../../conf" includes="build.xml" />
</subant>
</target>
</project>

10
src-modules/module/promstat/conf/excludes.txt

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
rohdaten/LM_ENV
rohdaten/*.properties
preparation.sql
finalize.sql
rohdaten/*.err
*.log
*.err
rohdaten/unl/*
conf/customize.sql
conf/*.log

3
src-modules/module/promstat/conf/includes.txt

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
doku/promstat_modul/promstat.html
WEB-INF/conf/edustore/db/bin/SQL_ENV_promstat.sam

310
src-modules/module/promstat/conf/promstat.xml

@ -0,0 +1,310 @@ @@ -0,0 +1,310 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE module SYSTEM "../../../conf/superx-module.dtd"> -->
<module name="promstat" version="0.1b" sachgebiet_id="350"
sachgebiet="Promovierendenstatistik (Erw.)" systeminfo_id="350"
system="Promovierendenstatistik (Erw.)" thema="Promovierendenstatistik (Erw.)" thema_parent="Promovierende">
<database name="superx" version="3.0" system="superx">
<sachgebiete>
<sachgebiet id="350" name="Promovierendenstatistik (Erw.)" rightname="CS_BIA_STANDARDREPORTS_VIEW_REPORTS[PROMSTAT]"/>
</sachgebiete>
<table name="promstat_docprogram_aggr" version="1.0" thema="Promotionen"
typ="Hilfstabelle" releaseUnload="demo"
caption="Promotionsstatistik (erw.)">
<description>
Dies ist die Faktentabelle für Promotionsvorhaben aus dem Vorsystem (das wird zunächst nur HISinOne sein)
</description>
<columns>
<column name="person_id" type="INTEGER" size="4" default="" notnull="true" description="Person-ID" />
<column name="degree_program_id" type ="INTEGER" size ="4" default ="" notnull ="false" description="Studiengang" />
<column name="doctoral_program_id" type ="INTEGER" size ="4" default ="" notnull ="false" description="Promotionsvorhaben"/>
<column name="sem_rueck_beur_ein" type ="SMALLINT" size ="2" default ="" notnull ="false" description="Semester" />
<column name="examplan_id" type ="INTEGER" size ="4" default ="" notnull ="false" description="Promotionszugangsberechtigung" ><comment>Leistung, die zur Aufnahme einer Promotion berechtigt</comment></column>
<column name="course_of_study_id" type ="INTEGER" size ="4" default ="" notnull ="false" description="Studiengang" />
<column name="astat_bund" type ="CHAR" size ="10" default ="" notnull ="false" description="Abschluss (amtlich Bund)" currentlyUsed="false" ><comment>Amtlicher Statistikschlüssel des Bundes für den Abschluß</comment></column>
<column name="astat_land" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Abschluss (amtlich Land)" currentlyUsed="false" ><comment>Schlüssel für die Meldung an das Land</comment></column>
<column name="k_type_of_doctorate" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Art der Promotion" />
<column name="gueltig_von" type ="DATE" size ="4" default ="" notnull ="false" description="Gültig von" />
<column name="gueltig_bis" type ="DATE" size ="4" default ="" notnull ="false" description="Gültig bis" />
<column name="finished" type ="DATE" size ="4" default ="" notnull ="false" description="Abschlussdatum des Verlaufs"/>
<column name="structured_doctoral_program_id" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Strukturiertes Promotionsprogramm" ><comment>Teilnahme an einem strukturierten Promotionsprogramm</comment></column>
<column name="stu_employment_business_id" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Beschäftigungsverhältnis" ><comment>Beschäftigungsverhältnis an der Hochschule der Promotion</comment></column>
<column name="stu_employment_startdate" type ="DATE" size ="4" default ="" notnull ="false" description="Beschäftigungsverhältnis gültig von" />
<column name="stu_employment_enddate" type ="DATE" size ="4" default ="" notnull ="false" description="Beschäftigungsverhältnis gültig bis" />
<column name="k_examform_id" type ="INTEGER" size ="4" default ="" notnull ="false" description="Art der Dissertation" />
<column name="k_examform_un" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Form der Dissertation" />
<column name="k_place_of_studies_astat" type ="VARCHAR" size ="255" default ="" notnull ="false" description="Standort" />
<!--neue Felder aus prom_promovierende-->
<column name="geschlecht_astat" type ="SMALLINT" size ="2" default ="" notnull ="false" description="Geschlecht" ><comment>Wert des amtlichen Schluessels, welcher das Geschlecht abbildet</comment></column>
<column name="staatsangehoerigkeit_1_astat" type ="INTEGER" size ="4" default ="" notnull ="false" description="Erste Staatsangehoerigkeit" ><comment>Wert des amtlichen Schluessels fuer erste Staatsangehoerigkeit</comment></column>
<column name="staatsangehoerigkeit_2_astat" type ="INTEGER" size ="4" default ="" notnull ="false" description="Zweite Staatsangehoerigkeit" ><comment>Wert des amtlichen Schluessels fuer zweite Staatsangehoerigkeit</comment></column>
<column name="hzb_datum" type ="DATE" size ="4" default ="" notnull ="false" description="HZB Datum"><comment>Datum des ersten Erwerbs einer Hochschulzulassungsberechtigung</comment></column>
<column name="hzb_jahr" type ="SMALLINT" size ="4" default ="" notnull ="false" description="HZB Jahr"><comment>Jahr des ersten Erwerbs einer Hochschulzulassungsberechtigung</comment></column>
<column name="hzb_type_astat" type ="CHAR" size ="10" default ="" notnull ="false" description="HZB-Art (amtlich)" ><comment>amtlicher Schluessel Art der ersten Hochschulzulassungsberechtigung</comment></column>
<column name="hzb_kreis_astat" type ="INTEGER" size ="255" default ="" notnull ="false" description="HZB-Ort" ><comment>amtlicher Schluessel Kreis des Erwerbs der ersten Hochschulzulassungsberechtigung</comment></column>
<column name="hzb_staat_astat" type ="INTEGER" size ="255" default ="" notnull ="false" description="HZB-Staat" ><comment>amtlicher Schluessel Staat des Erwerbs der ersten Hochschulzulassungsberechtigung</comment></column>
<column name="first_external_semester" type ="INTEGER" size ="2" default ="" notnull ="false" description="Erste externe Einschreibung Semester" />
<column name="first_external_year" type ="INTEGER" size ="2" default ="" notnull ="false" description="Erste externe Einschreibung Jahr" />
<column name="first_external_university_astat" type ="CHAR" size ="10" default ="" notnull ="false" description="Erste externe Einschreibung Hochschulstandort" />
<column name="first_external_country_astat" type ="INTEGER" size ="255" default ="" notnull ="false" description="Erste externe Einschreibung Staat" />
<column name="prev_exam_university_astat" type ="CHAR" size ="10" default ="" notnull ="false" description="Zur Promotion berechtigender Abschluss Hochschulstandort" />
<column name="prev_exam_semester" type ="INTEGER" size ="10" default ="" notnull ="false" description="Zur Promotion berechtigender Abschluss Semester" />
<column name="prev_exam_year" type ="INTEGER" size ="10" default ="" notnull ="false" description="Zur Promotion berechtigender Abschluss Jahr" />
<column name="prev_exam_country_astat" type ="INTEGER" size ="10" default ="" notnull ="false" description="Zur Promotion berechtigender Abschluss Staat" />
<column name="prev_exam_degree_land" type ="CHAR" size ="10" default ="" notnull ="false" description="Zur Promotion berechtigender Abschluss (Land)" />
<column name="prev_exam_degree_bund" type ="CHAR" size ="10" default ="" notnull ="false" description="Zur Promotion berechtigender Abschluss (Bund)" />
<column name="summe" type ="INTEGER" size ="255" default ="" notnull ="false" description="Summe" ><comment></comment></column>
</columns>
</table>
<views>
</views>
<functions>
</functions>
<themen>
</themen>
<masken>
<maske tid="46000" name="Promotionsvorhaben Datenblatt" thema="Promovierendenstatistik (Erw.)">
<src><path>$PROMSTAT_PFAD/masken</path></src>
</maske>
</masken>
<data-integrity>
<!--promstat_konto_pro_fs -->
<relation from="lm_course_of_study" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="dtxt" format="%s">
<relation-column from="id" to="course_of_study_id" />
</relation>
<relation from="semester" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="eintrag" format="%s">
<relation-column from="tid" to="sem_rueck_beur_ein" />
</relation>
<relation from="kenn_stg_astat" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="dtxt" format="%s">
<relation-column from="astat" to="astat_bund" />
</relation>
<relation from="sos_k_stort" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="astat" to="k_place_of_studies_astat" />
</relation>
<relation from="prom_promovierende" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="nachname" format="%s">
<relation-column from="his_person_id" to="person_id" />
</relation>
<relation from="kenn_hzbart_astat_akt" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="apnr" to="hzb_type_astat" />
</relation>
<relation from="sos_hzb_wohnsitz" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="astat" to="hzb_kreis_astat" />
</relation>
<relation from="sos_hzb_wohnsitz" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="astat" to="hzb_staat_astat" />
</relation>
<relation from="cif" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="apnr" to="staatsangehoerigkeit_1_astat" />
<relation-column from="key" to="12" />
</relation>
<relation from="cif" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="apnr" to="staatsangehoerigkeit_2_astat" />
<relation-column from="key" to="12" />
</relation>
<relation from="cifx" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="apnr" to="k_examform_un" />
<relation-column from="key" to="9014" />
</relation>
<relation from="cifx" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="apnr" to="first_external_university_astat" />
<relation-column from="key" to="36" />
</relation>
<relation from="cif" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="apnr" to="first_external_country_astat" />
<relation-column from="key" to="12" />
</relation>
<relation from="kenn_abschl_astat" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="dtxt" format="%s">
<relation-column from="astat" to="prev_exam_degree_bund" />
</relation>
<relation from="kenn_abschl_astat" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="dtxt" format="%s">
<relation-column from="astat" to="prev_exam_degree_land" />
</relation>
<relation from="cif" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="apnr" to="prev_exam_country_astat" />
<relation-column from="key" to="12" />
</relation>
<relation from="cifx" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="druck" format="%s">
<relation-column from="apnr" to="prev_exam_university_astat" />
<relation-column from="key" to="36" />
</relation>
<relation from="semester" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="eintrag" format="%s">
<relation-column from="tid" to="prev_exam_semester" />
</relation>
<!--ungeklärt: <relation from="kenn_abschl_astat" to="promstat_docprogram_aggr" delete="FALSE" displayType="select" visibleFields="dtxt" format="%s">
<relation-column from="astat" to="astat_bund" />
</relation>-->
</data-integrity>
</database>
<install_upgrade_job>
<install-upgrade-step name="pre_upgrade" type="container" id="promstat_preupgrade_containernode">
<action error="stop"/>
</install-upgrade-step>
<install-upgrade-step name="upgrade_tables" type="" id="promstat_upgrade_tables_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/upgrade/promstat_upgrade_tables_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="upgrade_fields" type="" id="promstat_upgrade_fields_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/upgrade/promstat_upgrade_fields_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="upgrade_views" type="" id="promstat_upgrade_views_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/upgrade/promstat_upgrade_views_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="install_functions" type="container" id="promstat_install_functions_containernode">
<action error="stop"/>
</install-upgrade-step>
<install-upgrade-step name="upgrade_indices" type="" id="promstat_upgrade_indices_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/upgrade/promstat_upgrade_indexes_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="fill_tables" type="" id="promstat_fill_tables_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/conf/sx_tables_fuellen.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="fill_fields" type="" id="promstat_fill_fields_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/conf/sx_fields_fuellen.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="fill_unload_parameter" type="" id="promstat_fill_unload_parameter_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/conf/unload_params_fuellen.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="Update Module Metadata" type="container" id="promstat_update_module_metadata_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/conf/module_metadata.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="update_topic_tree" type="" id="promstat_update_topictree_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/upgrade/promstat_upgrade_themenbaum.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="install_masks" type="container" id="promstat_install_masks_containernode">
<action error="stop"/>
</install-upgrade-step>
</install_upgrade_job>
<!-- ********************* Liste der ETL-Prozesse ************************** -->
<etl>
<etl-step name="Upload der LEISTUNG-Modul-Rohdaten" type="load">
</etl-step>
<etl-step name="Transformation" type="trans">
</etl-step>
<etl-step name="Aggregation" type="aggr">
<action>
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/hilfstabellen/promstat_docprogram_aggr_fuellen.sql"
database=""/>
</action>
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/datentabellen/vacuum_pg.sql"
database="POSTGRES"/>
</action>
</etl-step>
</etl>
<install>
<install-step name="Installation">
<action>
<nativeaction sql="create table tmp_captions
(
id CHAR(200) ,
table_name CHAR(200) ,
field_name CHAR(200) ,
record_no INTEGER ,
locale CHAR(10) ,
contents_short CHAR(255) ,
contents_long text ,
equalitystatus SMALLINT ,
sachgebiete_id INTEGER,
doku_link character varying(255),
export_to_glossar integer DEFAULT 1
);" scriptfile="" database=""/>
</action>
<action>
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_captions"><file path="$PROMSTAT_PFAD/schluesseltabellen/promstat_captions.unl"/></loadtable>
</action>
<action>
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/schluesseltabellen/promstat_feste_konstanten_fuellen.sql"
database=""/>
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/schluesseltabellen/captions_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
</action>
</install-step>
</install>
<upgrade>
<upgrade-step>
<action>
<nativeaction sql="create table tmp_captions
(
id CHAR(200) ,
table_name CHAR(200) ,
field_name CHAR(200) ,
record_no INTEGER ,
locale CHAR(10) ,
contents_short CHAR(255) ,
contents_long text ,
equalitystatus SMALLINT ,
sachgebiete_id INTEGER,
doku_link character varying(255),
export_to_glossar integer DEFAULT 1
);" scriptfile="" database=""/>
</action>
<action>
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_captions"><file path="$PROMSTAT_PFAD/schluesseltabellen/promstat_captions.unl"/></loadtable>
</action>
<action>
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/schluesseltabellen/promstat_feste_konstanten_fuellen.sql"
database=""/>
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/schluesseltabellen/captions_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
</action>
</upgrade-step>
</upgrade>
<uninstall-step name="Deinstalliere Schlüssel">
<action error="stop">
<nativeaction sql="" scriptfile="$PROMSTAT_PFAD/schluesseltabellen/promstat_feste_konstanten_entfernen.sql"
database=""/>
<nativeaction sql="delete from sx_repository where sachgebiete_id=350;" scriptfile=""
database=""/>
</action>
</uninstall-step>
<dbforms>
</dbforms>
</module>

22
src-modules/module/promstat/datentabellen/vacuum_pg.sql

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
select * from xdummy;
--bei Postgres in HIS1 laufen alle Scripte in Transaktionen, daher muss man
--für vacuum erst committen
commit;
vacuum lm_exam_unit;
vacuum lm_exam_unit_studies;
vacuum lm_accreditation_neu;
vacuum lm_konto_pro_fs;
vacuum lm_unit;
vacuum lm_unitrelation;
vacuum lm_examrelation;
vacuum lm_examination;
vacuum lm_ects_soll_neu;
vacuum lm_ects_soll;
vacuum lm_pruefrout;

120
src-modules/module/promstat/hilfstabellen/promstat_docprogram_aggr_fuellen.sql

@ -0,0 +1,120 @@ @@ -0,0 +1,120 @@
truncate table promstat_docprogram_aggr;
insert into promstat_docprogram_aggr( person_id,
degree_program_id,
doctoral_program_id,
sem_rueck_beur_ein,
examplan_id,
course_of_study_id,
astat_bund,
astat_land,
k_type_of_doctorate,
gueltig_von,
gueltig_bis,
finished,
structured_doctoral_program_id,
stu_employment_business_id,
stu_employment_startdate,
stu_employment_enddate,
k_examform_id,
k_examform_un,
k_place_of_studies_astat,
geschlecht_astat,
staatsangehoerigkeit_1_astat,
staatsangehoerigkeit_2_astat,
hzb_datum,
hzb_jahr,
hzb_type_astat,
hzb_kreis_astat,
hzb_staat_astat,
first_external_semester,
first_external_year,
first_external_country_astat,
first_external_university_astat,
summe
)
SELECT P.his_person_id,
P.degree_program_id,
P.doctoral_program_id,
P.sem_rueck_beur_ein,
P.examplan_id,
P.course_of_study_id,
substring(P.astat_bund from 1 for 10),
P.astat_land,
P.k_type_of_doctorate,
P.gueltig_von,
P.gueltig_bis,
P.finished,
P.structured_doctoral_program_id,
P.stu_employment_business_id,
P.stu_employment_startdate,
P.stu_employment_enddate,
P.k_examform_id,
P.k_examform_un,
P.k_place_of_studies_astat,
D.geschlecht_astat,
D.staatsangehoerigkeit_1_astat,
D.staatsangehoerigkeit_2_astat,
D.hzb_datum,
year(D.hzb_datum),
substring(D.hzb_type_astat from 1 for 10),
val(D.hzb_kreis_astat),
val(D.hzb_staat_astat),
D.first_external_semester,
val(substring('' || D.first_external_semester from 1 for 4)) as first_external_year,
val(D.first_external_country_astat),
substring(first_external_university_astat from 1 for 10),
count(*)
FROM prom_promotionen P left outer join prom_promovierende D
on (P.his_person_id=D.his_person_id)
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
;
update promstat_docprogram_aggr set prev_exam_university_astat=A.ext_university_astat,
prev_exam_country_astat=val(ext_country_astat),
prev_exam_degree_land=substring(ext_degree_land_astat from 1 for 10),
prev_exam_degree_bund=substring(ext_degree_bund_astat from 1 for 10)
from prom_abschlusspruefungen A
where A.examplan_id=promstat_docprogram_aggr.examplan_id
;
update promstat_docprogram_aggr set prev_exam_semester=E.sem_der_pruefung
from lm_examplan E
where E.id=promstat_docprogram_aggr.examplan_id;
--nur wenn lm_examplan nichts findet:
update promstat_docprogram_aggr set prev_exam_semester=S.tid
from prom_abschlusspruefungen A, semester S
where promstat_docprogram_aggr.prev_exam_semester is null
and A.examplan_id=promstat_docprogram_aggr.examplan_id
and A.examination_date between S.sem_beginn and S.sem_ende
;
update promstat_docprogram_aggr set prev_exam_year=val(substring('' || prev_exam_semester from 1 for 4))
;
update promstat_docprogram_aggr set
prev_exam_degree_land=substring(int_degree_land_astat from 1 for 10)
from prom_abschlusspruefungen A
where A.examplan_id=promstat_docprogram_aggr.examplan_id
and promstat_docprogram_aggr.prev_exam_degree_land is null
;
update promstat_docprogram_aggr set
prev_exam_degree_bund=substring(int_degree_bund_astat from 1 for 10)
from prom_abschlusspruefungen A
where A.examplan_id=promstat_docprogram_aggr.examplan_id
and promstat_docprogram_aggr.prev_exam_degree_bund is null
;
-- update promstat_docprogram_aggr set abschluss_astat_bund=substring(abschluss_astat_bund from 3 for 2)
-- where length(abschluss_astat_bund)=4;
--
-- update promstat_docprogram_aggr set abschluss_astat_bund=substring(abschluss_astat_bund from 2 for 2)
-- where length(abschluss_astat_bund)=3;
--

15
src-modules/module/promstat/masken/46000_felderinfo.unl

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
46000^Fächer^4^0^0^170^200^1^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='KENN-Fächer-Sicht' order by sortnr,name;^ ^^
46001^Seit Semester^2^0^0^170^150^1^integer^30^0^1^<<SQL>> select tid, druck from kenn_semester order by tid DESC;^^<<SQL>> select tid,druck from kenn_semester where today() between sem_beginn and sem_ende;^
46002^Registriernummer^100^350^-1^150^180^1^integer^200^0^0^^{InputCheck:matrikelnummern}^^
46003^Geschlecht^13^0^0^170^100^1^integer^30^0^1^<<SQL>> SELECT apnr,druck FROM kenn_geschl order by 2^^^
46005^bis Fachsemester^20^0^0^170^20^1^integer^30^0^0^^hidden^^
46006^Staatsangehörigkeit^11^0^0^170^120^1^sql^30^0^1^<<SQL>> select '!=0','Alle ohne Deutschland' from xdummy union select '=0','Deutsch' from xdummy order by 2;^^^
46011^Status^12^0^0^170^200^1^sql^30^0^1^<<SQL>> select apnr,eintrag from kenn_status order by 2^hidden^^
46013^ab Fachsemester^19^0^0^170^20^1^integer^30^0^0^^hidden^^
46014^Weitere Tabellen^123^0^0^140^140^10^char^30^0^1^<<SQL>> select name,string_not_null(caption) || ' - ' || name from sx_tables where name in ('xy') order by 2^^^
46015^Felder^125^0^0^150^190^10^char^2550^0^1^<<SQL>> select trim(F.table_name) || '.' || F.name,trim(T.caption) || ':' || trim(F.caption) || ' - ' || trim(F.name) from sx_fields F, sx_tables T where F.table_name=T.name and F.currentlyused=1 and (F.table_name ='promstat_docprogram_aggr' /* or F.table_name in (<<Weitere Tabellen>>) */)\
order by 2;^^^
46016^Schlüssel anzeigen^150^0^0^100^100^1^integer^30^1^1^<<SQL>> select 1,'Ja' from xdummy union select 0,'Nein' from xdummy^^<<SQL>> select 1,'Ja' from xdummy^
46017^Bis Semester^3^0^0^170^150^1^integer^30^0^1^<<SQL>> select tid, druck from kenn_semester order by tid DESC;^^<<SQL>> select tid,druck from kenn_semester where today() between sem_beginn and sem_ende;^
46018^tablestylesheet^120^0^0^100^200^1^char^200^1^1^<<SQL>> select distinct filename,X.caption from sx_stylesheets X,sx_mask_style S where X.tid=S.stylesheet_id and S.maskeninfo_id=46000^^<<SQL>> select distinct filename,X.caption from sx_stylesheets X,sx_mask_style S where X.tid=S.stylesheet_id and S.maskeninfo_id=46000 and S.ord=1^
46019^Ausgabeformat^2001^0^0^100^150^1^char^200^1^1^<<SQL>> select element_value,description from menu_element where element='Ausgabeformat' and nature::smallint<100 order by nature::smallint^^<<SQL>> select element_value,description from menu_element where element='Ausgabeformat' and description='HTML'^

1
src-modules/module/promstat/masken/46000_maske_system_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
46000^350^

14
src-modules/module/promstat/masken/46000_masken_felder_bez.unl

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
46000^46000^
46000^46001^
46000^46002^
46000^46003^
46000^46005^
46000^46006^
46000^46011^
46000^46013^
46000^46014^
46000^46015^
46000^46016^
46000^46017^
46000^46018^
46000^46019^

122
src-modules/module/promstat/masken/46000_maskeninfo.unl

@ -0,0 +1,122 @@ @@ -0,0 +1,122 @@
46000^Promotionsvorhaben Datenblatt^--Freemarker Template\
--ram excelexport\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
--<#include "SQL_multitable_output"/> \
\
<sqlvars>\
<sqlvar name="get_tables"><![CDATA[\
SELECT distinct name,name\
from sx_tables\
where name in ('promstat_docprogram_aggr'\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)}\
\
)\
order by 2;]]>\
</sqlvar>\
<sqlvar name="get_table_joins"><![CDATA[\
select table_name || '.' || name || '=' || foreignkey_tab || '.' || foreignkey_col,table_name \
from sx_fields where table_name in ('promstat_docprogram_aggr'\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)} )\
and foreignkey_tab in ('promstat_docprogram_aggr'\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)})\
;]]>\
</sqlvar>\
<sqlvar name="get_felder"><![CDATA[\
SELECT name,\
caption,\
(trim(field_type) || '#' || is_primarykey || '#' || trim(string_not_null(foreignkey_tab)) || '#' || trim(string_not_null(foreignkey_col))\
|| '#' || trim(string_not_null(foreignkey_cap))\
|| '#' || trim(string_not_null(foreignkey_cond))\
|| '#' || trim(string_not_null(foreignkey_func))\
|| '#' || trim(string_not_null(table_name)))::char(255) as strukturStr\
from sx_fields\
where table_name in ('promstat_docprogram_aggr'\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)}\
)\
and currentlyused=1\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
order by 2,3;]]>\
</sqlvar>\
<sqlvar name="get_felder_fk"><![CDATA[\
SELECT name,\
caption,\
(trim(table_name)\
|| '#' || trim(string_not_null(foreignkey_tab)))::char(255) as strukturStr\
from sx_fields\
where table_name in ('promstat_docprogram_aggr' ${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)}\
)\
and currentlyused=1\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
order by 2,3;]]>\
</sqlvar>\
</sqlvars>\
\
<@generate_multitable_list />\
<@generate_field_list_multitable aggregationsfeld="summe" aggregatfunktion="sum(" />\
<@generate_foreign_fields_multitable />\
\
\
<#assign filter="\
/* and sem_rueck_beur_ein <= <<Bis Semester>> */\
/* and sem_rueck_beur_ein >= <<Seit Semester>> */\
/* and fach_sem_zahl <= <<bis Fachsemester>> */\
/* and fach_sem_zahl >= <<ab Fachsemester>> */\
/* and hssem <= <<bis Hochschulsemester>> */\
/* and abschluss in (<<Abschluss>>) */\
/* and kz_fach = <<Fachkennz.>> */\
/* and promstat_docprogram_aggr.his_person_id in (select P.his_person_id from prom_promovierende P where P.geschlecht_astat = <<Geschlecht>>) */\
/* and kz_rueck_beur_ein in(<<Status>>) */\
/* and promstat_docprogram_aggr.his_person_id in (select P.his_person_id from prom_promovierende P where P.staatsangehoerigkeit_1_astat <<Staatsangehörigkeit>>) */\
/* and promstat_docprogram_aggr.his_person_id in (select P.his_person_id from prom_promovierende P where P.registrationnumber= <<Registriernummer>>) */\
" />\
\
/* \
<#assign filter = filter + " and (promstat_docprogram_aggr.astat_bund in "+Fächer.allNeededKeysList /> --<<Fächer>> */\
\
\
\
<@generate_resultset_multitable tabellen=table_list\
p_show_keys=<<Schlüssel anzeigen>>\
p_field_list_select=field_list_select\
p_foreign_fields=foreign_fields\
p_filter=filter\
p_field_list_groupby=field_list_groupby\
p_join_clause=join_clause\
/>^--Freemarker Template \
<sqlvars>\
<sqlvar name="get_felder">\
SELECT caption,\
foreignkey_tab,\
description as strukturStr\
from sx_fields\
where table_name in ('promstat_docprogram_aggr'\
${DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)}\
)\
\
and currentlyused=1\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
\
order by 1;\
</sqlvar>\
</sqlvars>\
XIL List\
sizable_columns horizontal_scrolling\
white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=35\
<#assign i=1 />\
<#if get_felder?has_content >\
<#foreach myfield in get_felder>\
<#assign i=i+1 />\
Column CID=${i} heading_text="${myfield.key}" explanation="${myfield.strukturStr}" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=20\
<#if myfield.name != ''>\
<#assign i=i+1 />\
Column CID=${i} heading_text="${myfield.key}\\n(Schlüssel)" explanation="Schlüssel des Feldes ${myfield.key}" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=20\
</#if>\
</#foreach>\
</#if>\
@@@^Studienfach^Anzahl bzw. Anteil^Statistik der Promotionsvorhaben und Merkmalen der Promivierenden HZB früheres Studium^drop table tmp_tabelle;^studallg.dat^1^850^600^0^1^<<SQL>> select 'Letzte Lieferung: ' || date_str(max(datum)) from kenn_lieferung where (1 =0 /* or hs_nr::char(10) in (<<Hochschule>>) */ /* or hs_nr::char(10) in (select key_apnr from organigramm where parent in (<<Hochschule>>)) */ /* or <<Hochschule>>='0' */ ) and kennzahl ='STDI'^

1
src-modules/module/promstat/masken/46000_sachgeb_maske_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
350^46000^

5
src-modules/module/promstat/promstat_modul_entfernen.x

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
#!/bin/bash
echo "------------------------------------------------------------"
echo
module_drop.x lm $LM_PFAD

4
src-modules/module/promstat/promstat_modul_erzeugen.x

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
#!/bin/bash
module_install.x lm $LM_PFAD

65
src-modules/module/promstat/promstat_update.x

@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
#!/bin/bash
#Arbeitsverzeichnis fuer crontab
PFAD=$2
if [ "$PFAD" != "" ]
then
cd $PFAD
fi
#Umgebung einlesen:
if [ "$LM_PFAD" = "" ]
then
echo "ACHTUNG: Die Umgebungsvariable LM_PFAD ist nicht gesetzt. Bitte prüfen Sie $SUPERX_DIR/db/bin/SQL_ENV"
exit 1
fi
if [ "$LM_ERRORMAIL" != "" ]
then
ERRORMAIL=$LM_ERRORMAIL
export ERRORMAIL
fi
if [ "$LM_LOGMAIL" != "" ]
then
LOGMAIL=$LM_LOGMAIL
export LOGMAIL
fi
if [ "$LM_BACKUP" != "" ]
then
MODULE_BACKUP=$LM_BACKUP
export MODULE_BACKUP
fi
#hier geht es los
#runAndCheck.x path command (EXIT_ON_ERROR|CONT_ON_ERROR) (SEND_ERRORMAIL|NO_ERRORMAIL) (SEND_LOGMAIL|NO_LOGMAIL) [description] "
echo "lm-Update startet" >$LM_ERRORDAT
#Tagesdatum für Systeminfo
date +'%d.%m.%Y' > $LM_LOAD_PFAD/superx.datum
runAndCheck.x $LM_PFAD "module_etl.x lm $LM_PFAD $LM_LOAD_PFAD" EXIT_ON_ERROR SEND_ERRORMAIL SEND_LOGMAIL "LM update$MANDANTID"
cat $LM_PFAD/L_LM_update$MANDANTID.log >>$LM_ERRORDAT
fgrep -s "not found" $LM_ERRORDAT
FLAG1=$?
fgrep -i -s "error" $LM_ERRORDAT
FLAG2=$?
fgrep -i -s "nicht gefunden" $LM_ERRORDAT
FLAG3=$?
if [ $FLAG1 -eq 0 -o $FLAG2 -eq 0 -o $FLAG3 -eq 0 ]
then
echo "Fehler beim LM-Update "
echo "---------------------------------------"
echo "Fehlerprotokoll in $LM_ERRORDAT"
echo "---------------------------------------"
cp $LM_LOAD_PFAD/superx.datum.alt $LM_LOAD_PFAD/superx.datum
else
echo "LM-Update erfolgreich"
fi
echo "---------------------------Beginn Prüfroutine-----------------------------------" >>$LM_ERRORDAT
#cat $LM_PFAD/L_lm_Test$MANDANTID.log >>$LM_ERRORDAT
pruefmail.x $LM_PFAD/L_lm_Test$MANDANTID.log $ERRORMAIL

2
src-modules/module/promstat/rohdaten/PROMSTAT_ENV.sam

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
#bitte einen symbolischen Link auf die SOS_ENV setzen

1131
src-modules/module/promstat/rohdaten/promstat_unload.xml

File diff suppressed because it is too large Load Diff

102
src-modules/module/promstat/schluesseltabellen/captions_fuellen.sql

@ -0,0 +1,102 @@ @@ -0,0 +1,102 @@
--freemarker template
delete from sx_captions where id like 'doku_16000%';
delete from sx_captions where id like 'doku_16020%';
delete from sx_captions where id like 'doku_16040%';
delete from sx_captions where id like 'doku_16060%';
delete from sx_captions where id like 'doku_16100%';
delete from sx_captions where id like 'doku_16120%';
delete from sx_captions where id like 'doku_16140%';
delete from sx_captions where id like 'doku_16160%';
delete from sx_captions where id like 'doku_16180%';
delete from sx_captions where id like 'doku_16200%';
delete from sx_captions where id like 'doku_16220%';
delete from sx_captions where id like 'doku_16240%';
delete from sx_captions where id like 'doku_16260%';
delete from sx_captions where id like 'doku_16280%';
delete from sx_captions where id like 'doku_16300%';
delete from sx_captions where id like 'doku_16340%';
delete from sx_captions where id like 'doku_16360%';
delete from sx_captions where id like 'doku_16380%';
delete from sx_captions where id like 'doku_16400%';
delete from sx_captions where id like 'doku_16450%';
delete from sx_captions where id like 'doku_16470%';
delete from sx_captions where id like 'doku_16490%';
delete from sx_captions where id like 'doku_16530%';
delete from sx_captions where id like 'doku_16550%';
delete from sx_captions where id like 'doku_16570%';
delete from sx_captions where id like 'doku_16590%';
delete from sx_captions where id like 'doku_16610%';
delete from sx_captions where id like 'doku_16630%';
delete from sx_captions where id like 'doku_16650%';
delete from sx_captions where id like 'doku_16690%';
delete from sx_captions where id like 'doku_16710%';
delete from sx_captions where id like 'doku_16730%';
delete from sx_captions where id like 'doku_16750%';
delete from sx_captions where id like 'doku_16770%';
delete from sx_captions where id like 'sos_doku_benutzer_url%';
delete from sx_captions where id like 'sos_doku_admin_url%';
delete from sx_captions where id like 'einzelpruefungen_doku_benutzer_url%';
delete from sx_captions where id like 'studierende_doku_benutzer_url%';
delete from sx_captions where id like 'pruefungen_doku_benutzer_url%';
delete from sx_captions where id like 'abschlusspruefungen_doku_benutzer_url%';
delete from sx_captions where id like 'sos_astat_doku_url%';
--Für Update Felderinfo mit neuen Spalten
--Prüfungen/ Studierene 120
--delete from sx_captions where table_name like 'felderinfo%' and sachgebiete_id=120;
--Abschlusspruefungen 16
--delete from sx_captions where table_name like 'felderinfo%' and sachgebiete_id=16;
--Einzelpruefungen 34
--delete from sx_captions where table_name like 'felderinfo%' and sachgebiete_id=34;
--in tmp_captions stehen release captions:
--Löschung der release captions nach id bzw. felderinfo, Feldname, tid:
--z.B. id=sos_auslaender_w_absol
--oder table_name=felderinfo und field_name=Seit Semester
delete from tmp_captions where
--Löschung der release captions nach id
(id is not null
and id in (select id from sx_captions where id is not null))
--Löschung der release captions nach felderinfo, Feldname: , tid:
or (
id is null and record_no is null and field_name is not null and field_name in
(select field_name from sx_captions where field_name is not null
--Wenn keine record_no, dann gilt es für alle Felder mit dem Namen
and record_no is null));
--record_no abfangen, wenn vorhanden
delete from tmp_captions
where id is null and field_name is not null
--Wenn record_no gefüllt:
and record_no is not null
and (trim(field_name) || record_no in (select trim(field_name) || record_no from sx_captions
where field_name is not null
and record_no is not null));
<#if SQLdialect='Postgres'>
select sp_update_sequence('sx_captions');
</#if>
insert into sx_captions ( id,table_name,field_name,record_no,locale,contents_short,contents_long, equalitystatus,sachgebiete_id
<#if TableFieldExists?exists && TableFieldExists('sx_captions','doku_link')>
,doku_link
</#if>
<#if TableFieldExists?exists && TableFieldExists('sx_captions','export_to_glossar')>
,export_to_glossar
</#if>
)
select id,table_name,field_name,record_no,locale,contents_short,contents_long, equalitystatus,sachgebiete_id
<#if TableFieldExists?exists && TableFieldExists('sx_captions','doku_link')>
,doku_link
</#if>
<#if TableFieldExists?exists && TableFieldExists('sx_captions','export_to_glossar')>
,export_to_glossar
</#if>
from tmp_captions;
drop table tmp_captions;

34
src-modules/module/promstat/schluesseltabellen/captions_fuellen.x

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
#/bin/sh
DOQUERY "create table tmp_captions
(
id CHAR(200) ,
table_name CHAR(200) ,
field_name CHAR(200) ,
record_no INTEGER ,
locale CHAR(10) ,
contents_short CHAR(255) ,
contents_long text ,
equalitystatus SMALLINT ,
sachgebiete_id INTEGER,
doku_link character varying(255),
export_to_glossar integer DEFAULT 1
)"
sx_auto_upload_table.x tmp_captions "./lm_captions.unl"
DOQUERY "delete from tmp_captions where (id is not null
and id in (select id from sx_captions where id is not null))
or (id is null and field_name is not null and field_name in (select field_name from sx_captions where field_name is not null));"
if [ "$DATABASE" = "POSTGRES" ]
then
DOQUERY "select sp_update_sequence('sx_captions');"
fi
DOQUERY "insert into sx_captions ( id,table_name,field_name,record_no,locale,contents_short,contents_long, equalitystatus,sachgebiete_id,doku_link,export_to_glossar)
select id,table_name,field_name,record_no,locale,contents_short,contents_long, equalitystatus,sachgebiete_id,doku_link,export_to_glossar from tmp_captions;"
DOQUERY "drop table tmp_captions;"

0
src-modules/module/promstat/schluesseltabellen/promstat_captions.unl

7
src-modules/module/promstat/schluesseltabellen/promstat_feste_konstanten_entfernen.sql

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
delete from konstanten where systeminfo_id=350;

103
src-modules/module/promstat/schluesseltabellen/promstat_feste_konstanten_fuellen.sql

@ -0,0 +1,103 @@ @@ -0,0 +1,103 @@
--freemarker template
<#if SQLdialect='Postgres'>
<#assign texttype="text" />
<#else>
EXECUTE PROCEDURE IFX_ALLOW_NEWLINE('T');
<#assign texttype="lvarchar" />
</#if>
<#assign newline="'
'" />
create temp table tmp_konstanten
(
tid serial,
apnr integer,
beschreibung char(255),
defaultvalue integer,
description ${texttype},
systeminfo_id integer,
doku_link varchar(255),
read_only integer,
wertebereich varchar(250),
ab_version varchar(10),
gruppe varchar(255),
sachgebiete_id integer
);
insert into tmp_konstanten(apnr, beschreibung, defaultvalue, description, systeminfo_id, doku_link, read_only, wertebereich, ab_version, gruppe, sachgebiete_id)
values (6,'PROMSTAT_Quellsystem', 6,'Anzeige der Datenquelle für die BI-Komponente',
350, '',
1,'6 = HISinOne', '8.0', 'Datenquelle, Entladestartzeitpunkt, -umfang', 350);
--vorhandene Schlüssel Metadaten updaten:
<#if SQLdialect='Postgres'>
--Postgres Dialekt:
update konstanten set defaultvalue=T.defaultvalue,
description=T.description,
systeminfo_id=T.systeminfo_id ,
doku_link=T.doku_link,
read_only=T.read_only ,
wertebereich=T.wertebereich,
ab_version=T.ab_version,
gruppe=T.gruppe ,
sachgebiete_id=T.sachgebiete_id
from tmp_konstanten T
where T.beschreibung=konstanten.beschreibung;
<#else>
--Informix Dialekt:
update konstanten set (defaultvalue,
description,
systeminfo_id,
doku_link,
read_only,
wertebereich,
ab_version,
gruppe,
sachgebiete_id)
= ((select
defaultvalue,
description,
systeminfo_id,
doku_link,
read_only,
wertebereich,
ab_version,
gruppe,
sachgebiete_id
from tmp_konstanten T
where T.beschreibung=konstanten.beschreibung))
where beschreibung in (
select T.beschreibung
from tmp_konstanten T)
;
</#if>
select 'vorh. Konstanten apnrs bleiben erhalten' from xdummy;
delete from tmp_konstanten where beschreibung in (select beschreibung from konstanten);
create temp table tmp_hilf (tid integer);
insert into tmp_hilf select max(tid) from konstanten;
update tmp_hilf set tid=0 where tid is null;
insert into konstanten(tid , apnr ,beschreibung, defaultvalue, description, systeminfo_id, doku_link, read_only, wertebereich, ab_version, gruppe, sachgebiete_id )
select H.tid+K.tid , K.apnr ,K.beschreibung, K.defaultvalue, K.description, K.systeminfo_id, K.doku_link, K.read_only, K.wertebereich, K.ab_version, K.gruppe, K.sachgebiete_id from tmp_konstanten K, tmp_hilf H;
drop table tmp_konstanten;
drop table tmp_hilf;
--Konstante LM_ECTS_SOLL_SRC auf Wert von SOS setzen, wenn noch nicht gesetzt:
update konstanten set apnr=1
where beschreibung='LM_ECTS_SOLL_SRC'
and apnr=2
and 0< (select count(*) from konstanten K2 where K2.beschreibung='SOS_ECTS_SOLL_SRC' and K2.apnr=1);

165
src-modules/module/promstat/schluesseltabellen/sx_stylesheets_einfuegen.sql

@ -0,0 +1,165 @@ @@ -0,0 +1,165 @@
--Freemarker Template
--Achtung: Macro fügt Inhalte ein
--Bitte nur Freemarker Variablen füllen
<#assign masken = [
{"mask":"46000", "filename":"tabelle_html_datenblatt.xsl", "ord":"1"}
] />
<#assign stylesheet = [
] />
<#assign stylesheet_field = [
] />
--Hier eventuell notwendige delete's auf die Tabellen sx_mask_style, sx_stylesheets oder stylesheet_field einfügen.
--Achtung: ab hier nicht ändern, Mutterdatei ist $SUPERX_DIR/db/module/sos/schluesseltabellen/sx_stylesheets_fuellen.sql
<@sx_stylesheets_insert
m_masken=masken
m_stylesheet=stylesheet
m_stylesheet_field=stylesheet_field
/>
<#macro sx_stylesheets_insert m_masken m_stylesheet m_stylesheet_field>
--Sicherstellen, dass keine Duplikate vorkommen:
--####################################################################################################
<#foreach column in m_masken>
delete from sx_mask_style where maskeninfo_id=${column.mask} and stylesheet_id in (select tid from sx_stylesheets where filename ='${column.filename}') and ord=${column.ord};
</#foreach>
<#foreach column in m_stylesheet_field>
delete from stylesheet_field where stylesheet_id in (select tid from sx_stylesheets where filename ='${column.filename}');
</#foreach>
-- Stylesheets füllen
--####################################################################################################
create temp table tmp_stylesheets (
tid serial not null,
filename CHAR(255) ,
caption CHAR(255) ,
description CHAR(255) ,
relation CHAR(10) ,
useragent CHAR(255) ,
contenttype CHAR(200) ,
is_generic smallint
);
create temp table tmp_hilf (tid integer);
insert into tmp_hilf select max(tid) from sx_stylesheets;
update tmp_hilf set tid=1 where tid is null;
<#assign counter_tid = 1 />
<#foreach column in m_stylesheet>
insert into tmp_stylesheets (tid,filename,caption,description,relation,contenttype,is_generic)
select max(tid)+${counter_tid},'${column.filename}',
'${column.caption}',
'${column.description}',
'${column.relation}',
'${column.contenttype}',
${column.is_generic}
from tmp_hilf;
<#assign counter_tid = counter_tid + 1 />
</#foreach>
<#if TableFieldExists?exists && TableFieldExists('sx_stylesheets','is_generic')>
update sx_stylesheets set is_generic=1
where filename in (select T.filename from tmp_stylesheets T where T.is_generic=1);
</#if>
--delete für tml_stylesheets hinzugefügt #ak 06.03.2013
delete from tmp_stylesheets where filename in (select filename from sx_stylesheets);
insert into sx_stylesheets (tid,
filename, caption, description, relation, useragent, contenttype
<#if TableFieldExists?exists && TableFieldExists('sx_stylesheets','is_generic')>
,is_generic
</#if>
)
SELECT tid, filename, caption, description, relation, useragent, contenttype
<#if TableFieldExists?exists && TableFieldExists('sx_stylesheets','is_generic')>
,is_generic
</#if>
FROM tmp_stylesheets;
drop table tmp_stylesheets;
-- Mask Style füllen
--####################################################################################################
create temp table tmp_mask_style (
tid serial not null,
maskeninfo_id INTEGER ,
stylesheet_id INTEGER ,
ord SMALLINT,
filename char(255)
);
delete from tmp_hilf;
insert into tmp_hilf select max(tid) from sx_mask_style;
update tmp_hilf set tid=1 where tid is null;
<#assign counter_tid = 1 />
<#foreach column in m_masken>
insert into tmp_mask_style (tid,maskeninfo_id,ord,filename)
select max(tid)+${counter_tid},${column.mask},${column.ord},'${column.filename}' from tmp_hilf;
update tmp_mask_style set stylesheet_id=(select max(tid) from sx_stylesheets where filename='${column.filename}')
where filename='${column.filename}';
<#assign counter_tid = counter_tid + 1 />
</#foreach>
insert into sx_mask_style ( tid, maskeninfo_id, stylesheet_id, ord)
SELECT tid, maskeninfo_id, stylesheet_id, ord
FROM tmp_mask_style;
drop table tmp_mask_style;
--Field zu Stylesheet Zuordnungen:
--####################################################################################################
CREATE temp TABLE tmp_stylesheet_field
(
tid serial NOT NULL,
stylesheet_id INTEGER,
tablename char(255),
fieldname char(255),
filename char(255)
);
delete from tmp_hilf;
insert into tmp_hilf select max(tid) from stylesheet_field;
update tmp_hilf set tid=1 where tid is null;
<#assign counter_tid = 1 />
<#foreach column in m_stylesheet_field>
INSERT INTO tmp_stylesheet_field (tid, filename, tablename, fieldname)
select max(tid)+${counter_tid}, '${column.filename}', '${column.tablename}', '${column.fieldname}' from tmp_hilf;
update tmp_stylesheet_field set stylesheet_id=(select max(tid) from sx_stylesheets where filename='${column.filename}')
where filename='${column.filename}';
<#assign counter_tid = counter_tid + 1 />
</#foreach>
insert into stylesheet_field ( tid, stylesheet_id, tablename, fieldname)
SELECT tid, stylesheet_id, tablename, fieldname
FROM tmp_stylesheet_field;
drop table tmp_stylesheet_field;
drop table tmp_hilf;
<#if SQLdialect='Postgres'>
select sp_update_sequence('sx_stylesheets');
select sp_update_sequence('sx_mask_style');
select sp_update_sequence('stylesheet_field');
</#if>
</#macro>

15
src-modules/module/promstat/upgrade/lm_upgrade_man.sql

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
--Freemarker Template
<#if '${SQLdialect}'='Postgres' >
alter table lm_ects_soll alter column pversion type varchar(255);
alter table lm_ects_soll_neu alter column pversion type varchar(255);
alter table lm_accreditation_neu alter column k_accreditationtype_id type varchar(255);
</#if>
<#if '${SQLdialect}'='Informix' >
--nun Informix:
alter table lm_ects_soll modify(pversion varchar(255));
alter table lm_ects_soll_neu modify(pversion varchar(255));
alter table lm_accreditation_neu modify(k_accreditationtype_id varchar(255));
</#if>

14
superx/WEB-INF/conf/edustore/db/bin/SQL_ENV_promstat.sam

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
#Beispielumgebung für das PROMSTAT-Modul:
#SUPERX_MODULE=$SUPERX_DIR/db/module
#SUPERX_ROHDATEN=rohdaten
PROMSTAT_PFAD=$SUPERX_MODULE/promstat; export PROMSTAT_PFAD
PROMSTAT_ERRORDAT=$PROMSTAT_PFAD/promstat_update.err; export PROMSTAT_ERRORDAT
#Hier stehen die Rohdaten (im Unterverzeichnis unl)
PROMSTAT_LOAD_PFAD=$PROMSTAT_PFAD/$SUPERX_ROHDATEN; export PROMSTAT_LOAD_PFAD
PROMSTAT_ERRORMAIL=$ERRORMAIL; export PROMSTAT_ERRORMAIL
PROMSTAT_LOGMAIL=$LOGMAIL; export PROMSTAT_LOGMAIL
Loading…
Cancel
Save