Administratorhandbuch SuperX-FIN-Modul

SuperX-Administrationshandbuch
FIN -Modul

 

 

w w w . M e m T e x t . d e

 

 

 

Supportadresse
support@superx-projekt.de

 

http://www.superx-projekt.de

 

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 .

 

Inhaltsverzeichnis

1Release Notes

1.1Fin 02 – Mai 2013

2Einführung

2.1Hintergründe

2.2Kurzüberblick

3Installation des FIN -Moduls

3.1Kurzanleitung

3.2Ordnerstruktur und Umgebung des FIN -Moduls

3.3Entladen der FIN -Daten

3.3.1Allgemeines

3.3.1.1Verfahren beim Datentransfer

3.3.2Einrichtung der Entladescripte

3.3.2.1Allgemeine Parameter zum Entladen

3.3.2.2Spezielle Parameter zum Datenschutz

3.3.2.3Spezielle Variablen für die Unix-Shellscripte

3.3.3Besonderheiten beim 'Push'-Verfahren

3.3.4Start des Entladens

3.3.5Hochschulspezifische Versionen (insb. Karlsruhe)

3.4Erzeugung der Prozeduren, Schlüssel und Datentabellen

3.5Hochschulspezifische Anpassungen

3.5.1Zentrale Konstanten

3.5.2Verfügbar

3.5.3Leere Konten

3.5.4Hochschul-Repository: SQL-Ausdrücke für zentrale Konzepte

3.5.5Button-Beschriftungen

3.5.6Geldgeber zu Drittmitteln zuordnen

3.5.6.1Geldgeber KLR (Kurz)

3.5.6.2Mittelherkunft KLR

3.5.7Kostenstellen zuweisen

3.5.8Filter Finanzen

3.5.9Constraint auf Rechtetabelle

3.6Einladen der FIN -Daten nach SuperX

3.6.1Wichtige Transformationen

3.6.2Prüfprotokoll und Prüfsummen

3.6.3Erste Datenkontrollen bei FSV als Liefersystem

3.6.3.1Datenkontrolle Konto auf Titelebene

3.6.3.2Datenkontrolle Einnahmen / Ausgaben nach Geldgeber

3.6.3.3Datenkontrolle Budget nach kameralen Einheiten

3.6.3.4Datenkontrolle Kapitel/Titelbericht

3.6.3.5Datenkontrolle Quartalsbericht

3.6.3.6Datenkontrolle Titelbericht

3.6.3.7Datenkontrolle Verfügbares Budget nach Einnahmen/Ausgaben

3.6.3.8Datenkontrolle

3.6.3.9Datenkontrolle Kaufmännischer Quartalsbericht

3.7Entfernen des FIN -Moduls

4Bestandteile des FIN -Moduls

4.1Daten- und Schlüsseltabellen aus FIN

4.1.1View fin_buch

4.1.2Tabelle fin_konten

4.2Weitere Schlüsseltabellen für SuperX

4.2.1Die Tabelle Sachgebiete und Systeminfo

4.2.2Die Tabellen cif / cifx und fin_cifx

4.3Nicht berücksichtigte Buchungen – fin_irrelevant

4.4Hilfstabellen

4.4.1Tabelle fin_konto_aggr

4.4.2Tabelle fin_budget_cube

4.5 Fibu-Tabellen

4.6Abfragen für den Bereich Finanzrechnung

4.6.1Hinweis zu Querabhängigkeiten

4.6.2Gruppierung „Haushalt“ und „Auswertung nach Buchungsabschnitt (Haushalt)“

4.6.3Zum Feld Budgettyp

4.6.4Einzelbuchungen - Hül-PDF

4.6.5Hintergrundinfos zu Kontostandsabfragen

4.6.5.1Konto auf DR-Ebene pro Titel

4.6.5.1.1Maske

4.6.5.1.2Tabelle

4.6.5.2Kontostand pro Titel und Deckungsring

4.6.5.2.1Maske

4.6.5.2.2Tabelle

4.6.5.3verfügbares Budget nach Kostenstellen

4.6.5.3.1Maske

4.6.5.3.2Tabelle

4.6.5.4verfügbares Budget nach Ausgaben/Einnahmen

4.6.5.4.1Maske

