Änderungen an den Extraktionsskripten

Ähnliche Dokumente
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Export aus AMOR3: Auswertungen -> Dokumente -> Listen -> Basisdaten -> AnfoStellen je Haus/Zeit

Whitepaper. Produkt: combit Relationship Manager 5. Import von Adressen nach Firmen und Personen. combit GmbH Untere Laube Konstanz

Entwicklungsumgebung für die Laborübung

Oracle 10g Einführung

Übersicht der wichtigsten MySQL-Befehle

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Grundlagen der Informatik

Praktische SQL-Befehle 2

CADSTAR MRP-Link. MRP-Link ist erstellt von:

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Entwicklungsumgebung für die Laborübung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Vorlesung Datenbanken I Zwischenklausur

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

7. Einfache Auswertungen aus der Datenbank (select)

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Prof. Dr. Bernd Blümel Prof. Dr. Volker Klingspor. Datenbanken und SQL

Bei Kaum noch wartbar -> shortcut badview. Bei Ausführungspläne kippen -> shortcut badviewplan

OFM-Tools von Arthur Bastoreala

Grundlagen der Informatik

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Management Komponente SuperX

Datenbanken und Informationssysteme II

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Logging und Debugging. Gerd Volberg OPITZ CONSULTING Deutschland GmbH

Grundlagen der Informatik

Übung PL/SQL Trigger Lösungen

5.8 Bibliotheken für PostgreSQL

Prozedurale Datenbank- Anwendungsprogrammierung

Das Berichtssystem SuperX. - SuperX als campusweites Informationssystem -

6. Tutorübung zu Grundlagen: Datenbanken

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Die SQL-Schnittstelle

Datenbanksysteme I WS 18/19 Teillösung Übungsblatt 4-6

Warum wird mein Index nicht benutzt?

5. Aufgabenblatt Naïve Bayes Klassifikation Abgabe: , 23:59 Uhr

Aufbau eines dynamischen ETL Frameworks auf Basis eines PL/SQL Codegenerators

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Lösungen der Übungsaufgaben von Kapitel 10

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Online Prüferfunktionalität von Ramona Bopp. Stand März In der Rolle Prüfer können Sie ihre Prüfungen bewerten.

Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Wiederholung VU Datenmodellierung

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Abfragen (Queries, Subqueries)

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Speed up your Query Strategien zur Optimierung von SQL-Queries. Juni 2012 Ulrike Brenner

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

ids-system GmbH Tipp #3 Leer-Strings in SQL oder die Frage nach CHAR oder VARCHAR

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

Datenbank und Tabelle mit SQL erstellen

Automatisierung von Schritten in Geschäftsprozessen als Einstieg in SOA

Oracle native json Support. Erste Schritte

Datenintegrität. Kapitel 5 1

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Housekeeping -2

Entwicklungsumgebung für die Übung

Word-Funktion Ausgeblendeter Text in Verfahrensdoku-Blättern nutzen und weitere nützliche Hinweise... 2

Zweitens über eine Abfrage, welche die Tabellen tblartikel und tbllieferanten verknüpft. Auf diese Weise würde das Kombinationsfeld

T:\Dokumentationen\Asseco_BERIT\Schulung\BERIT_LIDS7_Basiskurs\Impo rt_export\beritde_lt_do_ _lids7.basisschulung_import_export.

Um einen neuen Konnektor anzulegen klicken sie auf die Schaltfläche Neue Konfiguration > Befüllung folgender Felder:

Übung 3. Interaktive Abfragen auf eine SQL-Datenbank. Prof. Dr. Andreas Schmietendorf. Wirtschaftsinformatik

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Microsoft Access 2010 SQL nutzen

Datenbanksysteme 2013

Housekeeping -2

Kapitel 4 Dynamisches SQL

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

HISQIS Modul POS Benutzergruppe Prüfer

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Es geht also im die SQL Data Manipulation Language.

DBMS_RLS Package Es besteht die Möglichkeit, auf Views oder Tables eine Funktion zu legen, die abhängig von bestimmten Faktoren

Buchungen im falschen Monat/Buchungskreis erfasst oder Abrechnungsnummer falsch angelegt

Datenintegrität. Kapitel 5 1

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

Customizing Datensicht erstellen. Erweiterung der Baumstruktur um eigene Sichten

