From d487d4eac1a9d930ed869a73cd2d980bf2419068 Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Wed, 24 Jul 2024 08:59:31 +0200 Subject: [PATCH] xCube Masken per sximport verlinken #8 --- src/de/superx/common/Field.java | 4 +- src/de/superx/common/Maske.java | 16 +- src/de/superx/servlet/SxPool.java | 7 +- superx/WEB-INF/conf/#Untitled-1# | 45 - .../conf/edustore/db/install/MODULINFO | 2 +- .../WEB-INF/conf/edustore/db/install/VERSION | 2 +- .../his1/dbconv/sch.eduetl/arch_datum.tab | 25 + .../his1/dbconv/sch.eduetl/arch_table.tab | 13 + .../conf/his1/dbconv/sch.eduetl/cifx.idx | 1 + .../his1/dbconv/sch.eduetl/db_version.tab | 2 +- .../his1/dbconv/sch.eduetl/felderinfo.tab | 2 +- .../dbconv/sch.eduetl/k_astat_abschl_grp.tab | 16 + .../dbconv/sch.eduetl/k_astat_staat_eu.idx | 6 + .../dbconv/sch.eduetl/k_astat_staat_eu.tab | 13 + .../his1/dbconv/sch.eduetl/k_prio_param.tab | 13 + .../conf/his1/dbconv/sch.eduetl/k_source.tab | 13 + .../his1/dbconv/sch.eduetl/sx_repository.tab | 2 +- .../his1/dbconv/sch.eduetl/sx_stylesheets.tab | 5 +- .../dbconv/sch.eduetl/trans_dim_bp_apnr.idx | 2 +- .../his1/dbconv/sch.eduetl/user_group_bez.tab | 2 +- .../dbconv/sch.eduetl/user_institution.tab | 2 +- .../dbconv/sch.eduetl/user_kostentraeger.tab | 2 +- .../dbconv/sch.eduetl/user_masken_bez.tab | 2 +- .../dbconv/sch.eduetl/user_sachgeb_bez.tab | 2 +- .../dbconv/sch.eduetl/user_sichtarten.tab | 2 +- .../his1/dbconv/sch.eduetl/user_sichten.tab | 2 +- .../conf/his1/dbconv/sch.eduetl/userinfo.tab | 8 +- .../edustore_doc/kern_rename_demofiles.bat | 11 + .../edustore_doc/kern_rename_demofiles.sh | 11 + .../edustore_kern_drop_pg.xml | 27 +- .../edustore_kern_install_pg.xml | 21 + .../edustore_kern_integrate_pg.sql | 46 +- .../edustore_kern_masken_einspielen.xml | 108 +++ .../edustore_kern_masken_entladen.xml | 108 +++ .../edustore_kern_masken_loeschen.sql | 18 + .../edustore_kern_masken_loeschen.xml | 33 + .../edustore_kern_upgrade2_pg.xml | 23 +- .../conf/edustore/db/install/conf/kern.html | 309 ++++++- .../conf/edustore/db/install/conf/kern.xml | 53 +- .../edustore/db/install/conf/kern_load.html | 2 +- .../db/install/conf/kern_mask_test_ant.xml | 8 + .../install/conf/module_alter_table_schema.x | 11 +- .../edustore/db/install/conf/module_grant.x | 39 +- .../db/install/conf/module_metadata.sql | 8 +- .../edustore/db/install/conf/module_revoke.x | 39 +- .../db/install/conf/sx_fields_fuellen.sql | 814 ++++++++++++++++-- .../db/install/conf/sx_fields_loeschen.sql | 192 +++++ .../db/install/conf/sx_tables_fuellen.sql | 66 +- .../conf/edustore/db/install/kern_backup.x | 15 +- .../conf/edustore/db/install/kern_drop_pg.sql | 11 +- .../edustore/db/install/kern_indexes_drop.sql | 2 + .../edustore/db/install/kern_indexes_pg.sql | 14 + .../edustore/db/install/kern_install_pg.sql | 342 ++++++-- .../db/install/kern_masken_einspielen_pg.x | 12 + .../db/install/kern_masken_entladen_pg.x | 9 + .../db/install/kern_masken_loeschen_pg.x | 9 + .../edustore/db/install/kern_purge_pg.sql | 4 + .../conf/edustore/db/install/kern_restore.x | 11 +- .../db/install/masken/70350_felderinfo.unl | 9 +- .../masken/70350_masken_felder_bez.unl | 1 + .../db/install/masken/70350_maskeninfo.unl | 123 ++- .../release_unloads/k_astat_staat_eu.unl | 283 ++++++ .../upgrade/kern_upgrade_fields_pg.sql | 392 ++++++++- .../upgrade/kern_upgrade_indexes_pg.sql | 74 +- .../db/install/upgrade/kern_upgrade_pg.sql | 23 +- .../upgrade/kern_upgrade_tables_pg.sql | 387 +++++++-- .../upgrade/kern_upgrade_themenbaum.sql | 44 +- superx/WEB-INF/kern_dbforms-config_pg.xml | 224 +++-- superx/WEB-INF/lib/superx5.1.jar | Bin 3670352 -> 3670404 bytes superx/WEB-INF/patch/xml/patch_2024-07-05.xml | 184 ++++ superx/edit/kern/data_upload_edit.jsp | 6 +- superx/edit/kern/felderinfo_edit.jsp | 8 +- superx/edit/kern/group_field_pref_edit.jsp | 4 +- superx/edit/kern/group_field_pref_list.jsp | 2 +- superx/edit/kern/group_masken_bez_edit.jsp | 2 +- superx/edit/kern/group_sachgeb_bez_edit.jsp | 2 +- superx/edit/kern/group_sichtarten_edit.jsp | 2 +- superx/edit/kern/group_sichten_edit.jsp | 2 +- superx/edit/kern/groupinfo_edit.jsp | 6 +- superx/edit/kern/konstante_edit.jsp | 4 +- superx/edit/kern/konstanten_edit.jsp | 2 +- superx/edit/kern/macro_feld_wert_list.jsp | 2 +- superx/edit/kern/macro_masken_bez_edit.jsp | 4 +- superx/edit/kern/macro_masken_bez_list.jsp | 2 +- superx/edit/kern/maske_system_bez_edit.jsp | 2 +- superx/edit/kern/masken_felder_bez_edit.jsp | 2 +- superx/edit/kern/maskeninfo_edit.jsp | 2 +- .../edit/kern/maskeninfo_felderinfo_edit.jsp | 2 +- superx/edit/kern/maskeninfo_macro_edit.jsp | 2 +- superx/edit/kern/sachgeb_maske_bez_edit.jsp | 2 +- superx/edit/kern/sachgeb_sichtarten_edit.jsp | 2 +- superx/edit/kern/sachgeb_sichten_edit.jsp | 2 +- superx/edit/kern/sichten_edit.jsp | 2 +- superx/edit/kern/stylesheet_field_edit.jsp | 2 +- superx/edit/kern/stylesheet_field_list.jsp | 2 +- superx/edit/kern/sx_captions_edit.jsp | 4 +- superx/edit/kern/sx_downloads_edit.jsp | 2 +- superx/edit/kern/sx_jobs_edit.jsp | 2 +- superx/edit/kern/sx_jobs_list.jsp | 2 +- superx/edit/kern/sx_repository_edit.jsp | 2 +- superx/edit/kern/sx_stylesheets_edit.jsp | 9 +- superx/edit/kern/trans_inst_edit.jsp | 4 +- superx/edit/kern/trans_inst_list.jsp | 2 +- superx/edit/kern/user_group_bez_edit.jsp | 4 +- superx/edit/kern/user_institution_edit.jsp | 4 +- superx/edit/kern/user_masken_bez_edit.jsp | 2 +- superx/edit/kern/user_sachgeb_bez_edit.jsp | 4 +- superx/edit/kern/user_sichtarten_edit.jsp | 2 +- superx/edit/kern/user_sichten_edit.jsp | 4 +- superx/edit/kern/userinfo_edit.jsp | 16 + superx/edit/kern/webapp_manager.jsp | 22 +- superx/xml/js/memtext/sx_functions.js | 47 +- superx/xml/maskComponents_html.xsl | 2 + superx/xml/maske_html.xsl | 1 + superx/xml/pageComponents_html.xsl | 4 + 115 files changed, 4000 insertions(+), 540 deletions(-) delete mode 100644 superx/WEB-INF/conf/#Untitled-1# create mode 100644 superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/arch_datum.tab create mode 100644 superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/arch_table.tab create mode 100644 superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_abschl_grp.tab create mode 100644 superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_staat_eu.idx create mode 100644 superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_staat_eu.tab create mode 100644 superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_prio_param.tab create mode 100644 superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_source.tab create mode 100644 superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/release_unloads/k_astat_staat_eu.unl create mode 100644 superx/WEB-INF/patch/xml/patch_2024-07-05.xml diff --git a/src/de/superx/common/Field.java b/src/de/superx/common/Field.java index 1dd249c..2a76012 100644 --- a/src/de/superx/common/Field.java +++ b/src/de/superx/common/Field.java @@ -473,7 +473,7 @@ public class Field extends NamedIdObject implements TemplateHashModel, } private void setDefaultwertString(String df) throws SQLException { - this.defaultwertString = SxPools.get(mandantenID).checkImports(df); + this.defaultwertString = SxPools.get(mandantenID).checkImports(df,maskennummer.toString()); } @@ -830,7 +830,7 @@ public class Field extends NamedIdObject implements TemplateHashModel, public void setRelation(String relation) throws SQLException { if (relation != null && relation.trim().equals("")) relation = null; - this.relation = SxPools.get(mandantenID).checkImports(relation); + this.relation = SxPools.get(mandantenID).checkImports(relation,maskennummer.toString()); } diff --git a/src/de/superx/common/Maske.java b/src/de/superx/common/Maske.java index d224e5e..0d35b47 100644 --- a/src/de/superx/common/Maske.java +++ b/src/de/superx/common/Maske.java @@ -631,11 +631,11 @@ public class Maske extends NamedIdObject implements Serializable { setName(maskRow.get(1).toString()); String tmp_select_stmt = "" + (String) maskRow.get(2); - tmp_select_stmt=tmp_select_stmt.replaceAll("<>", this.getId().toString()); + //tmp_select_stmt=tmp_select_stmt.replaceAll("<>", this.getId().toString()); String tmp_xil = "" + (String) maskRow.get(3); - tmp_xil=tmp_xil.replaceAll("<>", this.getId().toString()); + //tmp_xil=tmp_xil.replaceAll("<>", this.getId().toString()); String tmp_cleanup = "" + (String) maskRow.get(4); - tmp_cleanup=tmp_cleanup.replaceAll("<>", this.getId().toString()); + //tmp_cleanup=tmp_cleanup.replaceAll("<>", this.getId().toString()); if (tmp_select_stmt.indexOf("") > -1) { int sourceMask = getTmpMaskNr(tmp_select_stmt); @@ -643,16 +643,16 @@ public class Maske extends NamedIdObject implements Serializable { tmp_cleanup = "select cleanup_stmt from maskeninfo where tid=" + sourceMask+""; tmp_xil = "select xil_proplist from maskeninfo where tid=" + sourceMask+""; } - select_stmt = SxPools.get(mandantenID).checkImports(tmp_select_stmt); - xilString = SxPools.get(mandantenID).checkImports(tmp_xil); - cleanup_stmt = SxPools.get(mandantenID).checkImports(tmp_cleanup); + select_stmt = SxPools.get(mandantenID).checkImports(tmp_select_stmt,this.getId().toString()); + xilString = SxPools.get(mandantenID).checkImports(tmp_xil,this.getId().toString()); + cleanup_stmt = SxPools.get(mandantenID).checkImports(tmp_cleanup,this.getId().toString()); standString = SqlStringUtils.getValueAsString(maskRow.get(7)); chartx = SqlStringUtils.getValueAsString(maskRow.get(8)); charty = SqlStringUtils.getValueAsString(maskRow.get(9)); - explanation = SxPools.get(mandantenID).checkImports((String) maskRow.get(10)); - setHinweis(SxPools.get(mandantenID).checkImports((String) maskRow.get(11))); + explanation = SxPools.get(mandantenID).checkImports((String) maskRow.get(10),this.getId().toString()); + setHinweis(SxPools.get(mandantenID).checkImports((String) maskRow.get(11),this.getId().toString())); setHinweisCaption(getHinweis()); } diff --git a/src/de/superx/servlet/SxPool.java b/src/de/superx/servlet/SxPool.java index 0460832..24be64f 100644 --- a/src/de/superx/servlet/SxPool.java +++ b/src/de/superx/servlet/SxPool.java @@ -1539,9 +1539,10 @@ public class SxPool extends GenericObjectPool implements NamedObjectI { return (ExternalPool) externalPools.getByName(epName); } - public String checkImports(String input) throws SQLException { + public String checkImports(String input,String maskentid) throws SQLException { String result = null; if (input != null) { + input=input.replaceAll("<>", maskentid); StringBuffer work = new StringBuffer(input); boolean importsFounds = input.indexOf("") > -1; if (importsFounds) { @@ -1555,8 +1556,8 @@ public class SxPool extends GenericObjectPool implements NamedObjectI { if (posende == -1) throw new IllegalArgumentException("Tag sximport nicht ordentlich beendet"); String importInstruction = work.substring(posstart + 10, posende ); - - ResultSet rs = stm.executeQuery(importInstruction); + String importInstructionReplacedMaskenTid=importInstruction.replaceAll("<>", maskentid); + ResultSet rs = stm.executeQuery(importInstructionReplacedMaskenTid); boolean validReplaceText=false; while (rs.next()) { validReplaceText=true; diff --git a/superx/WEB-INF/conf/#Untitled-1# b/superx/WEB-INF/conf/#Untitled-1# deleted file mode 100644 index cb4135c..0000000 --- a/superx/WEB-INF/conf/#Untitled-1# +++ /dev/null @@ -1,45 +0,0 @@ -git add src/de/superx/common/Maske.java -git add src/de/superx/servlet/SuperXmlTabelle.java -git add src/de/superx/servlet/Themenbaum.java -git add superx-build/build.xml -git add superx/WEB-INF/conf/edustore/db/install/conf/kern.xml -git add superx/WEB-INF/conf/edustore/db/install/masken/71820_felderinfo.unl -git add superx/WEB-INF/conf/edustore/db/install/masken/71820_maskeninfo.unl -git add superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/kern_feste_konstanten_fuellen.sql -git add superx/WEB-INF/conf/edustore/db/install/upgrade/kern_env_upgrade.x -git add superx/WEB-INF/conf/edustore/db/install/upgrade/kern_pre_upgrade_pg.sql -git add superx/WEB-INF/conf/edustore/db/install/upgrade/kernmodul_upgrade_man.sql -git add superx/WEB-INF/conf/obsoletfiles.txt - gelöscht: superx/WEB-INF/lib/superx5.0.jar -git add superx/edit/kern/webapp_manager.jsp -git add superx/images/table.svg -git add superx/xml/pageComponents_html.xsl - -Unversionierte Dateien: - (benutzen Sie "git add ...", um die Änderungen zum Commit vorzumerken) - superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_faechergruppe.tab - superx/WEB-INF/conf/edustore/db/install/conf/kern.html - superx/WEB-INF/conf/edustore/db/install/masken/71840_felderinfo.unl - superx/WEB-INF/conf/edustore/db/install/masken/71840_maske_system_bez.unl - superx/WEB-INF/conf/edustore/db/install/masken/71840_masken_felder_bez.unl - superx/WEB-INF/conf/edustore/db/install/masken/71840_maskeninfo.unl - superx/WEB-INF/conf/edustore/db/install/masken/71840_sachgeb_maske_bez.unl - superx/WEB-INF/conf/edustore/db/install/masken/71860_felderinfo.unl - superx/WEB-INF/conf/edustore/db/install/masken/71860_maske_system_bez.unl - superx/WEB-INF/conf/edustore/db/install/masken/71860_masken_felder_bez.unl - superx/WEB-INF/conf/edustore/db/install/masken/71860_maskeninfo.unl - superx/WEB-INF/conf/edustore/db/install/masken/71860_sachgeb_maske_bez.unl - superx/WEB-INF/conf/edustore/db/install/masken/71880_felderinfo.unl - superx/WEB-INF/conf/edustore/db/install/masken/71880_maske_system_bez.unl - superx/WEB-INF/conf/edustore/db/install/masken/71880_masken_felder_bez.unl - superx/WEB-INF/conf/edustore/db/install/masken/71880_maskeninfo.unl - superx/WEB-INF/conf/edustore/db/install/masken/71880_sachgeb_maske_bez.unl - superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/release_unloads/k_astat_abschl_grp.unl - superx/WEB-INF/lib/superx5.1.jar - superx/WEB-INF/patch/patch_archive/patch_2024-06-10_bash_var.sh - superx/WEB-INF/patch/patch_archive/patch_2024-06-10_readme.htm - superx/WEB-INF/patch/xml/patch_2024-06-10.xml - superx/edit/kern/systeminfo_view.jsp - superx/style/LICENSE_bulma_tooltip_1.2.0.txt - superx/style/bulma-tooltip.min.css - diff --git a/superx/WEB-INF/conf/edustore/db/install/MODULINFO b/superx/WEB-INF/conf/edustore/db/install/MODULINFO index b26325b..f7cfd77 100644 --- a/superx/WEB-INF/conf/edustore/db/install/MODULINFO +++ b/superx/WEB-INF/conf/edustore/db/install/MODULINFO @@ -1,6 +1,6 @@ #!/bin/bash -export MODUL_VERSION=5.0 +export MODUL_VERSION=5.1b export MODULNAME=kern export SACHGEBIETID=0 export SACHGEBIET=Administration diff --git a/superx/WEB-INF/conf/edustore/db/install/VERSION b/superx/WEB-INF/conf/edustore/db/install/VERSION index 819e07a..45e1b8d 100644 --- a/superx/WEB-INF/conf/edustore/db/install/VERSION +++ b/superx/WEB-INF/conf/edustore/db/install/VERSION @@ -1 +1 @@ -5.0 +5.1b diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/arch_datum.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/arch_datum.tab new file mode 100644 index 0000000..3e38e93 --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/arch_datum.tab @@ -0,0 +1,25 @@ +{### arch_datum - automatisch generiert #########} +create table arch_datum( + arch_table NVARCHAR(255) not null, +datum datetime year to second , +bezugszeit_von INTEGER , +bezugszeit_bis INTEGER , +bezugsart CHAR(1) default 'J' , +userinfo_id INTEGER not null, +kommentar NVARCHAR(255) +); + +comment on column arch_datum.arch_table is 'Name der archivierten Tabelle'; + +comment on column arch_datum.datum is 'Archivierungsdatum und -uhrzeit'; + +comment on column arch_datum.bezugszeit_von is 'Bezugszeit [von] der archivierten Daten'; + +comment on column arch_datum.bezugszeit_bis is 'Bezugszeit [bis] der archivierten Daten'; + +comment on column arch_datum.bezugsart is 'Bezugsart [Semester S_ Akad. Jahr A_Jahr J_ Quartal Q_ Monat M]'; + +comment on column arch_datum.userinfo_id is 'Userinfo ID'; + +comment on column arch_datum.kommentar is 'Kommentar zur Archivierung'; + \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/arch_table.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/arch_table.tab new file mode 100644 index 0000000..1c3db0c --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/arch_table.tab @@ -0,0 +1,13 @@ +{### arch_table - automatisch generiert #########} +create table arch_table( + id SERIAL not null, +name NVARCHAR(255) , +zeitfeld NVARCHAR(255) +); + +comment on column arch_table.id is 'id'; + +comment on column arch_table.name is 'Name der archivierten Tabelle'; + +comment on column arch_table.zeitfeld is 'Feld für die Zeitangabe'; + \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/cifx.idx b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/cifx.idx index 99dd8e4..23e2f7b 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/cifx.idx +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/cifx.idx @@ -5,3 +5,4 @@ create unique index c_cifx_tid on cifx (tid); create unique index cifx_ind on cifx (hs, key, apnr ); create index cifx_ind2 on cifx (uniquename ); +create index cifx_ind3 on cifx (key, apnr ); diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/db_version.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/db_version.tab index 7cb1b73..8a9c5b8 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/db_version.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/db_version.tab @@ -4,7 +4,7 @@ create table db_version( his_system NVARCHAR(255) , version CHAR(8) , kern_system CHAR(1) , -version_hash VARCHAR(32) , +version_hash VARCHAR() , systeminfo_id INTEGER ); \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/felderinfo.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/felderinfo.tab index ba5cad1..a7635a6 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/felderinfo.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/felderinfo.tab @@ -14,6 +14,6 @@ obligatorisch INTEGER , art INTEGER , relation text , attribut NCHAR(100) , -defaultwert NCHAR(255) +defaultwert TEXT ); \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_abschl_grp.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_abschl_grp.tab new file mode 100644 index 0000000..ed73cbc --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_abschl_grp.tab @@ -0,0 +1,16 @@ +{### k_astat_abschl_grp - automatisch generiert #########} +create table k_astat_abschl_grp( + abschluss_astat_bund NVARCHAR(255) not null, +abschluss_astat_bund_ktxt NVARCHAR(255) , +abschlussart NVARCHAR(255) , +abschluss_grp NVARCHAR(255) +); + +comment on column k_astat_abschl_grp.abschluss_astat_bund is 'Abschluss [Bundesschlüssel]'; + +comment on column k_astat_abschl_grp.abschluss_astat_bund_ktxt is 'Abschluss [Bundesschlüssel] Kurztext'; + +comment on column k_astat_abschl_grp.abschlussart is 'Abschlussart'; + +comment on column k_astat_abschl_grp.abschluss_grp is 'Abschlussgruppe'; + \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_staat_eu.idx b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_staat_eu.idx new file mode 100644 index 0000000..43e8114 --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_staat_eu.idx @@ -0,0 +1,6 @@ + +{### k_astat_staat_eu - automatisch generiert ############################################## +} + +create unique index pk_k_astat_staat_eu on k_astat_staat_eu (tid); +create index k_astat_staat_eu_idx1 on k_astat_staat_eu (astat, semester_von, semester_bis ); diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_staat_eu.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_staat_eu.tab new file mode 100644 index 0000000..972d8d2 --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_astat_staat_eu.tab @@ -0,0 +1,13 @@ +{### k_astat_staat_eu - automatisch generiert #########} +create table k_astat_staat_eu( + tid SERIAL not null, +astat CHAR(3) not null, +eu CHAR(1) , +semester_von INTEGER , +semester_bis INTEGER , +gueltig_von DATE , +gueltig_bis DATE +); + +comment on column k_astat_staat_eu.eu is 'EU-Mitglied?'; + \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_prio_param.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_prio_param.tab new file mode 100644 index 0000000..e3da4b7 --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_prio_param.tab @@ -0,0 +1,13 @@ +{### k_prio_param - automatisch generiert #########} +create table k_prio_param( + id SERIAL not null, +name NVARCHAR(255) , +sortorder NVARCHAR(255) +); + +comment on column k_prio_param.id is 'id'; + +comment on column k_prio_param.name is 'Name der Priorität'; + +comment on column k_prio_param.sortorder is 'Sortierung der Priorität'; + \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_source.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_source.tab new file mode 100644 index 0000000..830d10f --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/k_source.tab @@ -0,0 +1,13 @@ +{### k_source - automatisch generiert #########} +create table k_source( + id SERIAL not null, +name NVARCHAR(255) , +sortorder NVARCHAR(255) +); + +comment on column k_source.id is 'id'; + +comment on column k_source.name is 'Name des Quellsystems'; + +comment on column k_source.sortorder is 'Sortierung des Quellsystems'; + \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_repository.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_repository.tab index 5bcf17a..7f61cb3 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_repository.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_repository.tab @@ -14,7 +14,7 @@ sort1 INTEGER , sort2 INTEGER , sort3 INTEGER , geaendert_am DATE , -aktiv SMALLINT , +aktiv SMALLINT default 0 not null, gueltig_seit DATE default '01.01.1900' not null, gueltig_bis DATE default '01.01.3000' not null ); diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheets.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheets.tab index 942e521..091b2e3 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheets.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/sx_stylesheets.tab @@ -11,7 +11,8 @@ is_generic SMALLINT default 0 , toolbar_icon_filepath NVARCHAR(255) , usage_resultset_data CHAR(10) default 'T' , stylesheet_type CHAR(10) default 'XSL' , -jr_datasource CHAR(10) +jr_datasource CHAR(10) , +uniquename NVARCHAR(255) ); comment on column sx_stylesheets.tid is 'Laufnummer'; @@ -37,4 +38,6 @@ comment on column sx_stylesheets.usage_resultset_data is 'Nutzung der Ergebnisda comment on column sx_stylesheets.stylesheet_type is 'Art des Stylesheets'; comment on column sx_stylesheets.jr_datasource is 'Datenquelle [JR]'; + +comment on column sx_stylesheets.uniquename is 'Eindeutige Identifizierung des Datensatzes'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/trans_dim_bp_apnr.idx b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/trans_dim_bp_apnr.idx index c84e103..6cfb305 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/trans_dim_bp_apnr.idx +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/trans_dim_bp_apnr.idx @@ -1,4 +1,4 @@ {### trans_dim_bp_apnr - automatisch generiert ############################################## } -create index ix_tr_dim_bp_apnr on trans_dim_bp_apnr (dimension_bp_id, sourcesystem_id, systeminfo_id ); +create index ix_tr_dim_bp_apnr on trans_dim_bp_apnr (dimension_bp_id, apnr, sourcesystem_id, systeminfo_id ); diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_group_bez.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_group_bez.tab index 0d11ba7..69dd950 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_group_bez.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_group_bez.tab @@ -9,5 +9,5 @@ comment on column user_group_bez.userinfo_id is 'UserID'; comment on column user_group_bez.groupinfo_id is 'Gruppe'; -comment on column user_group_bez.external_entry is 'Recht wird von externem System [HisInOne] gesetzt und entfernt'; +comment on column user_group_bez.external_entry is 'Recht wird von externem System [HISinOne] gesetzt und entfernt'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_institution.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_institution.tab index d73968e..954dfc4 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_institution.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_institution.tab @@ -25,7 +25,7 @@ comment on column user_institution.gueltig_bis is 'Gültig bis'; comment on column user_institution.lehre is 'obsoletes Feld'; -comment on column user_institution.external_entry is 'Recht wird von externem System [HisInOne] gesetzt und entfernt'; +comment on column user_institution.external_entry is 'Recht wird von externem System [HISinOne] gesetzt und entfernt'; comment on column user_institution.externalid is 'ID der berechtigten Kostenstelle in externem System [HISinONe: orgunitid]'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_kostentraeger.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_kostentraeger.tab index e906783..16170a8 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_kostentraeger.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_kostentraeger.tab @@ -19,7 +19,7 @@ comment on column user_kostentraeger.gueltig_seit is 'Gültig von'; comment on column user_kostentraeger.gueltig_bis is 'Gültig bis'; -comment on column user_kostentraeger.external_entry is 'Recht wird von externem System [HisInOne] gesetzt und entfernt'; +comment on column user_kostentraeger.external_entry is 'Recht wird von externem System [HISinOne] gesetzt und entfernt'; comment on column user_kostentraeger.externalid is 'ID der berechtigten Kostenstelle in externem System [HISinONe: orgunitid]'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_masken_bez.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_masken_bez.tab index 7f90d4f..b3215c5 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_masken_bez.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_masken_bez.tab @@ -5,5 +5,5 @@ maskeninfo_id INTEGER , external_entry smallint default 0 ); -comment on column user_masken_bez.external_entry is 'Recht wird von externem System [HisInOne] gesetzt und entfernt'; +comment on column user_masken_bez.external_entry is 'Recht wird von externem System [HISinOne] gesetzt und entfernt'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sachgeb_bez.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sachgeb_bez.tab index be5b1a6..29352a7 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sachgeb_bez.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sachgeb_bez.tab @@ -5,5 +5,5 @@ sachgebiete_id INTEGER , external_entry smallint default 0 ); -comment on column user_sachgeb_bez.external_entry is 'Recht wird von externem System [HisInOne] gesetzt und entfernt'; +comment on column user_sachgeb_bez.external_entry is 'Recht wird von externem System [HISinOne] gesetzt und entfernt'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sichtarten.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sichtarten.tab index f9b5304..836b12f 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sichtarten.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sichtarten.tab @@ -7,5 +7,5 @@ external_entry smallint default 0 comment on column user_sichtarten.sichtart is 'Rechte für eine Art von Sichten geben'; -comment on column user_sichtarten.external_entry is 'Recht wird von externem System [HisInOne] gesetzt und entfernt'; +comment on column user_sichtarten.external_entry is 'Recht wird von externem System [HISinOne] gesetzt und entfernt'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sichten.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sichten.tab index ded273c..63ca579 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sichten.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/user_sichten.tab @@ -5,5 +5,5 @@ sicht_name_intern NCHAR(200) not null, external_entry smallint default 0 ); -comment on column user_sichten.external_entry is 'Recht wird von externem System [HisInOne] gesetzt und entfernt'; +comment on column user_sichten.external_entry is 'Recht wird von externem System [HISinOne] gesetzt und entfernt'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/userinfo.tab b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/userinfo.tab index b9a5590..4e6d374 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/userinfo.tab +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/dbconv/sch.eduetl/userinfo.tab @@ -14,8 +14,14 @@ info NCHAR(255) , extern_account_id NVARCHAR(255) , extern_person_id NVARCHAR(255) , sieht_projekte SMALLINT default 0 , -extern_role_id INTEGER +extern_role_id INTEGER , +gueltig_von date , +gueltig_bis date ); comment on column userinfo.sieht_projekte is 'Darf der User Projekte sehen'; + +comment on column userinfo.gueltig_von is 'Beginn Gültigkeit'; + +comment on column userinfo.gueltig_bis is 'Ende Gültigkeit'; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_rename_demofiles.bat b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_rename_demofiles.bat index 277bc91..6e8cfed 100755 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_rename_demofiles.bat +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_rename_demofiles.bat @@ -1,12 +1,19 @@ rem Diese Datei benenn die UNL Dateien mit Demofunktion um +move sichtart_rechttabelle sichtart_rechttabelle_demo +move db_version db_version_demo move cif cif_demo move cifx cifx_demo move trans_cifx trans_cifx_demo move trans_cif trans_cif_demo move cifx_customize cifx_customize_demo +move hochschulinfo hochschulinfo_demo move organigramm organigramm_demo move protokoll protokoll_demo move sx_repository sx_repository_demo +move sieve sieve_demo +move sieve_column_def sieve_column_def_demo +move sieve_column sieve_column_demo +move sieve_field sieve_field_demo move sx_jobs sx_jobs_demo move orgunit_mapping orgunit_mapping_demo move dim_datum dim_datum_demo @@ -24,3 +31,7 @@ move k_astat_studienbereich k_astat_studienbereich_demo move k_astat_studienfach k_astat_studienfach_demo move k_astat_staat k_astat_staat_demo move k_astat_kontinent k_astat_kontinent_demo +move k_astat_faechergruppe k_astat_faechergruppe_demo +move k_astat_abschl_grp k_astat_abschl_grp_demo +move k_prio_param k_prio_param_demo +move k_source k_source_demo diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_rename_demofiles.sh b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_rename_demofiles.sh index e89442e..0d33d7c 100755 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_rename_demofiles.sh +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_doc/kern_rename_demofiles.sh @@ -1,13 +1,20 @@ # Diese Datei benenn die UNL Dateien mit Demofunktion um +mv sichtart_rechttabelle sichtart_rechttabelle_demo +mv db_version db_version_demo mv cif cif_demo mv cifx cifx_demo mv trans_cifx trans_cifx_demo mv trans_cif trans_cif_demo mv cifx_customize cifx_customize_demo +mv hochschulinfo hochschulinfo_demo mv organigramm organigramm_demo mv protokoll protokoll_demo mv sx_repository sx_repository_demo +mv sieve sieve_demo +mv sieve_column_def sieve_column_def_demo +mv sieve_column sieve_column_demo +mv sieve_field sieve_field_demo mv sx_jobs sx_jobs_demo mv orgunit_mapping orgunit_mapping_demo mv dim_datum dim_datum_demo @@ -25,3 +32,7 @@ mv k_astat_studienbereich k_astat_studienbereich_demo mv k_astat_studienfach k_astat_studienfach_demo mv k_astat_staat k_astat_staat_demo mv k_astat_kontinent k_astat_kontinent_demo +mv k_astat_faechergruppe k_astat_faechergruppe_demo +mv k_astat_abschl_grp k_astat_abschl_grp_demo +mv k_prio_param k_prio_param_demo +mv k_source k_source_demo diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_drop_pg.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_drop_pg.xml index 46d0290..03c3ba0 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_drop_pg.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_drop_pg.xml @@ -566,16 +566,37 @@ eduetl:drop table if exists k_astat_studienfach cascade; -eduetl:drop table if exists colorscheme cascade; +eduetl:drop table if exists k_astat_staat cascade; + + +eduetl:drop table if exists k_astat_kontinent cascade; + + +eduetl:drop table if exists k_astat_faechergruppe cascade; + + +eduetl:drop table if exists k_astat_abschl_grp cascade; + + +eduetl:drop table if exists k_astat_staat_eu cascade; eduetl:drop table if exists sx_mail cascade; -eduetl:drop table if exists k_astat_staat cascade; +eduetl:drop table if exists colorscheme cascade; -eduetl:drop table if exists k_astat_kontinent cascade; +eduetl:drop table if exists arch_table cascade; + + +eduetl:drop table if exists arch_datum cascade; + + +eduetl:drop table if exists k_prio_param cascade; + + +eduetl:drop table if exists k_source cascade; diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_install_pg.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_install_pg.xml index 39cc119..008b2a9 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_install_pg.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_install_pg.xml @@ -85,10 +85,16 @@ eduetl:truncate table k_astat_studienbereich cascade; +eduetl:truncate table k_astat_faechergruppe cascade; + eduetl:truncate table k_astat_staat cascade; eduetl:truncate table k_astat_kontinent cascade; +eduetl:truncate table k_astat_abschl_grp cascade; + +eduetl:truncate table k_astat_staat_eu cascade; + @@ -305,6 +311,11 @@ + + + + + @@ -314,6 +325,16 @@ + + + + + + + + + + diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_integrate_pg.sql b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_integrate_pg.sql index 74345bf..681d56e 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_integrate_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_integrate_pg.sql @@ -7,7 +7,7 @@ -- Fülle db_version delete from db_version where his_system='kern'; -insert into db_version (his_system,version,systeminfo_id) values('kern','5.0',9); +insert into db_version (his_system,version,systeminfo_id) values('kern','5.1b',9); @@ -258,14 +258,28 @@ delete from db_tabellen where name='k_astat_studienbereich'; insert into db_tabellen (name,protokollierung) values('k_astat_studienbereich',0); delete from db_tabellen where name='k_astat_studienfach'; insert into db_tabellen (name,protokollierung) values('k_astat_studienfach',0); -delete from db_tabellen where name='colorscheme'; -insert into db_tabellen (name,protokollierung) values('colorscheme',0); -delete from db_tabellen where name='sx_mail'; -insert into db_tabellen (name,protokollierung) values('sx_mail',0); delete from db_tabellen where name='k_astat_staat'; insert into db_tabellen (name,protokollierung) values('k_astat_staat',0); delete from db_tabellen where name='k_astat_kontinent'; insert into db_tabellen (name,protokollierung) values('k_astat_kontinent',0); +delete from db_tabellen where name='k_astat_faechergruppe'; +insert into db_tabellen (name,protokollierung) values('k_astat_faechergruppe',0); +delete from db_tabellen where name='k_astat_abschl_grp'; +insert into db_tabellen (name,protokollierung) values('k_astat_abschl_grp',0); +delete from db_tabellen where name='k_astat_staat_eu'; +insert into db_tabellen (name,protokollierung) values('k_astat_staat_eu',0); +delete from db_tabellen where name='sx_mail'; +insert into db_tabellen (name,protokollierung) values('sx_mail',0); +delete from db_tabellen where name='colorscheme'; +insert into db_tabellen (name,protokollierung) values('colorscheme',0); +delete from db_tabellen where name='arch_table'; +insert into db_tabellen (name,protokollierung) values('arch_table',0); +delete from db_tabellen where name='arch_datum'; +insert into db_tabellen (name,protokollierung) values('arch_datum',0); +delete from db_tabellen where name='k_prio_param'; +insert into db_tabellen (name,protokollierung) values('k_prio_param',0); +delete from db_tabellen where name='k_source'; +insert into db_tabellen (name,protokollierung) values('k_source',0); -- Fülle sachgebiete, systeminfo und themenbaum @@ -389,16 +403,16 @@ insert into tmp_themenbaum(name, parentname, gueltig_seit,gueltig_bis,erlaeuteru delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Benutzer' or T.name='Administration'); insert into tmp_themenbaum(name, parentname, gueltig_seit,gueltig_bis,erlaeuterung) - values('Entwicklung','Administration',date_val('01.01.1900'),date_val('01.01.3000'),'Spezielle Funktionen für die Entwicklung'); + values('Stammdaten verwalten','Administration',date_val('01.01.1900'),date_val('01.01.3000'),'Abfragen zur Stammdatenverwaltung'); --gibt es das Thema schon? -delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Entwicklung' +delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Stammdaten verwalten' or T.name='Administration'); insert into tmp_themenbaum(name, parentname, gueltig_seit,gueltig_bis,erlaeuterung) - values('Stammdaten verwalten','Administration',date_val('01.01.1900'),date_val('01.01.3000'),'Abfragen zur Stammdatenverwaltung'); + values('Datenmanagement','Administration',date_val('01.01.1900'),date_val('01.01.3000'),'Abfragen zum Datenmanagement'); --gibt es das Thema schon? -delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Stammdaten verwalten' +delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Datenmanagement' or T.name='Administration'); --root für das Modul einfügen und in den Themenbaum einhängen @@ -457,6 +471,12 @@ insert into tmp_themenbaum gueltig_bis) values('Feld suchen','70570','Felder',date_val('01.01.1900'),date_val('01.01.3000')); +insert into tmp_themenbaum +( name ,maskeninfo_id, parentname, + gueltig_seit , + gueltig_bis) +values('User einrichten','70970','Benutzer verwalten',date_val('01.01.1900'),date_val('01.01.3000')); + insert into tmp_themenbaum ( name ,maskeninfo_id, parentname, gueltig_seit , @@ -716,8 +736,8 @@ update themenbaum set erlaeuterung='Abfragen zur Maskenverwaltung' where name='M update themenbaum set erlaeuterung='Uploads/Downloads verwalten' where name='Uploads/Downloads verwalten'; update themenbaum set erlaeuterung='Abfragen zur Feld-Verwaltung' where name='Felder'; update themenbaum set erlaeuterung='Benutzereinstellungen (Passwort ändern etc.)' where name='Benutzer'; -update themenbaum set erlaeuterung='Spezielle Funktionen für die Entwicklung' where name='Entwicklung'; update themenbaum set erlaeuterung='Abfragen zur Stammdatenverwaltung' where name='Stammdaten verwalten'; +update themenbaum set erlaeuterung='Abfragen zum Datenmanagement' where name='Datenmanagement'; CREATE temp TABLE tmp_db_forms ( tid serial NOT NULL, @@ -744,13 +764,13 @@ values ('felderinfo','felderinfo','/edit/kern/felderinfo_edit.jsp','Felderinfo v insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('systeminfo','systeminfo','/edit/kern/systeminfo_edit.jsp','Systeminfo verwalten'::varchar(200),'In diesem Formular können Sie Quellsysteme verwalten.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('user_masken_bez','user_masken_bez','/edit/kern/user_masken_bez_edit.jsp','Maskenrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Masken geben.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('themenbaum_edit','themenbaum','/edit/kern/themenbaum_edit.jsp','Themenbaum'::varchar(200),'In diesem Formular können Sie den Themenbaum bearbeiten. Bitte beachten Sie: bei Änderungen muss der Themenbaum neu geladen werden (SuperXManager)'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_einspielen.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_einspielen.xml index a9b6dca..3dd851d 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_einspielen.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_einspielen.xml @@ -1979,4 +1979,112 @@ +eduetl:delete from maskeninfo where tid = 71840; + +eduetl:delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71840); + +eduetl:delete from masken_felder_bez where maskeninfo_id = 71840; + +eduetl:delete from sachgeb_maske_bez where maskeninfo_id = 71840; + +eduetl:delete from maske_system_bez where maskeninfo_id = 71840; + + + + + + + + + + + + + + + + + + + + + + + + + + +eduetl:delete from maskeninfo where tid = 71860; + +eduetl:delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71860); + +eduetl:delete from masken_felder_bez where maskeninfo_id = 71860; + +eduetl:delete from sachgeb_maske_bez where maskeninfo_id = 71860; + +eduetl:delete from maske_system_bez where maskeninfo_id = 71860; + + + + + + + + + + + + + + + + + + + + + + + + + + +eduetl:delete from maskeninfo where tid = 71880; + +eduetl:delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71880); + +eduetl:delete from masken_felder_bez where maskeninfo_id = 71880; + +eduetl:delete from sachgeb_maske_bez where maskeninfo_id = 71880; + +eduetl:delete from maske_system_bez where maskeninfo_id = 71880; + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_entladen.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_entladen.xml index 74e8fb6..a3d790d 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_entladen.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_entladen.xml @@ -1979,4 +1979,112 @@ + + +select * from maskeninfo where tid = 71840; + + + + + + +select * from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71840) order by tid; + + + + + + +select maskeninfo_id, felderinfo_id from masken_felder_bez where maskeninfo_id = 71840 order by 1,2; + + + + + + +select sachgebiete_id, maskeninfo_id from sachgeb_maske_bez where maskeninfo_id = 71840 order by 1,2; + + + + + + +select maskeninfo_id, systeminfo_id from maske_system_bez where maskeninfo_id = 71840 order by 1,2; + + + + + + +select * from maskeninfo where tid = 71860; + + + + + + +select * from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71860) order by tid; + + + + + + +select maskeninfo_id, felderinfo_id from masken_felder_bez where maskeninfo_id = 71860 order by 1,2; + + + + + + +select sachgebiete_id, maskeninfo_id from sachgeb_maske_bez where maskeninfo_id = 71860 order by 1,2; + + + + + + +select maskeninfo_id, systeminfo_id from maske_system_bez where maskeninfo_id = 71860 order by 1,2; + + + + + + +select * from maskeninfo where tid = 71880; + + + + + + +select * from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71880) order by tid; + + + + + + +select maskeninfo_id, felderinfo_id from masken_felder_bez where maskeninfo_id = 71880 order by 1,2; + + + + + + +select sachgebiete_id, maskeninfo_id from sachgeb_maske_bez where maskeninfo_id = 71880 order by 1,2; + + + + + + +select maskeninfo_id, systeminfo_id from maske_system_bez where maskeninfo_id = 71880 order by 1,2; + + + + diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_loeschen.sql b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_loeschen.sql index 2e6be8d..798ddb3 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_loeschen.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_loeschen.sql @@ -328,3 +328,21 @@ delete from felderinfo where tid in delete from masken_felder_bez where maskeninfo_id = 71820; delete from sachgeb_maske_bez where maskeninfo_id = 71820; delete from maske_system_bez where maskeninfo_id = 71820; +delete from maskeninfo where tid = 71840; +delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71840); +delete from masken_felder_bez where maskeninfo_id = 71840; +delete from sachgeb_maske_bez where maskeninfo_id = 71840; +delete from maske_system_bez where maskeninfo_id = 71840; +delete from maskeninfo where tid = 71860; +delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71860); +delete from masken_felder_bez where maskeninfo_id = 71860; +delete from sachgeb_maske_bez where maskeninfo_id = 71860; +delete from maske_system_bez where maskeninfo_id = 71860; +delete from maskeninfo where tid = 71880; +delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71880); +delete from masken_felder_bez where maskeninfo_id = 71880; +delete from sachgeb_maske_bez where maskeninfo_id = 71880; +delete from maske_system_bez where maskeninfo_id = 71880; diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_loeschen.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_loeschen.xml index 9e997b7..fe918eb 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_loeschen.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_masken_loeschen.xml @@ -604,4 +604,37 @@ eduetl:delete from maske_system_bez where maskeninfo_id = 71820; +eduetl:delete from maskeninfo where tid = 71840; + +eduetl:delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71840); + +eduetl:delete from masken_felder_bez where maskeninfo_id = 71840; + +eduetl:delete from sachgeb_maske_bez where maskeninfo_id = 71840; + +eduetl:delete from maske_system_bez where maskeninfo_id = 71840; + +eduetl:delete from maskeninfo where tid = 71860; + +eduetl:delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71860); + +eduetl:delete from masken_felder_bez where maskeninfo_id = 71860; + +eduetl:delete from sachgeb_maske_bez where maskeninfo_id = 71860; + +eduetl:delete from maske_system_bez where maskeninfo_id = 71860; + +eduetl:delete from maskeninfo where tid = 71880; + +eduetl:delete from felderinfo where tid in +(select felderinfo_id from masken_felder_bez where maskeninfo_id = 71880); + +eduetl:delete from masken_felder_bez where maskeninfo_id = 71880; + +eduetl:delete from sachgeb_maske_bez where maskeninfo_id = 71880; + +eduetl:delete from maske_system_bez where maskeninfo_id = 71880; + diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_upgrade2_pg.xml b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_upgrade2_pg.xml index 09d53ed..8e5d326 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_upgrade2_pg.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/his1/edustore_install/edustore_kern_upgrade2_pg.xml @@ -45,6 +45,12 @@ eduetl:truncate table k_astat_kontinent cascade; +eduetl:truncate table k_astat_faechergruppe cascade; + +eduetl:truncate table k_astat_abschl_grp cascade; + +eduetl:truncate table k_astat_staat_eu cascade; + @@ -90,6 +96,21 @@ + + + + + + + + + + + + + + + @@ -242,7 +263,7 @@ -eduetl:UPDATE db_version SET version = '5.0' +eduetl:UPDATE db_version SET version = '5.1b' WHERE his_system = 'kern'; eduetl:select setval('themenbaum_tid_seq',(select max(tid)+1 from themenbaum)); diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/kern.html b/superx/WEB-INF/conf/edustore/db/install/conf/kern.html index f3604d0..90e0fa3 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/kern.html +++ b/superx/WEB-INF/conf/edustore/db/install/conf/kern.html @@ -94,7 +94,7 @@ font-style:italic: SuperX-Version2 -Modulversion5.0 +Modulversion5.1b SachgebietAdministration id 0 @@ -127,6 +127,12 @@ font-style:italic: aggregierung
  • +arch_datum +
  • +
  • +arch_table +
  • +
  • cif
  • @@ -244,6 +250,9 @@ font-style:italic: implicit_orgunit_rights
  • +k_astat_abschl_grp +
  • +
  • k_astat_abschluss2steller
  • @@ -259,6 +268,9 @@ font-style:italic: k_astat_staat
  • +k_astat_staat_eu +
  • +
  • k_astat_studienbereich
  • @@ -268,6 +280,12 @@ font-style:italic: k_astat_studienfach_land
  • +k_prio_param +
  • +
  • +k_source +
  • +
  • kern_cifx_neu
  • @@ -589,6 +607,12 @@ font-style:italic: aggregierung
  • +arch_datum +
  • +
  • +arch_table +
  • +
  • cif
  • @@ -703,6 +727,12 @@ font-style:italic: implicit_orgunit_rights
  • +k_prio_param +
  • +
  • +k_source +
  • +
  • kern_cifx_neu
  • @@ -937,6 +967,12 @@ font-style:italic: aggregierung
  • +arch_datum +
  • +
  • +arch_table +
  • +
  • cif
  • @@ -1051,6 +1087,12 @@ font-style:italic: implicit_orgunit_rights
  • +k_prio_param +
  • +
  • +k_source +
  • +
  • kern_cifx_neu
  • @@ -1288,10 +1330,11 @@ font-style:italic:
  • Benutzer
    • -
    • Entwicklung
        -
      • Stammdaten verwalten
      • +
      • Datenmanagement
          +
          1. @@ -1324,6 +1369,9 @@ font-style:italic:
          2. Datentabellen
            • +arch_datum +
            • +
            • data_upload
            • @@ -1360,6 +1408,9 @@ font-style:italic: sx_portlet
            • +unload_params +
            • +
            • update_prot
            • @@ -1378,6 +1429,9 @@ font-style:italic: aggregierung
            • +arch_table +
            • +
            • cif
            • @@ -1489,6 +1543,9 @@ font-style:italic: implicit_orgunit_rights
            • +k_astat_abschl_grp +
            • +
            • k_astat_abschluss2steller
            • @@ -1504,6 +1561,9 @@ font-style:italic: k_astat_staat
            • +k_astat_staat_eu +
            • +
            • k_astat_studienbereich
            • @@ -1513,6 +1573,12 @@ font-style:italic: k_astat_studienfach_land
            • +k_prio_param +
            • +
            • +k_source +
            • +
            • konstanten
            • @@ -1781,6 +1847,62 @@ font-style:italic:
                Wird benutzt in folgenden Masken:
              +Tabelle arch_datum +
              +

              +

              Typ: Datentabelle, Themenbereich: Administration

              + + + + + + + + + + + + + + + + + + + + + + + + + +
              FeldnameFeldtypGrößeDefaultNot NullBeschreibungKommentarFremdschlüssel
              arch_tableVARCHAR255trueName der archivierten Tabelle
              datumDATETIME255Archivierungsdatum und -uhrzeit
              bezugszeit_vonINTEGERBezugszeit (von) der archivierten Daten
              bezugszeit_bisINTEGERBezugszeit (bis) der archivierten Daten
              bezugsartCHAR1JfalseBezugsart (Semester S, Akad. Jahr A,Jahr J, Quartal Q, Monat M)
              userinfo_idINTEGERtrueUserinfo ID
              kommentarVARCHAR255falseKommentar zur Archivierung
              +
                +
                  Wird benutzt in folgenden Masken: +
                +
                +Tabelle arch_table +
                +

                +

                Typ: Schlüsseltabelle, Themenbereich: Administration

                + + + + + + + + + + + + + +
                FeldnameFeldtypGrößeDefaultNot NullBeschreibungKommentarFremdschlüssel
                idSERIALtrueid
                nameVARCHAR255Name der archivierten Tabelle
                zeitfeldVARCHAR255Feld für die Zeitangabe
                +
                  +
                    Wird benutzt in folgenden Masken: +
                  +
                  Tabelle cif

                  @@ -1972,6 +2094,9 @@ apnr );
                • Index: cifx_ind2 auf cifx (uniquename );
                • +
                • Index: cifx_ind3 auf cifx (key, +apnr ); +
                  Wird benutzt in folgenden Masken:
                @@ -2018,9 +2143,9 @@ apnr );
                  Wird benutzt in folgenden Masken:
                -Tabelle colorscheme +Tabelle colorscheme (Farbschema)
                -

                +

                Farbschema für Diagramm in BI-Analysen festlegen

                Typ: Schlüsseltabelle, Themenbereich: Administration

                @@ -2231,7 +2356,7 @@ apnr ); - + @@ -3047,7 +3172,7 @@ art
                - +
                kern_systemCHAR1
                version_hashVARCHAR32falseversion_hashVARCHARfalse
                systeminfo_idINTEGER4false attributCHAR100false
                defaultwertCHAR255falsedefaultwertTEXTfalse

                Primärschlüssel c_felderinfo @@ -3403,7 +3528,7 @@ art
                matrikel_nrINTEGER4falseMatrikelnummer der gelöschten Entity -entityVARCHAR255falseEntiy-Klasse des gelöschten Objekts in HisInOne +entityVARCHAR255falseEntiy-Klasse des gelöschten Objekts in HISinOne deleted_in_hisinoneDATETIME4falseZeitpunkt der Löschung in HISinOne @@ -3412,7 +3537,7 @@ art
                deleted_in_biDATETIME4falseZeitpunkt der Löschung in der BI -jobVARCHAR255falseJob-Ausführung in HisInOne von der Delete-Event ausgelöst wird +jobVARCHAR255falseJob-Ausführung in HISinOne von der Delete-Event ausgelöst wird

                  @@ -3488,6 +3613,36 @@ art
                    Wird benutzt in folgenden Masken:
                  +Tabelle k_astat_abschl_grp (Amtl.Abschlüsse (Bundesschlüssel) und Gruppen) +
                  +

                  +

                  Typ: Schlüsseltabelle, Themenbereich: Stammdaten verwalten

                  + + + + + + + + + + + + + + + + +
                  FeldnameFeldtypGrößeDefaultNot NullBeschreibungKommentarFremdschlüssel
                  abschluss_astat_bundVARCHAR255trueAbschluss (Bundesschlüssel)
                  abschluss_astat_bund_ktxtVARCHAR255falseAbschluss (Bundesschlüssel) Kurztext
                  abschlussartVARCHAR255falseAbschlussart
                  abschluss_grpVARCHAR255falseAbschlussgruppe
                  +

                  Primärschlüssel pk_k_astat_abschl_grp +

                  +
                    +
                  1. abschluss_astat_bund
                  2. +
                  +
                    +
                      Wird benutzt in folgenden Masken: +
                    +
                    Tabelle k_astat_abschluss2steller (Amtl.Abschluss-Schlüssel (Bundesschlüssel))

                    @@ -3626,6 +3781,50 @@ art
                      Wird benutzt in folgenden Masken:
                    +Tabelle k_astat_staat_eu (Staaten nach EU-Mitgliedschaft) +
                    +

                    +

                    Typ: Schlüsseltabelle, Themenbereich: Studierende, Prüfungen

                    + + + + + + + + + + + + + + + + + + + + + + + + + +
                    FeldnameFeldtypGrößeDefaultNot NullBeschreibungKommentarFremdschlüssel
                    tidSERIAL4true
                    astatCHAR3true
                    euCHAR1falseEU-Mitglied?J=ja, N=nein
                    semester_vonINTEGER4false
                    semester_bisINTEGER4false
                    gueltig_vonDATE4false
                    gueltig_bisDATE4false
                    +

                    Primärschlüssel pk_k_astat_staat_eu +

                    +
                      +
                    1. tid
                    2. +
                    +
                      +
                    • Index: k_astat_staat_eu_idx1 auf k_astat_staat_eu (astat, +semester_von, +semester_bis ); +
                    • +
                    +
                      Wird benutzt in folgenden Masken: +
                    +
                    Tabelle k_astat_studienbereich (Amtl.Sudienbereich-Schlüssel (Bundesschlüssel))

                    @@ -3710,6 +3909,50 @@ art
                      Wird benutzt in folgenden Masken:
                    +Tabelle k_prio_param +
                    +

                    +

                    Typ: Schlüsseltabelle, Themenbereich: Administration

                    + + + + + + + + + + + + + +
                    FeldnameFeldtypGrößeDefaultNot NullBeschreibungKommentarFremdschlüssel
                    idSERIALtrueid
                    nameVARCHAR255Name der Priorität
                    sortorderVARCHAR255Sortierung der Priorität
                    +
                      +
                        Wird benutzt in folgenden Masken: +
                      +
                      +Tabelle k_source +
                      +

                      +

                      Typ: Schlüsseltabelle, Themenbereich: Administration

                      + + + + + + + + + + + + + +
                      FeldnameFeldtypGrößeDefaultNot NullBeschreibungKommentarFremdschlüssel
                      idSERIALtrueid
                      nameVARCHAR255Name des Quellsystems
                      sortorderVARCHAR255Sortierung des Quellsystems
                      +
                        +
                          Wird benutzt in folgenden Masken: +
                        +
                        Tabelle kern_cifx_neu

                        LAdetabelle für zentrale Stammdaten (derzeit Kostenstellen/Orgunits) durch HLR gefüllt

                        @@ -5036,7 +5279,7 @@ gueltig_bis ); sortnrINTEGER0trueSortiernummerkann für Sortierungen benutzt werden -quelleTEXT255falseQuelleAngabe einer Tabelle mit +quelleTEXTfalseQuelleAngabe einer Tabelle mit key,parent,name,gueltig_seit,gueltig_bis oder Prozedur, die mit sp_ anfängt @@ -5851,7 +6094,7 @@ gueltig_bis ); geaendert_amDATE4falseDatum letzte Änderung -aktivSMALLINT2falseAktiv (1,0) +aktivSMALLINT20trueAktiv (1,0) gueltig_seitDATE101.01.1900trueGültig von @@ -5948,6 +6191,9 @@ useragent
                        das default Ausgabeformatmenu_element : element
                        element_value : contenttype
                        +menu_element : element +
                        element_value : +contenttype
                        @@ -5974,6 +6220,9 @@ stylesheet_type
                        jr_datasource
                        + +uniquenameVARCHAR255falseEindeutige Identifizierung des Datensatzes +

                        Primärschlüssel c_stylesheets

                        @@ -6237,6 +6486,7 @@ jr_datasource
                        • Index: ix_tr_dim_bp_apnr auf trans_dim_bp_apnr (dimension_bp_id, +apnr, sourcesystem_id, systeminfo_id );
                        • @@ -6291,7 +6541,7 @@ systeminfo_id ); Tabelle unload_params (Entladeparameter)

                          Parameter zum Steuern des Entladevorgangs

                          -

                          Themenbereich: Administration

                          +

                          Typ: Datentabelle, Themenbereich: Administration

                          @@ -6552,7 +6802,7 @@ systeminfo_id ); - +
                          FeldnameFeldtypGrößeDefaultNot NullBeschreibungKommentarFremdschlüssel
                          external_entrySMALLINT0falseRecht wird von externem System (HisInOne) gesetzt und entferntexternal_entrySMALLINT0falseRecht wird von externem System (HISinOne) gesetzt und entfernt

                          Primärschlüssel c_user_group_bez @@ -6629,7 +6879,7 @@ systeminfo_id ); lehreSMALLINT0falseobsoletes Feld(Das Feld wird derzeit noch nicht ausgewertet.) -external_entrySMALLINT0falseRecht wird von externem System (HisInOne) gesetzt und entfernt +external_entrySMALLINT0falseRecht wird von externem System (HISinOne) gesetzt und entfernt externalidvarchar200falseID der berechtigten Kostenstelle in externem System (HISinONe: orgunitid) @@ -6685,7 +6935,7 @@ gueltig_bis ); gueltig_bisDATE401.01.3000falseGültig bis(Das Feld wird derzeit noch nicht ausgewertet.) -external_entrySMALLINT0falseRecht wird von externem System (HisInOne) gesetzt und entfernt +external_entrySMALLINT0falseRecht wird von externem System (HISinOne) gesetzt und entfernt externalidvarchar200falseID der berechtigten Kostenstelle in externem System (HISinONe: orgunitid) @@ -6727,7 +6977,7 @@ gueltig_bis ); -external_entrysmallint0falseRecht wird von externem System (HisInOne) gesetzt und entfernt +external_entrysmallint0falseRecht wird von externem System (HISinOne) gesetzt und entfernt

                          Primärschlüssel c_user_masken_bez @@ -6887,7 +7137,7 @@ gueltig_bis ); -external_entrysmallint0falseRecht wird von externem System (HisInOne) gesetzt und entfernt +external_entrysmallint0falseRecht wird von externem System (HISinOne) gesetzt und entfernt

                          Primärschlüssel c_user_sachgeb_bez @@ -6919,7 +7169,7 @@ gueltig_bis ); sichtartCHAR255trueRechte für eine Art von Sichten geben -external_entrysmallint0falseRecht wird von externem System (HisInOne) gesetzt und entfernt +external_entrysmallint0falseRecht wird von externem System (HISinOne) gesetzt und entfernt

                          Primärschlüssel pk_user_sichtart @@ -6953,7 +7203,7 @@ gueltig_bis ); -external_entrysmallint0falseRecht wird von externem System (HisInOne) gesetzt und entfernt +external_entrysmallint0falseRecht wird von externem System (HISinOne) gesetzt und entfernt

                          Primärschlüssel pk_user_sicht @@ -10514,8 +10764,10 @@ END FUNCTION;

                        • Maske Bericht Gruppenrahmen
                          Nummer 71440
                        • Maske Beschriftung suchen
                          Nummer 70170
                        • Maske BI-Datenbestand anzeigen
                          Nummer 71410
                        • +
                        • Maske Datenblatt archivieren
                          Nummer 71840
                        • Maske Datensieb erstellen
                          Nummer 71520
                        • Maske Download abrufen
                          Nummer 71180
                        • +
                        • Maske Downloads löschen
                          Nummer 71880
                        • Maske Downloadstatistik
                          Nummer 71200
                        • Maske Download suchen
                          Nummer 71190
                        • Maske Entladeparameter bearbeiten
                          Nummer 71260
                        • @@ -10552,6 +10804,7 @@ END FUNCTION;
                        • Maske Tabelle suchen
                          Nummer 71100
                        • Maske Test abhaengiger Felder
                          Nummer 71600
                        • Maske Themenbaum-Eintrag suchen
                          Nummer 71090
                        • +
                        • Maske Übersicht Datenblatt-Archiv
                          Nummer 71860
                        • Maske Uploadprotokoll
                          Nummer 71300
                        • Maske User einrichten
                          Nummer 70970
                        • Maske User-Institutionen
                          Nummer 70460
                        • @@ -10694,11 +10947,20 @@ END FUNCTION; k_astat_studienbereich
                          wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_studienbereich.unl
                        • +k_astat_faechergruppe +
                          wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_faechergruppe.unl
                        • +
                        • k_astat_staat
                          wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_staat.unl
                        • k_astat_kontinent
                          wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_kontinent.unl
                        • +
                        • +k_astat_abschl_grp +
                          wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_abschl_grp.unl
                        • +
                        • +k_astat_staat_eu +
                          wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_staat_eu.unl

                        Upgrade @@ -10727,6 +10989,15 @@ END FUNCTION; k_astat_kontinent
                        wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_kontinent.unl

                      • +k_astat_faechergruppe +
                        wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_faechergruppe.unl
                      • +
                      • +k_astat_abschl_grp +
                        wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_abschl_grp.unl
                      • +
                      • +k_astat_staat_eu +
                        wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_staat_eu.unl
                      • +
                      • dim_datum
                        wird geladen aus: $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/dim_datum.unl
                      • diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/kern.xml b/superx/WEB-INF/conf/edustore/db/install/conf/kern.xml index 432fbb6..a0194da 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/kern.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/kern.xml @@ -4270,14 +4270,6 @@ - - superx - superx - update_prot - tid - 1 - pk_update_prot_tid - @@ -5417,19 +5409,38 @@ k_astat_abschl_grp abschluss_astat_bund 1 - k_astat_abschl_grp + pk_k_astat_abschl_grp - - - - - - - +
                        + + + J=ja, N=nein + + + + + + + + + + + + + + superx + superx + k_astat_staat_eu + tid + 1 + pk_k_astat_staat_eu + +
                        @@ -10164,6 +10175,11 @@ where dimension_bp_id=(select D.tid from dimension_bp D where D.apnr='bluep_absc + + + @@ -10320,6 +10336,11 @@ gueltig_bis DATE + + + diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/kern_load.html b/superx/WEB-INF/conf/edustore/db/install/conf/kern_load.html index cd0b1ec..9780a42 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/kern_load.html +++ b/superx/WEB-INF/conf/edustore/db/install/conf/kern_load.html @@ -92,7 +92,7 @@ font-style:italic: - + diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/kern_mask_test_ant.xml b/superx/WEB-INF/conf/edustore/db/install/conf/kern_mask_test_ant.xml index 8a53ed1..f49164c 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/kern_mask_test_ant.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/kern_mask_test_ant.xml @@ -70,6 +70,14 @@ + + + + + + + + diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/module_alter_table_schema.x b/superx/WEB-INF/conf/edustore/db/install/conf/module_alter_table_schema.x index 953929b..d40b369 100755 --- a/superx/WEB-INF/conf/edustore/db/install/conf/module_alter_table_schema.x +++ b/superx/WEB-INF/conf/edustore/db/install/conf/module_alter_table_schema.x @@ -133,7 +133,14 @@ DOQUERY "alter table k_astat_abschluss3steller_land SET SCHEMA $SCHEMA;" DOQUERY "alter table k_astat_abschluss2steller SET SCHEMA $SCHEMA;" DOQUERY "alter table k_astat_studienbereich SET SCHEMA $SCHEMA;" DOQUERY "alter table k_astat_studienfach SET SCHEMA $SCHEMA;" -DOQUERY "alter table colorscheme SET SCHEMA $SCHEMA;" -DOQUERY "alter table sx_mail SET SCHEMA $SCHEMA;" DOQUERY "alter table k_astat_staat SET SCHEMA $SCHEMA;" DOQUERY "alter table k_astat_kontinent SET SCHEMA $SCHEMA;" +DOQUERY "alter table k_astat_faechergruppe SET SCHEMA $SCHEMA;" +DOQUERY "alter table k_astat_abschl_grp SET SCHEMA $SCHEMA;" +DOQUERY "alter table k_astat_staat_eu SET SCHEMA $SCHEMA;" +DOQUERY "alter table sx_mail SET SCHEMA $SCHEMA;" +DOQUERY "alter table colorscheme SET SCHEMA $SCHEMA;" +DOQUERY "alter table arch_table SET SCHEMA $SCHEMA;" +DOQUERY "alter table arch_datum SET SCHEMA $SCHEMA;" +DOQUERY "alter table k_prio_param SET SCHEMA $SCHEMA;" +DOQUERY "alter table k_source SET SCHEMA $SCHEMA;" diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/module_grant.x b/superx/WEB-INF/conf/edustore/db/install/conf/module_grant.x index 766ebb8..ef2af56 100755 --- a/superx/WEB-INF/conf/edustore/db/install/conf/module_grant.x +++ b/superx/WEB-INF/conf/edustore/db/install/conf/module_grant.x @@ -427,11 +427,15 @@ DOQUERY "grant $RIGHT on k_astat_abschluss3steller_land to $GRANTEE;" DOQUERY "grant $RIGHT on k_astat_abschluss2steller to $GRANTEE;" DOQUERY "grant $RIGHT on k_astat_studienbereich to $GRANTEE;" DOQUERY "grant $RIGHT on k_astat_studienfach to $GRANTEE;" -DOQUERY "grant $RIGHT on colorscheme to $GRANTEE;" +DOQUERY "grant $RIGHT on k_astat_staat to $GRANTEE;" +DOQUERY "grant $RIGHT on k_astat_kontinent to $GRANTEE;" +DOQUERY "grant $RIGHT on k_astat_faechergruppe to $GRANTEE;" +DOQUERY "grant $RIGHT on k_astat_abschl_grp to $GRANTEE;" +DOQUERY "grant $RIGHT on k_astat_staat_eu to $GRANTEE;" if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] then -DOQUERY "grant update on colorscheme_id_seq to $GRANTEE;" +DOQUERY "grant update on k_astat_staat_eu_tid_seq to $GRANTEE;" fi DOQUERY "grant $RIGHT on sx_mail to $GRANTEE;" @@ -441,8 +445,35 @@ if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] DOQUERY "grant update on sx_mail_tid_seq to $GRANTEE;" fi -DOQUERY "grant $RIGHT on k_astat_staat to $GRANTEE;" -DOQUERY "grant $RIGHT on k_astat_kontinent to $GRANTEE;" +DOQUERY "grant $RIGHT on colorscheme to $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "grant update on colorscheme_id_seq to $GRANTEE;" +fi + +DOQUERY "grant $RIGHT on arch_table to $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "grant update on arch_table_id_seq to $GRANTEE;" +fi + +DOQUERY "grant $RIGHT on arch_datum to $GRANTEE;" +DOQUERY "grant $RIGHT on k_prio_param to $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "grant update on k_prio_param_id_seq to $GRANTEE;" +fi + +DOQUERY "grant $RIGHT on k_source to $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "grant update on k_source_id_seq to $GRANTEE;" +fi + #Besonderheit Kernmodul: #Zum Login braucht man Update Rechte auf einzelne Tabellen:" diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/module_metadata.sql b/superx/WEB-INF/conf/edustore/db/install/conf/module_metadata.sql index 8de4b2e..acc03ed 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/module_metadata.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/module_metadata.sql @@ -2,7 +2,7 @@ --SQL Script automatisch generiert von SuperX module_upgrade.xsl delete from db_version where his_system='kern'; -insert into db_version (his_system,version,systeminfo_id) values('kern','5.0',9); +insert into db_version (his_system,version,systeminfo_id) values('kern','5.1b',9); CREATE temp TABLE tmp_db_forms ( @@ -30,13 +30,13 @@ values ('felderinfo','felderinfo','/edit/kern/felderinfo_edit.jsp','Felderinfo v insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('systeminfo','systeminfo','/edit/kern/systeminfo_edit.jsp','Systeminfo verwalten'::varchar(200),'In diesem Formular können Sie Quellsysteme verwalten.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('user_masken_bez','user_masken_bez','/edit/kern/user_masken_bez_edit.jsp','Maskenrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Masken geben.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('themenbaum_edit','themenbaum','/edit/kern/themenbaum_edit.jsp','Themenbaum'::varchar(200),'In diesem Formular können Sie den Themenbaum bearbeiten. Bitte beachten Sie: bei Änderungen muss der Themenbaum neu geladen werden (SuperXManager)'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/module_revoke.x b/superx/WEB-INF/conf/edustore/db/install/conf/module_revoke.x index 452db8a..6779b0e 100755 --- a/superx/WEB-INF/conf/edustore/db/install/conf/module_revoke.x +++ b/superx/WEB-INF/conf/edustore/db/install/conf/module_revoke.x @@ -427,11 +427,15 @@ DOQUERY "revoke $RIGHT on k_astat_abschluss3steller_land from $GRANTEE;" DOQUERY "revoke $RIGHT on k_astat_abschluss2steller from $GRANTEE;" DOQUERY "revoke $RIGHT on k_astat_studienbereich from $GRANTEE;" DOQUERY "revoke $RIGHT on k_astat_studienfach from $GRANTEE;" -DOQUERY "revoke $RIGHT on colorscheme from $GRANTEE;" +DOQUERY "revoke $RIGHT on k_astat_staat from $GRANTEE;" +DOQUERY "revoke $RIGHT on k_astat_kontinent from $GRANTEE;" +DOQUERY "revoke $RIGHT on k_astat_faechergruppe from $GRANTEE;" +DOQUERY "revoke $RIGHT on k_astat_abschl_grp from $GRANTEE;" +DOQUERY "revoke $RIGHT on k_astat_staat_eu from $GRANTEE;" if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] then -DOQUERY "revoke update on colorscheme_id_seq from $GRANTEE;" +DOQUERY "revoke update on k_astat_staat_eu_tid_seq from $GRANTEE;" fi DOQUERY "revoke $RIGHT on sx_mail from $GRANTEE;" @@ -441,8 +445,35 @@ if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] DOQUERY "revoke update on sx_mail_tid_seq from $GRANTEE;" fi -DOQUERY "revoke $RIGHT on k_astat_staat from $GRANTEE;" -DOQUERY "revoke $RIGHT on k_astat_kontinent from $GRANTEE;" +DOQUERY "revoke $RIGHT on colorscheme from $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "revoke update on colorscheme_id_seq from $GRANTEE;" +fi + +DOQUERY "revoke $RIGHT on arch_table from $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "revoke update on arch_table_id_seq from $GRANTEE;" +fi + +DOQUERY "revoke $RIGHT on arch_datum from $GRANTEE;" +DOQUERY "revoke $RIGHT on k_prio_param from $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "revoke update on k_prio_param_id_seq from $GRANTEE;" +fi + +DOQUERY "revoke $RIGHT on k_source from $GRANTEE;" + +if [ "$DATABASE" == "POSTGRES" -a "$RIGHT" != "select" ] + then +DOQUERY "revoke update on k_source_id_seq from $GRANTEE;" +fi + #Views: DOQUERY "revoke $RIGHT on user_groups from $GRANTEE;" DOQUERY "revoke $RIGHT on menu_element_fieldmode from $GRANTEE;" diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_fuellen.sql b/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_fuellen.sql index 58fd080..3481b8d 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_fuellen.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_fuellen.sql @@ -210,6 +210,226 @@ values('aggregierung', 0, 1); +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_datum', +'arch_table', +'Name der archivierten Tabelle', +'', +'VARCHAR', +'255', +1, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_datum', +'datum', +'Archivierungsdatum und -uhrzeit', +'', +'DATETIME', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_datum', +'bezugszeit_von', +'Bezugszeit (von) der archivierten Daten', +'', +'INTEGER', +'', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_datum', +'bezugszeit_bis', +'Bezugszeit (bis) der archivierten Daten', +'', +'INTEGER', +'', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_datum', +'bezugsart', +'Bezugsart (Semester S, Akad. Jahr A,Jahr J, Quartal Q, Monat M)', +'', +'CHAR', +'1', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_datum', +'userinfo_id', +'Userinfo ID', +'', +'INTEGER', +'', +1, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_datum', +'kommentar', +'Kommentar zur Archivierung', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_table', +'id', +'id', +'', +'SERIAL', +'', +1, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_table', +'name', +'Name der archivierten Tabelle', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('arch_table', +'zeitfeld', +'Feld für die Zeitangabe', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + insert into tmp_fields ( table_name, name, @@ -2368,7 +2588,7 @@ values('db_version', 'version_hash', '', 'VARCHAR', -'32', +'', 0, 1, 0, @@ -5645,8 +5865,8 @@ values('felderinfo', 'defaultwert', 'defaultwert', '', -'CHAR', -'255', +'TEXT', +'', 0, 1, 0, @@ -6582,7 +6802,7 @@ is_sum) values('hisinone_deleted_entity', 'entity', 'entity', -'Entiy-Klasse des gelöschten Objekts in HisInOne', +'Entiy-Klasse des gelöschten Objekts in HISinOne', 'VARCHAR', '255', 0, @@ -6648,7 +6868,7 @@ is_sum) values('hisinone_deleted_entity', 'job', 'job', -'Job-Ausführung in HisInOne von der Delete-Event ausgelöst wird', +'Job-Ausführung in HISinOne von der Delete-Event ausgelöst wird', 'VARCHAR', '255', 0, @@ -6907,6 +7127,97 @@ values('implicit_orgunit_rights', 0, 1); +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_abschl_grp', +'abschluss_astat_bund', +'Abschluss (Bundesschlüssel)', +'', +'VARCHAR', +'255', +1, +1, +0, +1); + +update tmp_fields set is_primarykey=1 +where trim(table_name) || '_' || trim(name) ='k_astat_abschl_grp_abschluss_astat_bund'; + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_abschl_grp', +'abschluss_astat_bund_ktxt', +'Abschluss (Bundesschlüssel) Kurztext', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_abschl_grp', +'abschlussart', +'Abschlussart', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_abschl_grp', +'abschluss_grp', +'Abschlussgruppe', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + insert into tmp_fields ( table_name, name, @@ -7149,6 +7460,50 @@ values('k_astat_abschluss3steller_land', 0, 1); +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_faechergruppe', +'schluessel', +'Schlüssel', +'', +'VARCHAR', +'255', +1, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_faechergruppe', +'name', +'Name', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + insert into tmp_fields ( table_name, name, @@ -7207,13 +7562,173 @@ field_not_null, currentlyUsed, check_integrity, is_sum) -values('k_astat_kontinent', -'name', -'Name', +values('k_astat_kontinent', +'name', +'Name', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_staat', +'schluessel', +'Schlüssel', +'', +'INTEGER', +'255', +1, +1, +0, +1); + +update tmp_fields set is_primarykey=1 +where trim(table_name) || '_' || trim(name) ='k_astat_staat_schluessel'; + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_staat', +'nummer', +'Nummer', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_staat', +'name', +'Name', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_staat', +'kennz', +'Kennzeichen', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_staat', +'kontinent', +'Kontinent', +'', +'INTEGER', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_staat_eu', +'tid', +'tid', +'', +'SERIAL', +'4', +1, +1, +0, +1); + +update tmp_fields set is_primarykey=1 +where trim(table_name) || '_' || trim(name) ='k_astat_staat_eu_tid'; + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_astat_staat_eu', +'astat', +'astat', '', -'VARCHAR', -'255', -0, +'CHAR', +'3', +1, 1, 0, 1); @@ -7229,20 +7744,17 @@ field_not_null, currentlyUsed, check_integrity, is_sum) -values('k_astat_staat', -'schluessel', -'Schlüssel', -'', -'INTEGER', -'255', -1, +values('k_astat_staat_eu', +'eu', +'EU-Mitglied?', +'J=ja, N=nein', +'CHAR', +'1', +0, 1, 0, 1); -update tmp_fields set is_primarykey=1 -where trim(table_name) || '_' || trim(name) ='k_astat_staat_schluessel'; - insert into tmp_fields ( table_name, name, @@ -7254,12 +7766,12 @@ field_not_null, currentlyUsed, check_integrity, is_sum) -values('k_astat_staat', -'nummer', -'Nummer', +values('k_astat_staat_eu', +'semester_von', +'semester_von', '', -'VARCHAR', -'255', +'INTEGER', +'4', 0, 1, 0, @@ -7276,12 +7788,12 @@ field_not_null, currentlyUsed, check_integrity, is_sum) -values('k_astat_staat', -'name', -'Name', +values('k_astat_staat_eu', +'semester_bis', +'semester_bis', '', -'VARCHAR', -'255', +'INTEGER', +'4', 0, 1, 0, @@ -7298,12 +7810,12 @@ field_not_null, currentlyUsed, check_integrity, is_sum) -values('k_astat_staat', -'kennz', -'Kennzeichen', +values('k_astat_staat_eu', +'gueltig_von', +'gueltig_von', '', -'VARCHAR', -'255', +'DATE', +'4', 0, 1, 0, @@ -7320,12 +7832,12 @@ field_not_null, currentlyUsed, check_integrity, is_sum) -values('k_astat_staat', -'kontinent', -'Kontinent', +values('k_astat_staat_eu', +'gueltig_bis', +'gueltig_bis', '', -'INTEGER', -'255', +'DATE', +'4', 0, 1, 0, @@ -7661,6 +8173,138 @@ values('k_astat_studienfach_land', 0, 1); +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_prio_param', +'id', +'id', +'', +'SERIAL', +'', +1, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_prio_param', +'name', +'Name der Priorität', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_prio_param', +'sortorder', +'Sortierung der Priorität', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_source', +'id', +'id', +'', +'SERIAL', +'', +1, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_source', +'name', +'Name des Quellsystems', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('k_source', +'sortorder', +'Sortierung des Quellsystems', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + insert into tmp_fields ( table_name, name, @@ -13022,7 +13666,7 @@ values('sichten', 'Quelle', 'Angabe einer Tabelle mit key,parent,name,gueltig_seit,gueltig_bis oder Prozedur, die mit sp_ anfängt', 'TEXT', -'255', +'', 0, 1, 0, @@ -16756,7 +17400,7 @@ values('sx_repository', '', 'SMALLINT', '2', -0, +1, 1, 0, 1); @@ -17115,6 +17759,10 @@ update tmp_fields set foreignkey_cond='''contenttype''=menu_element.element' where trim(table_name) || '_' || trim(name) ='sx_stylesheets_contenttype' and trim(foreignkey_tab) = 'menu_element'; +update tmp_fields set foreignkey_cond='''contenttype''=menu_element.element' +where trim(table_name) || '_' || trim(name) ='sx_stylesheets_contenttype' +and trim(foreignkey_tab) = 'menu_element'; + insert into tmp_fields ( table_name, name, @@ -17237,6 +17885,28 @@ update tmp_fields set foreignkey_cond='''jr_datasource''=menu_element.element' where trim(table_name) || '_' || trim(name) ='sx_stylesheets_jr_datasource' and trim(foreignkey_tab) = 'menu_element'; +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('sx_stylesheets', +'uniquename', +'Eindeutige Identifizierung des Datensatzes', +'', +'VARCHAR', +'255', +0, +1, +0, +1); + insert into tmp_fields ( table_name, name, @@ -19494,7 +20164,7 @@ check_integrity, is_sum) values('user_group_bez', 'external_entry', -'Recht wird von externem System (HisInOne) gesetzt und entfernt', +'Recht wird von externem System (HISinOne) gesetzt und entfernt', '', 'SMALLINT', '', @@ -19744,7 +20414,7 @@ check_integrity, is_sum) values('user_institution', 'external_entry', -'Recht wird von externem System (HisInOne) gesetzt und entfernt', +'Recht wird von externem System (HISinOne) gesetzt und entfernt', '', 'SMALLINT', '', @@ -19904,7 +20574,7 @@ check_integrity, is_sum) values('user_kostentraeger', 'external_entry', -'Recht wird von externem System (HisInOne) gesetzt und entfernt', +'Recht wird von externem System (HISinOne) gesetzt und entfernt', '', 'SMALLINT', '', @@ -20010,7 +20680,7 @@ check_integrity, is_sum) values('user_masken_bez', 'external_entry', -'Recht wird von externem System (HisInOne) gesetzt und entfernt', +'Recht wird von externem System (HISinOne) gesetzt und entfernt', '', 'smallint', '', @@ -20593,7 +21263,7 @@ check_integrity, is_sum) values('user_sachgeb_bez', 'external_entry', -'Recht wird von externem System (HisInOne) gesetzt und entfernt', +'Recht wird von externem System (HISinOne) gesetzt und entfernt', '', 'smallint', '', @@ -20671,7 +21341,7 @@ check_integrity, is_sum) values('user_sichtarten', 'external_entry', -'Recht wird von externem System (HisInOne) gesetzt und entfernt', +'Recht wird von externem System (HISinOne) gesetzt und entfernt', '', 'smallint', '', @@ -20755,7 +21425,7 @@ check_integrity, is_sum) values('user_sichten', 'external_entry', -'Recht wird von externem System (HisInOne) gesetzt und entfernt', +'Recht wird von externem System (HISinOne) gesetzt und entfernt', '', 'smallint', '', @@ -21499,6 +22169,50 @@ values('userinfo', 0, 1); +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('userinfo', +'gueltig_von', +'Beginn Gültigkeit', +'', +'date', +'', +0, +1, +0, +1); + +insert into tmp_fields ( +table_name, +name, +caption, +description, +field_type, +field_size, +field_not_null, +currentlyUsed, +check_integrity, +is_sum) +values('userinfo', +'gueltig_bis', +'Ende Gültigkeit', +'', +'date', +'', +0, +1, +0, +1); + insert into tmp_fields ( table_name, name, diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_loeschen.sql b/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_loeschen.sql index e57a9d2..aecb023 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_loeschen.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/sx_fields_loeschen.sql @@ -78,6 +78,66 @@ name) values('aggregierung', 'wert'); +insert into tmp_fields ( +table_name, +name) +values('arch_datum', +'arch_table'); + +insert into tmp_fields ( +table_name, +name) +values('arch_datum', +'datum'); + +insert into tmp_fields ( +table_name, +name) +values('arch_datum', +'bezugszeit_von'); + +insert into tmp_fields ( +table_name, +name) +values('arch_datum', +'bezugszeit_bis'); + +insert into tmp_fields ( +table_name, +name) +values('arch_datum', +'bezugsart'); + +insert into tmp_fields ( +table_name, +name) +values('arch_datum', +'userinfo_id'); + +insert into tmp_fields ( +table_name, +name) +values('arch_datum', +'kommentar'); + +insert into tmp_fields ( +table_name, +name) +values('arch_table', +'id'); + +insert into tmp_fields ( +table_name, +name) +values('arch_table', +'name'); + +insert into tmp_fields ( +table_name, +name) +values('arch_table', +'zeitfeld'); + insert into tmp_fields ( table_name, name) @@ -1842,6 +1902,30 @@ name) values('implicit_orgunit_rights', 'lid'); +insert into tmp_fields ( +table_name, +name) +values('k_astat_abschl_grp', +'abschluss_astat_bund'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_abschl_grp', +'abschluss_astat_bund_ktxt'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_abschl_grp', +'abschlussart'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_abschl_grp', +'abschluss_grp'); + insert into tmp_fields ( table_name, name) @@ -1908,6 +1992,18 @@ name) values('k_astat_abschluss3steller_land', 'keybund'); +insert into tmp_fields ( +table_name, +name) +values('k_astat_faechergruppe', +'schluessel'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_faechergruppe', +'name'); + insert into tmp_fields ( table_name, name) @@ -1956,6 +2052,48 @@ name) values('k_astat_staat', 'kontinent'); +insert into tmp_fields ( +table_name, +name) +values('k_astat_staat_eu', +'tid'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_staat_eu', +'astat'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_staat_eu', +'eu'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_staat_eu', +'semester_von'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_staat_eu', +'semester_bis'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_staat_eu', +'gueltig_von'); + +insert into tmp_fields ( +table_name, +name) +values('k_astat_staat_eu', +'gueltig_bis'); + insert into tmp_fields ( table_name, name) @@ -2046,6 +2184,42 @@ name) values('k_astat_studienfach_land', 'keybund'); +insert into tmp_fields ( +table_name, +name) +values('k_prio_param', +'id'); + +insert into tmp_fields ( +table_name, +name) +values('k_prio_param', +'name'); + +insert into tmp_fields ( +table_name, +name) +values('k_prio_param', +'sortorder'); + +insert into tmp_fields ( +table_name, +name) +values('k_source', +'id'); + +insert into tmp_fields ( +table_name, +name) +values('k_source', +'name'); + +insert into tmp_fields ( +table_name, +name) +values('k_source', +'sortorder'); + insert into tmp_fields ( table_name, name) @@ -4554,6 +4728,12 @@ name) values('sx_stylesheets', 'jr_datasource'); +insert into tmp_fields ( +table_name, +name) +values('sx_stylesheets', +'uniquename'); + insert into tmp_fields ( table_name, name) @@ -5658,6 +5838,18 @@ name) values('userinfo', 'extern_role_id'); +insert into tmp_fields ( +table_name, +name) +values('userinfo', +'gueltig_von'); + +insert into tmp_fields ( +table_name, +name) +values('userinfo', +'gueltig_bis'); + insert into tmp_fields ( table_name, name) diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/sx_tables_fuellen.sql b/superx/WEB-INF/conf/edustore/db/install/conf/sx_tables_fuellen.sql index e55f9d8..1d12262 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/sx_tables_fuellen.sql +++ b/superx/WEB-INF/conf/edustore/db/install/conf/sx_tables_fuellen.sql @@ -31,6 +31,22 @@ values('aggregierung','','Modulübergreifende Tabelle für Aggregierungen in 'Administration', 0); +insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) +values('arch_datum','','', +'Datentabelle', +9, +9, +'Administration', +0); + +insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) +values('arch_table','','', +'Schlüsseltabelle', +9, +9, +'Administration', +0); + insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) values('cif','','', 'Schlüsseltabelle', @@ -56,7 +72,7 @@ values('cifx_customize','','', 0); insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) -values('colorscheme','','', +values('colorscheme','Farbschema','Farbschema für Diagramm in BI-Analysen festlegen', 'Schlüsseltabelle', 9, 9, @@ -343,6 +359,14 @@ values('implicit_orgunit_rights','','Schlüsseltabelle für LiveMapping', 'Administration', 0); +insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) +values('k_astat_abschl_grp','Amtl.Abschlüsse (Bundesschlüssel) und Gruppen','', +'Schlüsseltabelle', +9, +9, +'Stammdaten verwalten', +0); + insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) values('k_astat_abschluss2steller','Amtl.Abschluss-Schlüssel (Bundesschlüssel)','', 'Schlüsseltabelle', @@ -359,6 +383,14 @@ values('k_astat_abschluss3steller_land','Amtl.Abschluss-Schlüssel (Land) zu Bun 'Stammdaten verwalten', 0); +insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) +values('k_astat_faechergruppe','Amtl.Fächergruppen-Schlüssel (Bundesschlüssel)','', +'Schlüsseltabelle', +9, +9, +'Stammdaten verwalten', +0); + insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) values('k_astat_kontinent','Kontinent-Schlüssel (Bundesschlüssel)','', 'Schlüsseltabelle', @@ -375,6 +407,14 @@ values('k_astat_staat','Amtl.Staaten-Schlüssel (Bundesschlüssel)','', 'Stammdaten verwalten', 0); +insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) +values('k_astat_staat_eu','Staaten nach EU-Mitgliedschaft','', +'Schlüsseltabelle', +9, +9, +'Studierende, Prüfungen', +0); + insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) values('k_astat_studienbereich','Amtl.Sudienbereich-Schlüssel (Bundesschlüssel)','', 'Schlüsseltabelle', @@ -399,6 +439,22 @@ values('k_astat_studienfach_land','Amtl.Fächerschlüssel (Land) zu Bundesschlü 'Stammdaten verwalten', 0); +insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) +values('k_prio_param','','', +'Schlüsseltabelle', +9, +9, +'Administration', +0); + +insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) +values('k_source','','', +'Schlüsseltabelle', +9, +9, +'Administration', +0); + insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) values('kern_cifx_neu','','LAdetabelle für zentrale Stammdaten (derzeit Kostenstellen/Orgunits) durch HLR gefüllt', 'Datentabelle', @@ -865,7 +921,7 @@ values('trans_inst','','Tabelle zur Umschlüsselung von Kostenstellen-Nummern insert into tmp_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) values('unload_params','Entladeparameter','Parameter zum Steuern des Entladevorgangs', -'', +'Datentabelle', 9, 9, 'Administration', @@ -1185,13 +1241,13 @@ values ('felderinfo','felderinfo','/edit/kern/felderinfo_edit.jsp','Felderinfo v insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('systeminfo','systeminfo','/edit/kern/systeminfo_edit.jsp','Systeminfo verwalten'::varchar(200),'In diesem Formular können Sie Quellsysteme verwalten.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('user_masken_bez','user_masken_bez','/edit/kern/user_masken_bez_edit.jsp','Maskenrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Masken geben.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('themenbaum_edit','themenbaum','/edit/kern/themenbaum_edit.jsp','Themenbaum'::varchar(200),'In diesem Formular können Sie den Themenbaum bearbeiten. Bitte beachten Sie: bei Änderungen muss der Themenbaum neu geladen werden (SuperXManager)'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_backup.x b/superx/WEB-INF/conf/edustore/db/install/kern_backup.x index b4e1a67..89e942d 100755 --- a/superx/WEB-INF/conf/edustore/db/install/kern_backup.x +++ b/superx/WEB-INF/conf/edustore/db/install/kern_backup.x @@ -67,7 +67,7 @@ DOQUERY "select tid, name, select_stmt, xil_proplist, chart_xtitel, chart_ytitel DOQUERY "select proto_fkt_id, proto_fkt from proto_funktion;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/proto_funktion.unl txt DOQUERY "select tid, name, datum from systeminfo;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/systeminfo.unl txt DOQUERY "select tid, arbeitsverzeichnis from user_einstellungen;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/user_einstellungen.unl txt -DOQUERY "select tid, benutzer, kennwort, name, max_versuch, akt_versuch, email, administration, archiv_recht, passwd_sha, info, extern_account_id, extern_person_id, sieht_projekte, extern_role_id from userinfo;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/userinfo.unl txt +DOQUERY "select tid, benutzer, kennwort, name, max_versuch, akt_versuch, email, administration, archiv_recht, passwd_sha, info, extern_account_id, extern_person_id, sieht_projekte, extern_role_id, gueltig_von, gueltig_bis from userinfo;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/userinfo.unl txt DOQUERY "select tid, name, maskeninfo_id, parent, gueltig_seit, gueltig_bis, erlaeuterung, sort, css_class from themenbaum;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/themenbaum.unl txt DOQUERY "select tid, name, maskeninfo_id, parent, gueltig_seit, gueltig_bis, erlaeuterung from themenbaum_bak;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/themenbaum_bak.unl txt DOQUERY "select aktuell from nachricht;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/nachricht.unl txt @@ -83,7 +83,7 @@ DOQUERY "select protokoll_id, proto_fkt_id, userinfo_id, ip_adresse, client_name DOQUERY "select tid, instnr, ch110_institut, name, gueltig_von, gueltig_bis, systeminfo_id from trans_inst;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/trans_inst.unl txt DOQUERY "select tid, apnr, beschreibung, defaultvalue, description, systeminfo_id, sachgebiete_id, doku_link, read_only, wertebereich, ab_version, gruppe, priority, sourcesystem from konstanten;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/konstanten.unl txt DOQUERY "select key_apnr, parent, drucktext, lehr, gueltig_seit, gueltig_bis from lehreinheit_inst;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/lehreinheit_inst.unl txt -DOQUERY "select tid, filename, caption, description, relation, useragent, contenttype, is_generic, toolbar_icon_filepath, usage_resultset_data, stylesheet_type, jr_datasource from sx_stylesheets;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/sx_stylesheets.unl txt +DOQUERY "select tid, filename, caption, description, relation, useragent, contenttype, is_generic, toolbar_icon_filepath, usage_resultset_data, stylesheet_type, jr_datasource, uniquename from sx_stylesheets;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/sx_stylesheets.unl txt DOQUERY "select tid, maskeninfo_id, stylesheet_id, ord from sx_mask_style;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/sx_mask_style.unl txt DOQUERY "select tid, stylesheet_id, param_name, default_val, description, wertebereich from sx_stylesheet_param;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/sx_stylesheet_param.unl txt DOQUERY "select tid, id, table_name, field_name, record_no, locale, contents_short, contents_long, equalitystatus, sachgebiete_id, doku_link, export_to_glossar from sx_captions;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/sx_captions.unl txt @@ -151,10 +151,17 @@ DOQUERY "select schluessel, gueltig_ab, land, version, sortkey, gueltig_bis, nam DOQUERY "select schluessel, name from k_astat_abschluss2steller;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_astat_abschluss2steller.unl txt DOQUERY "select schluessel, name, fgr from k_astat_studienbereich;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_astat_studienbereich.unl txt DOQUERY "select schluessel, name, sb from k_astat_studienfach;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_astat_studienfach.unl txt -DOQUERY "select id, caption, sortorder, colors from colorscheme;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/colorscheme.unl txt -DOQUERY "select tid, pop3_host, pop3_port, pop3_starttls_enable, smtp_host, smtp_port, smtp_auth, smtp_starttls_enable, username, password, userinfo_id, type, daemon1, daemon1_interval, daemon1_loglevel, daemon2, daemon2_interval, daemon3, daemon3_interval from sx_mail;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/sx_mail.unl txt DOQUERY "select schluessel, nummer, name, kennz, kontinent from k_astat_staat;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_astat_staat.unl txt DOQUERY "select schluessel, nummer, name from k_astat_kontinent;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_astat_kontinent.unl txt +DOQUERY "select schluessel, name from k_astat_faechergruppe;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_astat_faechergruppe.unl txt +DOQUERY "select abschluss_astat_bund, abschluss_astat_bund_ktxt, abschlussart, abschluss_grp from k_astat_abschl_grp;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_astat_abschl_grp.unl txt +DOQUERY "select tid, astat, eu, semester_von, semester_bis, gueltig_von, gueltig_bis from k_astat_staat_eu;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_astat_staat_eu.unl txt +DOQUERY "select tid, pop3_host, pop3_port, pop3_starttls_enable, smtp_host, smtp_port, smtp_auth, smtp_starttls_enable, username, password, userinfo_id, type, daemon1, daemon1_interval, daemon1_loglevel, daemon2, daemon2_interval, daemon3, daemon3_interval from sx_mail;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/sx_mail.unl txt +DOQUERY "select id, caption, sortorder, colors from colorscheme;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/colorscheme.unl txt +DOQUERY "select id, name, zeitfeld from arch_table;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/arch_table.unl txt +DOQUERY "select arch_table, datum, bezugszeit_von, bezugszeit_bis, bezugsart, userinfo_id, kommentar from arch_datum;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/arch_datum.unl txt +DOQUERY "select id, name, sortorder from k_prio_param;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_prio_param.unl txt +DOQUERY "select id, name, sortorder from k_source;" false $DBDELIMITER ${BACKUP_PFAD_INDIVIDUELL_MODULE}/k_source.unl txt echo "Finished unloading" diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_drop_pg.sql b/superx/WEB-INF/conf/edustore/db/install/kern_drop_pg.sql index 931fa03..1ceb956 100644 --- a/superx/WEB-INF/conf/edustore/db/install/kern_drop_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/kern_drop_pg.sql @@ -200,10 +200,17 @@ drop table if exists k_astat_abschluss3steller_land cascade; drop table if exists k_astat_abschluss2steller cascade; drop table if exists k_astat_studienbereich cascade; drop table if exists k_astat_studienfach cascade; -drop table if exists colorscheme cascade; -drop table if exists sx_mail cascade; drop table if exists k_astat_staat cascade; drop table if exists k_astat_kontinent cascade; +drop table if exists k_astat_faechergruppe cascade; +drop table if exists k_astat_abschl_grp cascade; +drop table if exists k_astat_staat_eu cascade; +drop table if exists sx_mail cascade; +drop table if exists colorscheme cascade; +drop table if exists arch_table cascade; +drop table if exists arch_datum cascade; +drop table if exists k_prio_param cascade; +drop table if exists k_source cascade; select now(), 'Uninstall-Actions'; diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_indexes_drop.sql b/superx/WEB-INF/conf/edustore/db/install/kern_indexes_drop.sql index 2d10a1c..c47570d 100644 --- a/superx/WEB-INF/conf/edustore/db/install/kern_indexes_drop.sql +++ b/superx/WEB-INF/conf/edustore/db/install/kern_indexes_drop.sql @@ -9,6 +9,7 @@ drop index ix_group_felder2 ; drop index cif_ind ; drop index cifx_ind ; drop index cifx_ind2 ; + drop index cifx_ind3 ; drop index trans_cifx_ind ; drop index trans_cif_ind ; drop index i_userinfo ; @@ -46,4 +47,5 @@ drop index ix_group_felder2 ; drop index ix_implicit_orgrights1 ; drop index ix_dim_datum_day_date ; drop index ix_etl_job1 ; + drop index k_astat_staat_eu_idx1 ; \ No newline at end of file diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_indexes_pg.sql b/superx/WEB-INF/conf/edustore/db/install/kern_indexes_pg.sql index 6dbb8bb..5a3cbec 100644 --- a/superx/WEB-INF/conf/edustore/db/install/kern_indexes_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/kern_indexes_pg.sql @@ -59,6 +59,12 @@ select now(), 'Erzeuge Index cifx_ind2'; create index cifx_ind2 on cifx (uniquename ); +select now(), 'Erzeuge Index cifx_ind3'; + +create index cifx_ind3 on cifx (key, +apnr ); + + select now(), 'Erzeuge Index trans_cifx_ind'; create index trans_cifx_ind on trans_cifx (sourcesystem_id ); @@ -231,6 +237,7 @@ key ); select now(), 'Erzeuge Index ix_tr_dim_bp_apnr'; create index ix_tr_dim_bp_apnr on trans_dim_bp_apnr (dimension_bp_id, +apnr, sourcesystem_id, systeminfo_id ); @@ -258,3 +265,10 @@ create index ix_dim_datum_day_date on dim_datum (day_date ); select now(), 'Erzeuge Index ix_etl_job1'; create unique index ix_etl_job1 on etl_job (uniquename ); + + +select now(), 'Erzeuge Index k_astat_staat_eu_idx1'; + +create index k_astat_staat_eu_idx1 on k_astat_staat_eu (astat, +semester_von, +semester_bis ); diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_install_pg.sql b/superx/WEB-INF/conf/edustore/db/install/kern_install_pg.sql index ba99332..d53d4cf 100644 --- a/superx/WEB-INF/conf/edustore/db/install/kern_install_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/kern_install_pg.sql @@ -162,7 +162,7 @@ create table db_version( his_system VARCHAR(255) , version CHAR(8) , kern_system CHAR(1) , -version_hash VARCHAR(32) , +version_hash VARCHAR() , systeminfo_id INTEGER , constraint c_db_version primary key (his_system, version) @@ -411,7 +411,7 @@ external_entry smallint default 0 , -comment on column user_masken_bez.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_masken_bez.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; select now(), 'Tabelle user_masken_bez erzeugt'; @@ -431,7 +431,7 @@ external_entry smallint default 0 , -comment on column user_sachgeb_bez.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_sachgeb_bez.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; select now(), 'Tabelle user_sachgeb_bez erzeugt'; @@ -583,7 +583,7 @@ comment on column user_group_bez.userinfo_id is 'UserID'; comment on column user_group_bez.groupinfo_id is 'Gruppe'; -comment on column user_group_bez.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_group_bez.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; select now(), 'Tabelle user_group_bez erzeugt'; @@ -761,6 +761,12 @@ select now(), 'Erzeuge Index cifx_ind2'; create index cifx_ind2 on cifx (uniquename ); +select now(), 'Erzeuge Index cifx_ind3'; + +create index cifx_ind3 on cifx (key, +apnr ); + + select now(), 'Tabelle cifx erzeugt'; @@ -877,7 +883,7 @@ obligatorisch INTEGER , art INTEGER , relation text , attribut CHAR(100) , -defaultwert CHAR(255) , +defaultwert TEXT , constraint c_felderinfo primary key (tid) ) @@ -1047,6 +1053,8 @@ extern_account_id VARCHAR(255) , extern_person_id VARCHAR(255) , sieht_projekte SMALLINT default 0 , extern_role_id INTEGER , +gueltig_von date , +gueltig_bis date , constraint c_userinfo primary key (tid) ) @@ -1056,6 +1064,10 @@ extern_role_id INTEGER , comment on column userinfo.sieht_projekte is 'Darf der User Projekte sehen'; +comment on column userinfo.gueltig_von is 'Beginn Gültigkeit'; + +comment on column userinfo.gueltig_bis is 'Ende Gültigkeit'; + select now(), 'Erzeuge Index i_userinfo'; @@ -1368,7 +1380,7 @@ comment on column user_institution.gueltig_bis is 'Gültig bis'; comment on column user_institution.lehre is 'obsoletes Feld'; -comment on column user_institution.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_institution.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; comment on column user_institution.externalid is 'ID der berechtigten Kostenstelle in externem System (HISinONe: orgunitid)'; @@ -1472,7 +1484,7 @@ comment on column user_kostentraeger.gueltig_seit is 'Gültig von'; comment on column user_kostentraeger.gueltig_bis is 'Gültig bis'; -comment on column user_kostentraeger.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_kostentraeger.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; comment on column user_kostentraeger.externalid is 'ID der berechtigten Kostenstelle in externem System (HISinONe: orgunitid)'; @@ -1672,6 +1684,7 @@ toolbar_icon_filepath VARCHAR(255) , usage_resultset_data CHAR(10) default 'T' , stylesheet_type CHAR(10) default 'XSL' , jr_datasource CHAR(10) , +uniquename VARCHAR(255) , constraint c_stylesheets primary key (tid) ) @@ -1703,6 +1716,8 @@ comment on column sx_stylesheets.stylesheet_type is 'Art des Stylesheets'; comment on column sx_stylesheets.jr_datasource is 'Datenquelle (JR)'; +comment on column sx_stylesheets.uniquename is 'Eindeutige Identifizierung des Datensatzes'; + select now(), 'Tabelle sx_stylesheets erzeugt'; @@ -1874,7 +1889,7 @@ external_entry smallint default 0 , -comment on column user_sichten.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_sichten.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; select now(), 'Tabelle user_sichten erzeugt'; @@ -1896,7 +1911,7 @@ external_entry smallint default 0 , comment on column user_sichtarten.sichtart is 'Rechte für eine Art von Sichten geben'; -comment on column user_sichtarten.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_sichtarten.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; select now(), 'Tabelle user_sichtarten erzeugt'; @@ -1996,7 +2011,7 @@ sort1 INTEGER , sort2 INTEGER , sort3 INTEGER , geaendert_am DATE , -aktiv SMALLINT , +aktiv SMALLINT default 0 not null, gueltig_seit DATE default date('01.01.1900') not null, gueltig_bis DATE default date('01.01.3000') not null, constraint pk_sx_repository primary key (tid) @@ -2883,6 +2898,7 @@ comment on column trans_dim_bp_apnr.sourcesystem_id is 'ID im Vorsystem'; select now(), 'Erzeuge Index ix_tr_dim_bp_apnr'; create index ix_tr_dim_bp_apnr on trans_dim_bp_apnr (dimension_bp_id, +apnr, sourcesystem_id, systeminfo_id ); @@ -4113,28 +4129,134 @@ select now(), 'Tabelle k_astat_studienfach erzeugt'; -select now(), 'Erzeuge Tabelle colorscheme'; +select now(), 'Erzeuge Tabelle k_astat_staat'; + +create table k_astat_staat( + schluessel INTEGER not null, +nummer VARCHAR(255) , +name VARCHAR(255) , +kennz VARCHAR(255) , +kontinent INTEGER , + constraint c_k_astat_staat primary key (schluessel) -create table colorscheme( - id SERIAL not null, -caption VARCHAR(255) , -sortorder INTEGER , -colors VARCHAR(255) ) ; -comment on column colorscheme.id is 'id'; +comment on column k_astat_staat.schluessel is 'Schlüssel'; -comment on column colorscheme.caption is 'Bezeichnung'; +comment on column k_astat_staat.nummer is 'Nummer'; -comment on column colorscheme.sortorder is 'Sortierreihenfolge'; +comment on column k_astat_staat.name is 'Name'; -comment on column colorscheme.colors is 'Farben'; +comment on column k_astat_staat.kennz is 'Kennzeichen'; +comment on column k_astat_staat.kontinent is 'Kontinent'; -select now(), 'Tabelle colorscheme erzeugt'; + +select now(), 'Tabelle k_astat_staat erzeugt'; + + + +select now(), 'Erzeuge Tabelle k_astat_kontinent'; + +create table k_astat_kontinent( + schluessel INTEGER not null, +nummer VARCHAR(255) , +name VARCHAR(255) , + constraint c_k_astat_kontinent primary key (schluessel) + +) +; + + + +comment on column k_astat_kontinent.schluessel is 'Schlüssel'; + +comment on column k_astat_kontinent.nummer is 'Nummer'; + +comment on column k_astat_kontinent.name is 'Name'; + + +select now(), 'Tabelle k_astat_kontinent erzeugt'; + + + +select now(), 'Erzeuge Tabelle k_astat_faechergruppe'; + +create table k_astat_faechergruppe( + schluessel VARCHAR(255) not null, +name VARCHAR(255) +) +; + + + +comment on column k_astat_faechergruppe.schluessel is 'Schlüssel'; + +comment on column k_astat_faechergruppe.name is 'Name'; + + +select now(), 'Tabelle k_astat_faechergruppe erzeugt'; + + + +select now(), 'Erzeuge Tabelle k_astat_abschl_grp'; + +create table k_astat_abschl_grp( + abschluss_astat_bund VARCHAR(255) not null, +abschluss_astat_bund_ktxt VARCHAR(255) , +abschlussart VARCHAR(255) , +abschluss_grp VARCHAR(255) , + constraint pk_k_astat_abschl_grp primary key (abschluss_astat_bund) + +) +; + + + +comment on column k_astat_abschl_grp.abschluss_astat_bund is 'Abschluss (Bundesschlüssel)'; + +comment on column k_astat_abschl_grp.abschluss_astat_bund_ktxt is 'Abschluss (Bundesschlüssel) Kurztext'; + +comment on column k_astat_abschl_grp.abschlussart is 'Abschlussart'; + +comment on column k_astat_abschl_grp.abschluss_grp is 'Abschlussgruppe'; + + +select now(), 'Tabelle k_astat_abschl_grp erzeugt'; + + + +select now(), 'Erzeuge Tabelle k_astat_staat_eu'; + +create table k_astat_staat_eu( + tid SERIAL not null, +astat CHAR(3) not null, +eu CHAR(1) , +semester_von INTEGER , +semester_bis INTEGER , +gueltig_von DATE , +gueltig_bis DATE , + constraint pk_k_astat_staat_eu primary key (tid) + +) +; + + + +comment on column k_astat_staat_eu.eu is 'EU-Mitglied?'; + + +select now(), 'Erzeuge Index k_astat_staat_eu_idx1'; + +create index k_astat_staat_eu_idx1 on k_astat_staat_eu (astat, +semester_von, +semester_bis ); + + +select now(), 'Tabelle k_astat_staat_eu erzeugt'; @@ -4210,57 +4332,130 @@ select now(), 'Tabelle sx_mail erzeugt'; -select now(), 'Erzeuge Tabelle k_astat_staat'; +select now(), 'Erzeuge Tabelle colorscheme'; -create table k_astat_staat( - schluessel INTEGER not null, -nummer VARCHAR(255) , +create table colorscheme( + id SERIAL not null, +caption VARCHAR(255) , +sortorder INTEGER , +colors VARCHAR(255) +) +; + + + +comment on table colorscheme is 'Farbschema für Diagramm in BI-Analysen festlegen'; + +comment on column colorscheme.id is 'id'; + +comment on column colorscheme.caption is 'Bezeichnung'; + +comment on column colorscheme.sortorder is 'Sortierreihenfolge'; + +comment on column colorscheme.colors is 'Farben'; + + +select now(), 'Tabelle colorscheme erzeugt'; + + + +select now(), 'Erzeuge Tabelle arch_table'; + +create table arch_table( + id SERIAL not null, name VARCHAR(255) , -kennz VARCHAR(255) , -kontinent INTEGER , - constraint c_k_astat_staat primary key (schluessel) +zeitfeld VARCHAR(255) +) +; + + + +comment on column arch_table.id is 'id'; + +comment on column arch_table.name is 'Name der archivierten Tabelle'; + +comment on column arch_table.zeitfeld is 'Feld für die Zeitangabe'; + +select now(), 'Tabelle arch_table erzeugt'; + + + +select now(), 'Erzeuge Tabelle arch_datum'; + +create table arch_datum( + arch_table VARCHAR(255) not null, +datum timestamptz , +bezugszeit_von INTEGER , +bezugszeit_bis INTEGER , +bezugsart CHAR(1) default 'J' , +userinfo_id INTEGER not null, +kommentar VARCHAR(255) ) ; -comment on column k_astat_staat.schluessel is 'Schlüssel'; +comment on column arch_datum.arch_table is 'Name der archivierten Tabelle'; -comment on column k_astat_staat.nummer is 'Nummer'; +comment on column arch_datum.datum is 'Archivierungsdatum und -uhrzeit'; -comment on column k_astat_staat.name is 'Name'; +comment on column arch_datum.bezugszeit_von is 'Bezugszeit (von) der archivierten Daten'; -comment on column k_astat_staat.kennz is 'Kennzeichen'; +comment on column arch_datum.bezugszeit_bis is 'Bezugszeit (bis) der archivierten Daten'; -comment on column k_astat_staat.kontinent is 'Kontinent'; +comment on column arch_datum.bezugsart is 'Bezugsart (Semester S, Akad. Jahr A,Jahr J, Quartal Q, Monat M)'; +comment on column arch_datum.userinfo_id is 'Userinfo ID'; -select now(), 'Tabelle k_astat_staat erzeugt'; +comment on column arch_datum.kommentar is 'Kommentar zur Archivierung'; +select now(), 'Tabelle arch_datum erzeugt'; -select now(), 'Erzeuge Tabelle k_astat_kontinent'; -create table k_astat_kontinent( - schluessel INTEGER not null, -nummer VARCHAR(255) , + +select now(), 'Erzeuge Tabelle k_prio_param'; + +create table k_prio_param( + id SERIAL not null, name VARCHAR(255) , - constraint c_k_astat_kontinent primary key (schluessel) +sortorder VARCHAR(255) +) +; + + + +comment on column k_prio_param.id is 'id'; +comment on column k_prio_param.name is 'Name der Priorität'; + +comment on column k_prio_param.sortorder is 'Sortierung der Priorität'; + + +select now(), 'Tabelle k_prio_param erzeugt'; + + + +select now(), 'Erzeuge Tabelle k_source'; + +create table k_source( + id SERIAL not null, +name VARCHAR(255) , +sortorder VARCHAR(255) ) ; -comment on column k_astat_kontinent.schluessel is 'Schlüssel'; +comment on column k_source.id is 'id'; -comment on column k_astat_kontinent.nummer is 'Nummer'; +comment on column k_source.name is 'Name des Quellsystems'; -comment on column k_astat_kontinent.name is 'Name'; +comment on column k_source.sortorder is 'Sortierung des Quellsystems'; -select now(), 'Tabelle k_astat_kontinent erzeugt'; +select now(), 'Tabelle k_source erzeugt'; @@ -5119,6 +5314,11 @@ select now(), 'Lade Tabelle k_astat_studienbereich'; \! sx_auto_upload_table.x k_astat_studienbereich $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_studienbereich.unl +select now(), 'Lade Tabelle k_astat_faechergruppe'; + +\! sx_auto_upload_table.x k_astat_faechergruppe $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_faechergruppe.unl + + select now(), 'Lade Tabelle k_astat_staat'; \! sx_auto_upload_table.x k_astat_staat $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_staat.unl @@ -5129,6 +5329,16 @@ select now(), 'Lade Tabelle k_astat_kontinent'; \! sx_auto_upload_table.x k_astat_kontinent $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_kontinent.unl +select now(), 'Lade Tabelle k_astat_abschl_grp'; + +\! sx_auto_upload_table.x k_astat_abschl_grp $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_abschl_grp.unl + + +select now(), 'Lade Tabelle k_astat_staat_eu'; + +\! sx_auto_upload_table.x k_astat_staat_eu $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_staat_eu.unl + + select now(), 'Scriptfile $SUPERX_DIR/db/install/schluesseltabellen/macro_masken_bez_fuellen.sql ausführen'; @@ -5146,7 +5356,7 @@ select now(), 'Fülle db_version'; delete from db_version where his_system='kern'; -insert into db_version (his_system,version,systeminfo_id) values('kern','5.0',9); +insert into db_version (his_system,version,systeminfo_id) values('kern','5.1b',9); @@ -5398,14 +5608,28 @@ delete from db_tabellen where name='k_astat_studienbereich'; insert into db_tabellen (name,protokollierung) values('k_astat_studienbereich',0); delete from db_tabellen where name='k_astat_studienfach'; insert into db_tabellen (name,protokollierung) values('k_astat_studienfach',0); -delete from db_tabellen where name='colorscheme'; -insert into db_tabellen (name,protokollierung) values('colorscheme',0); -delete from db_tabellen where name='sx_mail'; -insert into db_tabellen (name,protokollierung) values('sx_mail',0); delete from db_tabellen where name='k_astat_staat'; insert into db_tabellen (name,protokollierung) values('k_astat_staat',0); delete from db_tabellen where name='k_astat_kontinent'; insert into db_tabellen (name,protokollierung) values('k_astat_kontinent',0); +delete from db_tabellen where name='k_astat_faechergruppe'; +insert into db_tabellen (name,protokollierung) values('k_astat_faechergruppe',0); +delete from db_tabellen where name='k_astat_abschl_grp'; +insert into db_tabellen (name,protokollierung) values('k_astat_abschl_grp',0); +delete from db_tabellen where name='k_astat_staat_eu'; +insert into db_tabellen (name,protokollierung) values('k_astat_staat_eu',0); +delete from db_tabellen where name='sx_mail'; +insert into db_tabellen (name,protokollierung) values('sx_mail',0); +delete from db_tabellen where name='colorscheme'; +insert into db_tabellen (name,protokollierung) values('colorscheme',0); +delete from db_tabellen where name='arch_table'; +insert into db_tabellen (name,protokollierung) values('arch_table',0); +delete from db_tabellen where name='arch_datum'; +insert into db_tabellen (name,protokollierung) values('arch_datum',0); +delete from db_tabellen where name='k_prio_param'; +insert into db_tabellen (name,protokollierung) values('k_prio_param',0); +delete from db_tabellen where name='k_source'; +insert into db_tabellen (name,protokollierung) values('k_source',0); select now(), 'Fülle sachgebiete, systeminfo und themenbaum'; @@ -5532,16 +5756,16 @@ insert into tmp_themenbaum(name, parentname, gueltig_seit,gueltig_bis,erlaeuteru delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Benutzer' or T.name='Administration'); insert into tmp_themenbaum(name, parentname, gueltig_seit,gueltig_bis,erlaeuterung) - values('Entwicklung','Administration',date_val('01.01.1900'),date_val('01.01.3000'),'Spezielle Funktionen für die Entwicklung'); + values('Stammdaten verwalten','Administration',date_val('01.01.1900'),date_val('01.01.3000'),'Abfragen zur Stammdatenverwaltung'); --gibt es das Thema schon? -delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Entwicklung' +delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Stammdaten verwalten' or T.name='Administration'); insert into tmp_themenbaum(name, parentname, gueltig_seit,gueltig_bis,erlaeuterung) - values('Stammdaten verwalten','Administration',date_val('01.01.1900'),date_val('01.01.3000'),'Abfragen zur Stammdatenverwaltung'); + values('Datenmanagement','Administration',date_val('01.01.1900'),date_val('01.01.3000'),'Abfragen zum Datenmanagement'); --gibt es das Thema schon? -delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Stammdaten verwalten' +delete from tmp_themenbaum where name in (select T.name from themenbaum T where T.name='Datenmanagement' or T.name='Administration'); --root für das Modul einfügen und in den Themenbaum einhängen @@ -5601,6 +5825,12 @@ insert into tmp_themenbaum gueltig_bis) values('Feld suchen','70570','Felder',date_val('01.01.1900'),date_val('01.01.3000')); +insert into tmp_themenbaum +( name ,maskeninfo_id, parentname, + gueltig_seit , + gueltig_bis) +values('User einrichten','70970','Benutzer verwalten',date_val('01.01.1900'),date_val('01.01.3000')); + insert into tmp_themenbaum ( name ,maskeninfo_id, parentname, gueltig_seit , @@ -5861,8 +6091,8 @@ update themenbaum set erlaeuterung='Abfragen zur Maskenverwaltung' where name='M update themenbaum set erlaeuterung='Uploads/Downloads verwalten' where name='Uploads/Downloads verwalten'; update themenbaum set erlaeuterung='Abfragen zur Feld-Verwaltung' where name='Felder'; update themenbaum set erlaeuterung='Benutzereinstellungen (Passwort ändern etc.)' where name='Benutzer'; -update themenbaum set erlaeuterung='Spezielle Funktionen für die Entwicklung' where name='Entwicklung'; update themenbaum set erlaeuterung='Abfragen zur Stammdatenverwaltung' where name='Stammdaten verwalten'; +update themenbaum set erlaeuterung='Abfragen zum Datenmanagement' where name='Datenmanagement'; CREATE temp TABLE tmp_db_forms ( tid serial NOT NULL, @@ -5889,13 +6119,13 @@ values ('felderinfo','felderinfo','/edit/kern/felderinfo_edit.jsp','Felderinfo v insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('systeminfo','systeminfo','/edit/kern/systeminfo_edit.jsp','Systeminfo verwalten'::varchar(200),'In diesem Formular können Sie Quellsysteme verwalten.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('user_masken_bez','user_masken_bez','/edit/kern/user_masken_bez_edit.jsp','Maskenrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Masken geben.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('themenbaum_edit','themenbaum','/edit/kern/themenbaum_edit.jsp','Themenbaum'::varchar(200),'In diesem Formular können Sie den Themenbaum bearbeiten. Bitte beachten Sie: bei Änderungen muss der Themenbaum neu geladen werden (SuperXManager)'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_masken_einspielen_pg.x b/superx/WEB-INF/conf/edustore/db/install/kern_masken_einspielen_pg.x index 44ff524..e20079e 100755 --- a/superx/WEB-INF/conf/edustore/db/install/kern_masken_einspielen_pg.x +++ b/superx/WEB-INF/conf/edustore/db/install/kern_masken_einspielen_pg.x @@ -223,3 +223,15 @@ sx_auto_insert_mask 71800 echo "Maske Nr. 71820 einfügen:" cd $SUPERX_DIR/db/install/masken sx_auto_insert_mask 71820 +#Maske Nr.71840 Datenblatt archivieren +echo "Maske Nr. 71840 einfügen:" +cd $SUPERX_DIR/db/install/masken +sx_auto_insert_mask 71840 +#Maske Nr.71860 Übersicht Datenblatt-Archiv +echo "Maske Nr. 71860 einfügen:" +cd $SUPERX_DIR/db/install/masken +sx_auto_insert_mask 71860 +#Maske Nr.71880 Downloads löschen +echo "Maske Nr. 71880 einfügen:" +cd $SUPERX_DIR/db/install/masken +sx_auto_insert_mask 71880 diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_masken_entladen_pg.x b/superx/WEB-INF/conf/edustore/db/install/kern_masken_entladen_pg.x index 2b38b12..d31de33 100755 --- a/superx/WEB-INF/conf/edustore/db/install/kern_masken_entladen_pg.x +++ b/superx/WEB-INF/conf/edustore/db/install/kern_masken_entladen_pg.x @@ -168,3 +168,12 @@ sx_select_mask 71800 #Maske Nr.71820 Archivierte Daten cd "$SUPERX_DIR/db/install/masken" sx_select_mask 71820 +#Maske Nr.71840 Datenblatt archivieren +cd "$SUPERX_DIR/db/install/masken" +sx_select_mask 71840 +#Maske Nr.71860 Übersicht Datenblatt-Archiv +cd "$SUPERX_DIR/db/install/masken" +sx_select_mask 71860 +#Maske Nr.71880 Downloads löschen +cd "$SUPERX_DIR/db/install/masken" +sx_select_mask 71880 diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_masken_loeschen_pg.x b/superx/WEB-INF/conf/edustore/db/install/kern_masken_loeschen_pg.x index 816c625..7694095 100755 --- a/superx/WEB-INF/conf/edustore/db/install/kern_masken_loeschen_pg.x +++ b/superx/WEB-INF/conf/edustore/db/install/kern_masken_loeschen_pg.x @@ -164,3 +164,12 @@ sx_auto_delete_mask 71800 #Maske Nr.71820 Archivierte Daten sx_auto_delete_mask 71820 sx_auto_delete_mask 71820 +#Maske Nr.71840 Datenblatt archivieren +sx_auto_delete_mask 71840 +sx_auto_delete_mask 71840 +#Maske Nr.71860 Übersicht Datenblatt-Archiv +sx_auto_delete_mask 71860 +sx_auto_delete_mask 71860 +#Maske Nr.71880 Downloads löschen +sx_auto_delete_mask 71880 +sx_auto_delete_mask 71880 diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_purge_pg.sql b/superx/WEB-INF/conf/edustore/db/install/kern_purge_pg.sql index 85cc267..08e1bd4 100644 --- a/superx/WEB-INF/conf/edustore/db/install/kern_purge_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/kern_purge_pg.sql @@ -1,4 +1,6 @@ -- XML-generiertes SQL-Script fuer psql-- Die Tabellen vom Typ "Bewegunsdaten" (also Daten- und Hilfstabellen) werden gelöscht. +truncate table unload_params; +vacuum full unload_params; truncate table masken_protokoll; vacuum full masken_protokoll; truncate table masken_prot_feld; @@ -29,3 +31,5 @@ truncate table masken_statistik; vacuum full masken_statistik; truncate table hisinone_deleted_entity; vacuum full hisinone_deleted_entity; +truncate table arch_datum; +vacuum full arch_datum; diff --git a/superx/WEB-INF/conf/edustore/db/install/kern_restore.x b/superx/WEB-INF/conf/edustore/db/install/kern_restore.x index 45b48c4..6fd2074 100755 --- a/superx/WEB-INF/conf/edustore/db/install/kern_restore.x +++ b/superx/WEB-INF/conf/edustore/db/install/kern_restore.x @@ -126,10 +126,17 @@ sx_auto_upload_table.x k_astat_abschluss3steller_land tmp"$MANDANTENID"/k_astat_ sx_auto_upload_table.x k_astat_abschluss2steller tmp"$MANDANTENID"/k_astat_abschluss2steller.unl sx_auto_upload_table.x k_astat_studienbereich tmp"$MANDANTENID"/k_astat_studienbereich.unl sx_auto_upload_table.x k_astat_studienfach tmp"$MANDANTENID"/k_astat_studienfach.unl -sx_auto_upload_table.x colorscheme tmp"$MANDANTENID"/colorscheme.unl -sx_auto_upload_table.x sx_mail tmp"$MANDANTENID"/sx_mail.unl sx_auto_upload_table.x k_astat_staat tmp"$MANDANTENID"/k_astat_staat.unl sx_auto_upload_table.x k_astat_kontinent tmp"$MANDANTENID"/k_astat_kontinent.unl +sx_auto_upload_table.x k_astat_faechergruppe tmp"$MANDANTENID"/k_astat_faechergruppe.unl +sx_auto_upload_table.x k_astat_abschl_grp tmp"$MANDANTENID"/k_astat_abschl_grp.unl +sx_auto_upload_table.x k_astat_staat_eu tmp"$MANDANTENID"/k_astat_staat_eu.unl +sx_auto_upload_table.x sx_mail tmp"$MANDANTENID"/sx_mail.unl +sx_auto_upload_table.x colorscheme tmp"$MANDANTENID"/colorscheme.unl +sx_auto_upload_table.x arch_table tmp"$MANDANTENID"/arch_table.unl +sx_auto_upload_table.x arch_datum tmp"$MANDANTENID"/arch_datum.unl +sx_auto_upload_table.x k_prio_param tmp"$MANDANTENID"/k_prio_param.unl +sx_auto_upload_table.x k_source tmp"$MANDANTENID"/k_source.unl echo 'Finished restoring' diff --git a/superx/WEB-INF/conf/edustore/db/install/masken/70350_felderinfo.unl b/superx/WEB-INF/conf/edustore/db/install/masken/70350_felderinfo.unl index d177780..9aee64d 100644 --- a/superx/WEB-INF/conf/edustore/db/install/masken/70350_felderinfo.unl +++ b/superx/WEB-INF/conf/edustore/db/install/masken/70350_felderinfo.unl @@ -1,8 +1,9 @@ -70350^zu kopierende Maske^0^0^0^150^450^1^integer^30^1^1^<> select tid, tid || ' - ' || name from maskeninfo order by name;^^^ -70351^Neuer Name^2^0^0^150^250^1^char^100^1^0^^^^ -70352^Neue tid^1^0^0^150^200^1^integer^60^1^0^^^<> select (max(tid)+20) from maskeninfo;^ -70353^Erläuterung^12^0^0^150^400^4^char^240^0^0^^^^ +70350^zu kopierende Maske^0^0^0^150^450^1^integer^30^1^1^<> select tid, tid || ' - ' || name from maskeninfo order by name;^ ^ ^ +70351^Neuer Name^2^0^0^150^250^1^char^100^1^0^^ ^ ^ +70352^Neue tid^1^0^0^150^200^1^integer^60^1^0^^ ^<> select (max(tid)+20) from maskeninfo;^ +70353^Erläuterung^12^0^0^150^400^4^char^240^0^0^^ ^ ^ 70354^Art der Kopie^1065^0^0^100^150^1^char^30^1^1^<> select 'makro','Makrobericht' from xdummy \ union select 'sximport','SX-Importkopie' from xdummy\ union select 'standard','Standardkopie' from xdummy\ ;^ ^<> select 'standard','Standardkopie' from xdummy;^ +70355^_customValidation^100^0^0^150^450^1^char^30^1^13^^ ^validiereNeueMaskennr^ diff --git a/superx/WEB-INF/conf/edustore/db/install/masken/70350_masken_felder_bez.unl b/superx/WEB-INF/conf/edustore/db/install/masken/70350_masken_felder_bez.unl index e867150..1e14255 100644 --- a/superx/WEB-INF/conf/edustore/db/install/masken/70350_masken_felder_bez.unl +++ b/superx/WEB-INF/conf/edustore/db/install/masken/70350_masken_felder_bez.unl @@ -3,3 +3,4 @@ 70350^70352^ 70350^70353^ 70350^70354^ +70350^70355^ diff --git a/superx/WEB-INF/conf/edustore/db/install/masken/70350_maskeninfo.unl b/superx/WEB-INF/conf/edustore/db/install/masken/70350_maskeninfo.unl index 0683a3f..6c87e27 100644 --- a/superx/WEB-INF/conf/edustore/db/install/masken/70350_maskeninfo.unl +++ b/superx/WEB-INF/conf/edustore/db/install/masken/70350_maskeninfo.unl @@ -1,13 +1,20 @@ 70350^Maske kopieren^--freemarker template\ <#include "SQL_lingua_franca"/>\ <#include "SuperX_general"/>\ -\ +\ +\ +select sp_table_exists('xcube_dimconfig') + sp_table_exists('xcube_kennzahl') from xdummy;\ +\ +\ --Autor: D. Quathamer\ --Datum: 2.4.2002\ \ <#assign zeichen1="<"> \ <#assign zeichen2=">"> \ <#assign zeichen3="/"> \ +<#if SQLdialect='Postgres'>\ +begin work;\ +\ \ create temp table tmp_mask_feld_b \ (\ @@ -33,7 +40,7 @@ create temp table tmp_maskeninfo \ chart_xtitel varchar(50),\ chart_ytitel varchar(50),\ erlaeuterung varchar(255),\ - cleanup_stmt varchar(240),\ + cleanup_stmt varchar(255),\ default_file varchar(200),\ macro smallint,\ breite integer,\ @@ -58,7 +65,7 @@ create temp table tmp_felderinfo \ art integer,\ relation text,\ attribut varchar(100),\ - defaultwert varchar(255)\ + defaultwert text\ );\ create temp table tmp_themenbaum\ (\ @@ -143,6 +150,110 @@ where (select administration from userinfo where tid=<>)= 1;\ update maskeninfo set cleanup_stmt= '${zeichen1}sximport${zeichen2}select cleanup_stmt from maskeninfo where tid=<>${zeichen1}${zeichen3}sximport${zeichen2}' where tid=<>;\ \ \ +<#if xcube_installed==2>\ +--Metadaten für XCUBE auch kopieren\ +select * into temp tmp_xcube_dimconfig\ +from xcube_dimconfig\ +where maskeninfo_id=<>;\ +\ +select * into temp tmp_xcube_kennzahl from xcube_kennzahl\ +where maskeninfo_id=<>;\ +\ +select * into temp tmp_xcube from xcube\ +where maskeninfo_id=<>;\ +\ +\ +delete from xcube_dimconfig\ +where maskeninfo_id=<>;\ +delete from xcube_kennzahl\ +where maskeninfo_id=<>;\ +delete from xcube\ +where maskeninfo_id=<>;\ +\ +\ +insert into xcube_dimconfig(\ +maskeninfo_id,\ + name,\ + caption,\ + is_sicht,\ + calc_gesamt,\ + is_rowdim,\ + is_secondrowdim,\ + is_rowdefault,\ + is_coldim,\ + is_secondcoldim,\ + is_coldefault,\ + attrib_nachbearbeitung,\ + is_virtual,\ + vcsql,\ + foreignkey_tab,\ + foreignkey_col,\ + foreignkey_cap,\ + foreignkey_cond,\ + foreignkey_func,\ + sortfield)\ + select <> as maskeninfo_id,\ + name,\ + caption,\ + is_sicht,\ + calc_gesamt,\ + is_rowdim,\ + is_secondrowdim,\ + is_rowdefault,\ + is_coldim,\ + is_secondcoldim,\ + is_coldefault,\ + attrib_nachbearbeitung,\ + is_virtual,\ + vcsql,\ + foreignkey_tab,\ + foreignkey_col,\ + foreignkey_cap,\ + foreignkey_cond,\ + foreignkey_func,\ + sortfield \ +FROM tmp_xcube_dimconfig \ + ;\ +\ +insert into xcube_kennzahl(maskeninfo_id,\ + apnr,\ + name,\ + aggrfunction,\ + restriction,\ + datatype,\ + is_default,\ + sortnr)\ +select <> as maskeninfo_id,\ + apnr,\ + name,\ + aggrfunction,\ + restriction,\ + datatype,\ + is_default,\ + sortnr\ + from tmp_xcube_kennzahl;\ +insert into xcube(\ + uniquename,\ + name,\ + sachgebiet,\ + table_name,\ + maskeninfo_id,\ + restriction)\ + select uniquename,\ + name,\ + sachgebiet,\ + table_name,\ + <> as maskeninfo_id,\ + restriction\ + from tmp_xcube;\ +\ +drop table tmp_xcube_dimconfig;\ +drop table tmp_xcube_kennzahl;\ +drop table tmp_xcube;\ +\ +\ +\ +\ drop table tmp_maskeninfo;\ drop table tmp_felderinfo;\ drop table tmp_sg_mask_b;\ @@ -150,6 +261,10 @@ drop table tmp_mask_feld_b ;\ drop table tmp_mask_sys_bez;\ drop table tmp_themenbaum;\ \ +<#if SQLdialect='Postgres'>\ +commit;\ +\ +\ create temp table tmp_ergebnis \ (sp1 varchar(150),\ sp2 varchar(150), sp3 varchar(150)); \ @@ -178,4 +293,4 @@ Column CID=1 heading_text=" Wert " center_heading\ Column CID=2 heading_text=" Bearbeiten" center_heading\ row_selectable col_selectable heading_platform readonly\ width=50 text_size=100\ -@@@^ ^ ^Eine neue Maske kopieren^drop table tmp_ergebnis;^^2^440^360^^1^ ^ +@@@^ ^ ^Eine neue Maske kopieren^drop table tmp_ergebnis;^^2^440^360^^1^^ diff --git a/superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/release_unloads/k_astat_staat_eu.unl b/superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/release_unloads/k_astat_staat_eu.unl new file mode 100644 index 0000000..72fe161 --- /dev/null +++ b/superx/WEB-INF/conf/edustore/db/install/schluesseltabellen/release_unloads/k_astat_staat_eu.unl @@ -0,0 +1,283 @@ +72^165^J^20042^29992^01.10.2004^31.03.3000^ +1^151^J^19571^29992^01.04.1957^31.03.3000^ +2^395^N^19001^29992^01.04.1900^31.03.3000^ +3^421^N^19001^29992^01.04.1900^31.03.3000^ +4^423^N^19001^29992^01.04.1900^31.03.3000^ +5^121^N^19001^29992^01.04.1900^31.03.3000^ +6^123^N^19001^29992^01.04.1900^31.03.3000^ +7^223^N^19001^29992^01.04.1900^31.03.3000^ +8^422^N^19001^29992^01.04.1900^31.03.3000^ +9^320^N^19001^29992^01.04.1900^31.03.3000^ +10^523^N^19001^29992^01.04.1900^31.03.3000^ +11^425^N^19001^29992^01.04.1900^31.03.3000^ +12^124^J^19571^29992^01.04.1957^31.03.3000^ +13^460^N^19001^29992^01.04.1900^31.03.3000^ +14^322^N^19001^29992^01.04.1900^31.03.3000^ +15^258^N^19001^29992^01.04.1900^31.03.3000^ +16^125^J^20071^29992^01.04.2007^31.03.3000^ +17^330^N^19001^29992^01.04.1900^31.03.3000^ +18^122^N^19001^29992^01.04.1900^31.03.3000^ +19^326^N^19001^29992^01.04.1900^31.03.3000^ +20^327^N^19001^29992^01.04.1900^31.03.3000^ +21^424^N^19001^29992^01.04.1900^31.03.3000^ +22^429^N^19001^29992^01.04.1900^31.03.3000^ +23^324^N^19001^29992^01.04.1900^31.03.3000^ +24^426^N^19001^29992^01.04.1900^31.03.3000^ +25^291^N^19001^29992^01.04.1900^31.03.3000^ +26^169^N^19001^29992^01.04.1900^31.03.3000^ +27^351^N^19001^29992^01.04.1900^31.03.3000^ +28^246^N^19001^29992^01.04.1900^31.03.3000^ +29^348^N^19001^29992^01.04.1900^31.03.3000^ +30^158^N^19001^29992^01.04.1900^31.03.3000^ +31^231^N^19001^29992^01.04.1900^31.03.3000^ +32^431^N^19001^29992^01.04.1900^31.03.3000^ +33^349^N^19001^29992^01.04.1900^31.03.3000^ +34^244^N^19001^29992^01.04.1900^31.03.3000^ +35^527^N^19001^29992^01.04.1900^31.03.3000^ +36^242^N^19001^29992^01.04.1900^31.03.3000^ +37^334^N^19001^29992^01.04.1900^31.03.3000^ +38^181^J^20041^29992^01.04.2004^31.03.3000^ +39^164^J^20041^29992^01.04.2004^31.03.3000^ +40^000^J^19571^29992^01.04.1957^31.03.3000^ +41^230^N^19001^29992^01.04.1900^31.03.3000^ +42^126^J^19731^29992^01.04.1973^31.03.3000^ +43^335^N^19001^29992^01.04.1900^31.03.3000^ +44^229^N^19001^29992^01.04.1900^31.03.3000^ +45^221^N^19001^29992^01.04.1900^31.03.3000^ +46^161^J^19861^29992^01.04.1986^31.03.3000^ +47^243^N^19001^29992^01.04.1900^31.03.3000^ +48^276^N^19001^29992^01.04.1900^31.03.3000^ +49^282^N^19001^29992^01.04.1900^31.03.3000^ +50^286^N^19001^29992^01.04.1900^31.03.3000^ +51^336^N^19001^29992^01.04.1900^31.03.3000^ +52^224^N^19001^29992^01.04.1900^31.03.3000^ +53^337^N^19001^29992^01.04.1900^31.03.3000^ +54^127^J^20041^29992^01.04.2004^31.03.3000^ +55^287^N^19001^29992^01.04.1900^31.03.3000^ +56^225^N^19001^29992^01.04.1900^31.03.3000^ +57^129^J^19571^29992^01.04.1957^31.03.3000^ +58^128^J^19951^29992^01.04.1995^31.03.3000^ +59^526^N^19001^29992^01.04.1900^31.03.3000^ +60^141^N^19001^29992^01.04.1900^31.03.3000^ +61^236^N^19001^29992^01.04.1900^31.03.3000^ +62^168^J^19731^20202^01.04.1973^31.12.2020^ +63^195^N^19001^29992^01.04.1900^31.03.3000^ +64^345^N^19001^29992^01.04.1900^31.03.3000^ +65^430^N^19001^29992^01.04.1900^31.03.3000^ +66^238^N^19001^29992^01.04.1900^31.03.3000^ +67^274^N^19001^29992^01.04.1900^31.03.3000^ +68^134^J^19811^29992^01.04.1981^31.03.3000^ +69^259^N^19001^29992^01.04.1900^31.03.3000^ +70^261^N^19001^29992^01.04.1900^31.03.3000^ +71^328^N^19001^29992^01.04.1900^31.03.3000^ +73^347^N^19001^29992^01.04.1900^31.03.3000^ +75^137^J^19571^29992^01.04.1957^31.03.3000^ +76^441^N^19001^29992^01.04.1900^31.03.3000^ +77^436^N^19001^29992^01.04.1900^31.03.3000^ +78^439^N^19001^29992^01.04.1900^31.03.3000^ +79^135^J^19731^29992^01.04.1973^31.03.3000^ +80^438^N^19001^29992^01.04.1900^31.03.3000^ +81^136^N^19001^29992^01.04.1900^31.03.3000^ +82^442^N^19001^29992^01.04.1900^31.03.3000^ +83^355^N^19001^29992^01.04.1900^31.03.3000^ +84^445^N^19001^29992^01.04.1900^31.03.3000^ +85^446^N^19001^29992^01.04.1900^31.03.3000^ +86^530^N^19001^29992^01.04.1900^31.03.3000^ +87^450^N^19001^29992^01.04.1900^31.03.3000^ +88^448^N^19001^29992^01.04.1900^31.03.3000^ +89^444^N^19001^29992^01.04.1900^31.03.3000^ +90^143^J^19571^29992^01.04.1957^31.03.3000^ +91^449^N^19001^29992^01.04.1900^31.03.3000^ +92^248^N^19001^29992^01.04.1900^31.03.3000^ +93^247^N^19001^29992^01.04.1900^31.03.3000^ +94^226^N^19001^29992^01.04.1900^31.03.3000^ +95^142^J^20041^29992^01.04.2004^31.03.3000^ +96^139^J^20041^29992^01.04.2004^31.03.3000^ +97^145^J^20041^29992^01.04.2004^31.03.3000^ +98^252^N^19001^29992^01.04.1900^31.03.3000^ +99^482^N^19001^29992^01.04.1900^31.03.3000^ +100^147^N^19001^29992^01.04.1900^31.03.3000^ +101^146^N^19001^29992^01.04.1900^31.03.3000^ +102^454^N^19001^29992^01.04.1900^31.03.3000^ +103^353^N^19001^29992^01.04.1900^31.03.3000^ +104^457^N^19001^29992^01.04.1900^31.03.3000^ +105^544^N^19001^29992^01.04.1900^31.03.3000^ +106^144^N^19001^29992^01.04.1900^31.03.3000^ +107^545^N^19001^29992^01.04.1900^31.03.3000^ +108^254^N^19001^29992^01.04.1900^31.03.3000^ +109^253^N^19001^29992^01.04.1900^31.03.3000^ +110^256^N^19001^29992^01.04.1900^31.03.3000^ +111^427^N^19001^29992^01.04.1900^31.03.3000^ +112^149^N^19001^29992^01.04.1900^31.03.3000^ +113^399^N^19001^29992^01.04.1900^31.03.3000^ +114^267^N^19001^29992^01.04.1900^31.03.3000^ +115^458^N^19001^29992^01.04.1900^31.03.3000^ +116^354^N^19001^29992^01.04.1900^31.03.3000^ +117^533^N^19001^29992^01.04.1900^31.03.3000^ +118^148^J^19571^29992^01.04.1957^31.03.3000^ +119^536^N^19001^29992^01.04.1900^31.03.3000^ +120^999^N^19001^29992^01.04.1900^31.03.3000^ +121^456^N^19001^29992^01.04.1900^31.03.3000^ +122^153^J^19861^29992^01.04.1986^31.03.3000^ +123^357^N^19001^29992^01.04.1900^31.03.3000^ +124^499^N^19001^29992^01.04.1900^31.03.3000^ +125^361^N^19001^29992^01.04.1900^31.03.3000^ +126^595^N^19001^29992^01.04.1900^31.03.3000^ +127^461^N^19001^29992^01.04.1900^31.03.3000^ +128^152^J^20041^29992^01.04.2004^31.03.3000^ +129^537^N^19001^29992^01.04.1900^31.03.3000^ +130^538^N^19001^29992^01.04.1900^31.03.3000^ +131^434^N^19001^29992^01.04.1900^31.03.3000^ +132^359^N^19001^29992^01.04.1900^31.03.3000^ +133^447^N^19001^29992^01.04.1900^31.03.3000^ +134^323^N^19001^29992^01.04.1900^31.03.3000^ +135^227^N^19001^29992^01.04.1900^31.03.3000^ +136^465^N^19001^29992^01.04.1900^31.03.3000^ +137^289^N^19001^29992^01.04.1900^31.03.3000^ +138^245^N^19001^29992^01.04.1900^31.03.3000^ +139^332^N^19001^29992^01.04.1900^31.03.3000^ +140^262^N^19001^29992^01.04.1900^31.03.3000^ +141^346^N^19001^29992^01.04.1900^31.03.3000^ +142^437^N^19001^29992^01.04.1900^31.03.3000^ +143^239^N^19001^29992^01.04.1900^31.03.3000^ +144^451^N^19001^29992^01.04.1900^31.03.3000^ +145^249^N^19001^29992^01.04.1900^31.03.3000^ +146^251^N^19001^29992^01.04.1900^31.03.3000^ +147^255^N^19001^29992^01.04.1900^31.03.3000^ +148^154^J^20071^29992^01.04.2007^31.03.3000^ +149^467^N^19001^29992^01.04.1900^31.03.3000^ +150^365^N^19001^29992^01.04.1900^31.03.3000^ +151^462^N^19001^29992^01.04.1900^31.03.3000^ +152^156^N^19001^29992^01.04.1900^31.03.3000^ +153^283^N^19001^29992^01.04.1900^31.03.3000^ +154^160^N^19001^29992^01.04.1900^31.03.3000^ +155^265^N^19001^29992^01.04.1900^31.03.3000^ +156^157^J^19951^29992^01.04.1995^31.03.3000^ +157^472^N^19001^29992^01.04.1900^31.03.3000^ +158^132^N^19001^29992^01.04.1900^31.03.3000^ +159^281^N^19001^29992^01.04.1900^31.03.3000^ +160^474^N^19001^29992^01.04.1900^31.03.3000^ +161^155^J^20041^29992^01.04.2004^31.03.3000^ +162^524^N^19001^29992^01.04.1900^31.03.3000^ +163^131^J^20041^29992^01.04.2004^31.03.3000^ +164^364^N^19001^29992^01.04.1900^31.03.3000^ +165^269^N^19001^29992^01.04.1900^31.03.3000^ +166^273^N^19001^29992^01.04.1900^31.03.3000^ +167^295^N^19001^29992^01.04.1900^31.03.3000^ +168^370^N^19001^29992^01.04.1900^31.03.3000^ +169^997^N^19001^29992^01.04.1900^31.03.3000^ +170^268^N^19001^29992^01.04.1900^31.03.3000^ +171^271^N^19001^29992^01.04.1900^31.03.3000^ +172^475^N^19001^29992^01.04.1900^31.03.3000^ +173^470^N^19001^29992^01.04.1900^31.03.3000^ +174^284^N^19001^29992^01.04.1900^31.03.3000^ +175^476^N^19001^29992^01.04.1900^31.03.3000^ +176^483^N^19001^29992^01.04.1900^31.03.3000^ +177^471^N^19001^29992^01.04.1900^31.03.3000^ +178^285^N^19001^29992^01.04.1900^31.03.3000^ +179^541^N^19001^29992^01.04.1900^31.03.3000^ +180^163^N^19001^29992^01.04.1900^31.03.3000^ +181^371^N^19001^29992^01.04.1900^31.03.3000^ +182^540^N^19001^29992^01.04.1900^31.03.3000^ +183^166^N^19001^29992^01.04.1900^31.03.3000^ +184^469^N^19001^29992^01.04.1900^31.03.3000^ +185^998^N^19001^29992^01.04.1900^31.03.3000^ +186^368^N^19001^29992^01.04.1900^31.03.3000^ +187^477^N^19001^29992^01.04.1900^31.03.3000^ +188^167^N^19001^29992^01.04.1900^31.03.3000^ +189^532^N^19001^29992^01.04.1900^31.03.3000^ +190^432^N^19001^29992^01.04.1900^31.03.3000^ +191^479^N^19001^29992^01.04.1900^31.03.3000^ +192^237^N^19001^29992^01.04.1900^31.03.3000^ +193^531^N^19001^29992^01.04.1900^31.03.3000^ +194^272^N^19001^29992^01.04.1900^31.03.3000^ +195^232^N^19001^29992^01.04.1900^31.03.3000^ +196^333^N^19001^29992^01.04.1900^31.03.3000^ +197^543^N^19001^29992^01.04.1900^31.03.3000^ +198^340^N^19001^29992^01.04.1900^31.03.3000^ +199^366^N^19001^29992^01.04.1900^31.03.3000^ +200^599^N^19001^29992^01.04.1900^31.03.3000^ +201^369^N^19001^29992^01.04.1900^31.03.3000^ +202^367^N^19001^29992^01.04.1900^31.03.3000^ +203^257^N^19001^29992^01.04.1900^31.03.3000^ +204^263^N^19001^29992^01.04.1900^31.03.3000^ +205^233^N^19001^29992^01.04.1900^31.03.3000^ +206^159^N^19001^29992^01.04.1900^31.03.3000^ +207^162^J^20041^29992^01.04.2004^31.03.3000^ +208^199^N^19001^29992^01.04.1900^31.03.3000^ +209^299^N^19001^29992^01.04.1900^31.03.3000^ +210^443^N^19001^29992^01.04.1900^31.03.3000^ +211^525^N^19001^29992^01.04.1900^31.03.3000^ +212^151^N^19001^19562^01.04.1900^31.03.1957^ +213^124^N^19001^19562^01.04.1900^31.03.1957^ +214^125^N^19001^20062^01.04.1900^31.03.2007^ +215^181^N^19001^20032^01.04.1900^31.03.2004^ +216^164^N^19001^20032^01.04.1900^31.03.2004^ +217^000^N^19001^19562^01.04.1900^31.03.1957^ +218^126^N^19001^19722^01.04.1900^31.03.1973^ +219^161^N^19001^19852^01.04.1900^31.03.1986^ +220^127^N^19001^20032^01.04.1900^31.03.2004^ +221^129^N^19001^19562^01.04.1900^31.03.1957^ +222^128^N^19001^19942^01.04.1900^31.03.1995^ +223^168^N^19001^19722^01.04.1900^31.03.1973^ +224^134^N^19001^19802^01.04.1900^31.03.1981^ +225^131^N^19001^20032^01.04.1900^31.03.2004^ +226^135^N^19001^19722^01.04.1900^31.03.1973^ +227^137^N^19001^19562^01.04.1900^31.03.1957^ +228^139^N^19001^20032^01.04.1900^31.03.2004^ +229^142^N^19001^20032^01.04.1900^31.03.2004^ +230^143^N^19001^19562^01.04.1900^31.03.1957^ +231^145^N^19001^20032^01.04.1900^31.03.2004^ +232^148^N^19001^19562^01.04.1900^31.03.1957^ +233^152^N^19001^20032^01.04.1900^31.03.2004^ +234^153^N^19001^19852^01.04.1900^31.03.1986^ +235^154^N^19001^20062^01.04.1900^31.03.2007^ +236^155^N^19001^20032^01.04.1900^31.03.2004^ +237^157^N^19001^19942^01.04.1900^31.03.1995^ +238^162^N^19001^20032^01.04.1900^31.03.2004^ +239^165^N^19001^20032^01.04.1900^31.03.2004^ +243^459^N^19001^29992^01.04.1900^31.03.3000^ +244^193^N^19001^29992^01.04.1900^31.03.3000^ +245^196^N^19001^29992^01.04.1900^31.03.3000^ +246^277^N^19001^29992^01.04.1900^31.03.3000^ +240^140^N^19001^29992^01.04.1900^31.03.3000^ +247^278^N^19001^29992^01.04.1900^31.03.3000^ +241^150^N^19001^29992^01.04.1900^31.03.3000^ +248^297^N^19001^29992^01.04.1900^31.03.3000^ +242^170^N^19001^29992^01.04.1900^31.03.3000^ +249^298^N^19001^29992^01.04.1900^31.03.3000^ +250^391^N^19001^29992^01.04.1900^31.03.3000^ +251^392^N^19001^29992^01.04.1900^31.03.3000^ +252^396^N^19001^29992^01.04.1900^31.03.3000^ +253^398^N^19001^29992^01.04.1900^31.03.3000^ +254^495^N^19001^29992^01.04.1900^31.03.3000^ +255^588^N^19001^29992^01.04.1900^31.03.3000^ +256^589^N^19001^29992^01.04.1900^31.03.3000^ +257^590^N^19001^29992^01.04.1900^31.03.3000^ +258^591^N^19001^29992^01.04.1900^31.03.3000^ +259^593^N^19001^29992^01.04.1900^31.03.3000^ +260^594^N^19001^29992^01.04.1900^31.03.3000^ +261^598^N^19001^29992^01.04.1900^31.03.3000^ +74^130^N^19001^20131^01.04.1900^30.09.2013^ +262^130^J^20132^29992^01.10.2013^31.03.3000^ +263^411^N^19001^29992^01.04.1900^31.03.3000^ +264^519^N^19001^29992^01.04.1900^31.03.3000^ +265^168^N^20211^29992^01.01.2021^31.03.3000^ +266^315^J^19571^29992^01.04.1957^31.03.3000^ +267^315^N^19001^19562^01.04.1900^31.03.1957^ +268^317^J^19571^29992^01.04.1957^31.03.3000^ +269^317^N^19001^19562^01.04.1900^31.03.1957^ +270^319^J^19571^29992^01.04.1957^31.03.3000^ +271^319^N^19001^19562^01.04.1900^31.03.1957^ +272^211^J^19571^29992^01.04.1957^31.03.3000^ +273^211^N^19001^19562^01.04.1900^31.03.1957^ +274^214^J^19571^29992^01.04.1957^31.03.3000^ +275^214^N^19001^19562^01.04.1900^31.03.1957^ +276^331^J^19571^29992^01.04.1957^31.03.3000^ +277^331^N^19001^19562^01.04.1900^31.03.1957^ +278^329^J^19571^20112^01.04.1957^31.12.2011^ +279^329^N^19001^19562^01.04.1900^31.03.1957^ +280^329^N^20121^29992^01.01.2012^31.03.3000^ +281^342^J^19731^19842^01.04.1973^31.12.1984^ +282^342^N^19001^19722^01.04.1900^31.03.1973^ +283^342^N^19851^29992^01.01.1985^31.03.3000^ diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_fields_pg.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_fields_pg.sql index 2c58d2e..6f28786 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_fields_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_fields_pg.sql @@ -131,10 +131,17 @@ and C.relname::varchar(255) in ('sichtart_rechttabelle', 'k_astat_abschluss2steller', 'k_astat_studienbereich', 'k_astat_studienfach', -'colorscheme', -'sx_mail', 'k_astat_staat', -'k_astat_kontinent') UNION SELECT trim(N.nspname||'.'||C.relname) || '.' || trim(A.attname),trim(N.nspname||'.'||C.relname) || '.' || trim(A.attname) +'k_astat_kontinent', +'k_astat_faechergruppe', +'k_astat_abschl_grp', +'k_astat_staat_eu', +'sx_mail', +'colorscheme', +'arch_table', +'arch_datum', +'k_prio_param', +'k_source') UNION SELECT trim(N.nspname||'.'||C.relname) || '.' || trim(A.attname),trim(N.nspname||'.'||C.relname) || '.' || trim(A.attname) FROM pg_attribute A, pg_class C, pg_namespace N where C.oid = A.attrelid and N.oid = C.relnamespace @@ -262,10 +269,17 @@ and N.nspname||'.'||C.relname in ('sichtart_rechttabelle', 'k_astat_abschluss2steller', 'k_astat_studienbereich', 'k_astat_studienfach', -'colorscheme', -'sx_mail', 'k_astat_staat', -'k_astat_kontinent' +'k_astat_kontinent', +'k_astat_faechergruppe', +'k_astat_abschl_grp', +'k_astat_staat_eu', +'sx_mail', +'colorscheme', +'arch_table', +'arch_datum', +'k_prio_param', +'k_source' ) order by 1; @@ -530,7 +544,7 @@ alter table db_version add column kern_system CHAR(1) ; select now(), 'field db_version.version_hash will be added'; -alter table db_version add column version_hash VARCHAR(32) ; +alter table db_version add column version_hash VARCHAR() ; @@ -2150,7 +2164,7 @@ alter table felderinfo add column attribut CHAR(100) ; select now(), 'field felderinfo.defaultwert will be added'; -alter table felderinfo add column defaultwert CHAR(255) ; +alter table felderinfo add column defaultwert TEXT ; @@ -2568,6 +2582,24 @@ alter table userinfo add column extern_role_id INTEGER ; +<#if !fields?seq_contains("userinfo.gueltig_von") > + + +select now(), 'field userinfo.gueltig_von will be added'; + +alter table userinfo add column gueltig_von date ; + + + +<#if !fields?seq_contains("userinfo.gueltig_bis") > + + +select now(), 'field userinfo.gueltig_bis will be added'; + +alter table userinfo add column gueltig_bis date ; + + + <#if !fields?seq_contains("themenbaum.tid") > @@ -3864,6 +3896,15 @@ alter table sx_stylesheets add column jr_datasource CHAR(10) ; +<#if !fields?seq_contains("sx_stylesheets.uniquename") > + + +select now(), 'field sx_stylesheets.uniquename will be added'; + +alter table sx_stylesheets add column uniquename VARCHAR(255) ; + + + <#if !fields?seq_contains("sx_mask_style.tid") > @@ -4373,7 +4414,7 @@ alter table sx_repository add column geaendert_am DATE ; select now(), 'field sx_repository.aktiv will be added'; -alter table sx_repository add column aktiv SMALLINT ; +alter table sx_repository add column aktiv SMALLINT default 0 not null; @@ -8445,39 +8486,192 @@ alter table k_astat_studienfach add column sb VARCHAR(255) ; -<#if !fields?seq_contains("colorscheme.id") > +<#if !fields?seq_contains("k_astat_staat.schluessel") > -select now(), 'field colorscheme.id will be added'; +select now(), 'field k_astat_staat.schluessel will be added'; -alter table colorscheme add column id SERIAL not null; +alter table k_astat_staat add column schluessel INTEGER not null; -<#if !fields?seq_contains("colorscheme.caption") > +<#if !fields?seq_contains("k_astat_staat.nummer") > -select now(), 'field colorscheme.caption will be added'; +select now(), 'field k_astat_staat.nummer will be added'; -alter table colorscheme add column caption VARCHAR(255) ; +alter table k_astat_staat add column nummer VARCHAR(255) ; -<#if !fields?seq_contains("colorscheme.sortorder") > +<#if !fields?seq_contains("k_astat_staat.name") > -select now(), 'field colorscheme.sortorder will be added'; +select now(), 'field k_astat_staat.name will be added'; -alter table colorscheme add column sortorder INTEGER ; +alter table k_astat_staat add column name VARCHAR(255) ; -<#if !fields?seq_contains("colorscheme.colors") > +<#if !fields?seq_contains("k_astat_staat.kennz") > -select now(), 'field colorscheme.colors will be added'; +select now(), 'field k_astat_staat.kennz will be added'; -alter table colorscheme add column colors VARCHAR(255) ; +alter table k_astat_staat add column kennz VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_astat_staat.kontinent") > + + +select now(), 'field k_astat_staat.kontinent will be added'; + +alter table k_astat_staat add column kontinent INTEGER ; + + + +<#if !fields?seq_contains("k_astat_kontinent.schluessel") > + + +select now(), 'field k_astat_kontinent.schluessel will be added'; + +alter table k_astat_kontinent add column schluessel INTEGER not null; + + + +<#if !fields?seq_contains("k_astat_kontinent.nummer") > + + +select now(), 'field k_astat_kontinent.nummer will be added'; + +alter table k_astat_kontinent add column nummer VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_astat_kontinent.name") > + + +select now(), 'field k_astat_kontinent.name will be added'; + +alter table k_astat_kontinent add column name VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_astat_faechergruppe.schluessel") > + + +select now(), 'field k_astat_faechergruppe.schluessel will be added'; + +alter table k_astat_faechergruppe add column schluessel VARCHAR(255) not null; + + + +<#if !fields?seq_contains("k_astat_faechergruppe.name") > + + +select now(), 'field k_astat_faechergruppe.name will be added'; + +alter table k_astat_faechergruppe add column name VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_astat_abschl_grp.abschluss_astat_bund") > + + +select now(), 'field k_astat_abschl_grp.abschluss_astat_bund will be added'; + +alter table k_astat_abschl_grp add column abschluss_astat_bund VARCHAR(255) not null; + + + +<#if !fields?seq_contains("k_astat_abschl_grp.abschluss_astat_bund_ktxt") > + + +select now(), 'field k_astat_abschl_grp.abschluss_astat_bund_ktxt will be added'; + +alter table k_astat_abschl_grp add column abschluss_astat_bund_ktxt VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_astat_abschl_grp.abschlussart") > + + +select now(), 'field k_astat_abschl_grp.abschlussart will be added'; + +alter table k_astat_abschl_grp add column abschlussart VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_astat_abschl_grp.abschluss_grp") > + + +select now(), 'field k_astat_abschl_grp.abschluss_grp will be added'; + +alter table k_astat_abschl_grp add column abschluss_grp VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_astat_staat_eu.tid") > + + +select now(), 'field k_astat_staat_eu.tid will be added'; + +alter table k_astat_staat_eu add column tid SERIAL not null; + + + +<#if !fields?seq_contains("k_astat_staat_eu.astat") > + + +select now(), 'field k_astat_staat_eu.astat will be added'; + +alter table k_astat_staat_eu add column astat CHAR(3) not null; + + + +<#if !fields?seq_contains("k_astat_staat_eu.eu") > + + +select now(), 'field k_astat_staat_eu.eu will be added'; + +alter table k_astat_staat_eu add column eu CHAR(1) ; + + + +<#if !fields?seq_contains("k_astat_staat_eu.semester_von") > + + +select now(), 'field k_astat_staat_eu.semester_von will be added'; + +alter table k_astat_staat_eu add column semester_von INTEGER ; + + + +<#if !fields?seq_contains("k_astat_staat_eu.semester_bis") > + + +select now(), 'field k_astat_staat_eu.semester_bis will be added'; + +alter table k_astat_staat_eu add column semester_bis INTEGER ; + + + +<#if !fields?seq_contains("k_astat_staat_eu.gueltig_von") > + + +select now(), 'field k_astat_staat_eu.gueltig_von will be added'; + +alter table k_astat_staat_eu add column gueltig_von DATE ; + + + +<#if !fields?seq_contains("k_astat_staat_eu.gueltig_bis") > + + +select now(), 'field k_astat_staat_eu.gueltig_bis will be added'; + +alter table k_astat_staat_eu add column gueltig_bis DATE ; @@ -8652,74 +8846,182 @@ alter table sx_mail add column daemon3_interval INTEGER ; -<#if !fields?seq_contains("k_astat_staat.schluessel") > +<#if !fields?seq_contains("colorscheme.id") > -select now(), 'field k_astat_staat.schluessel will be added'; +select now(), 'field colorscheme.id will be added'; -alter table k_astat_staat add column schluessel INTEGER not null; +alter table colorscheme add column id SERIAL not null; -<#if !fields?seq_contains("k_astat_staat.nummer") > +<#if !fields?seq_contains("colorscheme.caption") > -select now(), 'field k_astat_staat.nummer will be added'; +select now(), 'field colorscheme.caption will be added'; -alter table k_astat_staat add column nummer VARCHAR(255) ; +alter table colorscheme add column caption VARCHAR(255) ; -<#if !fields?seq_contains("k_astat_staat.name") > +<#if !fields?seq_contains("colorscheme.sortorder") > -select now(), 'field k_astat_staat.name will be added'; +select now(), 'field colorscheme.sortorder will be added'; -alter table k_astat_staat add column name VARCHAR(255) ; +alter table colorscheme add column sortorder INTEGER ; -<#if !fields?seq_contains("k_astat_staat.kennz") > +<#if !fields?seq_contains("colorscheme.colors") > -select now(), 'field k_astat_staat.kennz will be added'; +select now(), 'field colorscheme.colors will be added'; -alter table k_astat_staat add column kennz VARCHAR(255) ; +alter table colorscheme add column colors VARCHAR(255) ; -<#if !fields?seq_contains("k_astat_staat.kontinent") > +<#if !fields?seq_contains("arch_table.id") > -select now(), 'field k_astat_staat.kontinent will be added'; +select now(), 'field arch_table.id will be added'; -alter table k_astat_staat add column kontinent INTEGER ; +alter table arch_table add column id SERIAL not null; -<#if !fields?seq_contains("k_astat_kontinent.schluessel") > +<#if !fields?seq_contains("arch_table.name") > -select now(), 'field k_astat_kontinent.schluessel will be added'; +select now(), 'field arch_table.name will be added'; -alter table k_astat_kontinent add column schluessel INTEGER not null; +alter table arch_table add column name VARCHAR(255) ; -<#if !fields?seq_contains("k_astat_kontinent.nummer") > +<#if !fields?seq_contains("arch_table.zeitfeld") > -select now(), 'field k_astat_kontinent.nummer will be added'; +select now(), 'field arch_table.zeitfeld will be added'; -alter table k_astat_kontinent add column nummer VARCHAR(255) ; +alter table arch_table add column zeitfeld VARCHAR(255) ; -<#if !fields?seq_contains("k_astat_kontinent.name") > +<#if !fields?seq_contains("arch_datum.arch_table") > -select now(), 'field k_astat_kontinent.name will be added'; +select now(), 'field arch_datum.arch_table will be added'; -alter table k_astat_kontinent add column name VARCHAR(255) ; +alter table arch_datum add column arch_table VARCHAR(255) not null; + + + +<#if !fields?seq_contains("arch_datum.datum") > + + +select now(), 'field arch_datum.datum will be added'; + +alter table arch_datum add column datum timestamptz ; + + + +<#if !fields?seq_contains("arch_datum.bezugszeit_von") > + + +select now(), 'field arch_datum.bezugszeit_von will be added'; + +alter table arch_datum add column bezugszeit_von INTEGER ; + + + +<#if !fields?seq_contains("arch_datum.bezugszeit_bis") > + + +select now(), 'field arch_datum.bezugszeit_bis will be added'; + +alter table arch_datum add column bezugszeit_bis INTEGER ; + + + +<#if !fields?seq_contains("arch_datum.bezugsart") > + + +select now(), 'field arch_datum.bezugsart will be added'; + +alter table arch_datum add column bezugsart CHAR(1) default 'J' ; + + + +<#if !fields?seq_contains("arch_datum.userinfo_id") > + + +select now(), 'field arch_datum.userinfo_id will be added'; + +alter table arch_datum add column userinfo_id INTEGER not null; + + + +<#if !fields?seq_contains("arch_datum.kommentar") > + + +select now(), 'field arch_datum.kommentar will be added'; + +alter table arch_datum add column kommentar VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_prio_param.id") > + + +select now(), 'field k_prio_param.id will be added'; + +alter table k_prio_param add column id SERIAL not null; + + + +<#if !fields?seq_contains("k_prio_param.name") > + + +select now(), 'field k_prio_param.name will be added'; + +alter table k_prio_param add column name VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_prio_param.sortorder") > + + +select now(), 'field k_prio_param.sortorder will be added'; + +alter table k_prio_param add column sortorder VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_source.id") > + + +select now(), 'field k_source.id will be added'; + +alter table k_source add column id SERIAL not null; + + + +<#if !fields?seq_contains("k_source.name") > + + +select now(), 'field k_source.name will be added'; + +alter table k_source add column name VARCHAR(255) ; + + + +<#if !fields?seq_contains("k_source.sortorder") > + + +select now(), 'field k_source.sortorder will be added'; + +alter table k_source add column sortorder VARCHAR(255) ; diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_indexes_pg.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_indexes_pg.sql index d63556d..dc792e2 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_indexes_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_indexes_pg.sql @@ -132,10 +132,17 @@ where D.relname::varchar(200) in ('sichtart_rechttabelle', 'k_astat_abschluss2steller', 'k_astat_studienbereich', 'k_astat_studienfach', -'colorscheme', -'sx_mail', 'k_astat_staat', -'k_astat_kontinent')) UNION SELECT +'k_astat_kontinent', +'k_astat_faechergruppe', +'k_astat_abschl_grp', +'k_astat_staat_eu', +'sx_mail', +'colorscheme', +'arch_table', +'arch_datum', +'k_prio_param', +'k_source')) UNION SELECT C.relname, C.relname from pg_class C, pg_index I where I.indexrelid=C.oid and I.indrelid in ( @@ -264,10 +271,17 @@ and N.nspname||'.'||D.relname in ('sichtart_rechttabelle', 'k_astat_abschluss2steller', 'k_astat_studienbereich', 'k_astat_studienfach', -'colorscheme', -'sx_mail', 'k_astat_staat', -'k_astat_kontinent' +'k_astat_kontinent', +'k_astat_faechergruppe', +'k_astat_abschl_grp', +'k_astat_staat_eu', +'sx_mail', +'colorscheme', +'arch_table', +'arch_datum', +'k_prio_param', +'k_source' )); @@ -499,6 +513,29 @@ create index cifx_ind2 on cifx (uniquename ); +<#assign exists="false" /> +<#list indexes as i> +<#if i.getName()="cifx_ind3"> +<#assign exists="true" /> + + + +<#if exists="true" > + + +select now(), 'index cifx_ind3 exists - fine'; + + +<#else> + + +select now(), 'Erzeuge Index cifx_ind3'; + +create index cifx_ind3 on cifx (key, +apnr ); + + + <#assign exists="false" /> <#list indexes as i> <#if i.getName()="trans_cifx_ind"> @@ -1214,6 +1251,7 @@ select now(), 'index ix_tr_dim_bp_apnr exists - fine'; select now(), 'Erzeuge Index ix_tr_dim_bp_apnr'; create index ix_tr_dim_bp_apnr on trans_dim_bp_apnr (dimension_bp_id, +apnr, sourcesystem_id, systeminfo_id ); @@ -1328,3 +1366,27 @@ select now(), 'Erzeuge Index ix_etl_job1'; create unique index ix_etl_job1 on etl_job (uniquename ); + +<#assign exists="false" /> +<#list indexes as i> +<#if i.getName()="k_astat_staat_eu_idx1"> +<#assign exists="true" /> + + + +<#if exists="true" > + + +select now(), 'index k_astat_staat_eu_idx1 exists - fine'; + + +<#else> + + +select now(), 'Erzeuge Index k_astat_staat_eu_idx1'; + +create index k_astat_staat_eu_idx1 on k_astat_staat_eu (astat, +semester_von, +semester_bis ); + + diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_pg.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_pg.sql index 7968732..7159064 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_pg.sql @@ -92,6 +92,21 @@ select now(), 'Lade Tabelle k_astat_kontinent'; \! sx_auto_upload_table.x k_astat_kontinent $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_kontinent.unl +select now(), 'Lade Tabelle k_astat_faechergruppe'; + +\! sx_auto_upload_table.x k_astat_faechergruppe $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_faechergruppe.unl + + +select now(), 'Lade Tabelle k_astat_abschl_grp'; + +\! sx_auto_upload_table.x k_astat_abschl_grp $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_abschl_grp.unl + + +select now(), 'Lade Tabelle k_astat_staat_eu'; + +\! sx_auto_upload_table.x k_astat_staat_eu $SUPERX_DIR/db/install/schluesseltabellen/release_unloads/k_astat_staat_eu.unl + + select now(), 'SQL-Script $SUPERX_DIR/db/install/upgrade/kern_drop_views_pg.sql ausführen'; @@ -361,7 +376,7 @@ select now(), 'Fülle db_version'; delete from db_version where his_system='kern'; -insert into db_version (his_system,version,systeminfo_id) values('kern','5.0',9); +insert into db_version (his_system,version,systeminfo_id) values('kern','5.1b',9); @@ -400,13 +415,13 @@ values ('felderinfo','felderinfo','/edit/kern/felderinfo_edit.jsp','Felderinfo v insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('systeminfo','systeminfo','/edit/kern/systeminfo_edit.jsp','Systeminfo verwalten'::varchar(200),'In diesem Formular können Sie Quellsysteme verwalten.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_sachgeb_bez','user_sachgeb_bez','/edit/kern/user_sachgeb_bez_edit.jsp','Benutzer und Sachgebiete verwalten'::varchar(200),'In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_group_bez','user_group_bez','/edit/kern/user_group_bez_edit.jsp','Benutzer und Gruppen verwalten'::varchar(200),'In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('user_masken_bez','user_masken_bez','/edit/kern/user_masken_bez_edit.jsp','Maskenrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Masken geben.'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) -values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben'::varchar(255)); +values ('user_institution','user_institution','/edit/kern/user_institution_edit.jsp','Institutionsrechte von Benutzern'::varchar(200),'In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) values ('themenbaum_edit','themenbaum','/edit/kern/themenbaum_edit.jsp','Themenbaum'::varchar(200),'In diesem Formular können Sie den Themenbaum bearbeiten. Bitte beachten Sie: bei Änderungen muss der Themenbaum neu geladen werden (SuperXManager)'::varchar(255)); insert into tmp_db_forms (name, tablename,form_path,caption,description) diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_tables_pg.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_tables_pg.sql index a7cd9fa..1c1d082 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_tables_pg.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_tables_pg.sql @@ -127,10 +127,17 @@ select relname,relname as tabelle from pg_class JOIN pg_namespace ON pg_namespac 'k_astat_abschluss2steller', 'k_astat_studienbereich', 'k_astat_studienfach', -'colorscheme', -'sx_mail', 'k_astat_staat', -'k_astat_kontinent') UNION SELECT pg_namespace.nspname||'.'||relname as relname,pg_namespace.nspname||'.'||relname as tabelle from pg_class JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace WHERE pg_namespace.nspname||'.'||relname in ('sichtart_rechttabelle', +'k_astat_kontinent', +'k_astat_faechergruppe', +'k_astat_abschl_grp', +'k_astat_staat_eu', +'sx_mail', +'colorscheme', +'arch_table', +'arch_datum', +'k_prio_param', +'k_source') UNION SELECT pg_namespace.nspname||'.'||relname as relname,pg_namespace.nspname||'.'||relname as tabelle from pg_class JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace WHERE pg_namespace.nspname||'.'||relname in ('sichtart_rechttabelle', 'group_field_pref', 'stylesheet_field', 'db_tabellen', @@ -253,10 +260,17 @@ select relname,relname as tabelle from pg_class JOIN pg_namespace ON pg_namespac 'k_astat_abschluss2steller', 'k_astat_studienbereich', 'k_astat_studienfach', -'colorscheme', -'sx_mail', 'k_astat_staat', -'k_astat_kontinent' +'k_astat_kontinent', +'k_astat_faechergruppe', +'k_astat_abschl_grp', +'k_astat_staat_eu', +'sx_mail', +'colorscheme', +'arch_table', +'arch_datum', +'k_prio_param', +'k_source' ); @@ -487,7 +501,7 @@ create table db_version( his_system VARCHAR(255) , version CHAR(8) , kern_system CHAR(1) , -version_hash VARCHAR(32) , +version_hash VARCHAR() , systeminfo_id INTEGER , constraint c_db_version primary key (his_system, version) @@ -800,7 +814,7 @@ external_entry smallint default 0 , -comment on column user_masken_bez.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_masken_bez.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; delete from db_tabellen where name='user_masken_bez'; @@ -828,7 +842,7 @@ external_entry smallint default 0 , -comment on column user_sachgeb_bez.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_sachgeb_bez.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; delete from db_tabellen where name='user_sachgeb_bez'; @@ -1028,7 +1042,7 @@ comment on column user_group_bez.userinfo_id is 'UserID'; comment on column user_group_bez.groupinfo_id is 'Gruppe'; -comment on column user_group_bez.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_group_bez.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; delete from db_tabellen where name='user_group_bez'; @@ -1245,6 +1259,12 @@ select now(), 'Erzeuge Index cifx_ind2'; create index cifx_ind2 on cifx (uniquename ); + +select now(), 'Erzeuge Index cifx_ind3'; + +create index cifx_ind3 on cifx (key, +apnr ); + delete from db_tabellen where name='cifx'; insert into db_tabellen (name,protokollierung) values('cifx',0); @@ -1394,7 +1414,7 @@ obligatorisch INTEGER , art INTEGER , relation text , attribut CHAR(100) , -defaultwert CHAR(255) , +defaultwert TEXT , constraint c_felderinfo primary key (tid) ) @@ -1620,6 +1640,8 @@ extern_account_id VARCHAR(255) , extern_person_id VARCHAR(255) , sieht_projekte SMALLINT default 0 , extern_role_id INTEGER , +gueltig_von date , +gueltig_bis date , constraint c_userinfo primary key (tid) ) @@ -1629,6 +1651,10 @@ extern_role_id INTEGER , comment on column userinfo.sieht_projekte is 'Darf der User Projekte sehen'; +comment on column userinfo.gueltig_von is 'Beginn Gültigkeit'; + +comment on column userinfo.gueltig_bis is 'Ende Gültigkeit'; + select now(), 'Erzeuge Index i_userinfo'; @@ -2005,7 +2031,7 @@ comment on column user_institution.gueltig_bis is 'Gültig bis'; comment on column user_institution.lehre is 'obsoletes Feld'; -comment on column user_institution.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_institution.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; comment on column user_institution.externalid is 'ID der berechtigten Kostenstelle in externem System (HISinONe: orgunitid)'; @@ -2125,7 +2151,7 @@ comment on column user_kostentraeger.gueltig_seit is 'Gültig von'; comment on column user_kostentraeger.gueltig_bis is 'Gültig bis'; -comment on column user_kostentraeger.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_kostentraeger.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; comment on column user_kostentraeger.externalid is 'ID der berechtigten Kostenstelle in externem System (HISinONe: orgunitid)'; @@ -2373,6 +2399,7 @@ toolbar_icon_filepath VARCHAR(255) , usage_resultset_data CHAR(10) default 'T' , stylesheet_type CHAR(10) default 'XSL' , jr_datasource CHAR(10) , +uniquename VARCHAR(255) , constraint c_stylesheets primary key (tid) ) @@ -2404,6 +2431,8 @@ comment on column sx_stylesheets.stylesheet_type is 'Art des Stylesheets'; comment on column sx_stylesheets.jr_datasource is 'Datenquelle (JR)'; +comment on column sx_stylesheets.uniquename is 'Eindeutige Identifizierung des Datensatzes'; + delete from db_tabellen where name='sx_stylesheets'; insert into db_tabellen (name,protokollierung) values('sx_stylesheets',0); @@ -2615,7 +2644,7 @@ external_entry smallint default 0 , -comment on column user_sichten.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_sichten.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; delete from db_tabellen where name='user_sichten'; @@ -2645,7 +2674,7 @@ external_entry smallint default 0 , comment on column user_sichtarten.sichtart is 'Rechte für eine Art von Sichten geben'; -comment on column user_sichtarten.external_entry is 'Recht wird von externem System (HisInOne) gesetzt und entfernt'; +comment on column user_sichtarten.external_entry is 'Recht wird von externem System (HISinOne) gesetzt und entfernt'; delete from db_tabellen where name='user_sichtarten'; @@ -2785,7 +2814,7 @@ sort1 INTEGER , sort2 INTEGER , sort3 INTEGER , geaendert_am DATE , -aktiv SMALLINT , +aktiv SMALLINT default 0 not null, gueltig_seit DATE default date('01.01.1900') not null, gueltig_bis DATE default date('01.01.3000') not null, constraint pk_sx_repository primary key (tid) @@ -3848,6 +3877,7 @@ comment on column trans_dim_bp_apnr.sourcesystem_id is 'ID im Vorsystem'; select now(), 'Erzeuge Index ix_tr_dim_bp_apnr'; create index ix_tr_dim_bp_apnr on trans_dim_bp_apnr (dimension_bp_id, +apnr, sourcesystem_id, systeminfo_id ); @@ -5373,38 +5403,176 @@ comment on column k_astat_studienfach.sb is 'Studienbereich (Schlüssel)'; delete from db_tabellen where name='k_astat_studienfach'; insert into db_tabellen (name,protokollierung) values('k_astat_studienfach',0); -<#if !deleted_tables?seq_contains("colorscheme") && tables?is_sequence && tables?seq_contains("colorscheme") > +<#if !deleted_tables?seq_contains("k_astat_staat") && tables?is_sequence && tables?seq_contains("k_astat_staat") > -select now(), 'table colorscheme exists - fine'; +select now(), 'table k_astat_staat exists - fine'; <#else> -select now(), 'Erzeuge Tabelle colorscheme'; +select now(), 'Erzeuge Tabelle k_astat_staat'; + +create table k_astat_staat( + schluessel INTEGER not null, +nummer VARCHAR(255) , +name VARCHAR(255) , +kennz VARCHAR(255) , +kontinent INTEGER , + constraint c_k_astat_staat primary key (schluessel) -create table colorscheme( - id SERIAL not null, -caption VARCHAR(255) , -sortorder INTEGER , -colors VARCHAR(255) ) ; -comment on column colorscheme.id is 'id'; +comment on column k_astat_staat.schluessel is 'Schlüssel'; -comment on column colorscheme.caption is 'Bezeichnung'; +comment on column k_astat_staat.nummer is 'Nummer'; -comment on column colorscheme.sortorder is 'Sortierreihenfolge'; +comment on column k_astat_staat.name is 'Name'; -comment on column colorscheme.colors is 'Farben'; +comment on column k_astat_staat.kennz is 'Kennzeichen'; + +comment on column k_astat_staat.kontinent is 'Kontinent'; -delete from db_tabellen where name='colorscheme'; -insert into db_tabellen (name,protokollierung) values('colorscheme',0); +delete from db_tabellen where name='k_astat_staat'; +insert into db_tabellen (name,protokollierung) values('k_astat_staat',0); + +<#if !deleted_tables?seq_contains("k_astat_kontinent") && tables?is_sequence && tables?seq_contains("k_astat_kontinent") > + + +select now(), 'table k_astat_kontinent exists - fine'; + + +<#else> + + +select now(), 'Erzeuge Tabelle k_astat_kontinent'; + +create table k_astat_kontinent( + schluessel INTEGER not null, +nummer VARCHAR(255) , +name VARCHAR(255) , + constraint c_k_astat_kontinent primary key (schluessel) + +) +; + + + +comment on column k_astat_kontinent.schluessel is 'Schlüssel'; + +comment on column k_astat_kontinent.nummer is 'Nummer'; + +comment on column k_astat_kontinent.name is 'Name'; + + +delete from db_tabellen where name='k_astat_kontinent'; +insert into db_tabellen (name,protokollierung) values('k_astat_kontinent',0); + +<#if !deleted_tables?seq_contains("k_astat_faechergruppe") && tables?is_sequence && tables?seq_contains("k_astat_faechergruppe") > + + +select now(), 'table k_astat_faechergruppe exists - fine'; + + +<#else> + + +select now(), 'Erzeuge Tabelle k_astat_faechergruppe'; + +create table k_astat_faechergruppe( + schluessel VARCHAR(255) not null, +name VARCHAR(255) +) +; + + + +comment on column k_astat_faechergruppe.schluessel is 'Schlüssel'; + +comment on column k_astat_faechergruppe.name is 'Name'; + + +delete from db_tabellen where name='k_astat_faechergruppe'; +insert into db_tabellen (name,protokollierung) values('k_astat_faechergruppe',0); + +<#if !deleted_tables?seq_contains("k_astat_abschl_grp") && tables?is_sequence && tables?seq_contains("k_astat_abschl_grp") > + + +select now(), 'table k_astat_abschl_grp exists - fine'; + + +<#else> + + +select now(), 'Erzeuge Tabelle k_astat_abschl_grp'; + +create table k_astat_abschl_grp( + abschluss_astat_bund VARCHAR(255) not null, +abschluss_astat_bund_ktxt VARCHAR(255) , +abschlussart VARCHAR(255) , +abschluss_grp VARCHAR(255) , + constraint pk_k_astat_abschl_grp primary key (abschluss_astat_bund) + +) +; + + + +comment on column k_astat_abschl_grp.abschluss_astat_bund is 'Abschluss (Bundesschlüssel)'; + +comment on column k_astat_abschl_grp.abschluss_astat_bund_ktxt is 'Abschluss (Bundesschlüssel) Kurztext'; + +comment on column k_astat_abschl_grp.abschlussart is 'Abschlussart'; + +comment on column k_astat_abschl_grp.abschluss_grp is 'Abschlussgruppe'; + + +delete from db_tabellen where name='k_astat_abschl_grp'; +insert into db_tabellen (name,protokollierung) values('k_astat_abschl_grp',0); + +<#if !deleted_tables?seq_contains("k_astat_staat_eu") && tables?is_sequence && tables?seq_contains("k_astat_staat_eu") > + + +select now(), 'table k_astat_staat_eu exists - fine'; + + +<#else> + + +select now(), 'Erzeuge Tabelle k_astat_staat_eu'; + +create table k_astat_staat_eu( + tid SERIAL not null, +astat CHAR(3) not null, +eu CHAR(1) , +semester_von INTEGER , +semester_bis INTEGER , +gueltig_von DATE , +gueltig_bis DATE , + constraint pk_k_astat_staat_eu primary key (tid) + +) +; + + + +comment on column k_astat_staat_eu.eu is 'EU-Mitglied?'; + + +select now(), 'Erzeuge Index k_astat_staat_eu_idx1'; + +create index k_astat_staat_eu_idx1 on k_astat_staat_eu (astat, +semester_von, +semester_bis ); + + +delete from db_tabellen where name='k_astat_staat_eu'; +insert into db_tabellen (name,protokollierung) values('k_astat_staat_eu',0); <#if !deleted_tables?seq_contains("sx_mail") && tables?is_sequence && tables?seq_contains("sx_mail") > @@ -5486,75 +5654,172 @@ comment on column sx_mail.daemon3_interval is 'Die Anzahl von Sekunden nach dene delete from db_tabellen where name='sx_mail'; insert into db_tabellen (name,protokollierung) values('sx_mail',0); -<#if !deleted_tables?seq_contains("k_astat_staat") && tables?is_sequence && tables?seq_contains("k_astat_staat") > +<#if !deleted_tables?seq_contains("colorscheme") && tables?is_sequence && tables?seq_contains("colorscheme") > -select now(), 'table k_astat_staat exists - fine'; +select now(), 'table colorscheme exists - fine'; <#else> -select now(), 'Erzeuge Tabelle k_astat_staat'; +select now(), 'Erzeuge Tabelle colorscheme'; -create table k_astat_staat( - schluessel INTEGER not null, -nummer VARCHAR(255) , +create table colorscheme( + id SERIAL not null, +caption VARCHAR(255) , +sortorder INTEGER , +colors VARCHAR(255) +) +; + + + +comment on table colorscheme is 'Farbschema für Diagramm in BI-Analysen festlegen'; + +comment on column colorscheme.id is 'id'; + +comment on column colorscheme.caption is 'Bezeichnung'; + +comment on column colorscheme.sortorder is 'Sortierreihenfolge'; + +comment on column colorscheme.colors is 'Farben'; + + +delete from db_tabellen where name='colorscheme'; +insert into db_tabellen (name,protokollierung) values('colorscheme',0); + +<#if !deleted_tables?seq_contains("arch_table") && tables?is_sequence && tables?seq_contains("arch_table") > + + +select now(), 'table arch_table exists - fine'; + + +<#else> + + +select now(), 'Erzeuge Tabelle arch_table'; + +create table arch_table( + id SERIAL not null, name VARCHAR(255) , -kennz VARCHAR(255) , -kontinent INTEGER , - constraint c_k_astat_staat primary key (schluessel) +zeitfeld VARCHAR(255) +) +; + + + +comment on column arch_table.id is 'id'; + +comment on column arch_table.name is 'Name der archivierten Tabelle'; + +comment on column arch_table.zeitfeld is 'Feld für die Zeitangabe'; + + +delete from db_tabellen where name='arch_table'; +insert into db_tabellen (name,protokollierung) values('arch_table',0); + +<#if !deleted_tables?seq_contains("arch_datum") && tables?is_sequence && tables?seq_contains("arch_datum") > + + +select now(), 'table arch_datum exists - fine'; + + +<#else> + +select now(), 'Erzeuge Tabelle arch_datum'; + +create table arch_datum( + arch_table VARCHAR(255) not null, +datum timestamptz , +bezugszeit_von INTEGER , +bezugszeit_bis INTEGER , +bezugsart CHAR(1) default 'J' , +userinfo_id INTEGER not null, +kommentar VARCHAR(255) ) ; -comment on column k_astat_staat.schluessel is 'Schlüssel'; +comment on column arch_datum.arch_table is 'Name der archivierten Tabelle'; -comment on column k_astat_staat.nummer is 'Nummer'; +comment on column arch_datum.datum is 'Archivierungsdatum und -uhrzeit'; -comment on column k_astat_staat.name is 'Name'; +comment on column arch_datum.bezugszeit_von is 'Bezugszeit (von) der archivierten Daten'; -comment on column k_astat_staat.kennz is 'Kennzeichen'; +comment on column arch_datum.bezugszeit_bis is 'Bezugszeit (bis) der archivierten Daten'; -comment on column k_astat_staat.kontinent is 'Kontinent'; +comment on column arch_datum.bezugsart is 'Bezugsart (Semester S, Akad. Jahr A,Jahr J, Quartal Q, Monat M)'; + +comment on column arch_datum.userinfo_id is 'Userinfo ID'; + +comment on column arch_datum.kommentar is 'Kommentar zur Archivierung'; -delete from db_tabellen where name='k_astat_staat'; -insert into db_tabellen (name,protokollierung) values('k_astat_staat',0); +delete from db_tabellen where name='arch_datum'; +insert into db_tabellen (name,protokollierung) values('arch_datum',0); -<#if !deleted_tables?seq_contains("k_astat_kontinent") && tables?is_sequence && tables?seq_contains("k_astat_kontinent") > +<#if !deleted_tables?seq_contains("k_prio_param") && tables?is_sequence && tables?seq_contains("k_prio_param") > -select now(), 'table k_astat_kontinent exists - fine'; +select now(), 'table k_prio_param exists - fine'; <#else> -select now(), 'Erzeuge Tabelle k_astat_kontinent'; +select now(), 'Erzeuge Tabelle k_prio_param'; -create table k_astat_kontinent( - schluessel INTEGER not null, -nummer VARCHAR(255) , +create table k_prio_param( + id SERIAL not null, name VARCHAR(255) , - constraint c_k_astat_kontinent primary key (schluessel) +sortorder VARCHAR(255) +) +; + + + +comment on column k_prio_param.id is 'id'; + +comment on column k_prio_param.name is 'Name der Priorität'; + +comment on column k_prio_param.sortorder is 'Sortierung der Priorität'; + + +delete from db_tabellen where name='k_prio_param'; +insert into db_tabellen (name,protokollierung) values('k_prio_param',0); +<#if !deleted_tables?seq_contains("k_source") && tables?is_sequence && tables?seq_contains("k_source") > + + +select now(), 'table k_source exists - fine'; + + +<#else> + + +select now(), 'Erzeuge Tabelle k_source'; + +create table k_source( + id SERIAL not null, +name VARCHAR(255) , +sortorder VARCHAR(255) ) ; -comment on column k_astat_kontinent.schluessel is 'Schlüssel'; +comment on column k_source.id is 'id'; -comment on column k_astat_kontinent.nummer is 'Nummer'; +comment on column k_source.name is 'Name des Quellsystems'; -comment on column k_astat_kontinent.name is 'Name'; +comment on column k_source.sortorder is 'Sortierung des Quellsystems'; -delete from db_tabellen where name='k_astat_kontinent'; -insert into db_tabellen (name,protokollierung) values('k_astat_kontinent',0); +delete from db_tabellen where name='k_source'; +insert into db_tabellen (name,protokollierung) values('k_source',0); -- update primary keys, see ticket: #296420 alter table if exists sichtart_rechttabelle drop constraint if exists sichtart_rechttabelle_pkey; alter table if exists sichtart_rechttabelle drop constraint if exists ix_sichtart_rt_p1; @@ -5742,6 +6007,10 @@ alter table if exists k_astat_staat drop constraint if exists k_astat_staat_pkey alter table if exists k_astat_staat drop constraint if exists c_k_astat_staat; alter table if exists k_astat_kontinent drop constraint if exists k_astat_kontinent_pkey; alter table if exists k_astat_kontinent drop constraint if exists c_k_astat_kontinent; +alter table if exists k_astat_abschl_grp drop constraint if exists k_astat_abschl_grp_pkey; +alter table if exists k_astat_abschl_grp drop constraint if exists pk_k_astat_abschl_grp; +alter table if exists k_astat_staat_eu drop constraint if exists k_astat_staat_eu_pkey; +alter table if exists k_astat_staat_eu drop constraint if exists pk_k_astat_staat_eu; alter table if exists sichtart_rechttabelle add constraint sichtart_rechttabelle_pkey primary key (tid); alter table if exists group_field_pref add constraint group_field_pref_pkey primary key (tid); alter table if exists stylesheet_field add constraint stylesheet_field_pkey primary key (tid); @@ -5835,3 +6104,5 @@ alter table if exists etl_job add constraint etl_job_pkey primary key (tid); alter table if exists etl_job_param add constraint etl_job_param_pkey primary key (tid); alter table if exists k_astat_staat add constraint k_astat_staat_pkey primary key (schluessel); alter table if exists k_astat_kontinent add constraint k_astat_kontinent_pkey primary key (schluessel); +alter table if exists k_astat_abschl_grp add constraint k_astat_abschl_grp_pkey primary key (abschluss_astat_bund); +alter table if exists k_astat_staat_eu add constraint k_astat_staat_eu_pkey primary key (tid); diff --git a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_themenbaum.sql b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_themenbaum.sql index 37cef8a..fda1bc9 100644 --- a/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_themenbaum.sql +++ b/superx/WEB-INF/conf/edustore/db/install/upgrade/kern_upgrade_themenbaum.sql @@ -302,12 +302,12 @@ insert into tmp_themenbaum( gueltig_seit, gueltig_bis, erlaeuterung) - select 'Entwicklung'::char(255), + select 'Stammdaten verwalten'::char(255), date_val('01.01.1900'),date_val('30.09.2999'), - 'Spezielle Funktionen für die Entwicklung' + 'Abfragen zur Stammdatenverwaltung' from xdummy; delete from tmp_themenbaum where 0 < -(select count(*) from themenbaum where name='Entwicklung'); +(select count(*) from themenbaum where name='Stammdaten verwalten'); update tmp_themenbaum set parent=(select max(tid) from themenbaum where name='Administration'); insert into themenbaum( @@ -333,12 +333,12 @@ insert into tmp_themenbaum( gueltig_seit, gueltig_bis, erlaeuterung) - select 'Stammdaten verwalten'::char(255), + select 'Datenmanagement'::char(255), date_val('01.01.1900'),date_val('30.09.2999'), - 'Abfragen zur Stammdatenverwaltung' + 'Abfragen zum Datenmanagement' from xdummy; delete from tmp_themenbaum where 0 < -(select count(*) from themenbaum where name='Stammdaten verwalten'); +(select count(*) from themenbaum where name='Datenmanagement'); update tmp_themenbaum set parent=(select max(tid) from themenbaum where name='Administration'); insert into themenbaum( @@ -569,6 +569,36 @@ select delete from tmp_themenbaum; +insert into tmp_themenbaum( + name, + maskeninfo_id, + gueltig_seit, + gueltig_bis) + select 'User einrichten'::char(255),70970, + date_val('01.01.1900'),date_val('30.09.2999') + from xdummy; +delete from tmp_themenbaum where 0 < +(select count(*) from themenbaum where maskeninfo_id=70970); +update tmp_themenbaum set parent=(select max(tid) from themenbaum where name='Benutzer verwalten'); + +insert into themenbaum( + name, + maskeninfo_id, + parent, + gueltig_seit, + gueltig_bis, + erlaeuterung) +select + name, + maskeninfo_id, + parent, + gueltig_seit, + gueltig_bis, + erlaeuterung + from tmp_themenbaum; + +delete from tmp_themenbaum; + insert into tmp_themenbaum( name, maskeninfo_id, @@ -1722,5 +1752,5 @@ update themenbaum set erlaeuterung='Abfragen zur Maskenverwaltung' where name='M update themenbaum set erlaeuterung='Uploads/Downloads verwalten' where name='Uploads/Downloads verwalten'; update themenbaum set erlaeuterung='Abfragen zur Feld-Verwaltung' where name='Felder'; update themenbaum set erlaeuterung='Benutzereinstellungen (Passwort ändern etc.)' where name='Benutzer'; -update themenbaum set erlaeuterung='Spezielle Funktionen für die Entwicklung' where name='Entwicklung'; update themenbaum set erlaeuterung='Abfragen zur Stammdatenverwaltung' where name='Stammdaten verwalten'; +update themenbaum set erlaeuterung='Abfragen zum Datenmanagement' where name='Datenmanagement'; diff --git a/superx/WEB-INF/kern_dbforms-config_pg.xml b/superx/WEB-INF/kern_dbforms-config_pg.xml index 91cbfe9..36a20ca 100644 --- a/superx/WEB-INF/kern_dbforms-config_pg.xml +++ b/superx/WEB-INF/kern_dbforms-config_pg.xml @@ -15,6 +15,22 @@
                        SuperX-Version2
                        Modulversion5.0Modulversion5.1b
                        SachgebietAdministration id 0
                        + + + + + + + + + +
                        + + + + + +
                        @@ -34,8 +50,8 @@
                        - - + + @@ -71,7 +87,7 @@ - + @@ -158,13 +174,13 @@ 1=ja, Verarbeitung bestätigt (per mail an submission_email und processor_email) - + - + - + @@ -190,7 +206,7 @@ - +
                        @@ -410,20 +426,20 @@ - - + + - + - + - + @@ -457,10 +473,10 @@ - + - + @@ -473,10 +489,10 @@ - + - + @@ -489,10 +505,10 @@
                        - + - + @@ -500,7 +516,7 @@
                        - + @@ -508,13 +524,13 @@
                        - + - + - + @@ -532,7 +548,7 @@ Matrikelnummer der gelöschten Entity -Entiy-Klasse des gelöschten Objekts in HisInOne +Entiy-Klasse des gelöschten Objekts in HISinOne Zeitpunkt der Löschung in HISinOne @@ -541,7 +557,7 @@ Zeitpunkt der Löschung in der BI -Job-Ausführung in HisInOne von der Delete-Event ausgelöst wird +Job-Ausführung in HISinOne von der Delete-Event ausgelöst wird
                        @@ -569,6 +585,13 @@ + + + + + + +
                        @@ -590,6 +613,11 @@
                        + + + + +
                        @@ -604,6 +632,18 @@
                        + + + + +J=ja, N=nein + + + + + + +
                        @@ -628,6 +668,18 @@
                        + + + + + +
                        + + + + + +
                        @@ -675,10 +727,10 @@ - + - + @@ -731,10 +783,10 @@ - + - + @@ -750,10 +802,10 @@ - + - + @@ -761,10 +813,10 @@
                        - + - + @@ -772,10 +824,10 @@
                        - + - + @@ -787,10 +839,10 @@ - + - + @@ -801,10 +853,10 @@ - + - + @@ -835,7 +887,7 @@ - + @@ -983,16 +1035,16 @@ - + - + - + - + @@ -1005,10 +1057,10 @@
                        - + - + @@ -1016,7 +1068,7 @@
                        - + @@ -1024,10 +1076,10 @@
                        - + - + @@ -1135,7 +1187,7 @@ soll Sicht im XML-Frontend gecachet werden - + @@ -1197,14 +1249,14 @@ - + - + - + @@ -1225,10 +1277,10 @@ - + - + @@ -1263,7 +1315,7 @@ - + @@ -1314,7 +1366,7 @@ - + @@ -1412,10 +1464,10 @@ - + - + @@ -1468,27 +1520,32 @@ Wird nur bei JR ausgewertet. Mögliche Werte: RS,XMLSOURCE + + + + + - + - + - + - + @@ -1558,7 +1615,7 @@ - + @@ -1566,7 +1623,7 @@
                        - + @@ -1579,10 +1636,10 @@ - + - + @@ -1601,7 +1658,7 @@ - + @@ -1670,7 +1727,7 @@
                        - + @@ -1698,7 +1755,7 @@ Ab Kern5.0 bezieht sich die Gültigkeit auf den Tag, bis zu dem eine Berechtigung gültig ist.(Vorher bezog sie sich darauf, welchen Stand man für eine Sicht einstellte). - + @@ -1716,14 +1773,14 @@ - +
                        - + @@ -1766,7 +1823,7 @@
                        - + @@ -1778,8 +1835,8 @@
                        - - + + @@ -1789,11 +1846,11 @@ Rechte für eine einzelne Sicht geben - - + + - + @@ -1838,6 +1895,8 @@ + +
                        @@ -2003,6 +2062,8 @@ Außerdem können Sie hier dem Benutzer Berechtigungen über Gruppen, Sachgebiet + + @@ -2303,7 +2364,8 @@ Außerdem können Sie hier dem Benutzer Berechtigungen über Gruppen, Sachgebiet - + + @@ -2316,7 +2378,7 @@ Außerdem können Sie hier dem Benutzer Berechtigungen über Gruppen, Sachgebiet
                        -In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben +In diesem Formular können Sie Benutzern Sachgebietsrechte geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben userinfo_id sachgebiete_id @@ -2325,7 +2387,7 @@ Außerdem können Sie hier dem Benutzer Berechtigungen über Gruppen, Sachgebiet
                        -In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HisInOne) werden bei Neuanmeldung überschrieben +In diesem Formular können Sie Benutzer zu Gruppen zuordnen. Achtung: Zuordnung zur Gruppe Administratoren für admins von externem System (HISinOne) werden bei Neuanmeldung überschrieben userinfo_id groupinfo_id @@ -2343,7 +2405,7 @@ Außerdem können Sie hier dem Benutzer Berechtigungen über Gruppen, Sachgebiet
                        -In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HisInOne) werden bei Neuanmeldung überschrieben +In diesem Formular können Sie Benutzern Rechte auf einzelne Insitutionen geben. Achtung: Einträge von externem System (HISinOne) werden bei Neuanmeldung überschrieben ch110_institut diff --git a/superx/WEB-INF/lib/superx5.1.jar b/superx/WEB-INF/lib/superx5.1.jar index e24648b8e735e9b50e9052b758d266d189283a85..1465bd0b71e35ea4cf902b0cda6e64ec9efdea3d 100644 GIT binary patch delta 121923 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%0DM<#kfiD+tN)vd_`KK3z*#*pe4?k-mEz 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%0DXUVV9aR_FN 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 xsm_rksv%7rnPjG+O + + + + + + + + + +Patch:Es werden neue Schlüsseltabllen für Staaten, Kontinente, EU-Miglichdschaft sowie weiterer Tabellen eingespielt, die in SuperX Kern 5.1 und HISinOne-BI 2024.12 bereits enthalten ist. Die Tabelle ist die Grundlage für Sichten nach Staaten.
                        +
                        + + + + + + + + + +Datei Fach (Land) zu Land (Bund) +Datei Staat (Bund) +Datei Kontinent (Bund) +Datei Fächergruppen (Bund) +Datei Abschluss (Land) zu Abschluss (Bund) +Datei Abschluss (Bund) +Datei Studienbereich (Bund) +Datei Fach (Bund) +Tabelle Staaten nach EU-Mitgl. +Tabelle Abschluss (Bund) zu Abschlussgruppen + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        + + + +
                        diff --git a/superx/edit/kern/data_upload_edit.jsp b/superx/edit/kern/data_upload_edit.jsp index 1a66230..b84f7e6 100644 --- a/superx/edit/kern/data_upload_edit.jsp +++ b/superx/edit/kern/data_upload_edit.jsp @@ -118,7 +118,7 @@ dbConnectionName="<%= mandantenid %>" >

                        @@ -185,7 +185,7 @@ dbConnectionName="<%= mandantenid %>" > @@ -194,7 +194,7 @@ dbConnectionName="<%= mandantenid %>" > diff --git a/superx/edit/kern/felderinfo_edit.jsp b/superx/edit/kern/felderinfo_edit.jsp index cd7a8a2..f670c57 100644 --- a/superx/edit/kern/felderinfo_edit.jsp +++ b/superx/edit/kern/felderinfo_edit.jsp @@ -146,7 +146,7 @@ dbConnectionName="<%= mandantenid %>" > @@ -163,7 +163,7 @@ dbConnectionName="<%= mandantenid %>" > @@ -172,7 +172,7 @@ dbConnectionName="<%= mandantenid %>" > @@ -196,7 +196,7 @@ dbConnectionName="<%= mandantenid %>" > diff --git a/superx/edit/kern/group_field_pref_edit.jsp b/superx/edit/kern/group_field_pref_edit.jsp index bd330dd..681eb40 100644 --- a/superx/edit/kern/group_field_pref_edit.jsp +++ b/superx/edit/kern/group_field_pref_edit.jsp @@ -117,7 +117,7 @@ dbConnectionName="<%= mandantenid %>" > @@ -126,7 +126,7 @@ dbConnectionName="<%= mandantenid %>" ><%@ include file="/edit/kern/group_field_pref_edit_hidden.inc" %>
                        -<% sql = "select name, name from sx_tables order by name;"; %> +<% sql = "select name, name from sx_tables order by name;"; %>
                        -<% sql = "select key_apnr::char(10), trim(key_apnr) || '-' || trim(name) from organigramm order by trim(key_apnr) || '-' || trim(name);"; %> +<% sql = "select key_apnr::char(10), trim(key_apnr) || '-' || trim(name) from organigramm order by trim(key_apnr) || '-' || trim(name);"; %>
                        -<% sql = "select tid, name from userinfo order by name;"; %> +<% sql = "select tid, name from userinfo order by name;"; %>
                        Person, die den Download eingereicht hat
                        -<% sql = "select element_value::char(15)::char(15), description from menu_element where menu_element.element = \'Feldtyp\' order by description;"; %> +<% sql = "select element_value::char(15)::char(15), description from menu_element where menu_element.element = \'Feldtyp\' order by description;"; %>
                        -<% sql = "select element_value, description from menu_element_mandatory where menu_element_mandatory.element = \'obligatorisch\' order by description;"; %> +<% sql = "select element_value, description from menu_element_mandatory where menu_element_mandatory.element = \'obligatorisch\' order by description;"; %>
                        -<% sql = "select element_value, description from menu_element_fieldmode where menu_element_fieldmode.element = \'Feldart\' order by description;"; %> +<% sql = "select element_value, description from menu_element_fieldmode where menu_element_fieldmode.element = \'Feldart\' order by description;"; %>
                        - +
                        -<% sql = "select tid, trim(name) from groupinfo order by trim(name);"; %> +<% sql = "select tid, trim(name) from groupinfo order by trim(name);"; %>
                        -<% sql = "select tid, tid || ' - ' || trim(name) from felderinfo order by tid || ' - ' || trim(name);"; %> +<% sql = "select tid, tid || ' - ' || trim(name) from felderinfo order by tid || ' - ' || trim(name);"; %>
                        diff --git a/superx/edit/kern/group_field_pref_list.jsp b/superx/edit/kern/group_field_pref_list.jsp index 508d1c4..279e7fd 100644 --- a/superx/edit/kern/group_field_pref_list.jsp +++ b/superx/edit/kern/group_field_pref_list.jsp @@ -92,7 +92,7 @@ dbConnectionName="<%= mandantenid %>" >