SuperX

KontaktMail für InfosSuchenLogin

Personaldaten im Vorsystem SVA-GX

Die Personaldaten lassen sich mit Einschränkungen gegen SVA-GX prüfen:

  • Eine Validierung macht nur Sinn wenn der Datenbestand im Data Warehouse komplett leer ist und aus dem Vorsystem gefüllt wird, und dann keine Änderungen mehr erfolgen. Setzen Sie ggf. die Konstante SVA_PERSONAL_ARCHIV auf 0
  • Die Laderoutine ist sehr komplex, es werden viele Tabellen verknüpft, und parallel laufen umfangreiche Prüfprozeduren, die Daten teilweise korrigieren, aber teilweise auch löschen. Entsprechende Ausgaben erhalten Sie im Prüfprotokoll. Die Laderoutine läßt sich nicht ohne weiteres direkt in SVA-GX ausführen, der folgende Select dient eher dazu, die Berechnungslogik transparent zu halten.
  • Die Berechnung von Köpfen ist sehr aufwändig, daher erfolgt hier nur eine Validierung der VZÄ .
  • Das Script ist nur lauffähig mit SVA-GX in der Version ab 9.02.
  • Das Datumsformat des DB-Servers muss auf TT.MM.JJJJ gestellt werden

Die Summe der Personal-VZÄ im Bericht "Personal im Detail" z.B. zum 1.12.2012:

900px

900px

läßt sich wie folgt in SVA-GX reproduzieren DBMS Postgres müssen Sie folgenden Befehl voranstellen: set search_path to sva4;

select sum( F.pfi_prozent * A.paz_tz_proz / 10000)
from pgd P, paz A, pfi F, pbl L, pbv B left outer join pbu U
on (U.pbu_pbv_serial=B.pbv_serial
and (date('01.12.2012') between U.pbu_von and U.pbu_bis or (U.pbu_von is null and date('01.12.2012')  <= U.pbu_bis) or  (U.pbu_bis is null and date('01.12.2012')  >
)
where P.pgd_join_id=B.pbv_pgd_join_id
and P.pgd_join_id=A.paz_pgd_join_id
and F.pfi_pgd_join_id=P.pgd_join_id
and L.pbl_pgd_join_id=P.pgd_join_id
and B.pbv_nr=A.paz_pbv_nr
and F.pfi_pbv_nr=B.pbv_nr
and L.pbl_pbv_nr=B.pbv_nr
and (date('01.12.2012') between A.paz_von and A.paz_bis or (A.paz_von is null and date('01.12.2012')  <= A.paz_bis) or  (A.paz_bis is null and date('01.12.2012')  >
and (date('01.12.2012') between B.pbv_von and B.pbv_bis or (B.pbv_von is null and date('01.12.2012')  <= B.pbv_bis) or  (B.pbv_bis is null and date('01.12.2012')  >
and (date('01.12.2012') between L.pbl_von and L.pbl_bis or (L.pbl_von is null and date('01.12.2012')  <= L.pbl_bis) or  (L.pbl_bis is null and date('01.12.2012')  >
and (date('01.12.2012') between F.pfi_von and F.pfi_bis or (F.pfi_von is null and date('01.12.2012')  <= F.pfi_bis) or  (F.pfi_bis is null and date('01.12.2012')  >
--nur gültige Datensätze:
and F.pfi_status=0
and A.paz_status=0
and B.pbv_status=0
and P.pgd_status=0
--nur gültige Beschäftigungsstellen:
and F.poz_institut in (select inst_nr from inst I where I.svarel='1')
;