4.6.5.4.2Tabelle

4.6.5.5Ausgaben/Einnahmen nach Budgetherkunft (Geldgeber)

4.6.5.5.1Maske

4.6.5.5.2Tabelle

4.6.6 Berichte für den Bereich Kaufm. Auswertungen

4.6.6.1.1 Kaufm. Abschluss

5Benutzerrechte

6Datenbestände und Teilarchivierung

6.1Besonderheiten Quellsystem MBS

6.2Besonderheiten Quellsystem KAHIKA

7Versionshistorie

8Anhang

8.1Geldgebersichten und Drittmittel

8.1.1Geldgeber Systematik Baden-Württemberg

8.1.2Geldgeber Systematik Sachsen

 

1 Release Notes

1.1 Fin 02 Mai 2013

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.

 

2 Einführung

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.

 

2.1 Hintergründe

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.

2.2 Kurzüberblick

Die Module enthalten die wichtigsten Prozeduren, Tabellen und Abfragen für die jeweilige Datenquelle. Folgende Tabellen sind generell zu unterscheiden:

 

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:

support@superx-projekt.de


 

3 Installation des FIN -Moduls

Um das FIN -Modul zu installieren, muss man zunächst das Kernmodul von SuperX installieren 1 . Das aktuelle Fin-Modul ist auf das Kernmodul 3.5 abgestimmt.

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.

.

3.1 Kurzanleitung

Folgende Arbeitsschritte sind notwendig:

3.2 Ordnerstruktur und Umgebung des FIN -Moduls

 

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
SQL_ENV

SUPERX_MODULE=$SUPERX_DIR/db/module; export SUPERX_MODULE
SUPERX_ROHDATEN=/rohdaten; export SUPERX_ROHDATEN

FIN_PFAD=$SUPERX_MODULE/fin; export FIN_PFAD
FIN_ERRORDAT=$FIN_PFAD/fin_update.err; export FIN_ERRORDAT
FIN_LOAD_PFAD=$FIN_PFAD/$SUPERX_ROHDATEN; export FIN_LOAD_PFAD

 

Entsprechende Vorgaben sind im Kernmodul bereits vorhanden, Sie müssen diese Pfade ggf. ändern, damit die Scripte und cron-Jobs laufen.

3.3 Entladen der FIN -Daten

3.3.1 Allgemeines

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.

3.3.1.1 Verfahren beim Datentransfer

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.

3.3.2 Einrichtung der Entladescripte

3.3.2.1 Allgemeine Parameter zum Entladen

 

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:
JDBC_PARAM="set search_path to mbs;"

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"

START_FIN

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:
Transaktionen abschalten?

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.

3.3.2.2 Spezielle Parameter zum Datenschutz

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:

 

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.

 

3.3.2.3 Spezielle Variablen für die Unix-Shellscripte

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
JDBC_CLASSPATH="$FIN_LOAD_PFAD/lib/superx3.9.jar:$JDBC_CLASSPATH"

export JDBC_CLASSPATH
Wenn Sie bereits mit dem Kernmodul 4.0 arbeiten, ist dies nicht nötig.

 

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
Umgebung für das Entladescript FIN

##Pfad für Entladedaten:
FIN_PFAD=.        ; export FIN_PFAD  
FIN_LOAD_PFAD=.
export FIN_LOAD_PFAD
##hier muss Unterverzeichnis unl existieren!
#Name der FIN -Datenbank
export DBASE="mbs"
#bei FSV 12 unter Postgres ist dies "hisrm".

SX_CLIENT,
DB_PROPERTIES,
LOGGER_PROPERTIES
und DATABASE

# SX_CLIENT ist die Client-Anwendung zum Zugriff auf die DB

# Mögliche Werte: dbaccess (Informix), psql (Postgres), jdbc (Alle anderen)
SX_CLIENT=dbaccess; export SX_CLIENT
#SX_CLIENT=psql; export SX_CLIENT
#SX_CLIENT=jdbc; export SX_CLIENT
#Wichtig bei jdbc und psql: Die Umgebungsvariable DB_PROPERTIES gibt des Pfad zur db-xxx.properties an.

#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.

 

3.3.3 Besonderheiten beim 'Push'-Verfahren

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).

 

