Modul SuperX-Connect
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
7.1 KiB

--freemarker template
<#assign xcubes = [
{"name":"Studierendenwürfel_SXC",
"uniquename":"xcube_sxc_stud_sem_da_geschl_hs",
"sachgebiet":16,
"table_name":"sxc_stud_sem_da_geschl_hs",
"maskeninfo_id":47030
},
{"name":"Makro_Studierendenwürfel_SXC",
"uniquename":"xcube_sxc_stud_sem_da_geschl_hs",
"sachgebiet":16,
"table_name":"sxc_stud_sem_da_geschl_hs",
"maskeninfo_id":47030
}
] />
<#assign xcube_kennzahl = [
{ "maskeninfo_id":47030,
"apnr":"sxc_stud",
"name":"Studierende",
"aggrfunction":"sum(bil002__studierende__anzahl)",
"restriction":"bil002__studierende__q='e'",
"datatype":"integer",
"is_default":1,
"sortnr":1},
{ "maskeninfo_id":47060,
"apnr":"makro_sxc_stud",
"name":"Makro_Studierende",
"aggrfunction":"sum(bil002__studierende__anzahl)",
"restriction":"bil002__studierende__q='e'",
"datatype":"integer",
"is_default":1,
"sortnr":1}
] />
<#assign xcube_dimconfig = [
<#-- SXC_Studierendenwürfel -->
{"maskeninfo_id":47030,
"name":"semester",
"caption":"Semester",
"is_coldefault":1,
"foreignkey_tab":"kenn_semester",
"foreignkey_col":"tid",
"foreignkey_cap":"druck",
"sortfield":"tid",
"calc_gesamt":0},
{"maskeninfo_id":47030,
"name":"hs_nr",
"caption":"Hochschule",
"is_rowdefault":1,
"is_sicht":1},
{"maskeninfo_id":47030,
"name":"auspraegung_code_3",
"caption":"Geschlecht",
"foreignkey_tab":"xcube_dims",
"foreignkey_col":"apnr",
"foreignkey_cap":"name",
"foreignkey_cond":"id='auspraegung_code_3'",
"attrib_nachbearbeitung": "update <<tmp_table>> set <<col>>='UNB' where <<col>> is NULL",
"sortfield":"sort1"},
{"maskeninfo_id":47030,
"name":"auspraegung_code_2",
"caption":"Nationalität",
"foreignkey_tab":"xcube_dims",
"foreignkey_col":"apnr",
"foreignkey_cap":"name",
"foreignkey_cond":"id='auspraegung_code_2'",
"sortfield":"sort1"} ,
<#-- Makro_SXC_Studierendenwürfel -->
{"maskeninfo_id":47060,
"name":"semester",
"caption":"Semester",
"is_coldefault":1,
"foreignkey_tab":"kenn_semester",
"foreignkey_col":"tid",
"foreignkey_cap":"druck",
"sortfield":"tid",
"calc_gesamt":0},
{"maskeninfo_id":47060,
"name":"hs_nr",
"caption":"Hochschule",
"is_rowdefault":1,
"is_sicht":1},
{"maskeninfo_id":47060,
"name":"auspraegung_code_3",
"caption":"Geschlecht",
"foreignkey_tab":"xcube_dims",
"foreignkey_col":"apnr",
"foreignkey_cap":"name",
"foreignkey_cond":"id='auspraegung_code_3'",
"attrib_nachbearbeitung": "update <<tmp_table>> set <<col>>='UNB' where <<col>> is NULL",
"sortfield":"sort1"},
{"maskeninfo_id":47060,
"name":"auspraegung_code_2",
"caption":"Nationalität",
"foreignkey_tab":"xcube_dims",
"foreignkey_col":"apnr",
"foreignkey_cap":"name",
"foreignkey_cond":"id='auspraegung_code_2'",
"sortfield":"sort1"}
] />
--freemarker magic
<#foreach cube in xcubes>
delete from xcube where maskeninfo_id=${cube.maskeninfo_id};
delete from xcube_dimconfig where maskeninfo_id=${cube.maskeninfo_id};
delete from xcube_kennzahl where maskeninfo_id=${cube.maskeninfo_id};
insert into xcube (name,uniquename,table_name,maskeninfo_id,sachgebiet)
values ('${cube.name}','${cube.uniquename}','${cube.table_name}',${cube.maskeninfo_id},${cube.sachgebiet});
</#foreach>
<#foreach k in xcube_kennzahl>
insert into xcube_kennzahl (apnr,name,maskeninfo_id,aggrfunction,restriction,is_default,sortnr) values
('${k.apnr}','${k.name}',${k.maskeninfo_id},'${k.aggrfunction?replace("\x0027","\x0027\x0027")}',
'${k.restriction?replace("\x0027","\x0027\x0027")}',
${k.is_default},${k.sortnr});
<#if k?keys?seq_contains("datatype")> update xcube_kennzahl set datatype='${k.datatype}' where maskeninfo_id='${k.maskeninfo_id}' and apnr='${k.apnr}';</#if>
</#foreach>
<#foreach conf in xcube_dimconfig>
-- einfache durch zwei einfache Zeichen ersetzten x0027
insert into xcube_dimconfig (maskeninfo_id,name,caption)
values (${conf.maskeninfo_id},'${conf.name}','${conf.caption?replace("\x0027","\x0027\x0027")}');
<#if conf?keys?seq_contains("foreignkey_tab")> update xcube_dimconfig set foreignkey_tab='${conf.foreignkey_tab}' where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("foreignkey_cap")> update xcube_dimconfig set foreignkey_cap='${conf.foreignkey_cap}' where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("foreignkey_col")> update xcube_dimconfig set foreignkey_col='${conf.foreignkey_col}' where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("sortfield")> update xcube_dimconfig set sortfield='${conf.sortfield}' where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("is_sicht")> update xcube_dimconfig set is_sicht=${conf.is_sicht} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("calc_gesamt")> update xcube_dimconfig set calc_gesamt=${conf.calc_gesamt} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("is_rowdim")> update xcube_dimconfig set is_rowdim=${conf.is_rowdim} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("is_secondrowdim")> update xcube_dimconfig set is_secondrowdim=${conf.is_secondrowdim} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("is_rowdefault")> update xcube_dimconfig set is_rowdefault=${conf.is_rowdefault} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("is_coldim")> update xcube_dimconfig set is_coldim=${conf.is_coldim} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("is_secondcoldim")> update xcube_dimconfig set is_secondcoldim=${conf.is_secondcoldim} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("is_coldefault")> update xcube_dimconfig set is_coldefault=${conf.is_coldefault} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("foreignkey_cond")> update xcube_dimconfig set foreignkey_cond='${conf.foreignkey_cond?replace("\x0027","\x0027\x0027")}' where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("is_virtual")> update xcube_dimconfig set is_virtual=${conf.is_virtual} where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("vcsql")> update xcube_dimconfig set vcsql='${conf.vcsql?replace("\x0027","\x0027\x0027")}' where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
<#if conf?keys?seq_contains("attrib_nachbearbeitung")> update xcube_dimconfig set attrib_nachbearbeitung='${conf.attrib_nachbearbeitung?replace("\x0027","\x0027\x0027")}' where maskeninfo_id='${conf.maskeninfo_id}' and name='${conf.name}';</#if>
</#foreach>