diff --git a/src-modules/module/sxc/conf/sxc.xml b/src-modules/module/sxc/conf/sxc.xml
index 95287c4..437adc3 100644
--- a/src-modules/module/sxc/conf/sxc.xml
+++ b/src-modules/module/sxc/conf/sxc.xml
@@ -314,6 +314,71 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" />
+
+Kennzahlen aus manueller Schnittstelle
+
+ Primaerschluessel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bestände und deren Quellen
+
+ Primaerschluessel
+ bspw. MKW NRW Hochschulkennzahlen
+ bspw. MKW NRW
+ 0 heißt deutschlandweit
+
+
+
+
+Bestände und deren Quellen
+
+ bspw. 1
+ bspw. Hochschule
+ bspw. Uni Leipzig
+ bspw. sxc_zahl_wert
+ bspw. 1
+ bspw. hs_nr
+ bspw. 361
+
+
@@ -422,6 +487,12 @@ parent="SuperX-Connect">Abfragen zur Administration von SuperX-Connect
$SXC_PFAD/masken
+
+
+
+ $SXC_PFAD/masken
+
+
diff --git a/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz.kjb b/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz.kjb
new file mode 100644
index 0000000..cc3a2e4
--- /dev/null
+++ b/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz.kjb
@@ -0,0 +1,529 @@
+
+
+ import_bestand_mwk_nrw_hskennz
+
+
+
+ /
+ -
+ 2025/05/09 08:04:01.642
+ -
+ 2025/05/09 08:04:01.642
+
+
+
+ eduetl
+ localhost
+ POSTGRESQL
+ Native
+ eduetl_muster_2024_12
+ 9996
+ superx
+ Encrypted 2be98afc86aa7f285a51faf7ed9c3fd89
+
+
+
+
+ FORCE_IDENTIFIERS_TO_LOWERCASE
N
+ FORCE_IDENTIFIERS_TO_UPPERCASE
N
+ IS_CLUSTERED
N
+ PORT_NUMBER
9996
+ PRESERVE_RESERVED_WORD_CASE
Y
+ QUOTE_ALL_FIELDS
N
+ SUPPORTS_BOOLEAN_DATA_TYPE
Y
+ SUPPORTS_TIMESTAMP_DATA_TYPE
Y
+ USE_POOLING
N
+
+
+
+
+
+
+
+
+
+
+
+
+ ID_JOB
+ Y
+ ID_JOB
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ JOBNAME
+ Y
+ JOBNAME
+
+
+ STATUS
+ Y
+ STATUS
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ STARTDATE
+ Y
+ STARTDATE
+
+
+ ENDDATE
+ Y
+ ENDDATE
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ DEPDATE
+ Y
+ DEPDATE
+
+
+ REPLAYDATE
+ Y
+ REPLAYDATE
+
+
+ LOG_FIELD
+ Y
+ LOG_FIELD
+
+
+ EXECUTING_SERVER
+ N
+ EXECUTING_SERVER
+
+
+ EXECUTING_USER
+ N
+ EXECUTING_USER
+
+
+ START_JOB_ENTRY
+ N
+ START_JOB_ENTRY
+
+
+ CLIENT
+ N
+ CLIENT
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ JOBNAME
+ Y
+ TRANSNAME
+
+
+ JOBENTRYNAME
+ Y
+ STEPNAME
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ RESULT
+ Y
+ RESULT
+
+
+ NR_RESULT_ROWS
+ Y
+ NR_RESULT_ROWS
+
+
+ NR_RESULT_FILES
+ Y
+ NR_RESULT_FILES
+
+
+ LOG_FIELD
+ N
+ LOG_FIELD
+
+
+ COPY_NR
+ N
+ COPY_NR
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ LOGGING_OBJECT_TYPE
+ Y
+ LOGGING_OBJECT_TYPE
+
+
+ OBJECT_NAME
+ Y
+ OBJECT_NAME
+
+
+ OBJECT_COPY
+ Y
+ OBJECT_COPY
+
+
+ REPOSITORY_DIRECTORY
+ Y
+ REPOSITORY_DIRECTORY
+
+
+ FILENAME
+ Y
+ FILENAME
+
+
+ OBJECT_ID
+ Y
+ OBJECT_ID
+
+
+ OBJECT_REVISION
+ Y
+ OBJECT_REVISION
+
+
+ PARENT_CHANNEL_ID
+ Y
+ PARENT_CHANNEL_ID
+
+
+ ROOT_CHANNEL_ID
+ Y
+ ROOT_CHANNEL_ID
+
+
+ N
+
+
+
+ START
+
+ SPECIAL
+ Y
+ N
+ N
+ 0
+ 0
+ 60
+ 12
+ 0
+ 1
+ 1
+ N
+ Y
+ 0
+ 96
+ 192
+
+
+ Success
+
+ SUCCESS
+ N
+ Y
+ 0
+ 1056
+ 192
+
+
+ excel_into_tmp
+
+ TRANS
+ filename
+
+ ${Internal.Job.Filename.Directory}/import_bestand_mwk_nrw_hskennz_1.ktr
+
+ N
+ N
+ N
+ N
+ N
+ N
+
+
+ N
+ N
+ Basic
+ N
+
+ N
+ Y
+ N
+ N
+ N
+
+ Y
+
+ N
+ Y
+ 0
+ 272
+ 320
+
+
+ create tmp_sxc_zahl_wert
+
+ SQL
+ drop table if exists tmp_sxc_zahl_wert;
CREATE TABLE tmp_sxc_zahl_wert
(
tid serial,
hs_nr_str varchar(255),
hs_nr integer,
kenn_zahl char(100) NOT NULL,
jahr smallint,
sem smallint,
ch110_institut char(10),
bland integer,
sxc_bestand_id integer,
wert_str varchar(255),
wert decimal(20,10),
generic_dim1 char(100),
generic_dim2 char(100)
);
+ F
+ F
+
+ F
+ eduetl
+ N
+ Y
+ 0
+ 272
+ 192
+
+
+ update tmp_sxc_zahl_wert
+
+ SQL
+ update tmp_sxc_zahl_wert set
hs_nr=M.target_value
from
sxc_mapping_bestand M
where
M.sxc_bestand_id=1
and M.object_type='Hochschule'
and M.object_value=tmp_sxc_zahl_wert.hs_nr_str
;
update tmp_sxc_zahl_wert
set wert =
case
when wert_str != '--'
and wert_str is not null
and wert_str <> ''
then cast(replace(wert_str, ',' , '.') as decimal(20,10)) * 100
else null
end
where kenn_zahl like '%_proz%'
;
update tmp_sxc_zahl_wert
set wert =
case
when wert_str != '--'
and wert_str is not null
and wert_str <> ''
then cast(replace(wert_str, ',' , '.') as decimal(20,10))
else null
end
where wert is null
;
update tmp_sxc_zahl_wert set sxc_bestand_id=1; -- MKW NRW Hochschulkennzahlen
update tmp_sxc_zahl_wert set bland=5; -- NRW
+ F
+ F
+ ${Internal.Job.Filename.Directory}/update_tmp_sxc_zahl_wert.sql
+ F
+ eduetl
+ N
+ Y
+ 0
+ 688
+ 192
+
+
+ insert into sxc_zahl_wert
+
+ SQL
+ delete from sxc_zahl_wert
where
sxc_bestand_id=1
and jahr in (select jahr from tmp_sxc_zahl_wert)
and hs_nr in (select hs_nr from tmp_sxc_zahl_wert)
;
INSERT INTO sxc_zahl_wert
(
hs_nr,
kenn_zahl,
jahr,
sem,
bland,
ch110_institut,
sxc_bestand_id,
wert,
generic_dim1,
generic_dim2
)
select
hs_nr,
kenn_zahl,
jahr,
sem,
bland,
ch110_institut,
sxc_bestand_id,
wert,
generic_dim1,
generic_dim2
from tmp_sxc_zahl_wert
where
hs_nr is not null
order by
sxc_bestand_id,1,2,3,4
;
drop table if exists tmp_sxc_zahl_wert;
+ F
+ F
+
+ F
+ eduetl
+ N
+ Y
+ 0
+ 880
+ 272
+
+
+ excel_into_tmp 2
+
+ TRANS
+ filename
+
+ ${Internal.Job.Filename.Directory}/import_bestand_mwk_nrw_hskennz_2.ktr
+
+ N
+ N
+ N
+ N
+ N
+ N
+
+
+ N
+ N
+ Basic
+ N
+
+ N
+ Y
+ N
+ N
+ N
+
+ Y
+
+ N
+ Y
+ 0
+ 448
+ 320
+
+
+
+
+ START
+ create tmp_sxc_zahl_wert
+ 0
+ 0
+ Y
+ Y
+ Y
+
+
+ create tmp_sxc_zahl_wert
+ excel_into_tmp
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+ insert into sxc_zahl_wert
+ Success
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+ update tmp_sxc_zahl_wert
+ insert into sxc_zahl_wert
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+ excel_into_tmp
+ excel_into_tmp 2
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+ excel_into_tmp 2
+ update tmp_sxc_zahl_wert
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+ update tmp_sxc_zahl_wert
+ Success
+ 0
+ 0
+ N
+ Y
+ N
+
+
+
+
+
diff --git a/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz_1.ktr b/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz_1.ktr
new file mode 100644
index 0000000..5ef0d03
--- /dev/null
+++ b/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz_1.ktr
@@ -0,0 +1,998 @@
+
+
+
+ import_bestand_mwk_nrw_hskennz_1
+
+
+
+ Normal
+ 0
+ /
+
+
+ PATH_TO_UPLOADFILE
+ file:///home/superx/git/Memtext-Interna/Projekte/duisburg-essen_uni/muster/2025_stammdaten_nrw/Stammdaten_MKW_orig_2023.xlsx
+
+
+
+
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STATUS
+ Y
+ STATUS
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ STARTDATE
+ Y
+ STARTDATE
+
+
+ ENDDATE
+ Y
+ ENDDATE
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ DEPDATE
+ Y
+ DEPDATE
+
+
+ REPLAYDATE
+ Y
+ REPLAYDATE
+
+
+ LOG_FIELD
+ Y
+ LOG_FIELD
+
+
+ EXECUTING_SERVER
+ N
+ EXECUTING_SERVER
+
+
+ EXECUTING_USER
+ N
+ EXECUTING_USER
+
+
+ CLIENT
+ N
+ CLIENT
+
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ SEQ_NR
+ Y
+ SEQ_NR
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STEPNAME
+ Y
+ STEPNAME
+
+
+ STEP_COPY
+ Y
+ STEP_COPY
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ INPUT_BUFFER_ROWS
+ Y
+ INPUT_BUFFER_ROWS
+
+
+ OUTPUT_BUFFER_ROWS
+ Y
+ OUTPUT_BUFFER_ROWS
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ LOGGING_OBJECT_TYPE
+ Y
+ LOGGING_OBJECT_TYPE
+
+
+ OBJECT_NAME
+ Y
+ OBJECT_NAME
+
+
+ OBJECT_COPY
+ Y
+ OBJECT_COPY
+
+
+ REPOSITORY_DIRECTORY
+ Y
+ REPOSITORY_DIRECTORY
+
+
+ FILENAME
+ Y
+ FILENAME
+
+
+ OBJECT_ID
+ Y
+ OBJECT_ID
+
+
+ OBJECT_REVISION
+ Y
+ OBJECT_REVISION
+
+
+ PARENT_CHANNEL_ID
+ Y
+ PARENT_CHANNEL_ID
+
+
+ ROOT_CHANNEL_ID
+ Y
+ ROOT_CHANNEL_ID
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STEPNAME
+ Y
+ STEPNAME
+
+
+ STEP_COPY
+ Y
+ STEP_COPY
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ LOG_FIELD
+ N
+ LOG_FIELD
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ METRICS_DATE
+ Y
+ METRICS_DATE
+
+
+ METRICS_CODE
+ Y
+ METRICS_CODE
+
+
+ METRICS_DESCRIPTION
+ Y
+ METRICS_DESCRIPTION
+
+
+ METRICS_SUBJECT
+ Y
+ METRICS_SUBJECT
+
+
+ METRICS_TYPE
+ Y
+ METRICS_TYPE
+
+
+ METRICS_VALUE
+ Y
+ METRICS_VALUE
+
+
+
+
+
+
+
+ 0.0
+ 0.0
+
+ 10000
+ 50
+ 50
+ N
+ Y
+ 50000
+ Y
+
+ N
+ 1000
+ 100
+
+
+
+
+
+
+
+
+ -
+ 2025/05/09 08:34:54.065
+ -
+ 2025/05/09 08:34:54.065
+ H4sIAAAAAAAAAAMAAAAAAAAAAAA=
+ N
+
+
+
+
+ eduetl
+ localhost
+ POSTGRESQL
+ Native
+ eduetl_muster_2024_12
+ 9996
+ superx
+ Encrypted 2be98afc86aa7f285a51faf7ed9c3fd89
+
+
+
+
+ FORCE_IDENTIFIERS_TO_LOWERCASE
N
+ FORCE_IDENTIFIERS_TO_UPPERCASE
N
+ IS_CLUSTERED
N
+ PORT_NUMBER
9996
+ PRESERVE_RESERVED_WORD_CASE
Y
+ QUOTE_ALL_FIELDS
N
+ SUPPORTS_BOOLEAN_DATA_TYPE
Y
+ SUPPORTS_TIMESTAMP_DATA_TYPE
Y
+ USE_POOLING
N
+
+
+
+
+ Microsoft Excel Input 2
+ Row Normaliser
+ Y
+
+
+ Row Normaliser
+ Table output
+ Y
+
+
+
+ Microsoft Excel Input 2
+ ExcelInput
+
+ Y
+
+ 1
+
+ none
+
+
+
+ Y
+ N
+
+
+
+
+
+
+ 0
+
+ Y
+ N
+
+
+
+ ${PATH_TO_UPLOADFILE}
+
+
+ N
+ N
+
+
+
+ Hochschule
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ 1_hssem_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ 1_fs_ba_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ 1_fs_ma_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ studis_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ absolv
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ absolv_rsz_proz
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ absolv_ma
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ verbleib_ba_1-5_fs_proz
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ erfolg_ba_fs_proz
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ erfolg_ba_1_fs_proz
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ pers_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ wiss_pers_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ wiss_kunst_pers_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ verw_pers_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ wiss_kunst_pers
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ wiss_kunst_pers_haupt_kopf_drittm
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ prof_kopf
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ angebot
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ nachfrage
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ auslastung
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ einnahmen_ges
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ einnahmen_hstraeger
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ einnahmen_drittm_ges
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+
+
+ Tabelle1
+ 7
+ 0
+
+
+ N
+ N
+ N
+
+ warning
+
+ error
+
+ line
+
+
+
+
+
+
+
+
+ POI
+
+
+
+
+
+
+
+
+ 192
+ 320
+ Y
+
+
+
+
+ Row Normaliser
+ Normaliser
+
+ Y
+
+ 1
+
+ none
+
+
+ kenn_zahl
+ 1_hssem_kopf
+ MKWNRW1_1_hssem_kopf
+ wert
+ 1_fs_ba_kopf
+ MKWNRW1_1_fs_ba_kopf
+ wert
+ 1_fs_ma_kopf
+ MKWNRW1_1_fs_ma_kopf
+ wert
+ studis_kopf
+ MKWNRW1_studis_kopf
+ wert
+ absolv
+ MKWNRW1_absolv
+ wert
+ absolv_rsz_proz
+ MKWNRW1_absolv_rsz_proz
+ wert
+ absolv_ma
+ MKWNRW1_absolv_ma
+ wert
+ verbleib_ba_1-5_fs_proz
+ MKWNRW1_verbleib_ba_1-5_fs_proz
+ wert
+ erfolg_ba_fs_proz
+ MKWNRW1_erfolg_ba_fs_proz
+ wert
+ erfolg_ba_1_fs_proz
+ MKWNRW1_erfolg_ba_1_fs_proz
+ wert
+ pers_kopf
+ MKWNRW1_pers_kopf
+ wert
+ wiss_pers_kopf
+ MKWNRW1_wiss_pers_kopf
+ wert
+ wiss_kunst_pers_kopf
+ MKWNRW1_wiss_kunst_pers_kopf
+ wert
+ verw_pers_kopf
+ MKWNRW1_verw_pers_kopf
+ wert
+ wiss_kunst_pers
+ MKWNRW1_wiss_kunst_pers
+ wert
+ wiss_kunst_pers_haupt_kopf_drittm
+ MKWNRW1_wiss_kunst_pers_haupt_kopf_drittm
+ wert
+ prof_kopf
+ MKWNRW1_prof_kopf
+ wert
+ angebot
+ MKWNRW1_angebot
+ wert
+ nachfrage
+ MKWNRW1_nachfrage
+ wert
+ auslastung
+ MKWNRW1_auslastung
+ wert
+ einnahmen_ges
+ MKWNRW1_einnahmen_ges
+ wert
+ einnahmen_hstraeger
+ MKWNRW1_einnahmen_hstraeger
+ wert
+ einnahmen_drittm_ges
+ MKWNRW1_einnahmen_drittm_ges
+ wert
+
+
+
+
+
+
+
+
+ 400
+ 320
+ Y
+
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ eduetl
+
+
+ 1000
+ N
+ N
+ Y
+ Y
+ N
+
+ N
+ Y
+ N
+
+ Y
+ N
+
+
+
+ kenn_zahl
+ kenn_zahl
+
+
+ wert_str
+ wert
+
+
+ hs_nr_str
+ Hochschule
+
+
+
+
+
+
+
+
+
+
+ 608
+ 320
+ Y
+
+
+
+
+
+
+
+ N
+
diff --git a/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz_2.ktr b/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz_2.ktr
new file mode 100644
index 0000000..e671bd0
--- /dev/null
+++ b/src-modules/module/sxc/etl/import_bestand/2025_5_22_mwk_nrw_hochschulkennzahlen_alt/import_bestand_mwk_nrw_hskennz_2.ktr
@@ -0,0 +1,690 @@
+
+
+
+ import_bestand_mwk_nrw_hskennz_2
+
+
+
+ Normal
+ 0
+ /
+
+
+ PATH_TO_UPLOADFILE
+ file:///home/superx/git/Memtext-Interna/Projekte/duisburg-essen_uni/muster/2025_stammdaten_nrw/Stammdaten_MKW_orig_2023.xlsx
+
+
+
+
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STATUS
+ Y
+ STATUS
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ STARTDATE
+ Y
+ STARTDATE
+
+
+ ENDDATE
+ Y
+ ENDDATE
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ DEPDATE
+ Y
+ DEPDATE
+
+
+ REPLAYDATE
+ Y
+ REPLAYDATE
+
+
+ LOG_FIELD
+ Y
+ LOG_FIELD
+
+
+ EXECUTING_SERVER
+ N
+ EXECUTING_SERVER
+
+
+ EXECUTING_USER
+ N
+ EXECUTING_USER
+
+
+ CLIENT
+ N
+ CLIENT
+
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ SEQ_NR
+ Y
+ SEQ_NR
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STEPNAME
+ Y
+ STEPNAME
+
+
+ STEP_COPY
+ Y
+ STEP_COPY
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ INPUT_BUFFER_ROWS
+ Y
+ INPUT_BUFFER_ROWS
+
+
+ OUTPUT_BUFFER_ROWS
+ Y
+ OUTPUT_BUFFER_ROWS
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ LOGGING_OBJECT_TYPE
+ Y
+ LOGGING_OBJECT_TYPE
+
+
+ OBJECT_NAME
+ Y
+ OBJECT_NAME
+
+
+ OBJECT_COPY
+ Y
+ OBJECT_COPY
+
+
+ REPOSITORY_DIRECTORY
+ Y
+ REPOSITORY_DIRECTORY
+
+
+ FILENAME
+ Y
+ FILENAME
+
+
+ OBJECT_ID
+ Y
+ OBJECT_ID
+
+
+ OBJECT_REVISION
+ Y
+ OBJECT_REVISION
+
+
+ PARENT_CHANNEL_ID
+ Y
+ PARENT_CHANNEL_ID
+
+
+ ROOT_CHANNEL_ID
+ Y
+ ROOT_CHANNEL_ID
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STEPNAME
+ Y
+ STEPNAME
+
+
+ STEP_COPY
+ Y
+ STEP_COPY
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ LOG_FIELD
+ N
+ LOG_FIELD
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ METRICS_DATE
+ Y
+ METRICS_DATE
+
+
+ METRICS_CODE
+ Y
+ METRICS_CODE
+
+
+ METRICS_DESCRIPTION
+ Y
+ METRICS_DESCRIPTION
+
+
+ METRICS_SUBJECT
+ Y
+ METRICS_SUBJECT
+
+
+ METRICS_TYPE
+ Y
+ METRICS_TYPE
+
+
+ METRICS_VALUE
+ Y
+ METRICS_VALUE
+
+
+
+
+
+
+
+ 0.0
+ 0.0
+
+ 10000
+ 50
+ 50
+ N
+ Y
+ 50000
+ Y
+
+ N
+ 1000
+ 100
+
+
+
+
+
+
+
+
+ -
+ 2025/05/09 08:34:54.065
+ -
+ 2025/05/09 08:34:54.065
+ H4sIAAAAAAAAAAMAAAAAAAAAAAA=
+ N
+
+
+
+
+ eduetl
+ localhost
+ POSTGRESQL
+ Native
+ eduetl_muster_2024_06
+ 5432
+ superx
+ Encrypted 2be98afc86aa7f285a51faf7ed9c3fd89
+
+
+
+
+ FORCE_IDENTIFIERS_TO_LOWERCASE
N
+ FORCE_IDENTIFIERS_TO_UPPERCASE
N
+ IS_CLUSTERED
N
+ PORT_NUMBER
5432
+ PRESERVE_RESERVED_WORD_CASE
Y
+ QUOTE_ALL_FIELDS
N
+ SUPPORTS_BOOLEAN_DATA_TYPE
Y
+ SUPPORTS_TIMESTAMP_DATA_TYPE
Y
+ USE_POOLING
N
+
+
+
+
+ Microsoft Excel Input 2
+ Join Rows (cartesian product)
+ Y
+
+
+ Table input
+ Join Rows (cartesian product)
+ Y
+
+
+ Join Rows (cartesian product)
+ Update
+ Y
+
+
+
+ Microsoft Excel Input 2
+ ExcelInput
+
+ Y
+
+ 1
+
+ none
+
+
+
+ Y
+ N
+
+
+
+
+
+
+ 1
+
+ Y
+ N
+
+
+
+ ${PATH_TO_UPLOADFILE}
+
+
+ N
+ N
+
+
+
+ Jahr
+ Integer
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+
+
+ Tabelle1
+ 3
+ 1
+
+
+ N
+ N
+ N
+
+ warning
+
+ error
+
+ line
+
+
+
+
+
+
+
+
+ POI
+
+
+
+
+
+
+
+
+ 192
+ 320
+ Y
+
+
+
+
+ Join Rows (cartesian product)
+ JoinRows
+
+ Y
+
+ 1
+
+ none
+
+
+ %%java.io.tmpdir%%
+ out
+ 500
+
+
+
+ N
+
+ =
+
+
+
+
+
+
+
+
+
+
+
+ 496
+ 256
+ Y
+
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ eduetl
+ SELECT * FROM tmp_sxc_zahl_wert
+ 0
+
+ N
+ N
+ N
+
+
+
+
+
+
+
+
+ 192
+ 208
+ Y
+
+
+
+
+ Update
+ Update
+
+ Y
+
+ 1
+
+ none
+
+
+ eduetl
+ N
+ 100
+ N
+ N
+
+
+
+
+
+ tid
+ tid
+ =
+
+
+
+ jahr
+ Jahr
+
+
+
+
+
+
+
+
+
+
+ 656
+ 256
+ Y
+
+
+
+
+
+
+
+ N
+
diff --git a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb
new file mode 100644
index 0000000..321aed8
--- /dev/null
+++ b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb
@@ -0,0 +1,491 @@
+
+
+ import_bestand_mwk_nrw_hskennz
+
+
+
+ 0
+ /
+ -
+ 2025/05/09 08:04:01.642
+ -
+ 2025/05/09 08:04:01.642
+
+
+ PATH_TO_UPLOADFILE
+
+
+
+
+
+ eduetl
+ localhost
+ POSTGRESQL
+ Native
+ eduetl_muster_2024_12
+ 9996
+ superx
+ Encrypted 2be98afc86aa7f285a51faf7ed9c3fd89
+
+
+
+
+ FORCE_IDENTIFIERS_TO_LOWERCASE
N
+ FORCE_IDENTIFIERS_TO_UPPERCASE
N
+ IS_CLUSTERED
N
+ PORT_NUMBER
9996
+ PRESERVE_RESERVED_WORD_CASE
Y
+ QUOTE_ALL_FIELDS
N
+ SUPPORTS_BOOLEAN_DATA_TYPE
Y
+ SUPPORTS_TIMESTAMP_DATA_TYPE
Y
+ USE_POOLING
N
+
+
+
+
+
+
+
+
+
+
+
+
+ ID_JOB
+ Y
+ ID_JOB
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ JOBNAME
+ Y
+ JOBNAME
+
+
+ STATUS
+ Y
+ STATUS
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ STARTDATE
+ Y
+ STARTDATE
+
+
+ ENDDATE
+ Y
+ ENDDATE
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ DEPDATE
+ Y
+ DEPDATE
+
+
+ REPLAYDATE
+ Y
+ REPLAYDATE
+
+
+ LOG_FIELD
+ Y
+ LOG_FIELD
+
+
+ EXECUTING_SERVER
+ N
+ EXECUTING_SERVER
+
+
+ EXECUTING_USER
+ N
+ EXECUTING_USER
+
+
+ START_JOB_ENTRY
+ N
+ START_JOB_ENTRY
+
+
+ CLIENT
+ N
+ CLIENT
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ JOBNAME
+ Y
+ TRANSNAME
+
+
+ JOBENTRYNAME
+ Y
+ STEPNAME
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ RESULT
+ Y
+ RESULT
+
+
+ NR_RESULT_ROWS
+ Y
+ NR_RESULT_ROWS
+
+
+ NR_RESULT_FILES
+ Y
+ NR_RESULT_FILES
+
+
+ LOG_FIELD
+ N
+ LOG_FIELD
+
+
+ COPY_NR
+ N
+ COPY_NR
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ LOGGING_OBJECT_TYPE
+ Y
+ LOGGING_OBJECT_TYPE
+
+
+ OBJECT_NAME
+ Y
+ OBJECT_NAME
+
+
+ OBJECT_COPY
+ Y
+ OBJECT_COPY
+
+
+ REPOSITORY_DIRECTORY
+ Y
+ REPOSITORY_DIRECTORY
+
+
+ FILENAME
+ Y
+ FILENAME
+
+
+ OBJECT_ID
+ Y
+ OBJECT_ID
+
+
+ OBJECT_REVISION
+ Y
+ OBJECT_REVISION
+
+
+ PARENT_CHANNEL_ID
+ Y
+ PARENT_CHANNEL_ID
+
+
+ ROOT_CHANNEL_ID
+ Y
+ ROOT_CHANNEL_ID
+
+
+ N
+
+
+
+ START
+
+ SPECIAL
+ Y
+ N
+ N
+ 0
+ 0
+ 60
+ 12
+ 0
+ 1
+ 1
+ N
+ Y
+ 0
+ 96
+ 192
+
+
+ Success
+
+ SUCCESS
+ N
+ Y
+ 0
+ 1056
+ 192
+
+
+ excel_into_tmp
+
+ TRANS
+ filename
+
+ ${Internal.Job.Filename.Directory}/import_bestand_mwk_nrw_hskennz_1.ktr
+
+ N
+ N
+ N
+ N
+ N
+ N
+
+
+ N
+ N
+ Basic
+ N
+
+ N
+ Y
+ N
+ N
+ N
+
+ Y
+
+ N
+ Y
+ 0
+ 272
+ 320
+
+
+ create tmp_sxc_zahl_wert
+
+ SQL
+ drop table if exists tmp_sxc_zahl_wert;
CREATE TABLE tmp_sxc_zahl_wert
(
tid serial,
hs_nr_str varchar(255),
hs_nr integer,
kenn_zahl char(100) NOT NULL,
jahr smallint,
sem smallint,
ch110_institut char(10),
bland integer,
sxc_bestand_id integer,
wert_str varchar(255),
wert decimal(20,10),
generic_dim1 char(100),
generic_dim2 char(100)
);
+ F
+ F
+
+ F
+ eduetl
+ N
+ Y
+ 0
+ 272
+ 192
+
+
+ update tmp_sxc_zahl_wert
+
+ SQL
+ update tmp_sxc_zahl_wert set
hs_nr=M.target_value
from
sxc_mapping_bestand M
where
M.sxc_bestand_id=1
and M.object_type='Hochschule'
and M.object_value=tmp_sxc_zahl_wert.hs_nr_str
;
update tmp_sxc_zahl_wert
set wert =
case
when wert_str != '--'
and wert_str is not null
and wert_str <> ''
then cast(replace(wert_str, ',' , '.') as decimal(20,10)) * 100
else null
end
where kenn_zahl like '%_proz%'
;
update tmp_sxc_zahl_wert
set wert =
case
when wert_str != '--'
and wert_str is not null
and wert_str <> ''
then cast(replace(wert_str, ',' , '.') as decimal(20,10))
else null
end
where wert is null
;
update tmp_sxc_zahl_wert set sxc_bestand_id=1; -- MKW NRW Hochschulkennzahlen
update tmp_sxc_zahl_wert set bland=5; -- NRW
+ F
+ F
+ ${Internal.Job.Filename.Directory}/update_tmp_sxc_zahl_wert.sql
+ F
+ eduetl
+ N
+ Y
+ 0
+ 688
+ 192
+
+
+ insert into sxc_zahl_wert
+
+ SQL
+ delete from sxc_zahl_wert
where
sxc_bestand_id=1
and jahr in (select jahr from tmp_sxc_zahl_wert)
and hs_nr in (select hs_nr from tmp_sxc_zahl_wert)
;
INSERT INTO sxc_zahl_wert
(
hs_nr,
kenn_zahl,
jahr,
sem,
bland,
ch110_institut,
sxc_bestand_id,
wert,
generic_dim1,
generic_dim2
)
select
hs_nr,
kenn_zahl,
jahr,
sem,
bland,
ch110_institut,
sxc_bestand_id,
wert,
generic_dim1,
generic_dim2
from tmp_sxc_zahl_wert
where
hs_nr is not null
order by
sxc_bestand_id,1,2,3,4
;
drop table if exists tmp_sxc_zahl_wert;
+ F
+ F
+
+ F
+ eduetl
+ N
+ Y
+ 0
+ 880
+ 272
+
+
+
+
+ START
+ create tmp_sxc_zahl_wert
+ 0
+ 0
+ Y
+ Y
+ Y
+
+
+ create tmp_sxc_zahl_wert
+ excel_into_tmp
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+ insert into sxc_zahl_wert
+ Success
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+ update tmp_sxc_zahl_wert
+ insert into sxc_zahl_wert
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+ update tmp_sxc_zahl_wert
+ Success
+ 0
+ 0
+ N
+ Y
+ N
+
+
+ excel_into_tmp
+ update tmp_sxc_zahl_wert
+ 0
+ 0
+ Y
+ Y
+ N
+
+
+
+
+
diff --git a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_1.ktr b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_1.ktr
new file mode 100644
index 0000000..13a457c
--- /dev/null
+++ b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_1.ktr
@@ -0,0 +1,1292 @@
+
+
+
+ import_bestand_mwk_nrw_hskennz_1
+
+
+
+ Normal
+ 0
+ /
+
+
+ PATH_TO_UPLOADFILE
+ file:///home/superx/git/Memtext-Interna/Projekte/duisburg-essen_uni/muster/2025_stammdaten_nrw/Stammdaten_2023_Pivot_aufbereitet.xlsx
+
+
+
+
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STATUS
+ Y
+ STATUS
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ STARTDATE
+ Y
+ STARTDATE
+
+
+ ENDDATE
+ Y
+ ENDDATE
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ DEPDATE
+ Y
+ DEPDATE
+
+
+ REPLAYDATE
+ Y
+ REPLAYDATE
+
+
+ LOG_FIELD
+ Y
+ LOG_FIELD
+
+
+ EXECUTING_SERVER
+ N
+ EXECUTING_SERVER
+
+
+ EXECUTING_USER
+ N
+ EXECUTING_USER
+
+
+ CLIENT
+ N
+ CLIENT
+
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ SEQ_NR
+ Y
+ SEQ_NR
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STEPNAME
+ Y
+ STEPNAME
+
+
+ STEP_COPY
+ Y
+ STEP_COPY
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ INPUT_BUFFER_ROWS
+ Y
+ INPUT_BUFFER_ROWS
+
+
+ OUTPUT_BUFFER_ROWS
+ Y
+ OUTPUT_BUFFER_ROWS
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ LOGGING_OBJECT_TYPE
+ Y
+ LOGGING_OBJECT_TYPE
+
+
+ OBJECT_NAME
+ Y
+ OBJECT_NAME
+
+
+ OBJECT_COPY
+ Y
+ OBJECT_COPY
+
+
+ REPOSITORY_DIRECTORY
+ Y
+ REPOSITORY_DIRECTORY
+
+
+ FILENAME
+ Y
+ FILENAME
+
+
+ OBJECT_ID
+ Y
+ OBJECT_ID
+
+
+ OBJECT_REVISION
+ Y
+ OBJECT_REVISION
+
+
+ PARENT_CHANNEL_ID
+ Y
+ PARENT_CHANNEL_ID
+
+
+ ROOT_CHANNEL_ID
+ Y
+ ROOT_CHANNEL_ID
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STEPNAME
+ Y
+ STEPNAME
+
+
+ STEP_COPY
+ Y
+ STEP_COPY
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ LOG_FIELD
+ N
+ LOG_FIELD
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ METRICS_DATE
+ Y
+ METRICS_DATE
+
+
+ METRICS_CODE
+ Y
+ METRICS_CODE
+
+
+ METRICS_DESCRIPTION
+ Y
+ METRICS_DESCRIPTION
+
+
+ METRICS_SUBJECT
+ Y
+ METRICS_SUBJECT
+
+
+ METRICS_TYPE
+ Y
+ METRICS_TYPE
+
+
+ METRICS_VALUE
+ Y
+ METRICS_VALUE
+
+
+
+
+
+
+
+ 0.0
+ 0.0
+
+ 10000
+ 50
+ 50
+ N
+ Y
+ 50000
+ Y
+
+ N
+ 1000
+ 100
+
+
+
+
+
+
+
+
+ -
+ 2025/05/09 08:34:54.065
+ -
+ 2025/05/09 08:34:54.065
+ H4sIAAAAAAAAAAMAAAAAAAAAAAA=
+ N
+
+
+
+
+ eduetl
+ localhost
+ POSTGRESQL
+ Native
+ eduetl_muster_2024_12
+ 9996
+ superx
+ Encrypted 2be98afc86aa7f285a51faf7ed9c3fd89
+
+
+
+
+ FORCE_IDENTIFIERS_TO_LOWERCASE
N
+ FORCE_IDENTIFIERS_TO_UPPERCASE
N
+ IS_CLUSTERED
N
+ PORT_NUMBER
9996
+ PRESERVE_RESERVED_WORD_CASE
Y
+ QUOTE_ALL_FIELDS
N
+ SUPPORTS_BOOLEAN_DATA_TYPE
Y
+ SUPPORTS_TIMESTAMP_DATA_TYPE
Y
+ USE_POOLING
N
+
+
+
+
+ Excel Input Kennzahlen
+ Row Normaliser
+ Y
+
+
+ Excel Input LFB
+ LFB Mapping
+ Y
+
+
+ Filter rows
+ LFB Mapping
+ Y
+
+
+ Filter rows
+ Dummy (do nothing)
+ Y
+
+
+ Row Normaliser
+ Jahr muss 4 Stellen haben
+ Y
+
+
+ Jahr muss 4 Stellen haben
+ Filter rows
+ Y
+
+
+ LFB Mapping
+ Jahr to Integer
+ Y
+
+
+ Jahr to Integer
+ Table output
+ Y
+
+
+
+ Dummy (do nothing)
+ Dummy
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+
+
+
+
+ 576
+ 544
+ Y
+
+
+
+
+ Excel Input Kennzahlen
+ ExcelInput
+
+ Y
+
+ 1
+
+ none
+
+
+
+ Y
+ N
+
+
+
+
+
+
+ 0
+
+ Y
+ N
+
+
+
+ ${PATH_TO_UPLOADFILE}
+
+
+ N
+ N
+
+
+
+ Jahr
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ Hochschule
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ LFB
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ Studis Koepfe
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ Studis rsz
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ anfaenger 1FS beleg
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ anfaenger 1FS kopf
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ anfaenger 1HS kopf
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ pruefungen ges
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ pruefungen ba
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ pruefungen ma
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ pruefungen prom
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ prof
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ prof sp
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ prof drittm
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ wiss pers haupt
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ wiss pers haupt sb
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ wiss pers haupt drittm
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ angebot
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ nachfrage
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ drittm einnahmen ges
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ erfolg 1FS
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ erfolg 1HS
+ None
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+
+
+ Jahr_HS_LuF(T2)
+ 10
+ 0
+
+
+ N
+ N
+ N
+
+ warning
+
+ error
+
+ line
+
+
+
+
+
+
+
+
+ POI
+
+
+
+
+
+
+
+
+ 192
+ 320
+ Y
+
+
+
+
+ Excel Input LFB
+ ExcelInput
+
+ Y
+
+ 1
+
+ none
+
+
+
+ Y
+ N
+
+
+
+
+
+
+ 0
+
+ Y
+ N
+
+
+
+ ${PATH_TO_UPLOADFILE}
+
+
+ N
+ N
+
+
+
+ LFB_zahl
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+ LFB_str
+ String
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+
+
+ LuF
+ 0
+ 0
+
+
+ N
+ N
+ N
+
+ warning
+
+ error
+
+ line
+
+
+
+
+
+
+
+
+ POI
+
+
+
+
+
+
+
+
+ 768
+ 192
+ Y
+
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+LFB Mapping
+Dummy (do nothing)
+
+
+ N
+ istJahr
+ =
+
+ constant String true -1 -1 N
+
+
+
+
+
+
+
+
+
+ 576
+ 416
+ Y
+
+
+
+
+ Jahr muss 4 Stellen haben
+ ScriptValueMod
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ 9
+ 0
+ Script 1
+ istJahr = /^(\d{4})$/.test(Jahr);
+ istJahr
+ istJahr
+ String
+ -1
+ -1
+ N
+
+
+
+
+
+
+
+
+ 576
+ 320
+ Y
+
+
+
+
+ Jahr to Integer
+ SelectValues
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ Jahr
+ Jahr
+ Integer
+ -2
+ -2
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 912
+ 320
+ Y
+
+
+
+
+ LFB Mapping
+ StreamLookup
+
+ Y
+
+ 1
+
+ none
+
+
+ Excel Input LFB
+ N
+ Y
+ N
+ N
+
+
+ LFB
+ LFB_str
+
+
+ LFB_zahl
+ LFB_key
+
+ None
+
+
+
+
+
+
+
+
+
+
+ 768
+ 320
+ Y
+
+
+
+
+ Row Normaliser
+ Normaliser
+
+ Y
+
+ 1
+
+ none
+
+
+ kenn_zahl
+ Studis Koepfe
+ MKWNRW1_studis_kopf
+ wert
+ Studis rsz
+ MKWNRW1_studis_rsz
+ wert
+ anfaenger 1FS beleg
+ MKWNRW1_1_fs_beleg
+ wert
+ anfaenger 1FS kopf
+ MKWNRW1_1_fs_kopf
+ wert
+ anfaenger 1HS kopf
+ MKWNRW1_1_hssem_kopf
+ wert
+ pruefungen ges
+ MKWNRW1_prf_ges
+ wert
+ pruefungen ba
+ MKWNRW1_prf_ba
+ wert
+ pruefungen ma
+ MKWNRW1_prf_ma
+ wert
+ pruefungen prom
+ MKWNRW1_prf_prom
+ wert
+ prof
+ MKWNRW1_prof
+ wert
+ prof sp
+ MKWNRW1_prof_sp
+ wert
+ prof drittm
+ MKWNRW1_prof_drittm
+ wert
+ wiss pers haupt
+ MKWNRW1_wiss_pers_haupt
+ wert
+ wiss pers haupt sb
+ MKWNRW1_wiss_pers_haupt_sb
+ wert
+ wiss pers haupt drittm
+ MKWNRW1_wiss_pers_haupt_drittm
+ wert
+ angebot
+ MKWNRW1_angebot
+ wert
+ nachfrage
+ MKWNRW1_nachfrage
+ wert
+ drittm einnahmen ges
+ MKWNRW1_einnahmen_drittm_ges
+ wert
+ erfolg 1FS
+ MKWNRW1_erfolg_1_fs
+ wert
+ erfolg 1HS
+ MKWNRW1_erfolg_1_hssem
+ wert
+
+
+
+
+
+
+
+
+ 384
+ 320
+ Y
+
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ eduetl
+
+
+ 1000
+ N
+ N
+ Y
+ Y
+ N
+
+ N
+ Y
+ N
+
+ Y
+ N
+
+
+
+ kenn_zahl
+ kenn_zahl
+
+
+ wert_str
+ wert
+
+
+ hs_nr_str
+ Hochschule
+
+
+ jahr
+ Jahr
+
+
+ generic_dim1
+ LFB_key
+
+
+
+
+
+
+
+
+
+
+ 1072
+ 320
+ Y
+
+
+
+
+
+
+
+ N
+
diff --git a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_2.ktr b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_2.ktr
new file mode 100644
index 0000000..f28ecc2
--- /dev/null
+++ b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_2.ktr
@@ -0,0 +1,666 @@
+
+
+
+ import_bestand_mwk_nrw_hskennz_2
+
+
+
+ Normal
+ 0
+ /
+
+
+ PATH_TO_UPLOADFILE
+ file:///home/superx/git/Memtext-Interna/Projekte/duisburg-essen_uni/muster/2025_stammdaten_nrw/Stammdaten_MKW_orig_2023.xlsx
+
+
+
+
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STATUS
+ Y
+ STATUS
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ STARTDATE
+ Y
+ STARTDATE
+
+
+ ENDDATE
+ Y
+ ENDDATE
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ DEPDATE
+ Y
+ DEPDATE
+
+
+ REPLAYDATE
+ Y
+ REPLAYDATE
+
+
+ LOG_FIELD
+ Y
+ LOG_FIELD
+
+
+ EXECUTING_SERVER
+ N
+ EXECUTING_SERVER
+
+
+ EXECUTING_USER
+ N
+ EXECUTING_USER
+
+
+ CLIENT
+ N
+ CLIENT
+
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ SEQ_NR
+ Y
+ SEQ_NR
+
+
+ LOGDATE
+ Y
+ LOGDATE
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STEPNAME
+ Y
+ STEPNAME
+
+
+ STEP_COPY
+ Y
+ STEP_COPY
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ INPUT_BUFFER_ROWS
+ Y
+ INPUT_BUFFER_ROWS
+
+
+ OUTPUT_BUFFER_ROWS
+ Y
+ OUTPUT_BUFFER_ROWS
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ LOGGING_OBJECT_TYPE
+ Y
+ LOGGING_OBJECT_TYPE
+
+
+ OBJECT_NAME
+ Y
+ OBJECT_NAME
+
+
+ OBJECT_COPY
+ Y
+ OBJECT_COPY
+
+
+ REPOSITORY_DIRECTORY
+ Y
+ REPOSITORY_DIRECTORY
+
+
+ FILENAME
+ Y
+ FILENAME
+
+
+ OBJECT_ID
+ Y
+ OBJECT_ID
+
+
+ OBJECT_REVISION
+ Y
+ OBJECT_REVISION
+
+
+ PARENT_CHANNEL_ID
+ Y
+ PARENT_CHANNEL_ID
+
+
+ ROOT_CHANNEL_ID
+ Y
+ ROOT_CHANNEL_ID
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ TRANSNAME
+ Y
+ TRANSNAME
+
+
+ STEPNAME
+ Y
+ STEPNAME
+
+
+ STEP_COPY
+ Y
+ STEP_COPY
+
+
+ LINES_READ
+ Y
+ LINES_READ
+
+
+ LINES_WRITTEN
+ Y
+ LINES_WRITTEN
+
+
+ LINES_UPDATED
+ Y
+ LINES_UPDATED
+
+
+ LINES_INPUT
+ Y
+ LINES_INPUT
+
+
+ LINES_OUTPUT
+ Y
+ LINES_OUTPUT
+
+
+ LINES_REJECTED
+ Y
+ LINES_REJECTED
+
+
+ ERRORS
+ Y
+ ERRORS
+
+
+ LOG_FIELD
+ N
+ LOG_FIELD
+
+
+
+
+
+
+
+
+ ID_BATCH
+ Y
+ ID_BATCH
+
+
+ CHANNEL_ID
+ Y
+ CHANNEL_ID
+
+
+ LOG_DATE
+ Y
+ LOG_DATE
+
+
+ METRICS_DATE
+ Y
+ METRICS_DATE
+
+
+ METRICS_CODE
+ Y
+ METRICS_CODE
+
+
+ METRICS_DESCRIPTION
+ Y
+ METRICS_DESCRIPTION
+
+
+ METRICS_SUBJECT
+ Y
+ METRICS_SUBJECT
+
+
+ METRICS_TYPE
+ Y
+ METRICS_TYPE
+
+
+ METRICS_VALUE
+ Y
+ METRICS_VALUE
+
+
+
+
+
+
+
+ 0.0
+ 0.0
+
+ 10000
+ 50
+ 50
+ N
+ Y
+ 50000
+ Y
+
+ N
+ 1000
+ 100
+
+
+
+
+
+
+
+
+ -
+ 2025/05/09 08:34:54.065
+ -
+ 2025/05/09 08:34:54.065
+ H4sIAAAAAAAAAAMAAAAAAAAAAAA=
+ N
+
+
+
+
+
+ Microsoft Excel Input 2
+ Join Rows (cartesian product)
+ Y
+
+
+ Table input
+ Join Rows (cartesian product)
+ Y
+
+
+ Join Rows (cartesian product)
+ Update
+ Y
+
+
+
+ Microsoft Excel Input 2
+ ExcelInput
+
+ Y
+
+ 1
+
+ none
+
+
+
+ Y
+ N
+
+
+
+
+
+
+ 1
+
+ Y
+ N
+
+
+
+ ${PATH_TO_UPLOADFILE}
+
+
+ N
+ N
+
+
+
+ Jahr
+ Integer
+ -1
+ -1
+ none
+ N
+
+
+
+
+
+
+
+
+ Tabelle1
+ 3
+ 1
+
+
+ N
+ N
+ N
+
+ warning
+
+ error
+
+ line
+
+
+
+
+
+
+
+
+ POI
+
+
+
+
+
+
+
+
+ 192
+ 320
+ Y
+
+
+
+
+ Join Rows (cartesian product)
+ JoinRows
+
+ Y
+
+ 1
+
+ none
+
+
+ %%java.io.tmpdir%%
+ out
+ 500
+
+
+
+ N
+
+ =
+
+
+
+
+
+
+
+
+
+
+
+ 496
+ 256
+ Y
+
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ eduetl
+ SELECT * FROM tmp_sxc_zahl_wert
+ 0
+
+ N
+ N
+ N
+
+
+
+
+
+
+
+
+ 192
+ 208
+ Y
+
+
+
+
+ Update
+ Update
+
+ Y
+
+ 1
+
+ none
+
+
+ eduetl
+ N
+ 100
+ N
+ N
+
+
+
+
+
+ tid
+ tid
+ =
+
+
+
+ jahr
+ Jahr
+
+
+
+
+
+
+
+
+
+
+ 656
+ 256
+ Y
+
+
+
+
+
+
+
+ N
+
diff --git a/src-modules/module/sxc/masken/47110_felderinfo.unl b/src-modules/module/sxc/masken/47110_felderinfo.unl
new file mode 100644
index 0000000..4ba11eb
--- /dev/null
+++ b/src-modules/module/sxc/masken/47110_felderinfo.unl
@@ -0,0 +1,26 @@
+47110^End Semester^5^0^0^150^100^1^integer^30^0^1^<> select tid,druck from kenn_semester order by tid DESC;^ ^<> select tid,druck from kenn_semester where today() between sem_beginn and sem_ende;^
+47111^Stat. Kennzahl^80^0^0^150^150^6^char^30^0^1^<> select apnr,druck from kenn_stichtagsart where aktiv='1'\
+and (select apnr from konstanten where beschreibung='KENN_PROFIL') in (5,6)\
+and 0!=(select count(*) from kenn_bestandsart_bland B, kenn_bestandsart K\
+where B.bestandsart=K.apnr\
+and K.stichtagsart_id=kenn_stichtagsart.apnr\
+and B.bland ='SA')\
+union\
+select apnr,druck from kenn_stichtagsart where aktiv='1'\
+and (select apnr from konstanten where beschreibung='KENN_PROFIL') in (1,2,3,4)\
+and 0!=(select count(*) from kenn_bestandsart_bland B, kenn_bestandsart K\
+where B.bestandsart=K.apnr\
+and K.stichtagsart_id=kenn_stichtagsart.apnr\
+and B.bland ='BW')\
+order by 1,2\
+;^ ^ ^
+47112^End-Jahr^7^360^-1^100^50^1^integer^30^0^1^<> SELECT distinct ord,name FROM aggregierung where kategorie='KENN-Jahr' order by 1;^ ^<> SELECT ord,name FROM aggregierung where kategorie='KENN-Jahr' and ord=(year(today())-1) ;^
+47113^nur zu berechnende Kennzahlen^110^0^0^150^50^1^char^30^0^999^<> select '1','Ja' from xdummy union select '0','Nein' from xdummy;^ ^ ^
+47114^Kennzahl Nr.^90^0^0^150^30^1^char^4^0^0^^ ^ ^
+47115^Hochschule^1^0^0^150^200^5^char^30^0^12^<> select tid, type, name,sortnr from sichten where art in('SXC_Hochschulen-Sicht') and aktiv=1 order by sortnr desc, name;^ ^ ^
+47116^nur zu exportierende Kennzahlen^120^360^-1^100^50^1^char^30^0^999^<> select '1','Ja' from xdummy union select '0' ,'Nein' from xdummy;^ ^ ^
+47117^Filter bis Ebene^25^0^0^150^20^1^integer^30^0^0^^ ^1^
+47118^Bericht^100^360^-1^100^200^1^char^30^1^1^<> select 'MKWNRW_1','MKW NRW Hochschulkennzahlen';^ ^<>select 'MKWNRW_1','MKW NRW Hochschulkennzahlen';^
+47119^Start-Jahr^6^360^-1^100^50^1^integer^30^0^1^<> SELECT distinct ord,name FROM aggregierung where kategorie='KENN-Jahr' order by 1;^ ^<> SELECT ord,name FROM aggregierung where kategorie='KENN-Jahr' and ord=(year(today())-1) ;^
+47120^Start Semester^4^0^0^150^100^1^integer^30^0^1^<> select tid,druck from kenn_semester order by tid DESC;^ ^<> select tid,druck from kenn_semester where today() between sem_beginn and sem_ende;^
+47121^oder^30^0^0^120^200^1^char^30^0^13^^ ^ ^
diff --git a/src-modules/module/sxc/masken/47110_maske_system_bez.unl b/src-modules/module/sxc/masken/47110_maske_system_bez.unl
new file mode 100644
index 0000000..1b64243
--- /dev/null
+++ b/src-modules/module/sxc/masken/47110_maske_system_bez.unl
@@ -0,0 +1 @@
+47110^109^
diff --git a/src-modules/module/sxc/masken/47110_masken_felder_bez.unl b/src-modules/module/sxc/masken/47110_masken_felder_bez.unl
new file mode 100644
index 0000000..a770dbb
--- /dev/null
+++ b/src-modules/module/sxc/masken/47110_masken_felder_bez.unl
@@ -0,0 +1,12 @@
+47110^47110^
+47110^47111^
+47110^47112^
+47110^47113^
+47110^47114^
+47110^47115^
+47110^47116^
+47110^47117^
+47110^47118^
+47110^47119^
+47110^47120^
+47110^47121^
diff --git a/src-modules/module/sxc/masken/47110_maskeninfo.unl b/src-modules/module/sxc/masken/47110_maskeninfo.unl
new file mode 100644
index 0000000..f7066d0
--- /dev/null
+++ b/src-modules/module/sxc/masken/47110_maskeninfo.unl
@@ -0,0 +1,817 @@
+47110^Stammdaten NRW^--Freemarker Template\
+<#include "SQL_lingua_franca"/>\
+<#include "SuperX_general"/>\
+\
+-- ################\
+-- # Erläuterung: #\
+-- ################\
+-- bezugsart:\
+-- Q = Quartal\
+-- S = Semester\
+-- J = Jahr\
+-- A = Akademisches Jahr BW\
+-- B = Beginner SA (Studeinanfäger)\
+-- P = Prüfungen SA (Absolventen) (war früher U)\
+\
+\
+--######################################\
+\
+--start ergtabelle \
+\
+>"?replace("'","")?replace("*","%")+"%"/>\
+\
+select trim(K.id) as id,trim(R.gruppe_1) as gruppe_1,\
+trim(R.gruppe_2) as gruppe_2,\
+trim(K.name) as name,\
+trim(K.quelltabelle) as quelltabelle,\
+trim(K.quellfeld) as quellfeld,\
+K.bedingung as bedingung,\
+trim(K.stichtagsart) as stichtagsart,\
+trim(K.bezugsart) as bezugsart,\
+trim(K.zeitfeld) as zeitfeld,\
+R.ebene,\
+R.ord_nr,\
+K.einheit,\
+K.beschreibung\
+FROM kenn_katalog K, kenn_katalog_rpt R\
+where K.id=R.katalog_id\
+and R.report_id=<>\
+/* and R.gruppe_1 like ('${kennznr}') and <>!='muss sein, da der Feld optional ist' */\
+/* and K.stichtagsart in (select druck from kenn_stichtagsart where aktiv='1' and apnr in (<>)) */\
+--Sortierung nach ord_nr wichtig wg. Querabhängigkeiten\
+order by 12;\
+]]>\
+ \
+\
+\
+select min(tid) from kenn_semester\
+where 1=1\
+/* and get_akad_jahr(tid,'A') >= <> */\
+/* and get_akad_jahr(tid,'A') <= <> */;\
+ \
+\
+select max(tid) from kenn_semester\
+where 1=1\
+/* and get_akad_jahr(tid,'A') >= <> */\
+/* and get_akad_jahr(tid,'A') <= <> */;\
+ \
+\
+select min(ord) from aggregierung\
+where kategorie='KENN-Jahr'\
+/* and ord >= <> */\
+/* and ord <= <> */;\
+ \
+\
+select max(ord) from aggregierung\
+where kategorie='KENN-Jahr'\
+/* and ord >= <> */\
+/* and ord <= <> */;\
+ \
+\
+select min(tid) from kenn_semester\
+where 1=1\
+/* and akad_jahr_anf >= <> */\
+/* and akad_jahr_anf <= <> */;\
+ \
+\
+select max(tid) from kenn_semester\
+where 1=1\
+/* and akad_jahr_anf >= <> */\
+/* and akad_jahr_anf <= <> */;\
+ \
+\
+select min(tid) from kenn_semester\
+where 1=1\
+/* and akad_jahr_absolv >= <> */\
+/* and akad_jahr_absolv <= <> */;\
+ \
+\
+select max(tid) from kenn_semester\
+where 1=1\
+/* and akad_jahr_absolv >= <> */\
+/* and akad_jahr_absolv <= <> */;\
+ \
+ \
+\
+<#assign lfb_feldinhalt="''" />\
+/* <#assign lfb_feldinhalt= .vars["Externes Produkt"].allNeededKeys /> --<> */\
+\
+--URL-Parameter für LFB-Detailmaske Sachsen:\
+<#assign seit_jahr_param="" />\
+<#if "<>" != "">\
+<#assign seit_jahr_param="&Start-Jahr=<>" />\
+#if>\
+<#assign bis_jahr_param="" />\
+<#if "<>" != "">\
+<#assign bis_jahr_param="&End-Jahr=<>" />\
+#if>\
+<#assign hochschule_param="" />\
+<#if "<>" != "">\
+/* <#assign hs="<>" /> */\
+<#assign hochschule_param="&Hochschule="+ hs?replace("'", "") />\
+#if>\
+\
+create temp table tmp_kennz\
+(\
+tid integer,\
+hs_nr integer,\
+katalog_id CHAR(100),\
+ hochschule_str nchar(255),\
+ stichtagsart nchar(255),\
+ beschreibung char(255),\
+ zeitraum_int integer,\
+ zeitraum_str char(255), \
+ bezugsart char(1),\
+ ebene smallint,\
+ ord_nr smallint,\
+ gruppe_1 char(40),\
+ gruppe_2 char(40),\
+ betrag decimal(14,2),\
+ einheit char(255), \
+ erlaeuterung varchar(255),\
+ nextmask varchar(250),\
+ nexttable varchar(250),\
+ jahr integer,\
+ semester integer\
+ ) <@informixnolog/>;\
+ create temp table tmp_kennz3\
+(tid integer,\
+hs_nr integer,\
+katalog_id CHAR(100),\
+ hochschule_str nchar(255),\
+ stichtagsart nchar(255),\
+ beschreibung char(255),\
+ zeitraum_int integer,\
+ zeitraum_str char(255), \
+ bezugsart char(1),\
+ ebene smallint,\
+ gruppe_1 char(40),\
+ gruppe_2 char(40),\
+ betrag decimal(14,2),\
+ einheit char(255),\
+ erlaeuterung varchar(255)\
+ ) <@informixnolog/>;\
+ \
+ create temp table tmp_betrag1\
+(hs_nr integer,\
+ zeitraum_int integer,\
+ betrag decimal(14,2)\
+ ) <@informixnolog/>;\
+ \
+ create temp table tmp_betrag2\
+(hs_nr integer,\
+ zeitraum_int integer,\
+ betrag decimal(14,2)\
+ ) <@informixnolog/>;\
+ \
+ \
+ \
+ \
+ <#macro bedingung zeitfeld bezugsart stichtagsart>\
+ <#if zeitfeld='null::integer' >\
+ (1=1)\
+ <#else>\
+ <#switch bezugsart>\
+ <#case "A">\
+ --Akad. Studienjahr ist etwas komplizierter\
+ --Def.: WS + darauf folgendes SS des im Zähler betrachteten Studienjahres\
+ <#if zeitfeld='jahr' >\
+ (\
+ 1=1 \
+ /*and jahr in\
+ (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='J'\
+ and K.stichtagsart='${stichtagsart}' and K.exportieren=<> ) */\
+ /* and jahr in\
+ (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='J'\
+ and K.stichtagsart='${stichtagsart}' and K.berechnen=<> ) */\
+ )\
+ <#else>\
+ --Semester\
+ (\
+ 1=1\
+ /* and ${zeitfeld} in\
+ (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='S'\
+ and K.stichtagsart='${stichtagsart}' and K.exportieren=<>) */\
+ /* and ${zeitfeld} in\
+ (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='S'\
+ and K.stichtagsart='${stichtagsart}' and K.berechnen=<> )*/\
+ \
+ )\
+ #if>\
+ <#break>\
+ \
+ <#default>\
+ 1=1\
+ /* and ${zeitfeld} in (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='${bezugsart}'\
+and K.stichtagsart='${stichtagsart}'\
+and K.exportieren=<>) */\
+ /* and ${zeitfeld} in (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='${bezugsart}'\
+and K.stichtagsart='${stichtagsart}'\
+and K.berechnen=<>) */\
+ \
+\
+#switch>\
+#if>\
+#macro>\
+\
+\
+--Erste Schleife für alle zu berechnenden Werte, wo quelltabelle gefüllt ist\
+<#if kenn_katalog?has_content >\
+<#foreach row_kennzahl in kenn_katalog>\
+<#if row_kennzahl.id != "dummy" && row_kennzahl.id != "dummy1">\
+--Variablen erheben\
+<#assign quelltabelle= row_kennzahl.quelltabelle />\
+<#assign quellfeld= row_kennzahl.quellfeld />\
+<#assign filter= row_kennzahl.bedingung />\
+<#assign stichtagsart= row_kennzahl.stichtagsart />\
+<#assign bezugsart= row_kennzahl.bezugsart />\
+<#assign zeitfeld= row_kennzahl.zeitfeld />\
+<#assign ebene= row_kennzahl.ebene />\
+<#assign ord_nr= row_kennzahl.ord_nr />\
+<#assign gruppe_1= row_kennzahl.gruppe_1 />\
+<#assign gruppe_2= row_kennzahl.gruppe_2 />\
+<#assign einheit= row_kennzahl.einheit />\
+<#assign beschreibung= row_kennzahl.beschreibung />\
+\
+\
+<#assign zeit_bedingung="1=1" />\
+\
+<#switch bezugsart>\
+ <#case "Q">\
+ <#if "<>" != "" && "<>" != "">\
+ <#assign zeit_bedingung= "jahr between <> and <>" />\
+ #if>\
+ <#if "<>" = "" && "<>" != "">\
+ <#assign zeit_bedingung= "jahr <= <>" />\
+ #if>\
+ <#if "<>" != "" && "<>" = "">\
+ <#assign zeit_bedingung= "jahr >= <>" />\
+ #if>\
+ <#break>\
+ <#case "S">\
+<#if "<>" != "" && "<>" != "">\
+<#assign zeit_bedingung= zeitfeld + " between <> and <>" />\
+#if>\
+<#if "<>" = "" && "<>" != "">\
+<#assign zeit_bedingung= zeitfeld + " <= <>" />\
+#if>\
+<#if "<>" != "" && "<>" = "">\
+<#assign zeit_bedingung= zeitfeld + " >= <>" />\
+#if>\
+<#if "<>" != "" && "<>" != "">\
+ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') between <> and <>" />\
+ #if>\
+ <#if "<>" = "" && "<>" != "">\
+ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') <= <>" />\
+ #if>\
+ <#if "<>" != "" && "<>" = "">\
+ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') >= <>" />\
+ #if>\
+ <#break>\
+ <#case "J">\
+ <#if "<>" != "" && "<>" != "">\
+ <#assign zeit_bedingung= zeitfeld + " between <> and <>" />\
+ #if>\
+ <#if "<>" = "" && "<>" != "">\
+ <#assign zeit_bedingung= zeitfeld + " <= <>" />\
+ #if>\
+ <#if "<>" != "" && "<>" = "">\
+ <#assign zeit_bedingung= zeitfeld + " >= <>" />\
+ #if>\
+ <#break>\
+ <#case "A">\
+ <#if zeitfeld="sem">\
+ <#if sem_akad_bw_von?trim != "">\
+ <#assign zeit_bedingung= zeit_bedingung+ " and " + zeitfeld + ">="+ sem_akad_bw_von />\
+ #if>\
+ <#if sem_akad_bw_bis?trim != "">\
+ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + "<="+ sem_akad_bw_bis />\
+ #if>\
+ #if>\
+ <#if zeitfeld?index_of("jahr") > -1 >\
+ <#if jahr_akad_bw_von?trim != "">\
+ <#assign zeit_bedingung= zeit_bedingung+ " and " + zeitfeld + ">="+ jahr_akad_bw_von />\
+ #if>\
+ <#if jahr_akad_bw_bis?trim != "">\
+ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + "<="+ jahr_akad_bw_bis />\
+ #if>\
+ #if>\
+ <#break>\
+ <#case "B">\
+ <#if sem_akad_sa_anf_von?trim != "">\
+ <#assign zeit_bedingung= zeit_bedingung+ " and " + zeitfeld + ">="+ sem_akad_sa_anf_von />\
+ #if>\
+ <#if sem_akad_sa_anf_bis?trim != "">\
+ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + "<="+ sem_akad_sa_anf_bis />\
+ #if>\
+ <#break>\
+ <#case "P">\
+ <#if sem_akad_sa_absolv_von?trim != "">\
+ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + " >="+ sem_akad_sa_absolv_von />\
+ #if>\
+ <#if sem_akad_sa_absolv_bis?trim != "">\
+ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + "<="+ sem_akad_sa_absolv_bis />\
+ #if>\
+ \
+ <#break>\
+ <#default>\
+ <#assign zeit_bedingung= "1=1" />\
+#switch>\
+\
+--Zuerst die Felder, die aus KENN-Tabellen generiert werden\
+--Achtung: die folgenden Tabellennamen müssen auch in Maske 18000 eingetragen werden\
+<#assign lfb_colname="" />\
+<#if quelltabelle != "" >\
+<#if quelltabelle=="kenn_sos_stg" || quelltabelle=="kenn_sos_lab" \
+|| quelltabelle=="kenn_sos_stg" || quelltabelle=="kenn_flaeche"\
+|| quelltabelle=="kenn_pbv_aggr" || quelltabelle=="kenn_konto_aggr"\
+|| quelltabelle=="kenn_anlagen_aggr" || quelltabelle=="kenn_stupl">\
+<#assign lfb_colname="extkotr" />\
+#if>\
+<#if quelltabelle== "kenn_busa_aggr">\
+<#assign lfb_colname="projnr" />\
+#if>\
+<#if quelltabelle== "kenn_vtbu_aggr">\
+<#assign lfb_colname="ziel_projnr" />\
+#if>\
+<#if quelltabelle== "kenn_zahl_wert">\
+<#if row_kennzahl.id == "FORSCH_HABILITATION_KOEPFE">\
+<#assign lfb_colname="ch110_institut" />\
+<#else>\
+<#if row_kennzahl.id == "LEHR_UNBER_ANG" || row_kennzahl.id == "LEHRANG_LEHRAUFTRAEGE" >\
+<#assign lfb_colname="(select min(substring(SG.key_ext from 1 for 10)) from kenn_inst_to_ext SG where SG.hs_nr=kenn_zahl_wert.hs_nr and SG.instnr=kenn_zahl_wert.ch110_institut)" />\
+<#else>\
+<#assign lfb_colname="(select min(SG.k_extkotr) from kenn_stug SG where SG.hs_nr=kenn_zahl_wert.hs_nr and SG.stug_key=kenn_zahl_wert.stugkey)" />\
+#if>\
+#if>\
+#if>\
+<#if quelltabelle== "kenn_su_imp_stud" || quelltabelle== "kenn_auslastung" || quelltabelle== "kenn_proj_gege">\
+<#assign lfb_colname="k_extkotr" />\
+#if>\
+\
+insert into tmp_kennz(\
+hs_nr ,\
+katalog_id,\
+ stichtagsart ,\
+ beschreibung ,\
+ zeitraum_int,\
+ bezugsart,\
+ ebene,\
+ ord_nr,\
+ gruppe_1,\
+ gruppe_2,\
+ betrag,\
+ einheit,\
+ erlaeuterung)\
+ \
+select hs_nr,\
+'${row_kennzahl.id}'::char(100),\
+ '${stichtagsart}'::nchar(255),\
+ '${row_kennzahl.name}' <#if bezugsart = "A" || bezugsart = "P" || bezugsart = "B" && zeitfeld?index_of("sem") > -1 && quelltabelle != ""> || nvl(' (' || (select trim(min(kurz)) from kenn_semester where tid=${quelltabelle}.${zeitfeld}) || ')','') #if>,\
+ <#if (bezugsart = "A" || bezugsart = "P" || bezugsart = "B") && zeitfeld?index_of("sem") > -1>\
+ --akad. Jahr automatisch ermitteln\
+ get_akad_jahr(${zeitfeld},'${bezugsart}'),\
+ --val(substring('' || ${zeitfeld} from 1 for 4)),\
+ <#else>\
+ ${zeitfeld},\
+ #if>\
+ '${bezugsart}'::char(1),\
+ ${ebene}::smallint,\
+ ${ord_nr}::smallint,\
+ '${gruppe_1}'::char(40),\
+ '${gruppe_2}'::char(40),\
+ ${quellfeld},\
+ '${einheit}'::varchar(255),\
+ '${beschreibung}'::varchar(255)\
+ from xdummy left outer join ${quelltabelle} on ( \
+ <@bedingung zeitfeld="${zeitfeld}" bezugsart="${bezugsart}" stichtagsart="${stichtagsart}"/>\
+ ${filter}\
+ and ${zeit_bedingung}\
+ and LPAD(hs_nr::TEXT, 4, '0') in <@printkeys .vars["Hochschule"].allNeededKeys /> \
+ \
+ <#if lfb_feldinhalt != "''" && lfb_colname != "" >\
+ and ${lfb_colname} in ${lfb_feldinhalt}\
+ #if>\
+ )\
+ --nicht doppelt einfügen\
+ where 0=(select count(*) from tmp_kennz K where K.katalog_id= '${row_kennzahl.id}' and (K.gruppe_1='${gruppe_1}' or K.gruppe_1 is null or trim(K.gruppe_1)=''))\
+ group by 1,2,3,4,5,6;\
+#if>\
+#if> --wenn nicht "dummy"\
+#foreach>\
+#if>\
+<@selectintotmp select="*" source="tmp_kennz" target="tmp_kennz_basis">\
+@selectintotmp> <@informixnolog/>;\
+\
+\
+--nun die berechneten Kennzahlen\
+<#list 1..5 as i>\
+<#if kenn_katalog?has_content >\
+ <#foreach row_kennzahl in kenn_katalog>\
+ <#if row_kennzahl.id != "dummy">\
+--Variablen erheben\
+<#assign quelltabelle= row_kennzahl.quelltabelle />\
+<#assign quellfeld= row_kennzahl.quellfeld />\
+<#assign filter= row_kennzahl.bedingung />\
+<#assign stichtagsart= row_kennzahl.stichtagsart />\
+<#assign bezugsart= row_kennzahl.bezugsart />\
+<#assign zeitfeld= row_kennzahl.zeitfeld />\
+<#assign ebene= row_kennzahl.ebene />\
+<#assign ord_nr= row_kennzahl.ord_nr />\
+<#assign gruppe_1= row_kennzahl.gruppe_1 />\
+<#assign gruppe_2= row_kennzahl.gruppe_2 />\
+<#assign einheit= row_kennzahl.einheit />\
+<#assign beschreibung= row_kennzahl.beschreibung />\
+\
+\
+\
+<#switch bezugsart>\
+ <#case "Q">\
+ <#if "<>" != "" && "<>" != "">\
+ <#assign zeit_bedingung= "jahr between <> and <>" />\
+ #if>\
+ <#if "<>" = "" && "<>" != "">\
+ <#assign zeit_bedingung= "jahr <= <>" />\
+ #if>\
+ <#if "<>" != "" && "<>" = "">\
+ <#assign zeit_bedingung= "jahr >= <>" />\
+ #if>\
+ <#break>\
+ <#case "S">\
+<#if "<>" != "" && "<>" != "">\
+<#assign zeit_bedingung= zeitfeld + " between <> and <>" />\
+#if>\
+<#if "<>" = "" && "<>" != "">\
+<#assign zeit_bedingung= zeitfeld + " <= <>" />\
+#if>\
+<#if "<>" != "" && "<>" = "">\
+<#assign zeit_bedingung= zeitfeld + " >= <>" />\
+#if>\
+<#if "<>" != "" && "<>" != "">\
+ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') between <> and <>" />\
+ #if>\
+ <#if "<>" = "" && "<>" != "">\
+ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') <= <>" />\
+ #if>\
+ <#if "<>" != "" && "<>" = "">\
+ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') >= <>" />\
+ #if>\
+ <#break>\
+ <#case "J">\
+ <#if "<>" != "" && "<>" != "">\
+ <#assign zeit_bedingung= zeitfeld + " between <> and <>" />\
+ #if>\
+ <#if "<>" = "" && "<>" != "">\
+ <#assign zeit_bedingung= zeitfeld + " <= <>" />\
+ #if>\
+ <#if "<>" != "" && "<>" = "">\
+ <#assign zeit_bedingung= zeitfeld + " >= <>" />\
+ #if>\
+ <#break>\
+ <#case "A">\
+ <#assign zeit_bedingung= zeitfeld +" between "+sem_akad_bw_von+" and "+sem_akad_bw_bis />\
+ <#break>\
+ <#case "B">\
+ <#assign zeit_bedingung= zeitfeld +" between "+sem_akad_sa_anf_von+" and "+sem_akad_sa_anf_bis />\
+ <#break>\
+ <#case "P">\
+ <#assign zeit_bedingung= zeitfeld +" between "+sem_akad_sa_absolv_von+" and "+sem_akad_sa_absolv_bis />\
+ <#break>\
+ <#default>\
+ <#assign zeit_bedingung= "1=1" />\
+#switch>\
+\
+\
+--Jetzt die berechneten Felder:\
+<#if quelltabelle = "" >\
+\
+--Bei berechneten Feldern steht in Quelltabelle nichts, dafür die Formel in Feldname\
+<#assign rsnum=1 />\
+\
+<#if quellfeld?index_of("/") != -1 || quellfeld?index_of("*") != -1>\
+<#if quellfeld?index_of("/") != -1>\
+<#assign operator="/" />\
+#if>\
+<#if quellfeld?index_of("*") != -1>\
+<#assign operator="*" />\
+#if>\
+<#list quellfeld?split(operator) as rs>\
+<#if rsnum = 1>\
+<#assign betrag1= rs />\
+#if>\
+<#if rsnum = 2>\
+<#assign betrag2= rs />\
+#if>\
+<#assign rsnum= rsnum+1 />\
+#list>\
+insert into tmp_betrag1(\
+hs_nr ,\
+ zeitraum_int,\
+ betrag\
+ )\
+ select hs_nr,\
+ zeitraum_int,\
+ --sicherstellen dass keien Duplikate reinkommen, wenn eine Kennzahl mehrmals benutzt wird:\
+ min(betrag)\
+ from tmp_kennz \
+ where katalog_id='${betrag1}'\
+ group by 1,2;\
+<#if betrag2?starts_with("2") || betrag2?starts_with("4") >\
+--wenn betrag2 keine Variable, sondern eine Zahl ist (z.B. für AVG /2)\
+--dann wird nur die 2 übernommen.\
+insert into tmp_betrag2(\
+hs_nr ,\
+ zeitraum_int,\
+ betrag\
+ )\
+ select hs_nr,\
+ zeitraum_int,\
+ ${betrag2}\
+ from tmp_kennz \
+ where katalog_id='${betrag1}'; \
+<#else>\
+insert into tmp_betrag2(\
+hs_nr ,\
+ zeitraum_int,\
+ betrag )\
+ select hs_nr,\
+ zeitraum_int,\
+ min(betrag)\
+ from tmp_kennz \
+ where katalog_id='${betrag2}'\
+ group by 1,2; \
+#if>\
+insert into tmp_kennz3(\
+hs_nr ,\
+ stichtagsart ,\
+ beschreibung ,\
+ zeitraum_int,\
+ bezugsart,\
+ ebene,\
+ gruppe_1,\
+ gruppe_2,\
+ betrag,\
+ einheit,\
+ erlaeuterung)\
+select Z.hs_nr,\
+ '${stichtagsart}'::nchar(255),\
+ '${row_kennzahl.name}'::char(255) ,\
+ Z.zeitraum_int,\
+ '${bezugsart}'::char(1),\
+ ${ebene},\
+ '${gruppe_1}',\
+ '${gruppe_2}',\
+ Z.betrag ${operator} N.betrag,\
+ '{einheit}',\
+ '{erlaeuterung}'\
+ from tmp_betrag1 Z, tmp_betrag2 N \
+ where 1=1\
+ <#if filter?trim = "">\
+ and (Z.zeitraum_int=N.zeitraum_int\
+ or (Z.zeitraum_int is null and N.zeitraum_int is null))\
+ <#else>\
+ --Wenn eine Kennzahl aus zwei nicht zusammenpassenden Zeiträumen gebildet wird,\
+ --(z.B. WS/HHJ) muss im Katalog das Feld bedingung gefüllt sein\
+ ${filter}\
+ #if>\
+ <#if operator="/">\
+ --keine Division durch 0\
+ and N.betrag != 0\
+ #if>\
+ and Z.hs_nr=N.hs_nr;\
+#if>\
+<#if quellfeld?index_of("+") != -1 >\
+--Summe\
+<#assign operator="+" />\
+insert into tmp_kennz3(\
+hs_nr ,\
+ stichtagsart ,\
+ beschreibung ,\
+ zeitraum_int,\
+ bezugsart,\
+ ebene,\
+ gruppe_1,\
+ gruppe_2,\
+ betrag,\
+ einheit,\
+ erlaeuterung) \
+select hs_nr,\
+ '${stichtagsart}'::nchar(255),\
+ '${row_kennzahl.name}'::char(255) ,\
+ zeitraum_int,\
+ '${bezugsart}'::char(1),\
+ ${ebene}::integer,\
+ '${gruppe_1}'::char(40),\
+ '${gruppe_2}'::char(40),\
+ sum(betrag),\
+ '${einheit}',\
+ '${beschreibung}'\
+ from xdummy left outer join tmp_kennz on \
+( katalog_id in (\
+ <#list quellfeld?split(operator) as rs>\
+'${rs?trim}',\
+#list>\
+'')\
+and hs_nr is not null --nur wenn überhaupt ein Wert drin ist\
+-- bei Akademischen Jahr soll keine Addition statt finden, wenn eins der beiden Semester keine Zahlen enthält. Das Ergebnis aus der Summe wäre irreführend.\
+<#if row_kennzahl.bezugsart = 'A'>\
+<#list quellfeld?split(operator) as rs>\
+and 0 < (select count(*) from tmp_kennz_basis BS where BS.katalog_id = '${rs}' and BS.zeitraum_int=tmp_kennz.zeitraum_int and BS.betrag is not null)\
+#list>\
+#if>\
+${row_kennzahl.bedingung} )\
+group by 1,2,3,4,5,6,7; \
+#if>\
+\
+insert into tmp_kennz(\
+hs_nr ,\
+ katalog_id,\
+ stichtagsart ,\
+ beschreibung ,\
+ zeitraum_int,\
+ bezugsart,\
+ ebene,\
+ ord_nr,\
+ gruppe_1,\
+ gruppe_2,\
+ betrag,\
+ einheit,\
+ erlaeuterung)\
+select\
+hs_nr ,\
+'${row_kennzahl.id}'::char(100),\
+'${stichtagsart}'::nchar(255),\
+ '${row_kennzahl.name}'::char(255) ,\
+ zeitraum_int,\
+ bezugsart,\
+ ${ebene}::smallint,\
+ ${ord_nr}::smallint,\
+ '${gruppe_1}'::char(40),\
+ '${gruppe_2}'::char(40),\
+ betrag,\
+ '${einheit}' ,\
+ '${beschreibung}' \
+ <#if i=5>\
+ --nur im letzten Durchgang ein left outer join, um sicherzugehen dass eine Zeile\
+ --angezeigt wird, auch wenn der Wert fehlt.\
+ from xdummy left outer join tmp_kennz3 on (1=1)\
+ <#else>\
+ from tmp_kennz3\
+ #if>\
+ --nicht doppelt einfügen, wg. 5er Schleife:\
+ where 0=(select count(*) from tmp_kennz K\
+ where K.katalog_id= '${row_kennzahl.id}'\
+ and (K.gruppe_1='${gruppe_1}' or K.gruppe_1 is null or trim(K.gruppe_1)='')\
+ );\
+\
+delete from tmp_betrag1;\
+delete from tmp_betrag2;\
+delete from tmp_kennz3;\
+#if>\
+#if> --wenn nicht dummy\
+#foreach>\
+#if>\
+#list>\
+\
+-- Wenn eine Kennzahl ausgewählt wird, sollen alle Ebenen angezeigt werden: Ebenen Filter wird ignoriert.\
+<#if "<>" = "">\
+/* delete from tmp_kennz where ebene > <>; */\
+#if>\
+\
+/* delete from tmp_kennz where substring(gruppe_1 from 1 for 2) != <>; */\
+\
+update tmp_kennz set hochschule_str=(select name from sxc_hochschulen where hs_nr =LPAD(tmp_kennz.hs_nr::TEXT, 4, '0'));\
+update tmp_kennz set zeitraum_str=(select min(druck) from kenn_semester where tid=tmp_kennz.zeitraum_int)\
+where bezugsart in ('S','4');\
+update tmp_kennz set zeitraum_str=(select name FROM aggregierung where kategorie='COB-Jahr' \
+and ord=tmp_kennz.zeitraum_int)\
+where bezugsart in ('J','A');\
+update tmp_kennz set zeitraum_str=(select min(druck) from kenn_quartale where apnr=tmp_kennz.zeitraum_int)\
+where bezugsart='Q';\
+update tmp_kennz set zeitraum_str=zeitraum_int where zeitraum_str is null;\
+\
+update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=5' \
+where stichtagsart='Kostenrechnung' \
+and katalog_id in ('KOSTEN_ERLOESE_Q');\
+\
+update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=906' \
+where stichtagsart='Kostenrechnung' \
+and katalog_id in ('KOSTEN_PERSONAL_Q');\
+update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=6' \
+where stichtagsart='Kostenrechnung' \
+and katalog_id in ('KOSTEN_SACH_Q');\
+update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=7' \
+where stichtagsart='Kostenrechnung' \
+and katalog_id in ('KOSTEN_WEITERE_Q');\
+update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=66' \
+where stichtagsart='Kostenrechnung' \
+and katalog_id in ('KOSTEN_ABSCHR_Q');\
+update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=902' \
+where stichtagsart='Kostenrechnung' \
+and katalog_id in ('KOSTEN_KALK_MIETE_Q');\
+\
+--update tmp_kennz set nextmask='18600&Hochschule=' || hs_nr || '&cachingcontrol=clearMask' where stichtagsart='Kostenrechnung' and katalog_id in ('KOSTEN_LEHRE_Q','KOSTEN_FORSCHUNG_Q','KOSTEN_DIENST_Q');\
+update tmp_kennz set nextmask='18600&Hochschule=' || hs_nr || '&Zeitraum=' || zeitraum_int || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) where stichtagsart='Kostenrechnung' and katalog_id in ('KOSTEN_LEHRE_SEK_Q');\
+\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&bis Hochschulsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1HS_KOEPFE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&bis Fachsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1FS_KOEPFE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&bis Fachsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1FS_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=H' || '&bis Fachsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1FS_HF_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=N' || '&bis Fachsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1FS_NF_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_KOEPFE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=H' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_HF_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=N' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_NF_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&in der RSZ=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_RSZ_KOEPFE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&in der RSZ=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_RSZ_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&in der RSZ=1' || '&Fachkennz.=H' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_RSZ_HF_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&in der RSZ=1' || '&Fachkennz.=N' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_RSZ_NF_FAELLE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=2' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_W_KOEPFE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_M_KOEPFE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_D_KOEPFE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Hochschulzugangsber.=6' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_BI_KOEPFE');\
+update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Hochschulzugangsber.=7' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_BA_KOEPFE');\
+\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_HF_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=N' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_NF_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=2' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=1' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=2' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=1' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=2' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_HF_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=1' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_HF_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=2' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_HF_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=1' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_HF_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=2' || '&Fachkennz.=N' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_NF_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=1' || '&Fachkennz.=N' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_NF_FAELLE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Staatsangeh%F6rigkeit="000"' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_D_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Hochschulzugangsber.=6' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_BI_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Hochschulzugangsber.=7' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_BA_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Staatsangeh%F6rigkeit=Alle%20ohne%20Deutschland' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_A_KOEPFE');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&Promotion=1' where stichtagsart='Prüfungsstatistik' and katalog_id in ('PROMOTIONEN');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&Promotion=1' || '&Geschlecht=2' where stichtagsart='Prüfungsstatistik' and katalog_id in ('PROMOTIONEN_W');\
+update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&Promotion=1' || '&Geschlecht=1' where stichtagsart='Prüfungsstatistik' and katalog_id in ('PROMOTIONEN_M');\
+\
+\
+<@selectintotmp select="hs_nr,hochschule_str,stichtagsart,beschreibung,erlaeuterung,zeitraum_int,\
+zeitraum_str,ebene, ord_nr,gruppe_1,gruppe_2, round(betrag,2) as betrag,einheit,nextmask,nexttable,'' as stichtagsart2" source="tmp_kennz" target="tmp_kennz4">\
+order by gruppe_1,zeitraum_int,gruppe_2,ord_nr\
+@selectintotmp> <@informixnolog/>;\
+\
+\
+/* <#if <> = "0">\
+update tmp_kennz4 set erlaeuterung = '';\
+#if> */\
+\
+<@selectintotmp select="hs_nr,hochschule_str,stichtagsart,stichtagsart2,beschreibung,erlaeuterung,zeitraum_int,\
+zeitraum_str,ebene, ord_nr,gruppe_1,gruppe_2, round(betrag,2) as betrag,einheit,nextmask,nexttable" source="tmp_kennz4" target="tmp_kennz2">\
+order by ord_nr,zeitraum_int,gruppe_1,gruppe_2\
+@selectintotmp> <@informixnolog/>;\
+\
+drop table tmp_kennz;\
+drop table tmp_kennz3;\
+drop table tmp_kennz4;\
+drop table tmp_kennz_basis;\
+drop table tmp_betrag1;\
+drop table tmp_betrag2;\
+\
+select ebene,hochschule_str,stichtagsart,\
+--stichtagsart2,\
+trim(string_not_null(gruppe_1)) || trim(string_not_null(gruppe_2)) || ' ' || beschreibung,\
+--erlaeuterung,\
+zeitraum_str,\
+round(betrag,2),\
+--einheit,\
+nextmask,nexttable from tmp_kennz2\
+;^XIL List\
+ drop_and_delete movable_columns sizable_columns horizontal_scrolling\
+ white_space_color=COLOR_WHITE fixed_columns=1\
+ min_heading_height=35\
+Column CID=0 heading_text="Ebene" center_heading explanation="@@@kenn_ebene_stud@@@" \
+ row_selectable col_selectable heading_platform readonly\
+ width=10 text_size=10\
+Column CID=0 heading_text="Hochschule" center_heading explanation="@@@kenn_hochschule@@@" \
+ row_selectable col_selectable heading_platform readonly\
+ width=15 text_size=10\
+Column CID=1 heading_text="Statistische\\nKennzahl" center_heading explanation="@@@kenn_stat_kennzahl@@@"\
+ row_selectable col_selectable heading_platform readonly\
+ width=15 text_size=100\
+Column CID=2 heading_text="Beschreibung" center_heading explanation="@@@kenn_beschreibung@@@"\
+ row_selectable col_selectable heading_platform readonly\
+ width=50\
+Column CID=3 heading_text="Zeitraum" center_heading explanation="@@@kenn_zeitraum@@@"\
+ row_selectable col_selectable heading_platform readonly\
+ width=20\
+Column CID=3 heading_text="Wert" center_heading explanation="@@@kenn_wert@@@"\
+ row_selectable col_selectable heading_platform readonly\
+ width=20\
+Column CID=3 heading_text="Details\\nMaske" center_heading explanation="Details für diese Kennzahl"\
+ row_selectable col_selectable heading_platform readonly\
+ width=15\
+Column CID=3 heading_text="Details\\nTabelle" center_heading explanation="Details für diese Kennzahl"\
+ row_selectable col_selectable heading_platform readonly\
+ width=15\
+@@@^ ^ ^Gesamtüberblick der stat. Kennzahlen nach Hochschule und Art der Kennzahl.^drop table tmp_kennz2;^^1^600^400^^1^<> select 'Achtung: Beim Kennzahlen-Bericht wird das Maskenfeld Stat. Kennzahl ignoriert, ggf. würden die Kennzahlen sonst nicht vollständig berechnet.' from xdummy where <>='KENN_BW' and (1=0 /* or <> != ''*/);^
diff --git a/src-modules/module/sxc/masken/47110_sachgeb_maske_bez.unl b/src-modules/module/sxc/masken/47110_sachgeb_maske_bez.unl
new file mode 100644
index 0000000..08e918d
--- /dev/null
+++ b/src-modules/module/sxc/masken/47110_sachgeb_maske_bez.unl
@@ -0,0 +1 @@
+109^47110^
diff --git a/src-modules/module/sxc/schluesseltabellen/sichten_fuellen.sql b/src-modules/module/sxc/schluesseltabellen/sichten_fuellen.sql
index e810690..887eba9 100644
--- a/src-modules/module/sxc/schluesseltabellen/sichten_fuellen.sql
+++ b/src-modules/module/sxc/schluesseltabellen/sichten_fuellen.sql
@@ -29,7 +29,12 @@ select setval('sichten_tid_seq',(select max(tid) from sichten));
"name":"Hochschulen Liste",
"quelle":"<> select druck ,apnr, parent, ebene from sxc_hochschulen_liste order by 1",
"art":"SXC_Hochschulen-Sicht",
- "sortnr":"50"}
+ "sortnr":"50"},
+ {"name_intern":"sxc_hochschulen_liste_stammdaten",
+ "name":"Hochschulen Liste Stammdaten",
+ "quelle":"<> select druck ,apnr, parent, ebene from sxc_hochschulen_liste where apnr in (''1480'',''1140'',''1080'',''1090'',''1130'',''0080'',''1100'',''1110'',''1120'',''0121'',''0130'',''0140'') or ebene=0 order by 1",
+ "art":"SXC_Hochschulen-Sicht",
+ "sortnr":"60"}
] />