3.3.4 Start des Entladens

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 .

Wenn Sie im Push-Verfahren arbeiten und das rohdaten -Verzeichnis nicht auf dem SuperX-Rechner gemounted ist, müssen das Verzeichnis unl , die fin_unload.err und die superx.datum   dann in das Verzeichnis $FIN_LOAD_PFAD auf dem SuperX-Rechner kopiert werden, ein Script dafür liegt ebenfalls bei ( fin_copy.x ) 3 . Die Umgebungsvariablen für fin_copy.x stehen ebenfalls in FIN_ENV (ganz am Ende).

 

3.3.5 Hochschulspezifische Versionen (insb. Karlsruhe)

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).

3.4 Erzeugung der Prozeduren, Schlüssel und Datentabellen

 

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.

3.5 Hochschulspezifische Anpassungen

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.

3.5.1 Zentrale Konstanten

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
(Vorgabe)

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
-Wenn 1, dann werden mit erster Priorität die COB -Geldgeber übernommen, und um in COB nicht existierende Geldgeber aus FIN   ergänzt.
-Wenn 2, dann wird nur die Tabelle gege aus FIN   genutzt, aber das Feld klr_geldgeber wird aus COB übernommen.

0

FIN   Geldgeber aus FIN

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.
-Wenn 2, dann wird nur die Tabelle gege aus dem Vorsystem   genutzt, aber das Feld klr_geldgeber wird aus der vorhandenen Geldgeber-Tabelle übernommen. Das bedeutet, daß das Merkmal klr_geldgeber aus dem Vorsystem komplett ignoriert wird. Diese Einstellung können Sie benutzen, wenn Sie die Geldgeber-Hierarchien ausschließlich über Browserformulare füllen.

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.
Eine Legende unter der Tabelle zeigt die Bedeutung der Variablen.

 

Nach Änderungen in dieser Tabelle müssen Sie den FIN -Update neu starten.

 

3.5.2 Verfügbar

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).

3.5.3 Leere Konten

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.

3.5.4 Hochschul-Repository : SQL-Ausdrücke für zentrale Konzepte

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
(Be
ispiel)

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. 1. FIN_einmalige_Zuweisungen                                                                          

  2. 2. FIN_Verwaltungseinnahmen                                                                                                                                                                                  

  3. 3. FIN_Zweckgebundene_Zuweisungen                                                                                                                                                                            

  4. 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 der Änderung drücken Sie unten auf "Speichern".

 

 

 

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.

3.5.5 Button-Beschriftungen

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.

 

 

3.5.6 Geldgeber zu Drittmitteln zuordnen

Die Geldgeber werden in unterschiedlichen Sichten gruppiert. Die folgende Abbildung zeigt die verschiedenen Varianten.

 

Folgende Sichten werden mit SuperX mitgeliefert:

 

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.

3.5.6.1 Geldgeber KLR (Kurz)

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.

3.5.6.2 Mittelherkunft KLR

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 .
Sie können die Volltexte der Geldgeber-Kategorien   ändern.

 

 

 

Unterste Ebene
Sie können die Volltexte der Geldgeber ändern und die Gruppierungsebene zuweisen. Die Gruppierungebene entsprichten der obigen "Obersten Ebene".

 

Beachten Sie, dass Sie bei jeder Zeile separat speichern müssen.

 

 

3.5.7 Kostenstellen zuweisen

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.

3.5.8 Filter Finanzen

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.

3.5.9 Constraint auf Rechtetabelle

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);

 

3.6 Einladen der FIN -Daten nach SuperX

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.

3.6.1 Wichtige Transformationen

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:

3.6.2 Prüfprotokoll und Prüfsummen

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.

3.6.3 Erste Datenkontrollen bei FSV als Liefersystem

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.

3.6.3.1 Datenkontrolle Konto auf Titelebene

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.

3.6.3.2 Datenkontrolle Einnahmen / Ausgaben nach Geldgeber

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):

create temp table tmp_gg

