4 changed files with 962 additions and 348 deletions
@ -0,0 +1,117 @@
@@ -0,0 +1,117 @@
|
||||
-- Auszug von cob/schluesseltabellen/cifx_fuellen.sql nur für Kostenstelle key 122 |
||||
-- geändert: nur key 122, source_table="kern_cifx_neu" |
||||
|
||||
-- Die cifx wird um Schlüssel erweitert, Transformationen werden in trans_cifx abgelegt |
||||
--freemarker template |
||||
--(c) 2010 Daniel Quathamer |
||||
|
||||
<#include "KERN_CIFX_UPDATE"/> |
||||
-- Das folgende Script überführt die Schlüssel eines Moduls in die cifx |
||||
-- Das ist nicht trivial, denn die Schlüssel können aus verschiedenen Systemen kommen |
||||
-- Im einfachsten Falle kommen sie aus HIS-GX, d.h. die alten CHAR-Schlüssel |
||||
-- Diese passen gut in die cifx, so war es im alten SuperX schon immer |
||||
-- Wenn die Datenquelle aber HIS1 ist, gibt es (als eindeutige Bezeichner) |
||||
-- nur SERIAL-Felder. In der Spalte "uniquename" kann (aber muss nicht) |
||||
-- ein Schlüssel eingetragen, der den alten HIS-GX-Schlüsseln entspricht. |
||||
-- Gleichzeitig ist zu bedenken, daß der gleiche Schlüssel (z.B. Fach) |
||||
-- im ZUL-Modul aus HIS1 kommen kann, und im SOS-Modul aus SOS-GX. |
||||
-- Die Lösung: |
||||
-- In der Ladetabelle tmp_<<Modulname>>_cifx_load stehen die jeweils über Nacht |
||||
-- geladenen Schlüssel. Das Schema ist vorgegeben: |
||||
-- create table <<source_table>> |
||||
-- ( |
||||
-- key smallint not null , |
||||
-- hs integer not null, |
||||
-- apnr varchar(255) , |
||||
-- kurz char(10), |
||||
-- druck varchar(200), |
||||
-- lang_1 char(255), |
||||
-- astat char(10) , |
||||
-- parent char(10) , |
||||
-- uniquename CHAR(10) , |
||||
-- bund_apnr CHAR(10) , |
||||
-- sprache CHAR(3), |
||||
-- d_akt_von date, |
||||
-- d_akt_bis date, |
||||
-- sourcesystem_id varchar(255), |
||||
-- hiskey_id varchar(255), |
||||
-- struktur_c CHAR(50) ); |
||||
|
||||
--Man kann nun über die u.g. Variablen steuern, |
||||
-- ob ein Schlüssel transformiert werden soll oder nicht. |
||||
-- Wenn ja, dann wird geprüft ob uniquename gesetzt ist oder nicht, |
||||
-- und, wenn ja, ob er eindeutig ist. Wenn beides gegeben ist, wird |
||||
-- die apnr aus uniquename übernommen. |
||||
-- Wenn nicht, dann wird für die apnr ein künstlicher Schlüssel angelegt, der aus einer |
||||
-- Ganzzahl besteht. |
||||
-- |
||||
-- In jedem Fall wird parall zum Befüllen der echten cifx |
||||
-- eine Tabelle trans_cifx gefüllt, die den Rückbezug zum Vorsystem herstellt. |
||||
-- So lassen sich über die trans_cifx auch beim Transformieren der Datentabellen |
||||
-- die Schlüssel leicht umschlüsseln. |
||||
|
||||
|
||||
<sqlvars> |
||||
|
||||
<sqlvar name="cob_quelle"> |
||||
select apnr from konstanten where beschreibung='COB_Quellsystem' |
||||
union select 10 from xdummy where 0= |
||||
(select count(*) from konstanten where beschreibung='COB_Quellsystem') |
||||
</sqlvar> |
||||
</sqlvars> |
||||
|
||||
|
||||
-- ACHTUNG |
||||
-- Auszug dieses Scripts für Kostenstelle 122 als db/install/schluesseltabellen/cifx_fuellen2.sql |
||||
-- Auszug |
||||
|
||||
|
||||
--welche Schlüssel sollen transformiert werden? |
||||
<#assign cifx_keys_transform = [ |
||||
|
||||
{"name":"Organisationseinheit", "key":"110"} |
||||
|
||||
] /> |
||||
|
||||
--modulname wird für cob_pruefrout genutzt |
||||
--Die Systeminfo-ID des Moduls, z.B. 130 für ZUL |
||||
<#assign Quellsystem_var=-99/> |
||||
|
||||
|
||||
|
||||
<#if K_Organigrammquelle?exists&&K_Organigrammquelle!=12> --manuell |
||||
<#switch K_Organigrammquelle> |
||||
<#case 1> --mbs |
||||
<#assign systeminfo_id="3" /> |
||||
<#assign modulname="cob" /> |
||||
<#assign Quellsystem_var=1/> |
||||
<#break> |
||||
<#case 6> -- hisinone |
||||
<#assign systeminfo_id="10" /> |
||||
<#assign modulname="kern" /> |
||||
<#assign Quellsystem_var=6/> |
||||
<#break> |
||||
<#case 10> --cob, wenn aus COB dann auch wirklich aus COB-GX |
||||
<#assign systeminfo_id="10" /> |
||||
<#assign modulname="cob" /> |
||||
--<#assign Quellsystem_var=cob_quelle/> |
||||
<#assign Quellsystem_var=10/> |
||||
<#break> |
||||
<#default> |
||||
select 'Ungültige Organigrammquelle : ${K_Organigrammquelle}' from notable; |
||||
</#switch> |
||||
|
||||
<#if Quellsystem_var!=-99> |
||||
<#assign source_table="kern_cifx_neu" /> |
||||
<#assign target_table="cifx" /> |
||||
|
||||
|
||||
--Beginn des eigentlichen Scriptes |
||||
--Das Musterscript liegt fm_templates (id=KERN_CIFX_UPDATE) |
||||
<#if MODUL_CIFX_UPDATE_SORT?exists> |
||||
<@MODUL_CIFX_UPDATE_SORT /> |
||||
<#else> |
||||
<@MODUL_CIFX_UPDATE /> |
||||
</#if> |
||||
</#if> |
||||
</#if> |
Loading…
Reference in new issue