42002^Arten von Ladeschritten^100^0^0^150^300^1^char^30^0^18^^^<<SQL>>select '../edit/etl/etl_step_type_list.jsp' from xdummy;^
42003^Name^20^0^0^150^150^1^sql^50^0^0^^^^
42004^Komponente^30^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,name from systeminfo order by 2;^^^
42005^Job-Management^1000^0^0^150^300^1^char^30^0^18^^^<<SQL>>select '../edit/etl/etl_manager.jsp' from xdummy;^
42006^Maske^1^0^0^100^380^1^integer^30^0^1^<<SQL>> select M.tid, M.tid || ' - ' || M.name from maskeninfo M, sachgeb_maske_bez S where M.tid=S.maskeninfo_id order by 1;^hidden^^
{"etl_job":"kern_konstanten_update","param_name":"SUPERX_DIR","name":"Superx-Pfad zu WEB-INF/conf/edustore","param_default":"$WEBAPP/WEB-INF/conf/edustore"},
{"etl_job":"sichten_unload","uniquename":"unload_sichten_sachgeb","name":"Sachgebiete von Sichten entladen","type":"UNLOAD","parent":"unload_sichten_ges"},
{"etl_job":"sichten_unload","uniquename":"unload_sichten_sachgeb","name":"Sachgebiete von Sichtarten entladen","type":"UNLOAD","parent":"unload_sichten_ges"},
{"etl_job":"qa_project_unload","uniquename":"unload_qa_dbtest2project_tab","name":"DB-Test zu Projekt entladen","type":"UNLOAD","parent":"qa_project_unload_ges"},
{"etl_job":"qa_project_unload","uniquename":"unload_qa_mask_execution2project_tab","name":"Masken-Test zu Projekt entladen","type":"UNLOAD","parent":"qa_project_unload_ges"}
{"etl_step":"unload_sichtentab","prop_name":"select_stmt","prop_value":"SELECT S.systeminfoid,S.art,S.type,S.name_intern,S.name,S.sortnr,S.quelle,S.standbutton,S.aktiv FROM sichten S where (S.systeminfoid::varchar(255)= ''$SYSTEMINFO_ID'' or S.name_intern=''$NAME_INTERN'') and position(''<#'' in quelle) =0 order by art,sortnr ,name;"},
{"etl_step":"unload_sichten_sachgeb","prop_name":"select_stmt","prop_value":"SELECT A.sichtart,A.sachgebiete_id FROM sachgeb_sichtarten A where A.sichtart in (select distinct S.art from sichten S where (S.systeminfoid::varchar(255)= ''$SYSTEMINFO_ID'' or S.name_intern=''$NAME_INTERN'')) order by 1,2;"},
{"etl_step":"unload_sichtentab","prop_name":"select_stmt","prop_value":"SELECT S.systeminfoid,S.art,S.type,S.name_intern,S.name,S.sortnr,S.quelle,S.standbutton FROM sichten S where S.systeminfoid= $SYSTEMINFO_ID and position(''<#'' in quelle) =0 order by art,sortnr ,name;"},
{"etl_step":"unload_sichten_sachgeb","prop_name":"select_stmt","prop_value":"SELECT A.sichtart,A.sachgebiete_id FROM sachgeb_sichtarten A where A.sichtart in (select distinct S.art from sichten S where S.systeminfoid= $SYSTEMINFO_ID) order by 1,2;"},
{"etl_step":"unload_sos_gewichtung","prop_name":"select_stmt","prop_value":" SELECT art, ch35_ang_abschluss, fach_nr, kz_fach, text, faktor FROM sos_gewichtung where ch35_ang_abschluss in (''B5'',''B6'',''B7'',''B8'',''M3'',''M4'',''M7'',''M8'') and art=''vzae'' order by 1,2,3,4,5 ;"},
{"etl_step":"unload_qa_project_tab","prop_name":"select_stmt","prop_value":"SELECT uniquename, name, systeminfo_id, sachgebiete_id, active, created_from, issue_link FROM qa_project where tid= $QA_PROJECT_ID order by 1;"},
{"etl_step":"unload_qa_resultset_tab","prop_name":"select_stmt","prop_value":"SELECT R.uniquename, R.name, R.systeminfo_id, R.fromclause, R.fieldclause, R.groupbyclause, R.orderbyclause FROM qa_resultset R where R.tid in (select distinct T.resultset_id from qa_dbtest T, qa_dbtest2project P where P.dbtest_id=T.tid and P.project_id= $QA_PROJECT_ID ) order by 1;"},
{"etl_step":"unload_qa_dbtest_tab","prop_name":"select_stmt","prop_value":"SELECT T.uniquename,T.name,T.systeminfo_id,R.uniquename as resultset_uniquename,T.whereclause,T.description,T.active from qa_dbtest T,qa_resultset R where R.tid=T.resultset_id and T.tid in (select P.dbtest_id from qa_dbtest2project P where P.project_id= $QA_PROJECT_ID ) order by 1;"},
{"etl_step":"unload_qa_dbtest_assertion_tab","prop_name":"select_stmt","prop_value":"SELECT T.uniquename as dbtest_uniquename,A.rownr,A.def_col_caption,A.def_col_name,A.def_col_value,A.def_col_function from qa_dbtest T, qa_dbtest_assertion A where A.dbtest_id=T.tid and T.tid in (select P.dbtest_id from qa_dbtest2project P where P.project_id= $QA_PROJECT_ID ) order by 1;"},
{"etl_step":"unload_qa_dbtest2project_tab","prop_name":"select_stmt","prop_value":"SELECT T.uniquename as dbtest_uniquename,P.uniquename as project_uniquename,DP.issue_id FROM qa_dbtest2project DP, qa_dbtest T, qa_project P where DP.dbtest_id=T.tid and DP.project_id=P.tid and DP.project_id= $QA_PROJECT_ID order by 1;"},
{"etl_step":"unload_qa_mask_execution_tab","prop_name":"select_stmt","prop_value":"SELECT E.name,E.userinfo_id,E.maskeninfo_id,E.is_active,E.stylesheet_id,E.contenttype,E.output_filename,E.systeminfo_id,E.uniquename FROM qa_mask_execution E where E.tid in (select P.mask_execution_id from qa_mask_execution2project P where P.project_id= $QA_PROJECT_ID ) order by 1;"},
{"etl_step":"unload_qa_mask_execution_assert_tab","prop_name":"select_stmt","prop_value":"SELECT E.uniquename,A.rownr,A.colnr,A.result_value_min,A.result_value_max,A.is_active,A.caption FROM qa_mask_execution E, qa_mask_execution_assert A where E.tid=A.mask_execution_id and E.tid in (select P.mask_execution_id from qa_mask_execution2project P where P.project_id= $QA_PROJECT_ID ) order by 1;"},
{"etl_step":"unload_qa_mask_execution2project_tab","prop_name":"select_stmt","prop_value":"SELECT E.uniquename as mask_execution_uniquename,P.uniquename as project_uniquename,DP.issue_id FROM qa_mask_execution2project DP, qa_mask_execution E, qa_project P where DP.mask_execution_id=E.tid and DP.project_id=P.tid and DP.project_id= $QA_PROJECT_ID order by 1;"}
{"etl_step":"unload_sos_gewichtung","prop_name":"select_stmt","prop_value":" SELECT art, ch35_ang_abschluss, fach_nr, kz_fach, text, faktor FROM sos_gewichtung where ch35_ang_abschluss in (''B5'',''B6'',''B7'',''B8'',''M3'',''M4'',''M7'',''M8'') and art=''vzae'' order by 1,2,3,4,5 ;"}
<#if etl_step_lookup_systeminfo(step.etl_job)==-1><#stop "DEFINITIONSFEHLER: Etl_step '"+step.uniquename+ "' verweist auf job '"+step.etl_job+"' der liefert aber keine systeminfo_id"> </#if>\
--jobs with custom_job=0 get deleted in HISinOne-BI\
--therefore set to 2:\
update etl_job set custom_job=2\
where custom_job=0\
and uniquename in ('sx_select_mask','sx_insert_mask',\
'kern_konstanten_update',\
'sichten_unload',\
'sos_gewichtung_unload');\
\
\
update etl_step set custom_step=2\
where custom_step=0\
and tid in (select R.step_id from etl_step_relation R, etl_job J\
where R.job_id=J.tid\
and J.uniquename in ('sx_select_mask','sx_insert_mask',\
'kern_konstanten_update',\
'sichten_unload',\
'sos_gewichtung_unload'));\
\
update etl_step_relation set custom_step=2\
where custom_step=0\
and job_id in (select J.tid\
from etl_job J\
where J.uniquename in ('sx_select_mask','sx_insert_mask',\
'kern_konstanten_update',\
'sichten_unload',\
'sos_gewichtung_unload'));\
\
<#foreach etl_job in etl_jobs>\
\
truncate table tmp_etl_job;\
@ -161,9 +81,10 @@ insert into tmp_etl_job(uniquename,caption,systeminfo_id,logfile,already_exists,
@@ -161,9 +81,10 @@ insert into tmp_etl_job(uniquename,caption,systeminfo_id,logfile,already_exists,
values ('${etl_job.uniquename}',\
'${etl_job.name}',\
${etl_job.systeminfo_id},\
'${etl_job.logfile}',0,2);\
\
'${etl_job.logfile}',0,0);\
\
<#if SQLdialect='Postgres'>\
--Postgres Dialekt:\
\
update tmp_etl_job set tid=J.tid,\
already_exists=1,\
@ -174,6 +95,33 @@ from etl_job J where J.uniquename=tmp_etl_job.uniquename\
@@ -174,6 +95,33 @@ from etl_job J where J.uniquename=tmp_etl_job.uniquename\
and J.systeminfo_id=tmp_etl_job.systeminfo_id\
;\
\
<#else>\
\
--Informix Dialekt:\
update tmp_etl_job set (tid,\
already_exists,\
caption,\
logfile,\
custom_job) \
= ((select \
tid,\
1 as already_exists,\
caption,\
logfile,\
custom_job\
from etl_job J where J.uniquename=tmp_etl_job.uniquename\
and J.systeminfo_id=tmp_etl_job.systeminfo_id))\
where 0 <(select count(*)\
from etl_job J where J.uniquename=tmp_etl_job.uniquename\
and J.systeminfo_id=tmp_etl_job.systeminfo_id)\
\
;\
\
</#if>\
\
\
\
--TODO Informix\
\
--neue jobs:\
insert into etl_job(uniquename,caption,systeminfo_id,custom_job)\
@ -246,7 +194,7 @@ J.tid as etl_job_id,\
@@ -246,7 +194,7 @@ J.tid as etl_job_id,\
</#if>\
J.uniquename,\
'${etl_job.logfile}' as logfile,\
2,\
0,\
0\
from etl_job J\
where J.uniquename='${etl_job.uniquename}'\
@ -288,12 +236,10 @@ FROM tmp_etl_job_param \
@@ -288,12 +236,10 @@ FROM tmp_etl_job_param \
update tmp_etl_step set step_type=(select T.tid from etl_step_type T\
where T.uniquename=tmp_etl_step.step_type_uniquename);\
\
--select * from tmp_etl_step\
--where step_type is null;--_uniquename from tmp_etl_step;\
@ -423,6 +394,7 @@ drop table tmp_etl_job_param;\
@@ -423,6 +394,7 @@ drop table tmp_etl_job_param;\
drop table tmp_etl_step_property;\
drop table tmp_etl_step_relation;\
\
<#if testfaelle?exists>\
\
<#foreach testfall in testfaelle>\
select 'testfall ${testfall.testcase}: ERFOLG'\
@ -436,69 +408,30 @@ where ${testfall.assertion}!=(${testfall.sql})\
@@ -436,69 +408,30 @@ where ${testfall.assertion}!=(${testfall.sql})\
\
\
</#foreach> --Ende Testfälle\
</#if>\
\
<#if SQLdialect='Informix'> \
--nun xupdates:\
--bei informix kann man TEXT Spalten nicht updaten, daher per jdbc updaten:\
--damit DOSQL nicht den xupdater beim Start dieses Scriptes anwirft,\
--wird das in eine temp. Datei ausgelagert.\
! echo "<xup""date>" > "./tmp"$MANDANTID".sql"\
<#foreach etl_step_property in etl_step_properties>\
update etl_step_property set prop_value='${etl_step_property.prop_value}' where prop_name='${etl_step_property.prop_name}' and etl_step_id=(select S.tid from etl_step S where S.uniquename='${etl_step_property.etl_step}');\
\
! echo '<text table="etl_step_property" field="prop_value" where="prop_name='\\''${etl_step_property.prop_name}'\\'' and etl_step_id=(select S.tid from etl_step S where S.uniquename='\\''${etl_step_property.etl_step}'\\'')">${etl_step_property.prop_value}</text>' >>"./tmp"$MANDANTID".sql"\
\
\
</#foreach>\
</#macro>\
\
\
<#-- Makro zum Prüfen der Definition auf mögliche Fehler -->\
<#if found=false> <#stop "DEFINITIONSFEHLER: Etl_step '"+step.uniquename+ "' verweist auf job '"+step.etl_job+"' der ist aber nicht definiert!"> </#if>\
<#-- checking step type-->\
<#switch step.type>\
<#case "LOAD">\
<#case "UNLOAD">\
<#case "DOSQL">\
<#case "DOQUERY">\
<#case "MSG"><#-- MSG wird von HisInOne noch nicht unterstuetzt-->\
<#break/>\
<#default>\
<#stop "DEFINITIONSFEHLER: Etl_step '"+step.uniquename+ "' hat unbekannten Typ '"+step.type+"'"> \
<#if found=false> <#stop "DEFINITIONSFEHLER: Eine Etl_step_property '"+step_prop.prop_name+ "' verweist auf etl_step '"+step_prop.etl_step+"' der ist aber nicht definiert!"> </#if>\
<#foreach etl_step_property in etl_step_properties>\
\
update etl_step_property set prop_value='${etl_step_property.prop_value?replace("'", "''")}' where prop_name='${etl_step_property.prop_name}' and etl_step_id=(select S.tid from etl_step S where S.uniquename='${etl_step_property.etl_step?replace("'", "''")}');\
var zs="TID = <input type='text' size='10' id='Maskentid' />"+" <button class=\"button has-tooltip-multiline has-tooltip-right\" data-tooltip=\"Quellcode der Maske mit der Nummer im Feld TID exportieren\" onclick=\"getMaskSrc(document.getElementById('Maskentid').value)\">anzeigen...</button>";
zs +="<button class=\"button has-tooltip-multiline has-tooltip-right\" data-tooltip=\"Quellcode der Maske mit der Nummer im Feld TID herunterladen\" onclick=\"downloadMaskSrc(document.getElementById('Maskentid').value)\">herunterladen...</button>";
document.getElementById("MaskSubHeader").innerHTML="<form method=\"post\" name=\"saveMask\" action=\"../../edit/etl/saveMask.jsp\" target=\"_blank\"> TID = <input type='text' size='10' id='Maskentid' name='maskeninfo_id' /><input type='hidden' name='src' /><button class=\"button has-tooltip-multiline has-tooltip-right\" data-tooltip=\"Quellcode der Maske mit der Nummer im Feld TID importieren\" onclick=\"saveMaskSrc(document.getElementById('Maskentid').value)\">importieren...</button></form>";
//document.getElementById("MaskSubHeader").innerHTML="TID=<input type='text' size='10' id='Maskentid' />"+" <button class=\"button has-tooltip-multiline has-tooltip-right\" data-tooltip=\"Quellcode der Maske mit der Nummer im Feld TID exportieren\" onclick=\"saveEtlXmlSrc(document.getElementById('Maskentid').value)\">importieren...</button>";
//document.getElementById("MaskSubHeader").innerHTML="TID=<input type='text' size='10' id='Maskentid' />"+" <button class=\"button has-tooltip-multiline has-tooltip-right\" data-tooltip=\"Quellcode der Maske mit der Nummer im Feld TID exportieren\" onclick=\"saveMaskSrc(document.getElementById('Maskentid').value)\">importieren...</button>";
}
zs+="<a onclick=\"togglekeyfields(); return false;\" class=\"linkLookImage\"><img title=\"Schlüsselfelder an- oder ausschalten\" alt=\"Schlüsselfelder an- oder ausschalten\" src=\"../../images/key.svg\" border=\"0\"/></a>";
//document.getElementById("MaskSubHeader").innerHTML="<form method=\"post\" name=\"saveEtlXml\" action=\"../../edit/etl/jobexecutor.jsp\" target=\"_blank\"> TID = <input type='text' size='10' id='Maskentid' name='maskeninfo_id' /><input type='hidden' name='src' /><button class=\"button has-tooltip-multiline has-tooltip-right\" data-tooltip=\"Quellcode der Maske mit der Nummer im Feld TID importieren\" onclick=\"saveEtlXmlSrc(document.getElementById('Maskentid').value)\">importieren...</button></form>";
//document.getElementById("MaskSubHeader").innerHTML="<form method=\"post\" name=\"saveMask\" action=\"../../edit/etl/jobexecutor.jsp\" target=\"_blank\"> TID = <input type='text' size='10' id='Maskentid' name='maskeninfo_id' /><input type='hidden' name='src' /><button class=\"button has-tooltip-multiline has-tooltip-right\" data-tooltip=\"Quellcode der Maske mit der Nummer im Feld TID importieren\" onclick=\"saveMaskSrc(document.getElementById('Maskentid').value)\">importieren...</button></form>";
@ -155,42 +127,9 @@ var fldElem=document.getElementById(mydiv);
@@ -155,42 +127,9 @@ var fldElem=document.getElementById(mydiv);
}
}
function EtlMaskeComboLaden(fname,zeilenanzahl, caption,maskentid) {
var editurl="/superx/edit/kern/maske_combo_laden.jsp?tid="+maskentid+ "&Feldname="+getEncoded(fname);