(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.

3.6.3.3 Datenkontrolle Budget nach kameralen Einheiten

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.

3.6.3.4 Datenkontrolle Kapitel/Titelbericht

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.

 

 

 

 

 

 

 

 

 

3.6.3.5 Datenkontrolle Quartalsbericht

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;

3.6.3.6 Datenkontrolle Titelbericht

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;

3.6.3.7 Datenkontrolle Verfügbares Budget nach Einnahmen/Ausgaben

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:

 

 

 

 

 

 

 

 

 

 

3.6.3.8 Datenkontrolle Kaufmännischer Abschluss

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:

 

 

 

 

 

 

 

 

3.6.3.9 Datenkontrolle Kaufmännischer Quartalsbericht

Die Maske sieht so aus.

Wählen Sie bei BGA konsolidiert und bei Sachkonten anzeigen nur bebuchte.
 

 

 

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:

 

 

3.7 Entfernen des FIN -Moduls

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.

4 Bestandteile des FIN -Moduls

4.1 Daten- und Schlüsseltabellen aus FIN

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.

 

4.1.1 View fin_buch

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.

4.1.2 Tabelle fin_konten

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.

4.2 Weitere Schlüsseltabellen für SuperX

4.2.1 Die Tabelle Sachgebiete und Systeminfo

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.

4.2.2 Die Tabellen cif / cifx und fin_cifx

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.

 

4.3 Nicht berücksichtigte Buchungen fin_irrelevant

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.

4.4 Hilfstabellen

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.

4.4.1 Tabelle fin_konto_aggr

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.

4.4.2 Tabelle fin_budget_cube

Die Hilfstabelle bildet einen Datenwürfel ohne kamerale Merkmale, und wird im Budgets Datenblatt sowie im Joolap-FIN Würfel benutzt.

4.5 Fibu-Tabellen

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.

4.6 Abfragen für den Bereich Finanzrechnung

4.6.1 Hinweis zu Querabhängigkeiten

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).

4.6.2 Gruppierung Haushalt und Auswertung nach Buchungsabschnitt (Haushalt)

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. 1. Sowohl bei der Darstellung der BA-Auswahlliste als auch bei der Ergebnisberechnung greifen die Benutzerrechte für kamerale Einheiten (fin_user_kam). 

  2. 2. Das Feld Filter für BA (Kostenstelle) ist ein SuperX-Sichtfeld, das Baumstruktur aufweist und alternative Hierarchien unterstützt.  

  3. 3. Das Feld Filter für BA (Kostenstelle) wirkt sich direkt auf die Auswahlliste des Feldes Buchungsabschnitt aus. 

  4. 4. Wird eine Kostenstelle ausgewählt, so werden in der BA-Liste nur zugehörige BAs zur Auswahl gestellt. 

  5. 5. Die ausgewählte Kostenstelle wird bei der Ergebnisberechnung nicht selber abgefragt. Es findet dabei also keine direkte Kostenstellen-Einschränkung statt. 

  6. 6. Die in der Maske selektierten BAs werden bei der Ergebnisberechnung berücksichtigt. 

  7. 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. 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. 2.   Ausgewählte BAs werden bei der Ergebnisberechnung berücksichtigt. Es findet dabei also eine direkte BA-Einschränkung statt. 

  3. 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. 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. 5. Das Feld Kostenstelle wird aus fin_inst gefüllt, es greifen die in user_institution definierten Rechte  

 

4.6.3 Zum Feld Budgettyp

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.

4.6.4 Einzelbuchungen - Hül-PDF

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).

 

4.6.5 Hintergrundinfos zu Kontostandsabfragen

4.6.5.1 Konto auf DR-Ebene pro Titel

Die Abfrage liefert eine Übersicht für die Titel eines Deckungsrings.

4.6.5.1.1 Maske

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 .

4.6.5.1.2 Tabelle

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
Haushaltausgabetitel: 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
Haushaltausgabetitel: fest

Drittm-Ausgabetitel: fest

Haushalts-Einnahmetitel: fest

Drittm-Einnahmetitel: 0

-

Verfügbar (mit Festlegung)

Dr-Konten: ans_a-ausz+ein_a-fest
Haushaltausgabetitel: akts-ausz+ein-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.

 

4.6.5.2 Kontostand pro Titel und Deckungsring

4.6.5.2.1 Maske

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 .

 

4.6.5.2.2 Tabelle

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
Haushaltausgabetitel: -

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
Haushaltausgabetitel: 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
Haushaltausgabetitel: fest

