SuperX-Administrationshandbuch
FIN -Modul
![]() |
Supportadresse |
Version |
0.2 |
Stand |
06.12.12 |
Sun, Sun Microsystems, Solaris, Java, JavaServer Web Development Kit, JDBC und JavaServer Pages sind eingetragene Warenzeichen von Sun Microsystems, Inc. UNIX ist ein eingetragenes Warenzeichen von X/Open Company, Ltd. Windows, WindowsNT, Win32, VBScript und Office 2000 sind eingetragene Warenzeichen von Microsoft Corp. Linux ist eingetragenes Warenzeichen von Linus Torvalds. Alle weiteren Produktnamen sind Warenzeichen der jeweiligen Hersteller.
Dieses Produkt beinhaltet Software, die von der Apache Software Foundation ( http://www.apache.org/ ) entwickelt wurde.
SuperX wird unter der deutschen Variante der GPL-Lizenz von dem Land Nordrhein-Westfalen, vertreten durch die FernUniversität Hagen, diese wiederum vertreten durch die Geschäftsstelle der Initiative CampusSource bei der FernUniversität Hagen, Feithstraße 142, D-58084 Hagen vertrieben ( www.campussource.de ). Details zu den Lizenzbedingungen finden Sie unter http://www.campussource.de/lizenz/ . Ergänzende Hinweise finden Sie auf der Projekthomepage unter http://www.superx-projekt.de .
Es werden Fibudaten aus FSV übernommen falls vorhanden. Bitte erweitern Sie Ihre db/module/fin/rohdaten/FIN_ENV um den Eintrag
START_FIN_FIBU=2000
export START_FIN_FIBU
Wenn Sie HisInOne verwenden, ändern Sie den Entladeparameter START_FIN_FIBU entsprechend.
Wenn Sie das nicht tun, wird als Defaultwert 2000 genommen.
Alle User, die das ganze Fin-Modul in SuperX sehen dürfen, dürfen auch den neuen kaufm. Bericht Kaufm. Abschluss aufrufen. Wenn Sie dies nicht möchten, passend Sie ggfs. Ihre Gruppeneinstellungen / Rechte enstprechend an.
Das Berichtssystem SuperX ist ein sog. Data Warehouse, d.h. beliebig viele Datenquellen werden unter einer einheitlichen Auswertungsschnittstelle zur Verfügung gestellt. Da jede Hochschule unterschiedliche Datenquellen besitzt und nach SuperX übernehmen will, bereiten wir für jede Datenquelle ein Modul vor, z.B. das FIN -Modul. Das FIN -Modul bietet Auswertungen im Bereich Finanzstatistik für Hochschulen.
Daten aus MBS/KAHIKA werden extrahiert und in SuperX in Datentabellen und Schlüsseltabellenb gespeichert. Dann werden Hilfstabllen erzeugt, die wiederum die Grundlage für Berichte und Abfragen sind.
Datenquelle für FIN ist entweder HIS-MBS oder für Hochschulen in Baden-Württemberg KAHIKA. Das FIN-Modul ersetzt das frühere MBS-Modul für SuperX.
Die Module enthalten die wichtigsten Prozeduren, Tabellen und Abfragen für die jeweilige Datenquelle. Folgende Tabellen sind generell zu unterscheiden:
• Datentabellen enthalten die entladenen Basisdaten
• Hilfstabellen enthalten aggregierte Tabellen und werden von den Abfragen genutzt. Durch Hilfstabellen wird die Performance der Abfragen besser, außerdem stehen bei möglichen Ladefehlern die relevanten Tabellen für die Abfragen noch zur Verfügung.
• Schlüsseltabellen enthalten Schlüssel und Metadaten
Das FIN -Modul besteht im Endzustand aus Tabellen, Prozeduren und Abfragen; die wichtigsten Tabellen werden unten näher beschrieben.
Falls es bei der Implementation des FIN -Moduls zu Problemen kommt, können Sie sich unter www.superx-projekt.de informieren. Oder mailen Sie uns direkt:
Zunächst entpacken Sie das Archiv fin_modul<<Versionsnr.>>.tar.gz in Ihrem $SUPERX_DIR .
Bei der Installation des FIN -Moduls werden zentrale Schlüsseltabellen erzeugt und Installationsscripte gestartet. Zunächst müssen die notwendigen Tabellen erzeugt werden, danach können Daten aus FIN übernommen werden. Im Anschluß daran werden Hilfstabellen erzeugt, und die Abfragen eingespielt. Die Leserechte müssen dann manuell gepflegt werden. Damit zukünftig FIN -Daten in die SuperX-Datenbank eingelesen werden können und mitgelieferte Abfragen getestet werden können, muss die SuperX-Datenbank zunächst einmalig um die FIN -Bestandteile erweitert werden. Dazu gehören Tabellen (Basisdaten, Schlüsseltabellen), Prozeduren, Abfragen und Masken.
.
Folgende Arbeitsschritte sind notwendig:
• Zunächst entpacken Sie das Archiv fin_modul0.1rc4tar.gz als normaler Benutzer (nicht als root) an der Stelle $SUPERX_DIR. .Die Locale beim Entpacken muss eine deutsche mit Zeichensatz LATIN-1 sein (z.B. de_DE@euro )
• Einrichtung der FIN -bezogenen Umgebungsvariablen in $SUPERX_DIR/db/bin/SQL_ENV ( siehe db/bin/SQL_ENV_fin.sam)
• Benennen Sie die Datei $SUPERX_DIR/db/module/fin/rohdaten/FIN_ENV.sam nach FIN_ENV um und passen Sie die Umgebungsvariablen an.
• Ausführen des Entladescripts $SUPERX_DIR/db/module/fin/rohdaten/fin_unload.x für die Basisdaten
•
Ggf. Kopieren des Rohdaten-Verzeichnis der entladenen FIN -Daten nach
$SUPERX_DIR/db/module/fin/rohdaten
Ein Scripte dafür liegt in
fin_copy.x
•
Erzeugen des FIN -Moduls in der SuperX-Datenbank:
$SUPERX_DIR/db/module/fin/fin_modul_erzeugen.x
Vornehmen von hochschulspezifischen Anpassungen (vergl. entspr. Kapitel)
•
Übernahme der entladenen FIN -Daten nach SuperX:
$SUPERX_DIR/db/module/fin/fin_update.x
• Prüfen des Update
• Danach starten Sie Tomcat neu, und testen die Abfragen.
• Schritte 6 und 8 werden bei jedem SuperX-Update wiederholt. Nun muss der Entladerhythmus geplant werden, und die Cronjobs werden eingerichtet.
Das Masken-Verzeichnis im FIN -Modul ist nicht zu verwechseln mit dem des Kernmoduls: Im Masken-Verzeichnis des FIN -Modul werden die FIN -Abfragen gespeichert; das Masken-Verzeichnis des Kernmoduls dient als Arbeitsbereich für eigene Anpassungen. Diese Trennung ist wichtig, falls Sie Updates oder neue Abfragen zum FIN -Modul installieren wollen.
Die jeweiligen Pfade zum FIN -Modul werden in der Datei $SUPERX_DIR/db/bin/SQL_ENV festgelegt. In den jeweiligen Scripten wird diese für das Setzen der Umgebungsvariablen genutzt, so daß in der .profile des Users SuperX keine Änderungen notwendig sind. Hinweis für Datenbankserver unter AIX oder anderen Linux / Unix-Derivaten: Beachten Sie, daß die Scripte nur dann lauffähig sind, wenn auf dem Datenbankserver die bash installiert ist und in /bin liegt bzw. gelinkt ist.
Die folgende Tabelle zeigt einen Auszug aus der |
SUPERX_MODULE=$SUPERX_DIR/db/module; export SUPERX_MODULE |
Entsprechende Vorgaben sind im Kernmodul bereits vorhanden, Sie müssen diese Pfade ggf. ändern, damit die Scripte und cron-Jobs laufen.
Das FIN ein datenschutz-relevantes System ist, kommt der Einrichtung der Entladeroutine eine große Bedeutung zu: zum einen muss das generelle Verfahren für den Datentransfer von FIN nach SuperX geplant werden, zum anderen muss entschieden werden, welche Daten über Parametrisierung gesteuert entladen werden sollen.
Des weiteren ist das Verfahren beim Entladen selbst zu konfigurieren. Einerseits können die Daten mittels der mitgelieferten Shellscripte entladen werden, oder (bei Einsatz in HISinOne) direkt durch den Applikationsserver.
Am einfachsten ist es, wenn Sie als User superx vom SuperX-Server direkt auf den MBS/KAHIKA -Datenbankserver zugreifen und entladen können (" Pull "-Verfahren). Dann ist es sogar egal ob Sie FIN unter Informix f. Win., Informix f. Unix oder Postgres einsetzen; außerdem brauchen Sie die Dateien dann nicht vom FIN -Rechner nach SuperX kopieren. Der Nachteil ist, dass auf dem MBS/KAHIKA -Rechner und in der MBS/KAHIKA -Datenbank ein User mit entsprechenden Rechten eingerichtet werden muss.
Beim "Push"-Verfahren werden die Daten auf dem MBS/KAHIKA -Rechner entladen und dann auf den SuperX-Rechner kopiert. Hier ist keine direkte Datenbankverbindung von SuperX nach MBS/KAHIKA nötig.
Für Postgres ist das "Pull"-Verfahren die einfachste Lösung, weil zum Entladen aus Postgres die Bibliotheken des SuperX-Kernmoduls vorhanden sein müssen. Aber auch das "Push"-Verfahren ist möglich.
Für Informix ist das Entladen im "Pull"- und "Push"-Verfahren möglich; in der Praxis wird wohl "Push" auch die Regel sein.
Das Push-Verfahren ist eine Sonderform des Entladens und wird unten erläutert.
JDBC_PARAM |
Wenn Sie unter Postgres aus FSV-GX 12
oder höher entladen, muss beim Unload ein spezielles JDBC-Kommando abgesetzt werden, das dem Client sozusagen den Weg zum MBS-Schema zeigt. Dieses Kommando wird wie folgt aktiviert: |
VERSION |
Versionsnummer des Quellsystems (Ganzzahl), möglich sind bei MBS 6,7,8,9,10,11,12, bei KAHIKA 1 und 10 |
SOURCESYSTEM
|
Beim Quellsystem MBS wählen Sie hier "mbs", bei oder KAHIKA wählen Sie "kahika" |
Startjahr zum Entladen: Ab welchem Haushaltsjahr soll entladen werden? Default ist der Wert "2005". |
|
FIN_FIBU_START (neu Mai 2013) |
Ab welchem Jahr sollen HIS-Fibu-Daten entladen werden? Wenn Sie keine Fibu-Daten entladen wollen, setzten Sie das Jahr auf 3000. |
TRANSACTION_OFF |
Nur für Informix: Wenn Sie tagsüber entladen, Transaktionen eingeschaltet sind und die FIN -Tabellen groß sind, dann sollte diese r Wert gesetzt sein: SET ISOLATION TO DIRTY READ; |
START_FIN_FIBU ist neu im Mai 2013, Sie sollten Ihre FIN_ENV entsprechend ergänzen.
Weitere Parameter (z.B. Name1_des_Zahlungspartners) beziehen sich auf den Datenschutz und werden im folgenden erläutert.
Sie können personbezogene Felder beim Entladen entweder im Klartext ausgeben oder als leere Zeichenkette. In den entsprechendens Ergebnisspalten der Abfragen stehen im letzteren Falle keine Angaben. Dies ist nützlich, um hochschuleigene Datenschutzkonzepte umzusetzen. Um die maximale Flexibilität zu haben, können die relevanten Felder einzeln ein- oder ausgeschaltet werden.
Standardmäßig ist maximaler Datenschutz aktiv, d.h. wenn Sie keine Änderungen vornehmen, werden Personnamen, Adressdaten und Verwendungszwecke nicht entladen.
Z.B. der Schalter " Name1_des_Zahlungspartners " etc. bestimmt, ob z.B. die Namen aus der Tabelle Zahlungspartner übernommen werden sollen oder nicht. Wenn er auf "0" stehen, werden z.B. bei den Namen NULLs entladen, bei "1" werden die Namen entladen. Der Betrieb des FIN-Moduls ist durch die Änderungen nicht eingeschränkt.
Die möglichen Felder sind:
• Name1_des_Zahlungspartners
• Name2_des_Zahlungspartners
• Strasse_des_Zahlungspartners
• Postfach des Zahlungspartners
• Postleitzahl_der_Lieferadresse
• Lieferadresse
• Ort des Zahlungspartners
• Ansprechpartner
• Telefon_des_Ansprechpartners
• Datum_der_unbedenkl_Erklaerung
• Fax
• Emailkz
• Emailadresse
• Verwendungszweck
• PersonalNr_in_der_Beschaffung
• PersonalNr_in_der_Inventarisierung
• Geldgeber Straße
• Geldgeber Ort
• Geldgeber PLZ
Die Felder haben jeweils unterschiedliche Namen in MBS oder KAHIKA, wenn Sie die genauen Feldnamen für Ihr Liefersystem wissen wollen, schauen Sie in der Datei $FIN_LOAD_PFAD/FIN_DETAILS_ENV nach.
Einige Tabellen der Quelldatenbank (MBS/KAHIKA) werden durch ein Entladescript entladen. Die Entladescripte für die Tabellen liegen im Verzeichnis $SUPERX_DIR/db/module/fin/rohdaten und lauten je nach Systemversion:
fin_unload.x |
Entladescript für Informix und Postgres - Unix. Die Umgebung wird gesteuert in FIN_ENV. |
Zum Entladen gibt es verschiedene Möglichkeiten, z.B. auf dem SuperX-Rechner direkt aus der Quelldatenbank (ggf. remote) zu entladen, oder auf dem Rechner der Quelldatenbank die Entladescripte einzurichten, auszuführen und die Rohdaten dann auf den SuperX-Rechner zu kopieren. Details zu Entladearchitekturen finden Sie im Administratorhandbuch Kernmodul. Beim Entladen aus MBS-Access muss ein aktuelles SuperX-Clientpaket auf dem MBS-Rechner installiert werden. Im Folgenden beschreiben wir den wahrscheinlich häufigsten Weg, nämlich auf dem Quellrechner (UNIX) zu entladen und die Dateien nach SuperX zu kopieren.
Die Entladeroutine befindet sich auf dem SuperX-Rechner nach Entpacken des FIN -Moduls im Pfad $FIN_PFAD/rohdaten . Für das "Push"-Verfahren kopieren Sie den gesamten Verzeichnisinhalt ab / rohdaten auf den FIN -Rechner, z.B. nach /home/fsv/superx , und geben Sie dem Script fin_unload.x Ausführungsrechte.
Vor dem Start müssen einige Parameter in der Datei FIN_ENV gesetzt werden, ein Muster liegt in FIN_ENV.sam ; neben den Datenbankparametern müssen das Ausgabeverzeichnis FIN_PFAD , die Version von FIN und der Datenbankname angegeben werden.
|
Nur für Informix gelten: |
INFORMIXDIR |
Home-Verzeichnis von Informix |
INFORMIXSERVER |
Name des Informixservers |
ONCONFIG |
Name der onconfig, wenn auf dem MBS/KAHIKA -Rechner mehrere Informix-Instanzen laufen |
CLIENT_LOCALE |
Sprachumgebung (wichtig fürs Entladen von Datumsformaten) |
SERVER_LOCALE |
dito |
|
Nur für Postgres gelten: |
PGDATESTYLE |
Datumsformat "German" |
PGPORT |
Port vom Postgres-Server, standardmäßig 5432 |
PGHOST |
Hostname oder IP-Adresse vom Postgres-Server |
PGUSER |
Benutzerkennung für Postgres-Server (nur Datenbank, nicht Betriebssystem) |
PGPATH |
Installationsverzeichnis von Postgres, z.B. /usr/local/pgsql |
DB_PROPERTIES |
Pfad zur db-fin.properties -Datei mit den Zugangsparametern für FIN unter Postgres. Wenn Sie mit FSV-GX 12 oder höher arbeiten, wird als Datenbankname nicht mehr "mbs" angegeben, sondern "hisrm". Eine Musterdatei db-hisrm_pg.properties.sam liegt im Archiv. |
LOGGING_PROPERTIES |
Pfad zur Steuerungsdatei mit den Parametern für das Logging beim Entladen, voreingestellt auf ./logging.properties . Normalerweise brauchen Sie hier nichts ändern, wenn beim Entladen Probleme auftauchen, kann man den Level von SEVERE auf INFO oder FINEST ändern, dann werden die konkreten SQLs geloggt. Aber Achtung: wenn keine Fehler mehr auftreten, müssen Sie den Level wieder auf SEVERE ändern, sonst kommen Schlüsselworte in die Logdatei fin_unload.err , die dann bei der Übernahme nach SuperX fälschlicherweise zu Fehlermeldungen führen. |
JDBC_CLASSPATH |
Wenn Sie den obigen
JDBC_PARAM
nutzen, aber noch nicht mit dem Kernmodul 4.0 arbeiten, müssen Sie eine spezielle Bibliothek laden mit dem Befehl
export JDBC_CLASSPATH
|
Unter Postgres muss für das "Pull"-Verfahren beim Entladen die Datenbankverbindung in der Datei db-fin.properties eingetragen werden (Muster für Postgres liegt bei in db- fin_pg.properties ). Dazu laden Sie einmal die Datei FIN_ENV mit den obigen Parametern, starten den SuperX-Propadmin (siehe Administrationshandbuch Kernmodul) und richten die Verbindung zum FIN -Server ein. Das Kennwort wird verschlüsselt gespeichert. Danach sind die Entladescripte für Postgres ausführbar.
Hinweis: Anders als Informix hat Postgres hat eine eigene, vom Basissystem unabhängige Benutzerverwaltung. Daher brauchen Sie den User, den Sie zum Entladen aus Postgres nutzen, nicht auf dem SuperX- oder MBS/KAHIKA -Rechner auf Betriebssystem-Ebene einrichten. Sie können also z.B. auf dem SuperX-Rechner zum Entladen aus MBS/KAHIKA die Kennung fin des Postgres- Rechners verwenden. Oder Sie richten in der MBS/KAHIKA -Datenbank den Benutzer SuperX ein und geben ihm Leserecht auf die benötigten Tabellen.
Die weiteren Umgebungsvariablen in FIN_ENV sind folgende:
FIN_ENV |
##Pfad für Entladedaten: |
SX_CLIENT, |
# SX_CLIENT ist die Client-Anwendung zum Zugriff auf die DB
# Mögliche Werte: dbaccess (Informix), psql (Postgres), jdbc (Alle anderen) #Dies wird in allen Programmen des jdbc-Clients genutzt. #DB_PROPERTIES=./db-fin_pg.properties #export DB_PROPERTIES #auch die Logging-Ausgabe kann variiert werden: (./logging.properties.sam umbenennen) #LOGGER_PROPERTIES=./logging.properties.sam #export LOGGER_PROPERTIES #Für jdbc auch JAVA_OPTS: viel RAM #JAVA_OPTS="-Xmx500M" #export JAVA_OPTS #Database: POSTGRES, INFORMIX oder ACCESS DATABASE=INFORMIX export DATABASE |
|
|
|
|
|
|
|
|
|
Wenn die Rohdaten nach dem Entladen vom FIN -Rechner auf den SuperX-Rechner kopiert werden sollen, dann werden für das Script fin_copy.x folgende Umgebungsvariablen benötigt: |
COPY_METHOD |
Programm, das die Dateien kopiert; rsync und scp sind wählbar. |
REMOTE_DIR |
Verzeichnis, in das die Rohdaten auf dem SuperX-Rechner kopiert warden sollen, in der Regel ist dies "/home/superx/db/module/fin/rohdaten" |
REMOTE_USER |
Der Unix-Username auf dem SuperX-Rechner, in der Regel "superx". |
REMOTE_HOST |
Der Rechnername bzw. die IP-Nr. des SuperX-Rechners. |
Wenn Sie aus Datenschutzgründen keine direkte Datenbankverbindung von SuperX zu MBS/KAHIKA verwenden wollen, müssen Sie das "Push"-Verfahren einsetzen, d.h. die Dateien werden von einem MBS/KAHIKA -User auf dem MBS/KAHIKA -Rechner entladen und von dort zum SuperX-Rechner kopiert bzw. über filesharing (Samba/NFS) auf dem SuperX-Rechner gemounted.
Kopieren Sie für das Push-Verfahren den gesamten Verzeichnisinhalt ab $FIN_PFAD/rohdaten auf den MBS/KAHIKA -Rechner. Die Scripte laufen nur, wenn die entsprechenden Umgebungsvariablen in der Datei FIN_ENV (im gleichen Verzeichnis, ein Muster liegt vor in FIN_ENV.sam) korrekt gesetzt sind, benennen Sie die Musterdatei um nach FIN_ENV und tragen die richtigen Umgebungsvariablen ein.
Postgres
. Neben der
FIN_ENV
(s.u.) benötigen Sie noch eine lauffähige Java1.4.x-Runtime (oder höher) im PATH sowie einige Libraries vom SuperX-Kernmodul. Für die Libraries finden sich Platzhalter in dem Verzeichnis
rohdaten/lib
; kopieren Sie die entsprechenden Dateien aus dem Verzeichnis
$SUPERX_DIR/webserver/tomcat/common/endorsed
dorthin (Ausnahme:
superx3.0.jar
liegt in
$SUPERX_DIR/webserver/tomcat/webapps/superx/WEB-INF/lib
). Ein Script zum Kopieren befindet sich in
$FIN_PFAD/rohdaten/copy_libraries.x
. Damit das Entladescript die Libraries findet, müssen Sie die Umbebungfinriablen in
FIN_ENV_PUSH
zusätzlich
zur
FIN_ENV
laden (ein Muster liegt in
SQL_ENV_PUSH.sam
):
. SQL_ENV_PUSH
Danach können Sie auch den
propadmin
direkt mit Java starten mit:
java -classpath $JDBC_CLASSPATH:. de.superx.bin.PropAdmin -dbproperties:$DB_PROPERTIES
Access . Für Access ist ebenfalls das Push-Verfahren möglich, dazu wird auch das SuperX-Clientpaket 2.1 oder höher benötigt. Für das "Pull"-Verfahren wird der RMI-ODBC-Server der Fa. ObjectWeb benötigt (siehe Adminhandbuch Kernmodul).
Danach starten Sie das Enladescript fin_unload.x . Wenn es gelaufen ist, müssten die Dateien im unl -Verzeichnis stehen. Prüfen Sie dann bitte, ob dort Dateien mit 0 bytes stehen. Die Logdatei heisst fin_unload.err .
In Karlsruhe werden einige Tabellen nicht aus Kahika, sondern aus der zentralen CIF-Datenbank entladen. Dazu wird als Versionsnummer 10 (für Karlsruhe bis 2006) und 20 (für Karlsruhe ab 2006) benutzt. Gestartet wird der Unload nicht mit fin_unload.x, sondern mit kahika_unload.x, die fin_unload.x wird als Teil ausgeführt, um die meisten Tabellen aus Kahika zu holen, anschließend werden über die mit dem propadmin zu pflegende db-cif.properties noch einige Tabellen aus der cif-Datenbank geholt.
fin_inst aus cif kst
kkz aus cif kkz
fin_fikr aus cif koa
fin_proj cif ktr
fin_gege aus cif mh
fin_zp aus cif zps
(Bei Version 20 zusätzlich fin_proj_to_inst aus pti).
Diese Schritte brauchen nur einmal ausgeführt zu werden.
Unter UNIX:
1. Melden Sie sich als Benutzer superx an und wechseln Sie ins Verzeichnis
$SUPERX_DIR/db/module/fin
.
2. Starten Sie das Skript durch Eingabe von fin_modul_erzeugen.x .
Kontrollieren Sie etwaige Fehlermeldungen in der Datei L_fin_installieren.log .
Neben dem Erstellen der Tabellen und Hinzufügen der Prozeduren und Abfragemasken, werden auch Einträge in den Themenbaum und die Tabelle sachgebiete gemacht.
Außerdem erhelten der User der Gruppe Administratoren (in der Regel admin und superx ) Zugriffsrechte für das neue Sachgebiet Nr. 50 Finanzstatistik . Die Zugriffsrechte für andere User müssen in den Benutzerverwaltungs-Formularen des Kernmoduls von Superx vorgenommen werden.
Nach der Installation und vor dem ersten Update müssen ein paar Konstanten und Voreinstellungen geprüft werden. Bei den Konstanten handelt es sich um binäre Schalter, bei dem Repository um SQL-Ausdrücke, die in Abfragen verwendet werden.
Fast alle Anpassungen lassen sich browserbasiert im XML-Frontend vornehmen, öffnen Sie dazu die Maske Prüfprotokoll Finanzstatistik.
Nach der Installation müssen ein paar Schlüssel kontrolliert bzw. angepasst werden. Vorgegeben sind die Schlüssel in der Tabelle konstanten .
Die Konstanten aus dem FIN -Modul sind (Sie sehen in der Tabelle links die Vorbelegungen.)
apnr |
beschreibung |
Kommentar |
1 |
FIN_Quellsystem |
1 für MBS 2 für Kahika, wird automatisch gesetzt |
8 |
FIN_VERSION |
Version des liefernden MBS/KAHIKA -Systems (bitte nicht ändern, die Variable wird automatisch gesetzt). |
0 |
FIN Inst. aus COB |
Soll die Tabelle fin_inst aus der COB-inst gefüllt werden 0/1 |
0 |
FIN Inst. aus Organigramm |
Soll die Tabelle fin_inst aus dem Organigramm gefüllt werden 0/1 |
1 |
FIN Kostenstelle ermitteln |
Soll die Kostenstelle einer Buchung aufgrund von kameralen Zuordnungen für MBS als Quellsystem nachgetragen werden? Wenn 1, dann greifen folgende Regeln in dieser Reihenfolge: 1. Kostenstelle bei Buchung gefüllt -> keine Änderung 2. Kostenstelle leer, aber Kostenträger gefüllt -> proj to inst (Hauptbetreuungskostenstelle) 3. Kostenstelle leer und Kostenträger leer (bei kart=I): der Schlüssel der niedrigsten Buchungsebene, die in inst vorhanden ist, wir dverwendet 4. Kostenstelle leer, und kart = P -> ebene fb im Konto wird verwendet-> proj_to_inst (Hauptbetreuungskostenstelle) 5. Kostenstelle leer, und kart = K (Ausgabeart unter einem Projektkonto)-> inhalt von fb -> proj_to_inst (Hauptbetreuungskostenstelle) |
0 |
FIN Geldgeber aus COB |
Sollen die Geldgeber aus COB übernommen werden?
-Wenn 0, dann nicht |
0 |
Sollen die Geldgeber aus FIN übernommen werden? -Wenn 0, dann wird die Tabelle gege aus dem Vorsystem geladen. Wenn die Spalte KLR-Geldgeber gefüllt wird (beim initialen Laden oder über die Bearbeitungsformulare ), wird diese Zuordnung nicht mehr geändert. Noch nicht existierende Geldgeber werden aus dem Vorsystem ergänzt.
-Wenn 1, dann werden die vorhandenen Geldgebereinträge belassen, d.h. Schlüssel und Bezeichnunstexte werden nicht durch die Laderoutine überschrieben. Die Tabelle wird
nur noch um nicht existierende Geldgeber aus dem Vorsystem ergänzt. Einmal zugeordnete Geldgeber werden nicht mehr geändert. Die Konstante FIN Geldgeber aus FIN hat eine höhere Priorität als FIN Geldgeber aus COB . |
|
0 |
FIN Kostenarten aus COB
|
Sollen die Kostenarten aus der cob_fikr übernommen werden |
0 |
FIN verfügb. individuell |
Soll eine individuelle Verfügbar-Formel angewendet werden (vergl. Abschnitt zu verfügbar ) |
0 |
FIN_leere_Konten |
Sollen Konten auch ohne Buchungen übernommen werden. |
1900 |
FIN_START_BERECHNUNG |
Ab welchem Jahr werden FIN Daten neu berechnet . |
Die Regel in FIN Geldgeber aus FIN überlagert die Regel aus FIN Geldgeber aus COB .
Sofern bei einzelnen Buchungen bereits eine Kostenstelle angegeben, wird diese natürlich beibehalten. Falls keine Kostenstelle angegeben ist, greift ein mehrstufiger Mechanismus.
Im Browser können Sie die Tabelle in der Maske Prüfprotokoll Finanzrechnung , Link "Konstanten":
In Browser sieht das Bearbeitungsformular so aus:
Sie können jeweils den Wert ändern und dann abspeichern. Beachten Sie, dass Sie bei jeder Zeile separat speichern müssen. |
![]() |
Nach Änderungen in dieser Tabelle müssen Sie den FIN -Update neu starten.
Bei MBS als Datenquellsystem wird im FIN-Modul standardmäßig verfügbar gegen Ansatz ausgewertet. An der Uni Freiburg wurde eine integrierte Gesamt-Verfügbarformel entwickelt, die auch Geldeingänge berücksichtigt.
verfügbar = AktuellesSoll + vojs+angeordnet(E) – offsoll(E) –angeordnet(A) –offsoll(A)
Leider ist diese Formel nicht allgemeingültig anwendbar, weil es hochschulspezifische Besonderheiten bei der Pflege der MBS-Datenfelder geben kann.
Wenn Sie diese Formel oder eine angepasste individuelle Formel benutzen möchten, setzen Sie die Konstante „ FIN verfügb. individuell “ auf 1 und hinterlegen Sie die Formel in der Datei $FIN_PFAD/hilfstabellen/verfuegbar_individuell.sql .
(Bei Beispieldatei verfuegbar_individuell.sql.sam mit der Freiburger Formel liegt bei).
Bei der Datenübernahme wird aus den vorhandenen Buchungen eine künstliche Kontentabelle erzeugt, die die vorhandenen Kontentabellen um Spalten erweitert, und die Einträge aus Buchungen als "künstliches Konto" anlegt, für die es noch kein reguläres Konto gibt. Standardmäßig werden also nur die vorhandenen Buchungen für die Kontentabelle benutzt. Wenn ein vorhandenes Konto gar keine Buchungen hat, wird es auch nicht berücksichtigt.
Dies kann von einzelnen Hochschulen unerwünscht sein, daher gibt es eine Konstante FIN_leere_Konten , die die Hochschule auf 1 setzen kann. Ist dies der Fall, dann werden auch leere Konten hinzugefügt. Bei der Datenquelle MBS würden also alle Einträge aus den Tabellen fb , projekt , ins und ins2 in die Kontentabelle übernommen, egal ob es Buchungen gibt oder nicht.
In der Tabelle sx_repository werden zentrale SQL-Ausdrücke und Beschriftungen gesammelt, die dann zur Laufzeit in den Abfragen ersetzt werden. Die Tabelle enthält Konzepte, die von den Hochschulen eigenhändig und flexibel angepasst werden können. Achtung: die Syntax muss strikt eingehalten werden, sonst kommt es zu SQL-Fehlern in den Abfragen.
sx_repository |
||||
id |
content |
caption |
comment |
art |
FIN_einmalige_Zuweisungen |
|
einmalige Zu weisungen |
|
|
FIN_Verwaltungseinnahmen |
fikr in (11951,11971) |
Verwaltungseinnahmen |
|
|
FIN_Zweckgebundene_Zuweisungen |
|
Zweckgebundene Zuweisungen |
|
|
FIN_Zweckgebundene_Drittmittel |
titelgruppe_gege in (select apnr from fin_gege_klr_k where gruppe='D') |
Zweckgebundene Drittmittel |
|
|
Passen Sie die Ausdrück mit SQL-Anweisungen an:
1. FIN_einmalige_Zuweisungen
2. FIN_Verwaltungseinnahmen
3. FIN_Zweckgebundene_Zuweisungen
4. FIN_Zweckgebundene_Drittmit .
Es lagen keine Testdaten mit gesetzten sollbuchschl vor, falls es Schwierigkeiten mit einmaligen Zuweisungen oder zweckgebundenen Mitteln gibt, kontaktieren Sie uns.
Sie können die Tabelle sx_repository in der Datenbank direkt bearbeiten, z.B. mit isql, psql, dem Access-Frontend oder einem beliebigen anderen Datenbank-Client. Komfortabler geht es im Browser über das XML-Frontend in der Maske Prüfprotokoll Finanzstatistik , Link "Filter und Variablen":
Sie können die Variableninhalte ändern und nach Variablennamen suchen. |
![]() |
Nach Änderungen in dieser Tabelle müssen Sie im XML-Frontend einmal den Cache mit dem SuperX-Manager aktualisieren und sich im ggfs. im Applet neu anmelden.
Ja nach Quellsystem unterscheidet man bei den kameralen Ebenen zwischen Fachbereich oder Buchungsabschnitt. Die entsprechenden Masken-Buttons sind entsprechend dem Quellsystem beschriftet. Diese Beschriftung können Sie ändern.
Die rechte Abbildung zeigt z.B. den Kurztext der obersten kameralen Ebene. Die Beschriftung (kurz) erscheint in den Masken als Button-Beschriftung, die Beschriftung (lang) erscheint als Tooltip. |
![]() |
Neben den Button-Beschriftungen können auch Spaltenbeschriftungen geändert werden.
Die Geldgeber werden in unterschiedlichen Sichten gruppiert. Die folgende Abbildung zeigt die verschiedenen Varianten.
Folgende Sichten werden mit SuperX mitgeliefert:
• Mittelherkunft KLR. In dieser Sicht wird neben dem Geldgeber als übergeordnetes Element statt ueberkey das Feld klr_geldgeber genutzt. Für Hochschulen in Sachsen/ BadenWürttemberg gibt es eine spezielle Sicht mit vorgegebenen Schlüsseln (siehe Anhang )
• Geldgeber KLR (Kurz): Hier werden die einzelnen Geldgeber nach dem Muster Drittmittel und zwei weitere beliebige Geldgebergruppen aufgeteilt. Ausschlaggebend ist dabei in der Tabelle sva_geldgeber das Feld klr_geldgeber das erste Zeichen: Ist es ein "D", dann sind es Drittmittel, die beiden anderen Schlüssel sind frei.
• Geldgeber (intern). Dies ist die hochschulinterne Sicht auf Geldgeber bestehend aus ggnr und ueberkey .
• Geldgeber Hochschulfinanzstatistik: Hier wird die Aggregierung aufgrund des Feldes fikey in der Tabelle sva_geldgeber genutzt (Siehe Anhang , mittlere Spalte)
• Geldgeber Bundes-Stellenstatistik: Hier wird die Aggregierung aufgrund des Feldes bund_geldgeber in der Tabelle sva_geldgeber genutzt (Siehe Anhang , linke Spalte)
Wenn die Gruppierungfelder in dem entsprechenden Vorsystem (MBS) gepflegt sind, können sie direkt übernommen werden. Die Gruppierungsmerkmale können auch aus COB übernommen werden, wenn die entsprechende Konstante gesetzt ist.
Die Geldgebersicht Geldgeber KLR kurz wird zwar aus COB/MBS übernommen, lässt lässt sich aber manuell ändern. Die Geldgeber werden einzeln zur Kategorie " Drittmittel " zugeordnet. Gehen Sie dazu im Browser über das XML-Frontend in der Maske Prüfprotokoll Finanzstatistik , Link "Geldgeber zu Drittmitteln":
Sie können die Volltexte der Geldgeber
ändern und durch Ankreuzen festlegen, dass diese Geldgeber zu Drittmitteln zählen.
Beachten Sie, dass Sie bei jeder Zeile separat speichern müssen.
Nach einer Änderung muss der SuperX-Update des FIN -Moduls komplett neu gestartet werden.
Die Geldgeber-Sichten Mittelherkunft KLR (BaWue /Sachsen) speisen sich aus dem Feld klr_geldgeber der Tabelle gege. Sie wird zwar aus COB/MBS übernommen, lässt lässt sich aber manuell ändern. Die Geldgeber werden einzeln zu den Kategorien zugeordnet, die im Feld klr_geldgeber vorgegeben sind (unterste Ebene). Außerdem lassen sich die Volltexte der Gruppierungsebenen in klr_geldgeber ändern (oberste Ebene). Gehen Sie zum Bearbeiten im Browser über das XML-Frontend in der Maske Prüfprotokoll Finanzstatistik , auf die Links unter "Mittelherkunft (KLR)" (jeweils für Hochschulen in BaWue/Sachsen oder außerhalb BaWue/Sachsen, das folgende Beispiel zeigt die Geldgeber außerhalb BaWue):
Oberste Ebene
. |
![]() |
Unterste Ebene
|
![]() |
Beachten Sie, dass Sie bei jeder Zeile separat speichern müssen.
Das FIN-Haushaltskonto wird um die Dimension der Kostenstelle ergänzt, sowie um die weiteren KLR-Dimensionen. Die Kostenstelle ist in SuperX der Dreh- und Angelpunkt. Einerseits werden hier modulübergreifende Auswertungen möglich, und andererseits greift über die Kostenstelle das Berechtigungskonzept. Dementsprechend sind mehrere Möglichkeiten vorgesehen, die Kostenstellen-Zuordnung des FIN-Moduls anzupassen. Die folgende Abbildung zeigt den Datenfluss.
Die von SuperX ausgewertete Kostenstelle kommt in das Feld ch110_institu t. Folgende Wege können genutzt werden, um Kostenstelleneinträge zu transformieren.
1. Zuordnung von Kostenstellen nach dem Laden
Wenn die kamerale Struktur dem Kostenstellen-Organigramm entspricht, kann nach dem Laden der neuen Daten die Buchungstabelle überarbeitet werden. Benennen Sie dazu das Skript preparation.sql.sam um nach preparation.sql . Das Skript setzt die Kostenstelle einer Buchung auf deren unterste kamerale Buchungsebene. Sie können das SQL-Skript nach eigenen Bedürfnissen anpassen, z.B. mit speziellen where-Bedinungen.
2. Kostenstelle ermitteln
Wenn die Konstante FIN Kostenstelle ermitteln =1 gesetzt ist und die im Abschnitt Konstanten beschriebenen Regeln greifen, werden die fehlenden Kostenstellen-Zuordnungen nachträglich gesetzt.
3. Trans_inst-Mechanismus
Falls Sie bereits eingetragene Kostenstellen-Nummern (im Feld ch110_institut ) grundsätzlich durch bestimmte Nummern ersetzen wollen, können Sie die Tabelle trans_inst füllen (die zu ersetzende Nummer in die Spalte instnr , die Ziel-Instnr. in die Spalte ch110_institut ).
Diese Tabelle kann direkt in der Datenbank bearbeitet werden.
4. Haupteintrag in fin_inst
Buchungen, bei denen immer noch keine Kostenstelle zugeordnet wurde, erhalten den Root-Eintrag aus fin_inst (mit parent=null) als Kostenstelle, also in der Regel die Hochschule.
In den Abfragen des FIN-Moduls können hochschulspezifische Filter ergänzt werden.
Soll z.B. ein auswählbarer Filter „nur Kostenarten 1*“ angelegt werden, muss dafür in der sx_repository ein Eintrag wie folgt gemacht werden.
id |
content |
caption |
art |
FIN_Filter1 |
fikr like ‘1%’ |
nur Kostenarten 1* |
FIN_Filter |
Alle Einträge mit dem Eintrag „FIN_Filter“ bei Art werden zur Auswahl angeboten.
Filter auf die Spalte titel sollten nicht vorgenommen werden, da diese die Berechnungslogik stören.
Eine Hochschule, die Datenbanktechnisch sicherstellen möchte, dass nicht vom Rechteverwalter versehentlich zwei Datensätze mit gleichen Rechten für einen User angelegt werden, kann einen unique Index auf die Tabelle mit den kameralen Rechten anlegen.
create unique index ix_uukam on fin_user_kam(userid,buchungsab_fb,projnr_ins);
Die entladenen FIN -Daten müssen für die Aufnahme nach SuperX im Verzeichnis $SUPERX_DIR/db/module/fin/rohdaten/unl stehen. Kopieren Sie ggf. die Daten dorthin (siehe Script $FIN_LOAD_PFAD/fin_copy.x ), oder mounten Sie ggf. das Verzeichnis vom FIN -Rechner als NFS-bzw. Samba-Share. An der Stelle $FIN_LOAD_PFAD muss außerdem die vom Entladescript automatisch erzeugten Datei fin_unload.err sowie die Datei superx.datum stehen. Sie enthalten jeweils das Entladedatum und ggf. Fehlermeldungen. Ist letzteres der Fall, dann wird das Laden abgebrochen.
Zum Übernahme der Basisdaten nach SuperX wird das Script
$SUPERX_DIR/db/module/fin/fin_update.x
gestartet. Darin werden die Datentabellen neu erzeugt und gefüllt; dort werden auch die Hilfstabellen gefüllt.
Beim regelmäßigen Update wird die Übernahme der FIN -Daten über Cronjobs erledigt. Fügen Sie dazu das Script
$SUPERX_DIR/db/module/fin_update.x
in
die Crontab ein. Derzeit werden bei jedem Update die gesamten FIN -Daten neu übernommen, ältere Haushaltsjahre bleiben in SuperX erhalten.
Generell werden alle Datentabellen insofern transformiert, als leere Schlüsselfelder (z.B. ins3) mit den Defaultwerten "" gefüllt werden. Darüber hinaus werden folgende Regeln umgesetzt:
• Tabelle fin_konten : Die Konten werden um die Ausprägungen Monat, Kostenstelle, Kostenträger, Kostenart und Geldgeber erweitert. Es werden dann neue Kontonummern gebildet.
Während des FIN -Updates werden einige Daten auf Plausibilität geprüft, und bei Datenfehlern werden entsprechende Warnungen ausgegeben. Diese werden in die Tabelle fin_pruefrout geschrieben und können in der Abfrage "Prüfprotokoll Finanzrechnung" abgerufen werden. Es ist wichtig, die Fehler zu beheben. Insbesondere wenn übergeordnete Kostenstellen/-arten oder –träger einen kürzeren Gültigkeitszeitraum aufweisen, als untergeordnete Elemente, kann dies die Ergebnisse verfälschen.
Vor Datenkontrollen aus FSV müssen Sie das Prüfprotkoll prüfen, ob es Warnungen gibt, wenn z.B. Kostenstelleneinträge fehlen, können die Zahlen abweichen.
Um die Ausgabe von FIN-Daten beim Einsatz von FSV als Liefersystem zu kontrollieren, sollten Sie die Kontostandsanzeige in FSV stichprobenartig mit SuperX vergleichen. Beachten Sie dabei, dass der Begriff "Budget" in SuperX-Masken dem Begriff "Verfügbar" in FSV entspricht.
Gehen Sie z.B. im FSV-Menü Aufgaben->Mittelbewirtschaftung->Kontenpflege->Titel und suchen Sie die Werte für einen Titel:
Hier der Wert für die Kontenpflege auf Ebene Titelgruppe (TGR-DR):
Den Kontostand können Sie in verschiedenen Abfragen kontrollieren, z.B. hier:
Die Spaltenüberschriften können Sie mit den Anzeigen in FSV direkt vergleichen. Sie sehen hier die gleichen Werte wie in FSV.
Im Bericht Einnahmen / Ausgaben nach Geldgeber gibt es keine direkte Möglichkeit, in der Oberfläche von FSV nach entsprechenden Werten zu suchen. Man kann aber per SQL auf die MBS-Datenbank die Zahlen prüfen, hier am Beispiel Einnahmen und Ausgaben:
Das folgende Ergebnis erhalten Sie, wenn Sie im Feld "Geldgeber" die Sicht "Geldgeber (intern)" auswählen. Diese Sicht listet die internen Geldgeber alphabetisch auf:
Um diese Zahlen zu reproduzieren, geben Sie folgende SQL-Scripte ein (beim DBMS Postgres müssen Sie noch set search_path to mbs; voranstellen):
(ggnr char(10),
ein_e decimal(16,2) default 0,
ausz_e decimal(16,2) default 0,
ein_a decimal(16,2) default 0,
ausz_dr decimal(16,2) default 0
);
--Einnahmen:
insert into tmp_gg
(ggnr,ein_e)
select ggnr,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (601,651,602,652,701,751,702,752,715,821,871,822,872,823,873,824,874)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_gg
(ggnr,ausz_e)
select ggnr,sum(-betrag) from huel where jahr='2012'
and buchungsschluessel in (431, 433, 481,483, 432,434, 482, 484,861, 811, 812, 861,862, 813, 863, 814, 864)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
--Ausgaben:
insert into tmp_gg
(ggnr,ausz_dr)
select ggnr,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (401, 409,451, 459,402, 452, 403, 453, 404, 454, 405, 455, 406, 456, 407, 457, 408, 458, 411, 461, 801, 851, 802, 852, 803, 853)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_gg
(ggnr,ein_a)
select ggnr,sum(-betrag) from huel where jahr='2012'
and buchungsschluessel in (631, 634, 681, 632, 682, 633,634, 683, 684, 831, 731, 781, 732, 782, 881, 832, 882)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
select G.ggdruck,T.ggnr,sum(ein_e-ausz_e) as einnahmen, sum(ausz_dr-ein_a) as ausgaben
from tmp_gg T left outer join gege G on (G.ggnr=T.ggnr)
group by 1,2
order by 1;
drop table tmp_gg;
Ergebnis
Die Zahlen für die einzelnen Geldgeber lassen sich so leicht prüfen, und die Herkunft lässt sich anhand der huel -Tabelle direkt nachvollziehen. Mit geringer Abwandlung der Selektion können Sie sich auch einzelne Buchungen anschauen.
Um die Einnahmen im Bericht Budget nach kameralen Einheiten zu reproduzieren, gehen Sie wie folgt vor.
Zum die Zahlen in der Spalte Einnahmen zu verifizieren, können Sie in MBS in der Kontenpflege einen FB / ins /ins2 oder ins3 auswählen und die Einnahmen kontrollieren.
Zur Nachberechnung anhand von SQL können Sie folgende Befehle nutzen.
(beim DBMS Postgres müssen Sie noch set search_path to mbs; voranstellen):
create temp table tmp_erg
(fb char(10),
ins char(10),
ins2 char(10),
ins3 char(10),
ein_e decimal(16,2) default 0,
ausz_e decimal(16,2) default 0);
--Einnahmen:
insert into tmp_erg
(fb,ins,ins2,ins3,ein_e)
select fb,ins,ins2,ins3,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (601,651,602,652,701,751,702,752,715,821,871,822,872,823,873,824,874)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2,3,4
;
insert into tmp_erg
(fb,ins,ins2,ins3,ausz_e)
select fb,ins,ins2,ins3,sum(-betrag) from huel where jahr='2012'
and buchungsschluessel in (431, 433, 481,483, 432,434, 482, 484,861, 811, 812, 861,862, 813, 863, 814, 864)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2,3,4
;
-- fb Ebene
select fb,sum(ein_e-ausz_e) as einnahmen
from tmp_erg T
group by 1
order by 1;
--ins
select fb,ins,sum(ein_e-ausz_e) as einnahmen
from tmp_erg T
group by 1,2
order by 1,2;
--ins2
select fb,ins,ins2,sum(ein_e-ausz_e) as einnahmen
from tmp_erg T
group by 1,2,3
order by 1,2,3;
--ins3
select fb,ins,ins2,ins3,sum(ein_e-ausz_e) as einnahmen
from tmp_erg T
group by 1,2,3,4
order by 1,2,3,4;
drop table tmp_erg;
Am Ende finden sich vier select-Befehle je nachdem auf welcher Ebene Sie die Summen wünschen, fb, ins, ins2 oder ins3. Als Beispiel für FB erhalten Sie:
Das sind die Einnahmen auf der ersten Ebene (FB), die man in SuperX aufklappen kann.
Die weiteren Ebenen sind mit den anderen drei selects abrufbar.
Der Kapitel/Titelbericht kann nach Titel gruppieren.
Beachten Sie, dass Werte nur auf Titelebene ausgegeben werden, also z.B. werden Ansätze auf Deckungsringebene nicht berücksichtigt.
Die Aufrufmaske sieht so aus.
Die Ergebnisdarstellung sieht folgendermaßen aus:
Bei Einnahmetiteln wird Angeordnet (E) dargestellt, bei Ausgabetiteln Angeordnet (A).
Um Angeordnet und Einnahmen direkt in FSV zu kontrollieren benutzen Sie folgendes Script.
(beim DBMS Postgres müssen Sie noch set search_path to mbs; voranstellen):
create temp table tmp_erg
(kap char(10),
tit char(10),
ein decimal(16,2) default 0,
ausz decimal(16,2) default 0,
soll decimal(16,2) default 0
);
--Einnahmen:
insert into tmp_erg
(kap,tit,ein)
select kap,tit,sum(betrag) from huel where jahr='2013'
and buchungsschluessel in (601, 651, 602, 652, 701, 751, 702, 752, 715, 821, 871, 822, 872, 823, 873, 824, 874)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
insert into tmp_erg
(kap,tit,ein)
select kap,tit,sum(-betrag) from huel where jahr='2013'
and buchungsschluessel in (631, 681, 632, 682, 633, 683, 634, 684, 731, 781, 732, 782, 831, 881, 832, 882)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
insert into tmp_erg
(kap,tit,ausz)
select kap,tit,sum(betrag) from huel where jahr='2013'
and buchungsschluessel in (401, 451, 402, 452, 403, 453, 404, 454, 405, 455, 406, 456, 407, 457, 408, 458, 409, 459, 411, 461, 801, 851, 802, 852, 803, 853)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
insert into tmp_erg
(kap,tit,ausz)
select kap,tit,sum(-betrag) from huel where jahr='2013'
and buchungsschluessel in (431, 481, 432, 482, 433, 483, 434, 484, 861, 811, 812, 862, 813, 863, 814, 864)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
-- Angeordet _E/A
-- Soll
insert into tmp_erg
(kap,tit,soll)
select kap,tit,sum(betrag) from huel where jahr='2013'
and buchungsschluessel in (501, 551, 502, 552, 515, 516, 565, 553, 554, 555, 601, 651, 602, 651, 652, 821, 871, 822, 872, 823, 873, 824, 874)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
insert into tmp_erg
(kap,tit,soll)
select kap,tit,sum(-betrag) from huel where jahr='2013'
and buchungsschluessel in (531, 581, 532, 582, 533, 583, 534, 584, 585, 586, 587, 631, 681, 632, 682, 633, 683, 634, 684, 831, 881, 832, 882)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
-- Ergebnisausgabe für Einnahmetitel
select kap,substring(tit from 1 for 5),--tragen Sie bei for 5 statt dessen z.B. for 1 ein, wenn die Titel gruppiert werden sollen
sum(ein-ausz) as einnahmen, sum(soll-ausz) as Angeordnet_e
from tmp_erg T
where substring(tit from 1 for 1) in ('0','1','2','3')
group by 1,2
order by 1,2;
--Ergebnisausgabe für Ausgabetitel
select kap,substring(tit from 1 for 5),--tragen Sie bei for 5 statt dessen z.B. for 1 ein, wenn die Titel gruppiert werden sollen
sum(ausz-soll) as angeordnet_a
from tmp_erg T
where substring(tit from 1 for 1) in ('4','5','6','7','8','9')
group by 1,2
order by 1,2;
--drop table tmp_erg;
Die zwei Selects zum Schluss zeigen Daten für Einnahmentitel und Ausgabetitel an, wenn Sie bei substring(tit from 1 for 5) statt for 5 eine Ziffer zwischen 1 und 4 nehmen, werden die Ergebnisse auf Titelebene stärker gruppiert.
Als Ergebnis werden die Summen pro Kapitel und Titel angezeigt.
Die Maske des Quartalbericht sieht so aus:
Wählen Sie ein Haushaltsjahr aus und bei Art des Zeitraums Erfassungsdatum.
Unter Soll 2013 wird das Aktuelle Soll (akts) ohne Reste dargestellt.
Bei „aus dem Vorjahr übertragenen Einnahmereste“ wird die Summe aus Haushalts- und Drittmittelresten dargestellt (reste+vojs).
Das Gesamtsoll ist die Summe der ersten beiden Spalten.
Bei den folgenden Spalten (IST) werden bei Einnahmetiteln die Einnahmen angezeigt und bei Ausgabetitel die Ausgaben.
Das Ist Vorjahr zeigt die Einnahmen oder Ausgaben im gesamten Vorjahr.
Um für Ein- und Ausgabetitel die Werte mit FSV zu vergleichen, benutzen Sie das folgende Script. Passen Sie das Haushaltsjahr an. Wenn Sie Werte für ein Quartal wünschen, entfernen Sie die Kommentierung -- z.B. bei --and b_dat<'2012-04-01' --erstes Quartal
also and b_dat<'2012-04-01' --erstes Quartal
(beim DBMS Postgres müssen Sie noch set search_path to mbs; voranstellen):
create temp table tmp_erg
(tit char(10),
ein decimal(16,2) default 0,
ausz decimal(16,2) default 0,
akts decimal(16,2) default 0,
reste decimal(16,2) default 0
);
--Einnahmen:
insert into tmp_erg
(tit,ein)
select tit,sum(betrag) from huel where jahr='2012' --hier ggfs Vorjahr eintragen
and buchungsschluessel in (601, 651, 602, 652, 701, 751, 702, 752, 715, 821, 871, 822, 872, 823, 873, 824, 874)
--and b_dat<'2012-04-01' --erstes Quartal
--and b_dat>='2012-04-01' and b_dat<'2012-07-01' -- zweites Quartal
--and b_dat>='2012-07-01' and b_dat<'2012-10-01' -- drittes Quartal
--and b_dat>='2012-10-01' -- viertes Quartal
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_erg
(tit,ein)
select tit,sum(-betrag) from huel where jahr='2012' --hier ggfs Vorjahr eintragen
and buchungsschluessel in (631, 681, 632, 682, 633, 683, 634, 684, 731, 781, 732, 782, 831, 881, 832, 882)
--and b_dat<'2012-04-01' --erstes Quartal
--and b_dat>='2012-04-01' and b_dat<'2012-07-01' -- zweites Quartal
--and b_dat>='2012-07-01' and b_dat<'2012-10-01' -- drittes Quartal
--and b_dat>='2012-10-01' -- viertes Quartal
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_erg
(tit,ausz)
select tit,sum(betrag) from huel where jahr='2012' --hier ggfs Vorjahr eintragen
and buchungsschluessel in (401, 451, 402, 452, 403, 453, 404, 454, 405, 455, 406, 456, 407, 457, 408, 458, 409, 459, 411, 461, 801, 851, 802, 852, 803, 853)
--and b_dat<'2012-04-01' --erstes Quartal
--and b_dat>='2012-04-01' and b_dat<'2012-07-01' -- zweites Quartal
--and b_dat>='2012-07-01' and b_dat<'2012-10-01' -- drittes Quartal
--and b_dat>='2012-10-01' -- viertes Quartal
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_erg
(tit,ausz)
select tit,sum(-betrag) from huel where jahr='2012' --hier ggfs Vorjahr eintragen
and buchungsschluessel in (431, 481, 432, 482, 433, 483, 434, 484, 861, 811, 812, 862, 813, 863, 814, 864)
--and b_dat<'2012-04-01' --erstes Quartal
--and b_dat>='2012-04-01' and b_dat<'2012-07-01' -- zweites Quartal
--and b_dat>='2012-07-01' and b_dat<'2012-10-01' -- drittes Quartal
--and b_dat>='2012-10-01' -- viertes Quartal
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
--akts
insert into tmp_erg
(tit,akts)
select tit,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (101, 151, 102, 152, 104, 154, 110, 160, 111, 161, 112, 162, 120, 170, 201, 251, 202, 252, 203, 253, 204, 254, 206, 256)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
--akts
insert into tmp_erg
(tit,akts)
select tit,sum(-betrag) from huel where jahr='2012'
and buchungsschluessel in (103, 153)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
--reste Haushalt
insert into tmp_erg
(tit,reste)
select tit,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (104, 154, 112, 162)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
--reste Drittmittel
insert into tmp_erg
(tit,reste)
select tit,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (901, 951, 952, 902, 907, 957)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
--Einnahmen
select tit,sum(ein-ausz) as einnahmen from tmp_erg
where substring(tit from 1 for 1) in ('0','1','2','3')
group by 1 order by 1;
--Ausgaben
select tit,sum(ausz-ein) as ausgaben,sum(akts-reste) as soll,sum(reste) as restegesamt from tmp_erg
where substring(tit from 1 for 1) in ('4','5','6','7','8','9')
group by 1 order by 1;
drop table tmp_erg;
Als Ergebnis erhält man z.B.
Um die Werte auf Deckungsringebene zu erhalten benutzen Sie das folgende Script.
--(beim DBMS Postgres müssen Sie noch set search_path to mbs; voranstellen):
create temp table tmp_erg
(dr char(5),
dr2 char(5),
ein_e decimal(16,2) default 0,
ein_a decimal(16,2) default 0,
ausz decimal(16,2) default 0,
ausz_e decimal(16,2) default 0,
ans_a decimal(16,2) default 0,
reste decimal(16,2) default 0
);
--Einnahmen:
insert into tmp_erg
(dr,dr2,ein_e)
select dr,dr2,sum(betrag) from huel where jahr='2012' --hier ggfs Vorjahr eintragen
and buchungsschluessel in (601, 651, 602, 652, 701, 751, 702, 752, 715, 821, 871, 822, 872, 823, 873, 824, 874)
--and b_dat<'2012-04-01' --erstes Quartal
--and b_dat>='2012-04-01' and b_dat<'2012-07-01' -- zweites Quartal
--and b_dat>='2012-07-01' and b_dat<'2012-10-01' -- drittes Quartal
--and b_dat>='2012-10-01' -- viertes Quartal
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
insert into tmp_erg
(dr,dr2,ein_a)
select dr,dr2,sum(-betrag) from huel where jahr='2012' --hier ggfs Vorjahr eintragen
and buchungsschluessel in (631, 681, 632, 682, 633, 683, 634, 684, 831, 731, 781, 732, 782, 881, 832, 882)
--and b_dat<'2012-04-01' --erstes Quartal
--and b_dat>='2012-04-01' and b_dat<'2012-07-01' -- zweites Quartal
--and b_dat>='2012-07-01' and b_dat<'2012-10-01' -- drittes Quartal
--and b_dat>='2012-10-01' -- viertes Quartal
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
insert into tmp_erg
(dr,dr2,ausz_e)
select dr,dr2,sum(-betrag) from huel where jahr='2012' --hier ggfs Vorjahr eintragen
and buchungsschluessel in (431, 481, 432, 482, 433, 483, 434, 484, 811, 861, 812, 862, 813, 863, 814, 864)
--and b_dat<'2012-04-01' --erstes Quartal
--and b_dat>='2012-04-01' and b_dat<'2012-07-01' -- zweites Quartal
--and b_dat>='2012-07-01' and b_dat<'2012-10-01' -- drittes Quartal
--and b_dat>='2012-10-01' -- viertes Quartal
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
insert into tmp_erg
(dr,dr2,ausz)
select dr,dr2,sum(betrag) from huel where jahr='2012' --hier ggfs Vorjahr eintragen
and buchungsschluessel in (401, 451, 402, 452, 403, 453, 404, 454, 405, 455, 406, 456, 407, 457, 408, 458, 409, 459, 411, 461, 801, 851, 802, 852, 803, 853)
--and b_dat<'2012-04-01' --erstes Quartal
--and b_dat>='2012-04-01' and b_dat<'2012-07-01' -- zweites Quartal
--and b_dat>='2012-07-01' and b_dat<'2012-10-01' -- drittes Quartal
--and b_dat>='2012-10-01' -- viertes Quartal
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
--ans_a
insert into tmp_erg
(dr,dr2,ans_a)
select dr,dr2,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (101, 151, 102, 152, 104, 154, 110, 160, 111, 161, 112, 162, 201, 251, 202, 252, 203, 253, 204, 254, 206, 256)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
--ans_a
insert into tmp_erg
(dr,dr2,ans_a)
select dr,dr2,sum(-betrag) from huel where jahr='2012'
and buchungsschluessel in (103, 153)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
--reste Haushalt
insert into tmp_erg
(dr,dr2,reste)
select dr,dr2,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (104, 154, 112, 162)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
--reste Drittmittel
insert into tmp_erg
(dr,dr2,reste)
select dr,dr2,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (901, 951, 952, 902, 907, 957)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1,2
;
--Einnahmen
select dr,dr2,sum(ein_e-ausz_e) as einnahmen from tmp_erg
group by 1,2 order by 1;
--Ausgaben
select dr,dr2,sum(ausz-ein_a) as ausgaben,sum(ans_a-reste) as soll,sum(reste) as restegesamt from tmp_erg
group by 1,2 order by 1;
drop table tmp_erg;
create temp table tmp_erg
( tit char(10),
ein decimal(16,2) default 0,
ausz decimal(16,2) default 0
);
--Einnahmen:
insert into tmp_erg
(tit,ein)
select tit,sum(betrag) from huel where jahr='2013'
and buchungsschluessel in (601, 651, 602, 652, 701, 751, 702, 752, 715, 821, 871, 822, 872, 823, 873, 824, 874)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1;
insert into tmp_erg
(tit,ein)
select tit,sum(-betrag) from huel where jahr='2013'
and buchungsschluessel in (631, 681, 632, 682, 633, 683, 634, 684, 731, 781, 732, 782, 831, 881, 832, 882)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_erg
(tit,ausz)
select tit,sum(betrag) from huel where jahr='2013'
and buchungsschluessel in (401, 451, 402, 452, 403, 453, 404, 454, 405, 455, 406, 456, 407, 457, 408, 458, 409, 459, 411, 461, 801, 851, 802, 852, 803, 853)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_erg
(tit,ausz)
select tit,sum(-betrag) from huel where jahr='2013'
and buchungsschluessel in (431, 481, 432, 482, 433, 483, 434, 484, 861, 811, 812, 862, 813, 863, 814, 864)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
-- Ergebnisausgabe für Einnahmetitel
select substring(tit from 1 for 5),--tragen Sie bei for 5 statt dessen z.B. for 1 ein, wenn die Titel gruppiert werden sollen
sum(ein-ausz) as einnahmen
from tmp_erg T
where substring(tit from 1 for 1) in ('0','1','2','3')
group by 1
order by 1;
--Ergebnisausgabe für Ausgabetitel
select substring(tit from 1 for 5),--tragen Sie bei for 5 statt dessen z.B. for 1 ein, wenn die Titel gruppiert werden sollen
sum(ausz-ein) as ausgaben
from tmp_erg T
where substring(tit from 1 for 1) in ('4','5','6','7','8','9')
group by 1
order by 1;
--drop table tmp_erg;
Die Maske sieht folgendermaßen aus:
Als Ergebnis erhalten Sie:
--(beim DBMS Postgres müssen Sie noch set search_path to mbs; voranstellen):
create temp table tmp_erg
(koa_nr char(12),
ein_e decimal(16,2) default 0,
ausz_e decimal(16,2) default 0,
ein_a decimal(16,2) default 0,
ausz_dr decimal(16,2) default 0
);
--Einnahmen:
insert into tmp_erg
(koa_nr,ein_e)
select koa_nr,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (601,651,602,652,701,751,702,752,715,821,871,822,872,823,873,824,874)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_erg
(koa_nr,ausz_e)
select koa_nr,sum(-betrag) from huel where jahr='2012'
and buchungsschluessel in (431, 433, 481,483, 432,434, 482, 484,861, 811, 812, 861,862, 813, 863, 814, 864)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
--Ausgaben:
insert into tmp_erg
(koa_nr,ausz_dr)
select koa_nr,sum(betrag) from huel where jahr='2012'
and buchungsschluessel in (401, 409,451, 459,402, 452, 403, 453, 404, 454, 405, 455, 406, 456, 407, 457, 408, 458, 411, 461, 801, 851, 802, 852, 803, 853)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
insert into tmp_erg
(koa_nr,ein_a)
select koa_nr,sum(-betrag) from huel where jahr='2012'
and buchungsschluessel in (631, 634, 681, 632, 682, 633,634, 683, 684, 831, 731, 781, 732, 782, 881, 832, 882)
--ohne Zahlstellen- und Verwahrkonten:
and 0=(select count(*) from zst_kapitel Z where Z.kap=huel.kap)
and 0=(select count(*) from zst_sonderbuchst S where S.kap=huel.kap and S.tit=huel.tit)
and 0=(select count(*) from tit T where T.kap=huel.kap and T.tit=huel.tit and T.vwg=1)
group by 1
;
select koa_nr,sum(ein_e-ausz_e) as einnahmen, sum(ausz_dr-ein_a) as ausgaben
from tmp_erg
group by 1
order by 1;
drop table tmp_erg;
Als Ergebnis erhalten Sie:
Die Maske sieht folgendermaßen aus:
Wählen Sie bei BGA konsolidiert aus und bei Sachkonten anzeigen, nur bebuchte.
Durch die Anzeige der Sachkonten können Sie kontrollieren ,welche Sachkonten einer bestimmten Position im Bericht zugeordnet sind.
Mit dem folgenden SQL können Sie die Werte für einzelne Sachkonten in FSV nachvollziehen, für konsolidierte Auswertung über alle BGAs.
create temp table tmp_konto (sachkonto varchar(12),kategorie char(1),--bei Kategorie K betrag * -1
sollhaben char(1), soll decimal(14,2), klasse char(8),--bei Konsolidiert nicht für VING/FINT berechnen
haben decimal(14,2), betrag decimal(14,2));
insert into tmp_konto (sachkonto,betrag)
select sachkonto, sum(saldo) from fibu_kontenstand where haushaltsjahr::integer=2013 and (bkreis=0 or bkreis in (select k_bga_id from k_bga where bilanz='1')) group by 1;
update tmp_konto set klasse=
(select distinct klasse from fibu_konten where tmp_konto.sachkonto=fibu_konten.sachkonto and
haushaltsjahr::integer<= 2013 and ( hhjende is null or hhjende::integer>= 2013 ) );
update tmp_konto set betrag=0 where klasse in ('VINT','FINT');
update tmp_konto set kategorie=(select kategorie from fibu_konten where
haushaltsjahr::integer<=2013 and (hhjende is null or hhjende::integer >= 2013)
and tmp_konto.sachkonto=fibu_konten.sachkonto
);
update tmp_konto set betrag=betrag*-1 where kategorie='K';
select sachkonto,sum(betrag) from tmp_konto group by 1 order by 1;
Als Ergebnis erhalten Sie:
Die Maske sieht so aus.
Mit dem folgenden Script können Sie die Werte auf einzelnen Sachkonten prüfen:
--(beim DBMS Postgres müssen Sie noch set search_path to mbs; voranstellen):
--Einzelbeträge kontret auf ein Sachkonto gebucht
create temp table tmp_konto (sachkonto varchar(12),kategorie char(1),--bei Kategorie K betrag * -1
klasse char(8),--bei Konsolidiert nicht für VING/FINT berechnen
sollhaben char(1), q1soll decimal(14,2), q1haben decimal(14,2), q1betrag decimal(14,2),
q2soll decimal(14,2), q2haben decimal(14,2), q2betrag decimal(14,2),
q3soll decimal(14,2), q3haben decimal(14,2), q3betrag decimal(14,2),
q4soll decimal(14,2), q4haben decimal(14,2), q4betrag decimal(14,2)
);
insert into tmp_konto (sachkonto,q1haben,q1soll,q2haben,q2soll,q3haben,q3soll,q4haben,q4soll)
select sachkonto,sum(haben_00)+sum(haben_01)+sum(haben_02)+sum(haben_03),sum(soll_00)+sum(soll_01)+sum(soll_02)+sum(soll_03),
sum(haben_04)+sum(haben_05)+sum(haben_06),sum(soll_04)+sum(soll_05)+sum(soll_06),
sum(haben_07)+sum(haben_08)+sum(haben_09),sum(soll_07)+sum(soll_08)+sum(soll_09),
sum(haben_10)+sum(haben_11)+sum(haben_12)+sum(haben_13),sum(soll_10)+sum(soll_11)+sum(soll_12)+sum(soll_13)
from fibu_kontenstand where haushaltsjahr::integer=2013 and sachkonto in
(select sachkonto from fibu_auswertung_konten_zuordnung where status not in (0,1) )
and (bkreis=0 or bkreis in (select k_bga_id from k_bga where bilanz='1') ) group by 1;
update tmp_konto set sollhaben=(select sollhaben from fibu_konten where
haushaltsjahr::integer<=2013 and (hhjende is null or hhjende::integer >=2013)
and tmp_konto.sachkonto=fibu_konten.sachkonto
);
--verrechnen
update tmp_konto set q1betrag=q1soll-q1haben,q2betrag=q2soll-q2haben,q3betrag=q3soll-q3haben,q4betrag=q4soll-q4haben where sollhaben='S';
update tmp_konto set q1betrag=q1haben-q1soll,q2betrag=q2haben-q2soll,q3betrag=q3haben-q3soll,q4betrag=q4haben-q4soll where sollhaben='H';
--bei konsolidierung werden unten Klassen mit VINT/FINT auf 0 gesetzt
update tmp_konto set klasse=
(select distinct klasse from fibu_konten where tmp_konto.sachkonto=fibu_konten.sachkonto and
haushaltsjahr::integer<= 2013 and ( hhjende is null or hhjende::integer>= 2013 ) );
update tmp_konto set q1betrag=0,q2betrag=0,q3betrag=0,q4betrag=0 where klasse in ('VINT','FINT');
-- bei Kontokategorie K betrag mal -1
update tmp_konto set kategorie=(select kategorie from fibu_konten where
haushaltsjahr::integer<=2013 and (hhjende is null or hhjende::integer >= 2013)
and tmp_konto.sachkonto=fibu_konten.sachkonto
);
update tmp_konto set q1betrag=q1betrag*-1,q2betrag=q2betrag*-1,q3betrag=q3betrag*-1,q4betrag=q4betrag*-1 where kategorie='K';
select sachkonto,q1betrag,q2betrag,q3betrag,q4betrag, q1betrag+q2betrag+q3betrag+q4betrag as gesamt from tmp_konto order by 1;
Als Ergebnis erhalten Sie:
Wenn Sie das FIN -Modul nicht mehr benötigen, starten Sie das Script
$SUPERX_DIR/db/module/fin/fin_modul_entfernen.x.
Dieses Script löscht alle Tabellen, Prozeduren und Abfragen aus der Datenbank, und löscht auch die Einträge im Themenbaum. Danach können Sie den Pfad
$SUPERX_DIR/db/module/fin
löschen.
Die Daten werden aus dem Basissystem extrahiert, und die resultierenden Datentabellen werden mit Schlüsseln verknüpft. Daraus werden aggregierte Hilfstabellen erzeugt, die wiederum als Basis für die Abfragen dienen.
Die Schlüsseltabellen stellen die Metadaten für das FIN -Modul dar. Sie sorgen für eine sinnvolle Aggregierung der Hilfstabellen. Sie werden direkt aus MBS/KAHIKA übernommen und dürfen nicht ohne Weiteres manuell nachgearbeitet werden.
Ein View über die Tabellen fin_buch_archiv und fin_buch_akt (aktuell). Also über archivierte und aktuelle Daten
Neben der Vielzahl von direkt übernommen Felder aus der huel , werden die Basistabellen und der View fin-buch um das Feld monat und kart (aus konten) erweitert.
Konten werden differenziert nach den Dimensionen jahr,monat,kapitel,dr,dr2,titel,fb,ins,ins2,ins3,kostenstelle,kostenart,kostenträger, geldgeber
Die Kontenberechnung findet in dem Script $FIN_PFAD/hilfstabellen/fin _kontenber.sq l statt. Die entsprechenden Formeln finden Sie in dieser Prozedur.
Nach der Installation gibt es in der Kernmodul-Tabelle sachgebiete einen neuen Eintrag Finanzstatistik (50).
Diesem Sachgebiet sind den entsprechenden Masken zugeordnet. Die Masken und Sachgebiete können dann den Usern und Gruppen zugewiesen werden. Nach der Installation haben nur die Administratoren Leserecht für diese Sachgebiete, alle weiteren Rechte müssen manuell vergeben werden.
Die Tabelle systeminfo enthält im Eintrag 3- Finanzstatistik das jeweilige Ladedatum.
Die Tabellen cif und cifx sind zentrale Schlüsseltabellen in Superx und Teil des Kernmoduls. Im aktuellen FIN -Modul befinden sich alle Schlüssel in der Tabelle fin_cifx .
Die Tabelle fin_cifx enthält wie die cifx alphanumerische Schlüssel aus FIN . Im Unterschied zur cifx ermöglicht diese Tabelle einerseits, amtliche Schlüssel abzuleiten, und andererseits hierarchische Zusammenhänge abzubilden (durch ein Parent-Feld). Daraus wiederum werden die "Sichten" für SuperX erzeugt.
Einige Schlüssel sind sowohl in der cif/cifx als auch in der fin_cifx vorhanden. Dies ist notwendig, um SuperX-Abfragen abwärts-kompatibel zu älteren SuperX-Versionen zu halten.
Das Zahlstellenkapitel aus zst_kapitel sowie die Kapitel/Titel aus zst_sonderbuchst (weitere Sonderbuchungsstellen) werden mit aus MBS entladen und in die Tabelle fin_irrelevant eingespielt.
Auf SuperX-Seite werden dann standardmäßig alle Buchungen auf den entsprechenden Kapitel/Titeln gelöscht.
Sie können ggfs. in preparation.sql Einträge löschen oder weitere hinzufügen.
Hilfstabellen im FIN -Modul sind harmonisierte Datentabellen, die aus den Basisdatentabellen gebildet werden. Die Kontenberechnung wird in SuperX komplett neu durchgeführt. Da durch lassen sich leichter Abfragen und Berichte aus SuperX erzeugen, da jede Hilfstabelle alle notwendigen Attribute zu einem vorgegebenen Zeitpunkt in einer Tabelle vorhält.
Wie die FIN - Datentabellen werden die Hilfstabellen bei jedem Update komplett neu erzeugt. Je nach Datenvolumen und Rechnerkapazität können sehr unterschiedliche Laufzeiten resultieren. Bei der Installation und für erste Tests sollte deshalb vorsorglich ein abgeschottetes Rechnersystem verwandt werden.
In der Hilfstabelle fin_konto_aggr finden sich aggregierte Werte für die in der aktuellen Datenbankbeschreibung dokumentieren Felder. Sie ist die zentrale Hilfstabelle für alle Abfragen, die nicht auf Einzelbuchungen zurückgreifen müssen.
Die Hilfstabelle bildet einen Datenwürfel ohne kamerale Merkmale, und wird im Budgets Datenblatt sowie im Joolap-FIN Würfel benutzt.
Es werden folgende Fibu-Tabellen aus FSV eins zu eins übernommen:
fibu_auswertung_art
fibu_auswertung_definition
fibu_auswertung_konten_zuordnung
fibu_kont
fibu_kontenstand
fin_fibu_journal
Im Fin-Modul haben sie das Kürzel fin_ vorangestellt.
Das fibu_journal wird derzeit noch nicht ausgewertet.
Die Auswertung Finanzrechnung / Kaufm. Auswertungen / Kaufm. Abschluss bietet die Möglichkeit Bilanzen und GuV in Edustore darzustellen s.u.
In den Masken können Querabhängigkeiten bei der Auswahl von Deckungringen, Titeln etc abgebildet werden. (z.B. werden nach Auswahl von Haushaltsjahr, Kapitel und Deckungsring nur die zugehörigen Buchungsabschnitte/FBs zur Auswahl angeboten).
MBS-Benutzer finden alle inhaltlichen Auswertungen unter dem Knoten „Haushalt“.
Kahika-Benutzer finden zusätzlich einen Knoten „Auswertung nach Buchungsabschnitt (Haushalt)“.
Bei Kahika als Quellsystem ist die Verwendung der Felder Buchungsabschnitt und Kostenstelle unterschiedlich. Die Spezifikation wurde mit der Uni Karlsruhe entwickelt.
Kahika-Quellsystem: Auswertung nach Buchungsabschnitt (Haushalt):
1. Sowohl bei der Darstellung der BA-Auswahlliste als auch bei der Ergebnisberechnung greifen die Benutzerrechte für kamerale Einheiten (fin_user_kam).
2. Das Feld Filter für BA (Kostenstelle) ist ein SuperX-Sichtfeld, das Baumstruktur aufweist und alternative Hierarchien unterstützt.
3. Das Feld Filter für BA (Kostenstelle) wirkt sich direkt auf die Auswahlliste des Feldes Buchungsabschnitt aus.
4. Wird eine Kostenstelle ausgewählt, so werden in der BA-Liste nur zugehörige BAs zur Auswahl gestellt.
5. Die ausgewählte Kostenstelle wird bei der Ergebnisberechnung nicht selber abgefragt. Es findet dabei also keine direkte Kostenstellen-Einschränkung statt.
6. Die in der Maske selektierten BAs werden bei der Ergebnisberechnung berücksichtigt.
7. Wurde eine Kostenstelle (als Filter f. Ba) gewählt, aber kein BA, so werden bei der Ergebnisberechnung trotzdem nur die BAs berücksichtigt, die sich in der gefilterten BA-Liste befinden.
Kahika-Quellsystem: Abfragen unter dem Knoten „Haushalt“
1. Das Feld Buchungsabschnitt ist eine Mehrfachauswahlfeld (Liste / Feldart 1), dessen Füllung abhängig von Kapitel, dr etc ist. Bei der Darstellung der BA-Auswahlliste werden die BAs dargestellt, die bei den berechtigten Kostenstelle vorkommen (entsprechend der ausgewählten Kostenstellen-Sicht und deren Stand) – das Vorkommen wird in der Tabelle fin_used_inst geprüft. fin_used_inst wird aus den tatsächliche Buchungen gefüllt. Kamerale Rechte aus fin_user_kam werden nicht berücksichtigt.
2. Ausgewählte BAs werden bei der Ergebnisberechnung berücksichtigt. Es findet dabei also eine direkte BA-Einschränkung statt.
3. Wurde kein BA ausgewählt, findet keine BA-Einschränkung entsprechend des Buttons statt. Die Ergebnistabelle ist also unabhängig von den BA-Rechten des Benutzers und der dynamisch erzeugten Liste des Masken-Buttons.
4. Das Feld Kostenstelle auf der Maske hat keine Querabhängigkeit von BA (technisch derzeit nicht möglich). Wenn man es anklickt, erscheinen immer alle berechtigen Kostenstellen als Sicht (inkl. alt.Hierarchie).
5. Das Feld Kostenstelle wird aus fin_inst gefüllt, es greifen die in user_institution definierten Rechte
Bei den Abfragen kann im Feld Budgettyp für Kahika-Benutzer auf einzelne Kassenkennzeichen und für MBS-Benutzer auf Einträge aus der Tabelle k_sollbuschl eingeschränkt werden.
Da Abfrage nur läuft, wenn ein spezieller XSL-Parser aktiviert wird, wird sie standardmäßig nicht angezeigt. Wenn Sie sie benutzen wollen, müssen Sie im XML-Frontend unter Abfragen/Administration/Masken/Maske suchen die Maske 23410-HÜL-PDF auswählen, nach dem Abschicken auf Bearbeiten und im Bearbeitungsformular als Frontend XML auswählen (die Benutzung im Applet ist nicht möglich).
Dieser Schritt muss wiederholt werden, wenn Sie zukünftig weitere Upgrades eingespielen.
Alternativ können Sie unter db/module/fin/conf eine Datei customize.sql anlegen und darin den folgenden Befehl aufnehmen:
up date maskeninfo set mac ro=1 where tid=23410;
Für die PDF-Erzeugung wird der XSL-Parser Saxon benötigt. Sie aktivieren diesen, wenn Sie in der Datei webserver/tomcat/webapps/superx/WEB-INF/web.xml bei der Servlet-Definition des SuperXManagers einen init-param Eintrag hinzufügen (rot).
<servlet-name>
SuperXManager
</servlet-name>
<servlet-class>
de.superx.servlet.SuperXManager
</servlet-class>
<init-param>
<param-name>xsl_processor</param-name>
<param-value>net.sf.saxon.TransformerFactoryImpl</param-value>
</init-param>
<load-on-startup>50</load-on-startup>
</servlet>
Tomcat mus neu gestartet werden.
Wenn dieser Eintrag fehlt, führt das Aufrufen des HÜL-PDF Berichts zu einer Fehlermeldung.
Anders als bei anderen Berichten werden im HÜL-Bericht bei eingeschränkten Usern nur kamerale Rechte geprüft, d.h. evtl. definierte Kostenstelleneinschränkungen werden nicht berücksichtigt.
(Der Bericht verarbeitet nicht spezielle Berliner Buchungsschlüssel und wird daher dort nicht angezeigt).
Die Abfrage liefert eine Übersicht für die Titel eines Deckungsrings.
Die Maske erlaubt Einschränkungen nach Haushaltsjahr, Zeitraum (einzelne Monate oder Quartale), Kapitel, Deckungsring sowie den vier kameralen Ebenen (Buchungsabschnitt, Projekt, 3. und 4. Ebene). Bei MBS-Benutzern können die ersten zwei Ebenen als FB/Projekt und Ins/Ausgabeart angezeigt werden.
Weitere Einschränkungsmöglichkeiten gehen auf Kostenarten, Kostenträger und Budgetherkunft (Geldgeber).
Für Kostenarten kann eingestellt werden, ob bei der Einschränkung auf eine Kostenart, standardmäßig auch alle untergeordneten berücksichtigt werden sollen oder nicht.
Das Feld "Filter Finanzen" kann hochschulspezifisch gefüllt werden .
Die Tabelle zeigt für den ausgewählten Deckungsring die Summen einzelner Titel und die Gesamtsumme für den Deckungsring und zwar für die folgenden Spalten:
Spalten |
Herkunft MBS |
Herkunft KAHIKA |
Haushaltsansatz |
hhans |
Buchungen der Vorgangsarten 2,3,7 oder 8 |
Zuweisungen /Akuelles Soll |
Dr-Konten: ans_a Haushaltausgabetitel: akts Drittm-Ausgabetitel: akts Haushalts-Einnahmetitel: akts Drittm-Einnahmetitel: akts
|
- |
Sperre |
sperre |
- |
Angeordnet (A) |
Dr-Konten: ausz-soll Drittm-Ausgabetitel: ausz-soll |
ausz (Bewegungen Ausgabetitel Vorgangsarten 4,5) |
Off.Soll(A) |
Dr-Konten: soll-ein_a Titel-Konten: soll-ein |
- |
Angeordnet (E) |
Dr-Konten: soll_e-ausz_e Haushaltseinnahmetitel: soll-ausz Drittmitteleinnahmetitel: soll-ausz
|
ein (Bewegungen Einnametitel Vorgangsarten 4,5) |
Off.Soll(E) |
Dr-Konten: soll_e-ein_e Titel-Konten: soll-ein |
- |
Festgelegt |
Dr-Konten: fest Drittm-Ausgabetitel: fest Haushalts-Einnahmetitel: fest Drittm-Einnahmetitel: 0 |
- |
Verfügbar (mit Festlegung) |
Dr-Konten: ans_a-ausz+ein_a-fest Drittm-Ausgabetitel: akts -ausz + ein – fest Haushalts-Einnahmetitel: - Drittm-Einnahmetitel: - |
hhans+ausz+ein |
Die genaue Berechnung findet sich in den Dateien prozeduren/proc_sp_fin_kontenber.sql und hilfstabellen/fin_konto_aggr_fuellen.sql.
Die Maske erlaubt Einschränkungen nach Haushaltsjahr, Zeitraum (einzelne Monate oder Quartale), Kapitel, Deckungsring sowie den vier kameralen Ebenen (Buchungsabschnitt, Projekt, 3. und 4. Ebene). Bei MBS-Benutzern können die ersten zwei Ebenen als FB/Projekt und Ins/Ausgabeart angezeigt werden.
Weitere Einschränkungsmöglichkeiten gehen auf Kostenarten, Kostenträger und Budgetherkunft (Geldgeber).
Für Kostenarten kann eingestellt werden, ob bei der Einschränkung auf eine Kostenart, standardmäßig auch alle untergeordneten berücksichtigt werden sollen oder nicht.
Im Feld Budgettyp kann für Kahika-Benutzer auf einzelne Kassenkennzeichen und für MBS-Benutzer zukünftig auf Einträge aus der Tabelle k_sollbuschl eingeschränkt werden.
Das Feld "Filter Finanzen" kann hochschulspezifisch gefüllt werden .
Die Tabelle zeigt für den ausgewählten Titel sowie ggfs. Untertitel und die Titelgruppe, die folgenden Werte:
Spalten |
Herkunft MBS |
Herkunft KAHIKA |
Reste |
Dr-Konten: reste Drittm-Ausgabetitel: - Haushalts-Einnahmetitel: - Drittm-Einnahmetitel: vojs
|
- |
Haushaltsansatz/Zuweisungen |
hhans |
Buchungen der Vorgangsarten 2,3,7 oder 8 |
Akuelles Soll |
Dr-Konten: akts Haushaltausgabetitel: akts Drittm-Ausgabetitel: - Haushalts-Einnahmetitel: akts Drittm-Einnahmetitel: ein+ausz+vojs
|
- |
Sperre |
sperre |
- |
Angeordnet (A) |
Dr-Konten: ausz-soll Drittm-Ausgabetitel: ausz-soll |
ausz (Bewegungen Ausgabetitel Vorgangsarten 4,5) |
Off.Soll(A) |
Dr-Konten: soll-ein_a Titel-Konten: soll-ein |
- |
Angeordnet (E) |
Dr-Konten: soll_e-ausz_e Haushaltseinnahmetitel: soll-ausz Drittmitteleinnahmetitel: soll-ausz
|
ein (Bewegungen Einnametitel Vorgangsar ten 4,5) |
Off.Soll(E) |
Dr-Konten: soll_e-ein_e Titel-Konten: soll-ein |
- |
Festgelegt |
Dr-Konten: fest Drittm-Ausgabetitel: fest Haushalts-Einnahmetitel: fest Drittm-Einnahmetitel: 0 |
- |
Verfügbar (ohne Festlegung) |
Dr-Konten: ans_a-ausz+ein_a Drittm-Ausgabetitel: akts -ausz + ein Haushalts-Einnahmetitel: - Drittm-Einnahmetitel: - |
hhans+ausz+ein |
Verfügbar (mit Festlegung) |
Dr-Konten: ans_a-ausz+ein_a-fest Drittm-Ausgabetitel: akts -ausz + ein – fest Haushalts-Einnahmetitel: - Drittm-Einnahmetitel: - |
hhans+ausz+ein |
|
|
|
|
|
|
Die Maske erlaubt Einschränkungen nach Haushaltsjahr, Zeitraum (einzelne Monate oder Quartale), Kapitel, Deckungsring sowie den vier kameralen Ebenen (Buchungsabschnitt, Projekt, 3. und 4. Ebene). Bei MBS-Benutzern können die ersten zwei Ebenen als FB/Projekt und Ins/Ausgabeart angezeigt werden.
Weitere Einschränkungsmöglichkeiten gehen auf Kostenarten, Kostenträger und Budgetherkunft (Geldgeber).
Für Kostenarten kann eingestellt werden, ob bei der Einschränkung auf eine Kostenart, standardmäßig auch alle untergeordneten berücksichtigt werden sollen oder nicht.
Im Feld Budgettyp kann für Kahika-Benutzer auf einzelne Kassenkennzeichen und für MBS-Benutzer zukünftig auf Einträge aus der Tabelle k_sollbuschl eingeschränkt werden.
Das Feld "Filter Finanzen" kann hochschulspezifisch gefüllt werden .
Die Tabelle zeigt die folgenden Spalten:
Spalten |
Herkunft MBS |
Herkunft KAHIKA |
Haushaltsansatz/Zuweisungen |
hhans |
Buchungen der Vorgangsarten 2,3,7 oder 8 |
Einmalige Zuweisungen |
|
nach Kassenkennzeichen (in SuperX "Budgettyp") |
Reste |
Dr-Konten: reste Drittm-Ausgabetitel: - Haushalts-Einnahmetitel: reste Drittm-Einnahmetitel: vojs
|
- |
Einnahmen |
ein-ausz |
ein |
Einnahmen Verwaltung |
muss von den Hochschulen individuell gepflegt werden im Sx-Repository (z.B. über Titel/fikr) |
|
Budget-Summe |
Summe 1-4
|
|
Zweckgebundene Zuweisungen |
muss von den Hochschulen individuell gepflegt werden im Sx-Repository (z.B. über Kassenkennzeichen) |
|
Zweckgebundene Drittmittel |
muss von den Hochschulen individuell gepflegt werden im Sx-Repository (z.B. über Drittmittelsicht) |
Die Maske erlaubt Einschränkungen nach Haushaltsjahr, Zeitraum (einzelne Monate oder Quartale), Kapitel, Deckungsring sowie den vier kameralen Ebenen (Buchungsabschnitt, Projekt, 3. und 4. Ebene). Bei MBS-Benutzern können die ersten zwei Ebenen als FB/Projekt und Ins/Ausgabeart angezeigt werden.
Weitere Einschränkungsmöglichkeiten gehen auf Kostenarten, Kostenträger und Budgetherkunft (Geldgeber).
Für Kostenarten kann eingestellt werden, ob bei der Einschränkung auf eine Kostenart, standardmäßig auch alle untergeordneten berücksichtigt werden sollen oder nicht.
Im Feld Budgettyp kann für Kahika-Benutzer auf einzelne Kassenkennzeichen und für MBS-Benutzer zukünftig auf Einträge aus der Tabelle k_sollbuschl eingeschränkt werden.
Das Feld "Filter Finanzen" kann hochschulspezifisch gefüllt werden .
Spalten |
Herkunft MBS |
Herkunft KAHIKA |
Haushaltsansatz/Zuweisungen |
hhans |
Buchungen der Vorgangsarten 2,3,7 oder 8 |
Ausgaben |
ausz-ein
|
ausz (Ausgabetitel -Bewegungen Vorgangsarten 4,5) |
Einnahmen |
ein-ausz |
ein (Einnahmetitel Bewegungen Vorgangsarten 4,5) |
Festgelegt |
Dr-Konten: fest Drittm-Ausgabetitel: fest Haushalts-Einnahmetitel: fest Drittm-Einnahmetitel: 0 |
- |
Verfügbar (mit Festlegung) |
Dr-Konten: ans_a-ausz+ein_a-fest Drittm-Ausgabetitel: akts -ausz + ein – fest Haushalts-Einnahmetitel: - Drittm-Einnahmetitel: - |
hhans+ausz+ein |
Die Maske erlaubt Einschränkungen nach Haushaltsjahr, Zeitraum (einzelne Monate oder Quartale), Kapitel, Deckungsring sowie den vier kameralen Ebenen (Buchungsabschnitt, Projekt, 3. und 4. Ebene). Bei MBS-Benutzern können die ersten zwei Ebenen als FB/Projekt und Ins/Ausgabeart angezeigt werden.
Weitere Einschränkungsmöglichkeiten gehen auf Kostenarten, Kostenträger und Budgetherkunft (Geldgeber).
Für Kostenarten kann eingestellt werden, ob bei der Einschränkung auf eine Kostenart, standardmäßig auch alle untergeordneten berücksichtigt werden sollen oder nicht.
Im Feld Budgettyp kann für Kahika-Benutzer auf einzelne Kassenkennzeichen und für MBS-Benutzer zukünftig auf Einträge aus der Tabelle k_sollbuschl eingeschränkt werden.
Das Feld "Filter Finanzen" kann hochschulspezifisch gefüllt werden.
Spalten |
Herkunft MBS |
Herkunft KAHIKA |
Haushaltsansatz/Zuweisungen |
hhans |
Buchungen der Vorgangsarten 2,3,7 oder 8 |
Ausgaben |
ausz-ein
|
ausz (Ausgabetitel -Bewegungen Vorgangsarten 4,5) |
Einnahmen |
ein-ausz |
ein (Einnahmetitel Bewegungen Vorgangsarten 4,5) |
Festgelegt |
Dr-Konten: fest Drittm-Ausgabetitel: fest Haushalts-Einnahmetitel: fest Drittm-Einnahmetitel: 0 |
- |
Verfügbar (mit Festlegung) |
Dr-Konten: ans_a-ausz+ein_a-fest Drittm-Ausgabetitel: akts -ausz + ein – fest Haushalts-Einnahmetitel: - Drittm-Einnahmetitel: - |
hhans+ausz+ein |
Diese Abfrage bietet die Möglichkeit, die Bilanz oder Guv für ein Jahr bzw. Quartal darzustellen.
Es gibt folgende Auswahlfelder auf der Maske:
–
Jahr
Ein Jahr muss zwingend ausgewählt werden.
–
Quartal
Das Feld Quartal ist optional, wenn Sie nichts auswählen, wird für das ganze Jahr berechnet, wenn Sie ein Quartal auswählen, kommen nur die Werte für das Quartal raus
–
BGA
Hier müssen Sie auswählen für welchen BGA Sie eine Bilanz bzw. Guv wollen.Es ist auch möglich über alle BGAs oder alle konsolidierten BGAs (die bilanzrelevant sind) auszuwerten.
–
Art des Berichts
Hier wählen Sie aus, ob Sie die Bilanz oder eine
Gewinn- und Verlustrechnung sehen wollen
–
Sachkonten anzeigen?
Hier können Sie auswählen, ob Sachkonten angezeigt werden sollen oder nicht und falls ja, ob alle Sachkonten angezeigt werden sollen oder nur die bebuchten
–
Bericht
Hier ist standardmäßig Kaufm. Abschluss gewählt. Zu Entwicklungs- oder Kontrollzwecken können Sie bei Bedarf das „generische Standardlayout“ wählen, es wird dann eine HTML-Tabelle mit teilweise internen Spalten angezeigt.
–
Ausgabeformat
Hier können Sie auswählen ob die Ausgabe als PDF, Exceldatei, HTML oder anders erfolgen soll.
Als Ergebnis wird die Bilanz oder GuV dargestellt, so wie sie in FSV hinterlegt ist.
Benutzerrechte für die kameralen Ebenen 1 bis 4 (FB/Projekt (Kahika Buchungsabschnitte), Ins/Ausgabeart (Kahika:Projekt), ins3 und ins4) werden in der Datenbanktabelle fin_user_kam hinterlegt in den Spalten userid, buchungsab_fb, projnr_ins,ins2,ins3. Wenn für einen User ein Eintrag 0 in der Spalte buchungsab_fb bzw. projnr_ins, ins2,ins3 ist, darf er alle Einheiten sehen.
Zur einfachen Bearbeitung der Userrechte gibt es ein spezielles Formular. Dieses kann im Menü erreicht werden über Finanzrechnung Administration / Benutzerrechte für kamerale Einheiten.
Hinter dem Link Bearbeiten/Auswahlformular kommt ein Bearbeiten-Dialog bei dem man Einheiten per Auswahlbox auswählen kann:
Beim Link Bearbeiten/Direkteingabe erscheint ein Bearbeiten-Dialog, bei dem Schlüssel direkt eingegeben werden können.
Normalerweise werden beim Laden aus dem Vorsystem alle Daten gelöscht und dann neu eingefügt. Dies in bei Haushaltssystemen notwendig, weil sich Kontenstände oder Buchungen auch rückwirkend ändern können. Aus Performancegründen kann es jedoch sinnvoll sein, nur die Daten ab einem neueren Haushaltsjahr X zu laden, wenn
• sichergestellt ist, daß sich Konten und Buchungen vor dem Jahr X nicht mehr ändern.
• Stammdaten (z.B. Kostenstellen), die vor dem Jahr X bebucht wurden, nicht gelöscht werden
Wenn diese Voraussetzungen gegeben sind, kann man es wie folgt steuern:
• Setzen Sie in der Konstantentabelle die Konstante FIN_START_BERECHNUNG einen Wert > 1900. Wenn Sie dort eine Jahreszahl wie z.B. 2010 eintragen, werden in den Tabellen fin_buch_akt und fin_konto_akt nur die Jahre ab diesem Jahr neu berechnet.
• Setzen Sie dann den Entladeparameter START_FIN auf das Jahr 2010. Von nun wird beim Entladen nur noch das Jahr 2010 und höher ausgetauscht.
Wenn Sie dieses Feature nutzen wollen, legen Sie vorher eine Sicherung an und prüfen Sie, ob sich alles nach Ihren Vorstellungen verhält.
Bei MBS als Quellsystem kann es sein daß immer komplett entladen werden, da sich Buchungen auch nachträglich noch ändern können (rbetrag). In diesem Fall wird der komplette Inhalt der Tabelle fin_buch_akt gelöscht und neu gefüllt aus fin_buch_neu .
Die folgende Anleitung gilt nur für SuperX (nicht Edustore): Bei Kahika als Quellsystem werden Buchungen nur ausgetauscht. D.h. Buchungen in der fin_buch_akt werden gelöscht, wenn entsprechende neue Einträge (Rechnungsjahr + Journalnummer) in der fin_buch_neu vorhanden sind. Diese neuen Einträge in der fin_buch_neu werden in die fin_buch_akt übernommen. Ältere Bestände werden jedoch nicht gelöscht. Dadurch ist es bei Kahika als Quellsystem möglich, nicht immer den kompletten Bestand zu entladen, sondern nur die Buchungen mit den Journalnummern, die seit dem letzten Entladevorgang dazugekommen sind.
Als Teil des Entladevorgangs wird die Datei FIN_ENV aufgerufen, die den Inhalt der Datei start_journalnr.dat in eine Umgebungsvariable lädt, die beim Entladevorgang berücksichtigt wird. Steht in der start_journalnr.dat -1 oder 0 wird alles entladen. Als Teil des fin_update-Prozesses, wird die höchste in SuperX vorhandene journalnummer des laufenden Jahres entladen nach $FIN_LOAD_PFAD/start_journalnr.dat. Falls die Entladeroutine bei Ihnen auf einem anderen Rechner liegt, kann diese Datei dort hinkopiert werden oder Sie pflegen sie auf Kahika-Rechner manuell.
Buchungen und entsprechende Konten, die sich nicht mehr ändern, können von den Tabellen fin_buch_akt und fin_konten_akt in die Archiv-Tabellen fin_buch_archiv und fin_konten_archiv übernommen werden. Diese müssen in den *_akt Tabellen gelöscht werden und dürfen dann nicht mehr aus dem Quellsystem entladen werden.
0.2 (ab 12/2012)
Entwickler |
Meikel Bisping, Daniel Quathamer |
• Berechtigung für kamerale Einheiten von 2 auf 4 Ebenen erweitert
• Teilarchivierung mit Konstante FIN_START_BERECHNUNG
• KLR-Periode oder Buchungsdatum auswertbar
• Abfrage "Budget nach Kostenstelle" erweitert um Spalten Ausgaben und Saldo.
• Neue Abfrage "Budgets Datenblatt"
• In vielen Masken wurde die Feldreihenfolge so umgestellt, daß zusammengehörige Felder im einspaltigen Layout untereinander stehen, z.B. die kameralen Ebenen 3 und 4.
0.1 (ab 04/2006)
Entwickler |
Marlies Winterstein, Christine Ermantraut, Meikel Bisping, Daniel Quathamer, Christoph Litz |
• Völlige Überarbeitung des Datenmodells: Integration von MBS und KAHIKA.
• Postgres-Portierung
• Bei Kontenberechnung separate Auswertung von Kostenstellen/Trägern/Arten möglich
(02/2003)
Entwickler |
Marlies Winterstein, Christine Ermantraut |
• Entladeroutinen und Kontenberechnung in MBS und KAHIKA
• Lehreinheits- und Inst.-bezogene Sichten möglich
• Zeitbezogene Hilfstabellen
Die folgende Tabelle aus einer Arbeitgruppe der HIS GmbH und diversen Hochschulen in BadenWürttemberg zeigt drei verschiedene Geldgebersichten:
Die folgenden Geldgebergruppen werden als Drittmittel klassifiziert:
Nr. KLR-Geldgeber |
Geldgeber |
11 |
Bundesministerium für Bildung und Forschung |
12 |
Bundesministerium für Wirtschaft und Technologie |
19 |
Andere Bundesministerien |
21 |
Sächsisches Staatsministerium für Wissenschaft und Kunst |
22 |
Sächsisches Staatsministerium für Wirtschaft, Arbeit und Verkehr |
28 |
Andere sächsische Ministerien |
29 |
Ministerien anderer Bundesländer |
31 |
Deutsche Forschungsgemeinschaft |
32 |
Internationale Organisationen |
33 |
Europäische Union |
34 |
Wirtschaft |
35 |
Arbeitsgemeinschaft industrieller Forschungsvereinigungen „Otto von Guericke“ e. V. (AiF) |
36 |
Stiftungen |
37 |
drittmittelfinanzierte Professuren (z. B. Stiftungsprofessuren) |
38 |
Fördergesellschaften |
39 |
Sonstige Öffentliche Hand |
40 |
Sonstige Private Hand |
1 Kernmodul+ Handbücher beziehen Sie über http://download.superx-projekt.de
2 Es gibt mehrere Möglichkeiten zum Entladen der Rohdaten. Es ist z.B. auch möglich, dem User der SuperX-Datenbank direkten Zugang zum Quell-Rechner zu geben und die Entladescripte direkt auf dem SuperX-Rechner zu starten.
3 Eine Anleitung zur generellen Planung des Datenaustauschs finden Sie im Administrationshandbuch des Kernmoduls.