Browse Source

xcube.xml erstellt #1

xcube0.1
Daniel Quathamer 2 years ago
parent
commit
6d59d7ad0f
  1. 65
      build.xml
  2. 7
      rsync_to_superx.x
  3. 0
      src-modules/module/hierhin bitte das Kuerzel Ihres moduls.txt
  4. 5
      src-modules/module/xcube/conf/excludes.txt
  5. 1
      src-modules/module/xcube/conf/includes.txt
  6. 79
      src-modules/module/xcube/conf/xcube.xml
  7. 10
      superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_felderinfo.unl
  8. 1
      superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_maske_system_bez.unl
  9. 10
      superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_masken_felder_bez.unl
  10. 188
      superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_maskeninfo.unl
  11. 1
      superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_sachgeb_maske_bez.unl

65
build.xml

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

7
rsync_to_superx.x

@ -0,0 +1,7 @@
#!/bin/bash
#Synchronisierung webapp zum Zielpfad
ant -DMODULE_PATH=$MEINMODUL_PFAD -DBASE_DIR=. -DMODULE=meinmodul all

0
src-modules/module/hierhin bitte das Kuerzel Ihres moduls.txt

5
src-modules/module/xcube/conf/excludes.txt

@ -0,0 +1,5 @@
**/*log*
**/*err*
**/*tmp*
**/*.alt
**/*.out

1
src-modules/module/xcube/conf/includes.txt

@ -0,0 +1 @@
WEB-INF/conf/edustore/db/bin/SQL_ENV_xcube.sam

79
src-modules/module/xcube/conf/xcube.xml

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE module SYSTEM "../../../conf/superx-module.dtd">-->
<module name="xcube" version="0.1" sachgebiet_id="1000" sachgebiet="xcube" systeminfo_id="1000" system="xcube" thema="Datenwürfel" thema_parent="">
<database name="superx" version="2.1" system="superx">
<table name="xcube_dims">
<columns><column name="id" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="apnr" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="name" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="sort1" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="parent" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="strukturstr" type ="VARCHAR" size ="2147483647" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
</rs></primaryKeys>
<foreignKeys></foreignKeys>
<importedKeys></importedKeys>
<privileges><rs>
</rs></privileges>
</table>
<table name="xcube_dimconfig">
<columns><column name="maskeninfo_id" type ="INTEGER" size ="10" default ="" notnull ="true" />
<column name="table_name" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="name" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="generic_dimension" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="is_sicht" type ="SMALLINT" size ="5" default ="" notnull ="false" />
<column name="is_rowdim" type ="SMALLINT" size ="5" default ="" notnull ="false" />
<column name="is_coldim" type ="SMALLINT" size ="5" default ="" notnull ="false" />
<column name="is_rowdefault" type ="SMALLINT" size ="5" default ="" notnull ="false" />
<column name="is_coldefault" type ="SMALLINT" size ="5" default ="" notnull ="false" />
<column name="is_secondcoldim" type ="SMALLINT" size ="5" default ="" notnull ="false" />
<column name="specific_restriction" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="tid" type ="INTEGER" size ="10" default ="" notnull ="true" />
<column name="specific_2ndcol_restriction" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="sortfield" type ="VARCHAR" size ="255" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
</rs></primaryKeys>
<foreignKeys></foreignKeys>
<importedKeys></importedKeys>
<privileges><rs>
</rs></privileges>
</table>
<functions>
</functions>
<views>
</views>
<themen>
</themen>
<masken>
</masken>
</database>
<install>
<install-step>
<action error="cont">
</action>
</install-step>
</install>
<upgrade>
<upgrade-step>
<action error="cont">
</action>
</upgrade-step>
</upgrade>
<etl>
<etl-step name="Aktualisieren der xcube-Tabellen" type="trans">
<action error="stop">
</action>
</etl-step>
</etl>
</module>

10
superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_felderinfo.unl

@ -0,0 +1,10 @@
99990031^Ansicht in Ergebniszeilen^200^0^0^150^200^1^char^30^1^1^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and C.table_name='kenn_vtbu_cube' and is_rowdim=1 order by 1^^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and C.table_name='kenn_vtbu_cube' and is_rowdim=1 and is_rowdefault=1^
99990032^Haushaltsjahr^7^0^0^100^50^1^integer^30^1^1^<<SQL>> SELECT distinct ord,name FROM aggregierung where kategorie='KENN-Jahr' order by 1;^^<<SQL>> select year(today()) -1 from xdummy;^
99990033^Zeitraum^10^200^-1^100^100^1^sql^30^0^1^<<SQL>> select apnr,druck from kenn_quartale order by 1;^^^
99990034^Ansicht in Ergebnisspalten^300^0^0^150^200^1^char^30^1^1^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and C.table_name='kenn_vtbu_cube' and is_coldim=1 order by 1;^^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and C.table_name='kenn_vtbu_cube' and is_coldim=1 and is_coldefault=1^
99990035^Hochschule^0^0^0^100^200^1^char^30^1^12^<<SQL>> select tid, type, name , sortnr from sichten where art in ('KENN-Kostenstellen-Sicht', 'KENN-Hochschulen-Sicht') order by sortnr,name;^^^
99990036^Lehreinheit anzeigen^90^200^-1^100^100^1^char^30^1^1^<<SQL>> select 'j','Ja' from xdummy union select 'n','Nein' from xdummy;^hidden^<<SQL>> select 'j','Ja' from xdummy^
99990037^Kostenträger^1^0^0^100^200^1^char^30^0^12^<<SQL>> select tid,type,name from sichten where art='KENN-Kostenträger-Sicht' and name_intern like '%lehre%' and aktiv=1 order by type,name^^^
99990038^Filter auf Ebene^80^0^0^100^20^1^integer^30^0^0^^hidden^^
99990039^Primär/Sekundär^2^200^-1^100^200^1^char^30^0^1^<<SQL>> select key,name from joolap_blueprints where blueprint='bluep_kenn_pr_sek' order by 2^ ^ ^
99990040^Kostenartenblock^100^0^0^100^200^1^char^30^0^1^<<SQL>>select art2,caption from sx_repository where aktiv=1 and art='KENN_KOA_BLOCK' and art2 not like '_ERL%' order by 2^hidden^^

1
superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_maske_system_bez.unl

@ -0,0 +1 @@
99990030^109^

10
superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_masken_felder_bez.unl

@ -0,0 +1,10 @@
99990030^99990031^
99990030^99990032^
99990030^99990033^
99990030^99990034^
99990030^99990035^
99990030^99990036^
99990030^99990037^
99990030^99990038^
99990030^99990039^
99990030^99990040^

188
superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_maskeninfo.unl

@ -0,0 +1,188 @@
99990030^xCube Sekundärkosten^-- Personal nach Finanzierung (der amtl. Statistik)\
--freemarker template\
<sqlvars>\
<sqlvar name="tablename">select 'kenn_vtbu_cube' from xdummy</sqlvar>\
<sqlvar name="coldef" type="hash"><![CDATA[select F.name,F.caption,F.foreignkey_tab,F.foreignkey_col,\
F.foreignkey_cap,nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond,\
nvl(C.specific_restriction,''::varchar(1)) as specific_restriction,\
C.sortfield\
from sx_fields F,xcube_dimconfig C where C.table_name=F.table_name and F.name=C.name \
and C.maskeninfo_id=${Maskennummer} and F.table_name='${tablename}' \
and F.name=<<Ansicht in Ergebnisspalten>>]]>\
</sqlvar>\
<sqlvar name="ergspalten" type='hashsequence'><![CDATA[\
select distinct ${coldef.foreignkey_col} as apnr,${coldef.foreignkey_cap} as name,\
1::smallint as detailgesamtsort,${coldef.sortfield}\
from ${coldef.foreignkey_tab} where \
1=1 \
<#if coldef.foreignkey_cond!=''> and ${coldef.foreignkey_cond} </#if>\
${coldef.specific_restriction} \
--ausblenden von Spalten, die gar nicht in konkretem Teilergebnis vorkommen\
--and ${coldef.foreignkey_col} in (select distinct ${coldef.name} from ${tablename} where\
--Hier allgemeine Einschränkungen\
--jahr=<<Jahr>> \
--)\
union\
select 'gesamt','Gesamt',2::smallint as detailgesamtsort,null as ${coldef.sortfield} from xdummy\
order by detailgesamtsort,${coldef.sortfield},name; \
]]>\
</sqlvar>\
\
\
\
<sqlvar name="rowdef" type="hash"><![CDATA[select F.name,F.caption,C.is_sicht,foreignkey_tab,foreignkey_col,foreignkey_cap,\
nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond,\
nvl(C.specific_restriction,''::varchar(1)) as specific_restriction\
from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name \
and F.table_name='${tablename}' and F.name=<<Ansicht in Ergebniszeilen>>]]>\
</sqlvar>\
--nur bei wenn Ergzeilen_def nicht vom Typ Sicht relevant\
<sqlvar name="nichtsicht_ergzeilen" type='hashsequence'><![CDATA[\
<#if rowdef.is_sicht=0>\
select 1::smallint as level, ${rowdef.foreignkey_col}::varchar(255) as key,--hier wird zur Vereinheitlichung mit Sichten Bezeichung "key" für eigentlichen Schluessel benoetigt\
${rowdef.foreignkey_cap} as name from ${rowdef.foreignkey_tab}\
where 1=1\
<#if rowdef.foreignkey_cond!=''> and ${rowdef.foreignkey_cond} </#if>\
${rowdef.specific_restriction} \
union\
select 2,'gesamt','Gesamt' from xdummy\
order by level,name; \
<#else>\
select 'nicht relevant' from xdummy;</#if>\
]]>\
</sqlvar>\
</sqlvars>\
\
<#assign aggrfunction="sum(betrag)"/>\
\
\
\
create temp table tmp_rohdaten (\
colattrib varchar(255), <@addcomment comment=coldef.caption/>\
rowattrib varchar(255), <@addcomment comment=rowdef.caption/>\
value decimal(17,5));\
insert into tmp_rohdaten (colattrib,rowattrib,value)\
select ${coldef.name}::varchar(255), \
${rowdef.name}::varchar(255), ${aggrfunction}\
from \
kenn_vtbu_cube V\
where \
<<Haushaltsjahr>> = V.jahr \
/* and V.projnr in <@printkeys Kostenträger.allNeededKeys/> --<<Kostenträger>> */\
/* and V.prim_sek =<<Primär/Sekundär>> */\
and V.hs_nr::char(10) in <@printkeys .vars["Hochschule"].allNeededKeys />\
\
group by 1,2;\
create index ix_tmp_roh1 on tmp_rohdaten (colattrib,rowattrib);\
\
create temp table tmp_erg (\
ebene integer,\
col1 varchar(255),\
name varchar(255),\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
c${i} decimal(17,5) default 0, <@addcomment comment=spalte.name/>\
\
</#foreach>\
sortnr integer\
) <@informixnolog/>;\
<#assign sortnr=0/>\
\
\
<#if rowdef.is_sicht==1> \
<#assign zeilendef=.vars[rowdef.caption].elements/> --ermittel des SichtObjekts anhand des Feldnames (aus felderinfo)\
<#else>\
<#assign zeilendef=nichtsicht_ergzeilen/>\
</#if>\
\
<#foreach zeile in zeilendef>\
<#assign sortnr=sortnr+1/>\
insert into tmp_erg (ebene,col1,name,sortnr)\
values (${zeile.level},'${zeile.key}','${zeile.name}',${sortnr});\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
<@updateval i=i col=spalte row=zeile art='gesamt'/>\
\
</#foreach>\
</#foreach>\
\
<#macro updateval i col row art>\
update tmp_erg T set c${i}=\
(select nvl(sum(value),0) from tmp_rohdaten R where 1=1 \
<#if col.apnr!='gesamt'>\
and R.colattrib='${col.apnr}' \
</#if>\
\
<#if rowdef.is_sicht==1>\
and R.rowattrib in ${row.subkeys}\
<#else>\
<#if row.key!='gesamt'> and R.rowattrib='${row.key}' </#if>\
</#if>\
) where T.col1='${row.key}'\
;\
</#macro>\
\
drop table tmp_rohdaten;\
\
\
\
--Leerzeilen entfernen\
delete from tmp_erg where\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
c${i}=0 <#if spalte_has_next> and </#if>\
</#foreach>;\
\
<#if "<<Ansicht in Ergebniszeilen>>"="'institution'">\
update tmp_erg set name=replace(name,col1||' - ','');\
update tmp_erg set col1=(select max(uniquename) from organigramm where col1=trim(key_apnr))\
where substring(col1 from 1 for 1)='_';\
--vorher war ggfs _3 zu O005030, auch O005030 in Namen ersetzen\
update tmp_erg set name=replace(name,col1||' - ','');\
</#if> \
\
\
\
\
select \
<#if rowdef.is_sicht==1>ebene,col1,</#if>\
name,\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
c${i}::integer <#if spalte_has_next>,</#if>\
</#foreach>\
\
from tmp_erg order by sortnr;^--freemarker Template\
XIL List\
sizable_columns horizontal_scrolling\
drop_and_delete movable_columns\
white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=35\
XIL List\
sizable_columns horizontal_scrolling\
drop_and_delete movable_columns\
white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=35\
<#if rowdef.is_sicht==1>\
Column CID=0 heading_text="Ebene" center_heading\
row_selectable heading_platform readonly\
width=10 text_size=8\
Column CID=20 heading_text="${.vars["Ansicht in ErgebniszeilenObject"].selectedItems[0].name}Nr" center_heading\
row_selectable heading_platform readonly\
width=10 text_size=10\
</#if>\
Column CID=20 heading_text="${.vars["Ansicht in ErgebniszeilenObject"].selectedItems[0].name}" center_heading\
row_selectable heading_platform readonly\
width=10 text_size=10\
<#foreach spalte in ergspalten>\
Column CID=1 heading_text="${spalte.name}" center_heading\
row_selectable heading_platform readonly\
width=12\
</#foreach>\
\
\
@@@^^^Kostenwürfel nach Produktbereich^drop table tmp_erg;^^2^600^400^0^1^<<SQL>> select 'Letzte Lieferung: ' || date_str(max(datum)) from kenn_lieferung where (1 =0 /* or hs_nr::char(10) in (<<Hochschule>>) */ /* or hs_nr::char(10) in (select key_apnr from organigramm where parent in (<<Hochschule>>)) */ /* or <<Hochschule>>='0' */ ) and kennzahl ='KOTN'^

1
superx/WEB-INF/conf/edustore/db/module/xcube/masken/99990030_sachgeb_maske_bez.unl

@ -0,0 +1 @@
112^99990030^
Loading…
Cancel
Save