SQL Data Manipulation Language (DML) und Query Language (QL)

Übung 6. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Hands-on für UI5-Anwendung auf HANA

Entwicklungsumgebung für die Übung

Referentielle Integrität

CRM Frequently Asked Questions

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

XML-Schnittstellen. Anleitung XML-Schnittstellen der ZSVR

Bedienhinweis Externe Dokumente in der

Transkript:

Inhaltsverzeichnis 1 Änderungen an den Extraktionsskripten 1.1 Überblick 1.2 Bewerbungsstatus (Satzart 1.3 Bewerbungsstatus (Feld in Bewerber.csv 1.4 Hörerstatus (Satzart 1.5 Hörerstatus (Feld in Student.csv 1.6 Studierende zum Stichtag (Datei StudierendeZumStichtag.csv 1.7 Prüfen, ob die Stichtagsdaten für Ihre Hochschule korrekt sind 1.8 Sonstige Änderungen Änderungen an den Extraktionsskripten (15.11.2014 bis 15.05.2015 Überblick Neuerungen: Bewerbungsstatus_KNZ in Bewerber.csv Bewerbungsstatus.csv Hoererstatus_KNZ in Student.csv Hoererstatus.csv StudierendeZumStichtag.csv Bewerbungsstatus (Satzart Neue Satzart Bewerbungsstatus.csv hinzugefügt: Für die Hochschulen, die kein HISinOne-APP verwenden enthält die Satzart nur einen einzigen Dummy-Wert 'G' für gültig der durch das folgende SQL-Statement generiert wird. -- Tabelle der Bewerbungsstati SELECT '@@MANDANT' AS Mandant, 'G' AS Bewerbungsstatus_KNZ, 'Gueltig' AS Bewerbungsstatus_KURZBEZ, 'Gueltig' AS Bewerbungsstatus_LANGBEZ, '1' AS Bewerbungsstatus_HISKEYID, 'G' AS Bewerbungsstatus_CEUS_KNZ, 'gültig' AS Bewerbungsstatus_CEUS_KURZBEZ Für die Hochschulen mit APP wird durch das folgende Statement in der Bewerber-Extraktion (außerhalb des Extraktionsskripts für Studenten und Prüfungen eine ausführliche Sammlung der Bewerbungsstati aus HISinOne-APP generiert und geliefert.

ACHTUNG: Dieses Statement gehört in die Bewerber-Extraktion (Template: HISinOne-Bewerber- Version-4 und ist für HISinOne Version 4 und neuer gedacht. -- Tabelle der Bewerbungsstati SELECT @@MANDANT AS Mandant, s.uniquename AS Bewerbungsstatus_KNZ, s.shorttext AS Bewerbungsstatus_KURZBEZ, s.longtext AS Bewerbungsstatus_LANGBEZ, s.hiskey_id AS Bewerbungsstatus_HISKEYID, CASE WHEN s.hiskey_id = 1 THEN 'V' WHEN s.hiskey_id = 2 THEN 'B' WHEN s.hiskey_id >= 3 THEN 'G' END AS Bewerbungsstatus_CEUS_KNZ, CASE WHEN s.hiskey_id = 1 THEN 'in Vorbereitung' WHEN s.hiskey_id = 2 THEN 'in Bearbeitung' WHEN s.hiskey_id >= 3 THEN 'gültig' ELSE 'UNBEKANNT' END AS Bewerbungsstatus_CEUS_KURZBEZ FROM hisinone.k_requestsubject_status AS s WHERE s.k_language_id = 12 -- deutsch Hier können Sie - sofern Sie das wünschen - durch eine entsprechende Anpassung in den WHEN- Bedingungen auch noch die beiden Abgelehnt-Stati (4 und 5 berücksichtigen und neben V, B und G auch noch A für abgelehnt einführen. Bewerbungsstatus (Feld in Bewerber.csv Die Datei Bewerber.csv enthält die Bewerber einschließlich ihrer Bewerbungen/Anträge und wurde deshalb um das neue Feld Bewerbungsstatus_KNZ erweitert. Das bedeutet, dass für jede Bewerbung in der Datei Bewerber.csv der Bewerbungsstatus im Feld Bewerbungsstatus_KNZ mitzuliefern ist. Das bedeutet für die Hochschulen, die kein HISinOne-APP haben und ihre Bewerber aus HIS-ZUL heraus liefern: antr.wartesem AS Wartehalbjahre, -- Diese Zeile neu einfügen 'G' AS Bewerbungsstatus_KNZ -- dann wird immer der konstante Dummy "G" aus der Bewerbungsstatus.csv für SOSPOS referenziert. FROM bew INNER JOIN antr ON (bew.bewnr = antr.bewnr AND (bew.bewsem = antr.bewsem INNER JOIN k_stg ON antr.stg = k_stg.refstg WHERE (((k_stg.sprache='d' AND ((bew.fehlerkz<>'f';

Für die Hochschulen mit HISinOne APP sieht die Anpassung bei der Extraktion der Bewerber.csv etwas umfassender aus. Hier sind auch Änderungen in den Preprocessing-Skripten vorzunehmen: ACHTUNG: Dieses Statement gehört in die Bewerber-Extraktion (Template: HISinOne-Bewerber- Version-4 und ist für HISinOne Version 4 und neuer gedacht. Die erste Änderung ist am Skript "01_bewerbungen_auflistung_subview.sql" in Preprocessing zur Bewerber.csv vorzunehmen: Ausgangssituation requestsubject.studysemester_admitted AS requestsubject_studysemester_admitted, k_requestsubject_status.id AS k_requestsubject_status_id, k_requestsubject_status.hiskey_id AS k_requestsubject_status_hiskey_id, course_of_study_id, Anpassen zu requestsubject.studysemester_admitted AS requestsubject_studysemester_admitted, k_requestsubject_status.id AS k_requestsubject_status_id, -- NEU: Unique-Name des RequestSubject-Status ausliefern! k_requestsubject_status.uniquename AS k_requestsubject_status_uniquename, k_requestsubject_status.hiskey_id AS k_requestsubject_status_hiskey_id, Die zweite und dritte Änderung ist am Skript "05_bewerber_extraktion_fullview.sql" im Extraktions- SQL zur Bewerber.csv vorzunehmen: '' as Teilzeit_KNZ, '' as Studienrichtung_KNZ, coalesce(zug.zulassung_knz, '--' as Zulassungsart_KNZ, '' as HoehereSemester_KNZ, -- wurde im alten HSR Satz auch nicht geliefert. -0 as Wartehalbjahre -- Noch unbekannt, wie dieses Feld ermittelt werden könnte - +0 as Wartehalbjahre, -- Noch unbekannt, wie dieses Feld ermittelt werden könnte +bew.k_requestsubject_status_uniquename as Bewerbungsstatus_KNZ -- Auf Ebene Request-Subject siehe Bug 603 -- Quelldaten from kdv.bewerbungen_sub as bew inner join kdv.bewerber_personendaten_sub as pers

left join kdv.zugelassene_bewerber_sub as zug on bew.requestsubject_id = zug.requestsubject_id -- Nur aktuelles Semester -where - bew.term_year = @@JAHR - and bew.term_type_id = @@SEMESTERTYP - and bew.k_requestsubject_status_hiskey_id > 2 +where + bew.term_year = @@JAHR + and bew.term_type_id = @@SEMESTERTYP + --and bew.k_requestsubject_status_hiskey_id > 2 Hörerstatus (Satzart Als weitere neue Satzart wurde auf Antrag der PRIMUSS-Hochschulen die Satzart Hörerstatus eingeführt. Die zu ihr gehörigen Ausprägungen werden in der Datei "Hoererstatus.csv" geliefert. Für die HIS-Hochschulen wird in dieser Satzart vorerst nur ein Dummy-Wert geliefert, da die Art und Weise der Verwendung der Satzart bei den PRIMUSS-Hochschulen in der Sitzung vom 11.03.2015 nicht den begründeten Erwartungen der Vertreter der HIS-Hochschulen entsprach. Diese Änderung ist unabhängig davon, ob eine Hochschule HISinOne-APP einsetzt oder nicht Das folgende SQL-Statement ist als Extraktions-SQL für einen neuen Extraktionjob "Hoererstatus.csv" einzufügen: /* Tabelle: Hörerstatus Spalten: Mandant, Hoererstatus_KNZ, Hoererstatus_KURZBEZ, Hoererstatus_LANGBEZ Hinweis: Dummy-Wert, da dieses Attribut von den HIS-Hochschulen nicht genutzt wird (ausschließlich für PRIMUSS */ SELECT '@@MANDANT' AS Mandant, 'S' AS Hoererstatus_KNZ, 'Studierender' AS Hoererstatus_KURZBEZ, 'Studierender' AS Hoererstatus_LANGBEZ

Hörerstatus (Feld in Student.csv Im Extraktions-SQL zur Student.csv ist die folgende Änderung durchzuführen: Schwerpunkt3_KNZ, Studientyp_KNZ, Studienart_KNZ, Studienform_KNZ, POVersion_KNZ, NM_KNZ, '' AS WB_KNZ, CreditPoints -- Diese Zeile neu einfügen:, 'S' AS Hoererstatus_KNZ FROM kdv_extraktor.temp_student Danach verweisen alle Einträge aus der Student.csv auf unseren Dummy-Satz aus der Hoererstatus.csv, sodass keine Unbekannt-Werte entstehen. In einer zukünftigen Version der Extraktionsskripte kann bei Bedarf auch der Hoererstatus aus der entsprechenden k_-tabelle der SOSPOS-Datenbank befüllt werden. Das würde allerdings zu einer unterschiedlichen Verwendung der Satzart Hoererstatus zwischen den HIS- und PRIUMUSS- Hochschulen innerhalb des CEUS-Berichtswesens führen. Studierende zum Stichtag (Datei StudierendeZumStichtag.csv Um in Zukunft die Möglichkeit zu haben stichtagsbezogene Auswertungen und die rückwirkende Korrektur bzw. den Nachtrag von Exmatrikulationsstati zu gewährleisten wird in Zukunft neben der klassischen Satzart Student.csv, die rückwirkend für mehrere Semester geliefert werden sollte, eine neue Satzart StudierendeZumStichtag.csv eingeführt, in der ausschließlich jene Studierenden (mit Ihren entsprechenden Stati enthalten sind, die zu diesem Stichtag in die Lieferung für die amtliche Statistik eingehen. Damit soll in einem nächsten Schritt eine Erweiterung der Datenstrukturen von "CEUS Studenten und Prüfungen" erfolgen, die dann durch die Auswahl entsprechend unterschiedlicher Metriken sowohl die Auswertung zum Stichtag als auch durchgängig lückenlose Verlaufsauswertungen im gleichen Berichtswesen möglich machen soll. (Die entsprechende Funktionalität muss allerdings erst noch entwickelt werden. Die neue Satzart stellt allerdings die dafür benötigten Daten zur Verfügung. Mit der neuen Satzart wurde auch ein neuer Parameter eingeführt: SEMESTER_STICHTAG. Dieser Parameter ist im Parameter-Tab des Extraktors zu pflegen und muss die aktuelle Semester-ID (z. B. 20151 für SS 2015 enthalten.

Prüfen Sie die folgenden Anmerkungen im SQL: -- Hochschulspezifisch Matrikelnummern ausschließen und -- TODO: Hier hochschulspezifisch ausgeschlossene Studiengänge auflisten und korrigieren Sie die Werte so, dass Sie zu Ihrem BSOS-Export passen Das SQL zur Satzart "StudierendeZumStichtag.csv" basiert auf dem ExtraktionsSQL zu Student.csv und erweitert dieses um zusätzliche Felder und Einschränkungen. SELECT s.mandant, s.matrikelnummer, s.semester_knz, s.geburtsjahrmonat, s.geschlecht_knz, s.staatsangehoerigkeit_knz, poversion_knz, nm_knz, creditpoints, CASE WHEN erstimmatrikulierte.mtknr IS NOT NULL THEN @@SEMESTER_STICHTAG ELSE NULL END AS Erstimmatrikulation_Amtlich_KNZ, CASE WHEN neuimmatrikulierte.mtknr IS NOT NULL THEN @@SEMESTER_STICHTAG ELSE NULL END AS Neuimmatrikulation_Amtlich_KNZ, CASE WHEN rueckgemeldete.mtknr IS NOT NULL THEN @@SEMESTER_STICHTAG ELSE NULL END AS Rueckgemeldet_Amtlich_KNZ, CASE WHEN beurlaubte.mtknr IS NOT NULL THEN @@SEMESTER_STICHTAG ELSE NULL END AS Beurlaubte_Amtlich_KNZ, CASE WHEN exmatrikulierte.mtknr IS NOT NULL THEN @@SEMESTER_STICHTAG ELSE NULL END AS Exmatrikulierte_BisStichtag_Amtlich_KNZ, '@@SEMESTER_STICHTAG' AS Stichtag_KNZ FROM kdv_extraktor.temp_student AS s LEFT OUTER JOIN ( /* Test: Erstimmatrikulierte ala BSOS */ SELECT DISTINCT sos.mtknr, stg.semester, stg.stg, stg.abschl FROM sos INNER JOIN stg ON sos.mtknr = stg.mtknr AND sos.semester = stg.semester -- Hochschulspezifisch Matrikelnummern ausschließen WHERE sos.mtknr NOT IN (11, 12 AND sos.mtknr IN ( SELECT sos1.mtknr FROM stg AS stg1, sos AS sos1 WHERE sos1.mtknr=stg1.mtknr AND (

(stg1.semester = '@@SEMESTER_STICHTAG' AND stg1.status <> 'Y' AND stg1.semester = sos1.semester OR (stg1.semester = to_number(kdv_extraktor.kdv_get_vorsemester('@@semester_stichtag', '99999' AND stg1.statusex = 'X' AND stg1.semester=sos1.semester -- TODO: Hier hochschulspezifisch ausgeschlossene Studiengänge auflisten AND (stg1.stg <> 'DF' AND stg.status = 'E' AND (sos.exmdat IS NULL OR sos.exmdat > kdv_extraktor.kdv_get_stichtag_begindate_semester('@@semester_stichtag' AS erstimmatrikulierte ON s.mtknr = erstimmatrikulierte.mtknr AND s.semester_knz = erstimmatrikulierte.semester AND studienfach_knz = erstimmatrikulierte.stg AND studienabschluss_knz = erstimmatrikulierte.abschl LEFT OUTER JOIN ( /* Test: Neuimmatrikulierte ala BSOS */ SELECT DISTINCT sos.mtknr, stg.semester, stg.stg, stg.abschl FROM sos INNER JOIN stg ON sos.mtknr = stg.mtknr AND sos.semester = stg.semester -- Hochschulspezifisch Matrikelnummern ausschließen WHERE sos.mtknr NOT IN (11, 12 AND sos.mtknr IN ( SELECT sos1.mtknr FROM stg AS stg1, sos AS sos1 WHERE sos1.mtknr=stg1.mtknr AND ( (stg1.semester = '@@SEMESTER_STICHTAG' AND stg1.status <> 'Y' AND stg1.semester = sos1.semester OR (stg1.semester = to_number(kdv_extraktor.kdv_get_vorsemester('@@semester_stichtag', '99999' AND stg1.statusex = 'X' AND stg1.semester=sos1.semester -- TODO: Hier hochschulspezifisch ausgeschlossene Studiengänge auflisten AND (stg1.stg <> 'DF' AND stg.status = 'N' AND (sos.exmdat IS NULL OR sos.exmdat > kdv_extraktor.kdv_get_stichtag_begindate_semester('@@semester_stichtag' AS neuimmatrikulierte ON s.mtknr = neuimmatrikulierte.mtknr AND s.semester_knz = neuimmatrikulierte.semester AND studienfach_knz = neuimmatrikulierte.stg AND studienabschluss_knz = neuimmatrikulierte.abschl LEFT OUTER JOIN (

/* Test: Rückgemeldete ala BSOS */ SELECT DISTINCT sos.mtknr, stg.semester, stg.stg, stg.abschl FROM sos INNER JOIN stg ON sos.mtknr = stg.mtknr AND sos.semester = stg.semester -- Hochschulspezifisch Matrikelnummern ausschließen WHERE sos.mtknr NOT IN (11, 12 AND sos.mtknr IN ( SELECT sos1.mtknr FROM stg AS stg1, sos AS sos1 WHERE sos1.mtknr=stg1.mtknr AND ( (stg1.semester = '@@SEMESTER_STICHTAG' AND stg1.status <> 'Y' AND stg1.semester = sos1.semester OR (stg1.semester = to_number(kdv_extraktor.kdv_get_vorsemester('@@semester_stichtag', '99999' AND stg1.statusex = 'X' AND stg1.semester=sos1.semester -- TODO: Hier hochschulspezifisch ausgeschlossene Studiengänge auflisten AND (stg1.stg <> 'DF' AND stg.status = 'R' AND (sos.exmdat IS NULL OR sos.exmdat > kdv_extraktor.kdv_get_stichtag_begindate_semester('@@semester_stichtag' AS rueckgemeldete ON s.mtknr = rueckgemeldete.mtknr AND s.semester_knz = rueckgemeldete.semester AND studienfach_knz = rueckgemeldete.stg AND studienabschluss_knz = rueckgemeldete.abschl LEFT OUTER JOIN (

/* Test: Beurlaubte ala BSOS */ SELECT DISTINCT sos.mtknr, stg.semester, stg.stg, stg.abschl FROM sos INNER JOIN stg ON sos.mtknr = stg.mtknr AND sos.semester = stg.semester -- Hochschulspezifisch Matrikelnummern ausschließen WHERE sos.mtknr NOT IN (11, 12 AND sos.mtknr IN ( SELECT sos1.mtknr FROM stg AS stg1, sos AS sos1 WHERE sos1.mtknr=stg1.mtknr AND ( (stg1.semester = '@@SEMESTER_STICHTAG' AND stg1.status <> 'Y' AND stg1.semester = sos1.semester OR (stg1.semester = to_number(kdv_extraktor.kdv_get_vorsemester('@@semester_stichtag', '99999' AND stg1.statusex = 'X' AND stg1.semester=sos1.semester -- TODO: Hier hochschulspezifisch ausgeschlossene Studiengänge auflisten AND (stg1.stg <> 'DF' AND stg.status = 'B' AND (sos.exmdat IS NULL OR sos.exmdat > kdv_extraktor.kdv_get_stichtag_begindate_semester('@@semester_stichtag' AS beurlaubte ON s.mtknr = beurlaubte.mtknr AND s.semester_knz = beurlaubte.semester AND studienfach_knz = beurlaubte.stg AND studienabschluss_knz = beurlaubte.abschl LEFT OUTER JOIN ( /* Test: Exmatrikulierte ala BSOS */ SELECT DISTINCT sos.mtknr, sos.status, stg.status, sos.exmdat, stg.semester, stg.ruebeudat, stg.stg, stg.abschl FROM sos INNER JOIN stg ON sos.mtknr = stg.mtknr AND sos.semester = stg.semester -- Hochschulspezifisch Matrikelnummern ausschließen WHERE sos.mtknr NOT IN (11, 12 AND sos.mtknr IN ( SELECT sos1.mtknr FROM stg AS stg1, sos AS sos1 WHERE sos1.mtknr=stg1.mtknr AND ( (stg1.semester = '@@SEMESTER_STICHTAG' AND stg1.status <> 'Y' AND stg1.semester = sos1.semester OR (stg1.semester = to_number(kdv_extraktor.kdv_get_vorsemester('@@semester_stichtag', '99999' AND stg1.statusex = 'X' AND stg1.semester=sos1.semester

AND (stg1.stg <> 'DF' AND sos.status = 'X' AND stg.status <> 'B' AND sos.exmdat <= kdv_extraktor.kdv_get_stichtag_begindate_semester('@@semester_stichtag' AND sos.exmdat > kdv_extraktor.kdv_get_stichtag_begindate_vorsemester('@@semester_stichtag' AS exmatrikulierte ON s.mtknr = exmatrikulierte.mtknr AND s.semester_knz = exmatrikulierte.semester AND studienfach_knz = exmatrikulierte.stg AND studienabschluss_knz = exmatrikulierte.abschl -- Extraktions-SQL Ende WHERE s.semester_knz = '@@SEMESTER_STICHTAG' Für dieses Extraktions-SQL werden die folgenden Funktionen benötigt. Sie sind im Preprocessing- SQL zum Job "StudierendeZumStichtag.csv" zu hinterlegen: /* * Beginn der Periode zur Identifizierung von Exmatrikulationen vor dem * Stichtag * @param Semester, das zum aktuellen Stichtag ausgewertet werden soll (Format = YYYYS * Die Funktion berechnet den Beginnzeitpunkt des Vorsemesters lt. Stichtag */ CREATE OR REPLACE FUNCTION kdv_extraktor.kdv_get_stichtag_begindate_vorsemester(semester VARCHAR(10 RETURNS DATE AS $$ BEGIN IF(substr(semester, 5, 1 = '1' THEN RETURN to_date(to_char(to_number(substr(semester, 1, 4, '9999'-1, '9999' '-11-15', 'YYYY-MM-DD'; ELSE IF (substr(semester, 5, 1 = '2' THEN RETURN to_date(substr(semester, 1, 4 '-05-15', 'YYYY-MM-DD'; ELSE RETURN NULL; END IF; END IF; END; $$ LANGUAGE plpgsql;

/* * Letzter Tag der Periode zur Identifizierung von Exmatrikulationen vor dem Stichtag * @param Semester, das zum aktuellen Stichtag ausgewertet werden soll (Format = YYYYS * Die Funktion berechnet den Beginnzeitpunkt des aktuellen Semsters (= Ende des Vorsemesters lt. Stichtag */ CREATE OR REPLACE FUNCTION kdv_extraktor.kdv_get_stichtag_begindate_semester(semester VARCHAR(10 RETURNS DATE AS $$ BEGIN IF(substr(semester, 5, 1 = '1' THEN RETURN to_date(substr(semester, 1, 4 '-05-15', 'YYYY-MM-DD'; ELSE IF (substr(semester, 5, 1 = '2' THEN RETURN to_date(substr(semester, 1, 4 '-11-15', 'YYYY-MM-DD'; ELSE RETURN NULL; END IF; END IF; END; $$ LANGUAGE plpgsql; /* * Ermittlung des Vorsemesters zu einem gegebenen Semester */ CREATE OR REPLACE FUNCTION kdv_extraktor.kdv_get_vorsemester(semester VARCHAR(10 RETURNS VARCHAR(10 AS $$ BEGIN IF(substr(semester, 5, 1 = '1' THEN RETURN ltrim(to_char(to_number(substr(semester, 1, 4, '9999'-1, '9999' '2'; ELSE IF (substr(semester, 5, 1 = '2' THEN RETURN substr(semester, 1, 4 '1'; ELSE RETURN NULL; END IF; END IF; END; $$ LANGUAGE plpgsql;

Prüfen, ob die Stichtagsdaten für Ihre Hochschule korrekt sind Bitte führen Sie vor der Lieferung unbedingt einen Extraktions-Test (F5 aus und prüfen Sie die ermittelten Stichtagsdaten gegen Ihr BSOS-Exportprotokoll Vorgehen: Führen Sie den Extraktionstest durch Drücken der F5-Taste aus Öffnen Sie den Ziel-Ordner durch Klicken auf Ja in der Messagebox Doppelklicken Sie die Datei "StudierendeZumStichtag.csv" um sie mit Excel zu öffnen Drücken Sie "Strg-A" um die gesamte Tabelle zu Markieren Wählen Sie den Button "Als Tabelle formatieren" in Ihrer Toolbar Filtern Sie die Spalte "erstimmatrikulation_amtlich_knz" nach dem aktuellen Semester Notieren Sie die Zahl der gefundenen Zeilen Vergleichen Sie den Wert mit Ihrem BSOS-Protokoll (Erstimmatrikulierte Sind beide Zahlen gleich, dann sind Sie auf einem guten Weg Entfernen Sie die Einschränkung (Filter wieder auf alle erweitern und gehen Sie für die weiteren Spalten (rueckgemeldet_amtlich_knz, beurlaubte_amtlich_knz, exmatrikulierte_bisstichtag_amtlich_knz genauso vor Sonstige Änderungen Durch eine neue Version des serverseitig von uns eingesetzten Scripten-Managment-Werkzeugs hat sich die Sortierung der Extraktionsskripte im Auslieferungs- bzw. Update-Zustand hin zu einer alphabetischen Sortierung gewandelt. D.h. wenn Sie die Update-Funktion des Extraktors benutzen, dann werden die per Update neu ausgelieferten Skripte alphabetisch sortiert, was einer Umsortierung der Ausführungsreihenfolge der einzelnen Extraktionsjobs zur Folge hat. Diese Eigenschaft führt dazu, dass das Preprocessing-SQL für Studierende aus dem Job Student.csv in den Job Pruefung.csv vorverlagert werden musste, da die Ergebnisse des Preprocessing in beiden Jobs (Student.csv und Pruefung.csv erforderlich sind, P im Alphabet allerdings vor S kommt. Dieser Punkt ist nur relevant, wenn Sie die Update-Funktion mindestens für einzelne Dateien nutzen