Drittm-Ausgabetitel: fest

Haushalts-Einnahmetitel: fest

Drittm-Einnahmetitel: 0

-

Verfügbar (ohne Festlegung)

Dr-Konten: ans_a-ausz+ein_a
Haushaltausgabetitel: akts-ausz+ein

Drittm-Ausgabetitel: akts -ausz + ein

Haushalts-Einnahmetitel:   -

Drittm-Einnahmetitel: -

hhans+ausz+ein

Verfügbar (mit Festlegung)

Dr-Konten: ans_a-ausz+ein_a-fest
Haushaltausgabetitel: akts-ausz+ein-fest

Drittm-Ausgabetitel: akts -ausz + ein – fest

Haushalts-Einnahmetitel:   -

Drittm-Einnahmetitel: -

hhans+ausz+ein

 

 

 

 

 

 

 

 

 

4.6.5.3 verfügbares Budget nach Kostenstellen

4.6.5.3.1 Maske

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 .

 

4.6.5.3.2 Tabelle

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
Haushaltausgabetitel: 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)

 

 

4.6.5.4 verfügbares Budget nach Ausgaben/Einnahmen

4.6.5.4.1 Maske

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 .

 

4.6.5.4.2 Tabelle

 

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
Haushaltausgabetitel: fest

Drittm-Ausgabetitel: fest

Haushalts-Einnahmetitel: fest

Drittm-Einnahmetitel: 0

-

Verfügbar (mit Festlegung)

Dr-Konten: ans_a-ausz+ein_a-fest
Haushaltausgabetitel: akts-ausz+ein-fest

Drittm-Ausgabetitel: akts -ausz + ein – fest

Haushalts-Einnahmetitel:   -

Drittm-Einnahmetitel: -

hhans+ausz+ein

 

4.6.5.5 Ausgaben/Einnahmen nach Budgetherkunft (Geldgeber)

4.6.5.5.1 Maske

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.

 

4.6.5.5.2 Tabelle

 

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
Haushaltausgabetitel: fest

Drittm-Ausgabetitel: fest

Haushalts-Einnahmetitel: fest

Drittm-Einnahmetitel: 0

-

Verfügbar (mit Festlegung)

Dr-Konten: ans_a-ausz+ein_a-fest
Haushaltausgabetitel: akts-ausz+ein-fest

Drittm-Ausgabetitel: akts -ausz + ein – fest

Haushalts-Einnahmetitel:   -

Drittm-Einnahmetitel: -

hhans+ausz+ein

 

 

4.6.6 Berichte für den Bereich Kaufm. Auswertungen

4.6.6.0.1 Kaufm. Abschluss

Diese Abfrage bietet die Möglichkeit, die Bilanz oder Guv für ein Jahr bzw. Quartal darzustellen.

Es gibt folgende Auswahlfelder auf der Maske:

 

Als Ergebnis wird die Bilanz oder GuV dargestellt, so wie sie in FSV hinterlegt ist.

 

5 Benutzerrechte

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.

 

6 Datenbestände und Teilarchivierung

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

Wenn diese Voraussetzungen gegeben sind, kann man es wie folgt steuern:

 

Wenn Sie dieses Feature nutzen wollen, legen Sie vorher eine Sicherung an und prüfen Sie, ob sich alles nach Ihren Vorstellungen verhält.

 

6.1 Besonderheiten Quellsystem MBS

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 .

6.2 Besonderheiten Quellsystem KAHIKA

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.

 

7 Versionshistorie

0.2 (ab 12/2012)

Entwickler

Meikel Bisping, Daniel Quathamer

 

 

0.1 (ab 04/2006)

Entwickler

Marlies Winterstein, Christine Ermantraut, Meikel Bisping, Daniel Quathamer, Christoph Litz

 

 

(02/2003)

Entwickler

Marlies Winterstein, Christine Ermantraut

 

8 Anhang

8.1 Geldgebersichten und Drittmittel

8.1.1 Geldgeber Systematik Baden-Württemberg

Die folgende Tabelle aus einer Arbeitgruppe der HIS GmbH und diversen Hochschulen in BadenWürttemberg zeigt drei verschiedene Geldgebersichten:

 

 
 

8.1.2 Geldgeber Systematik Sachsen

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.