View Categories

Gover to TOPqw-Import

Funktionsweise #

Voraussetzungen #

Es wird ein IIS benötigt, https://dotnet.microsoft.com/en-us/download/dotnet/8.0
Es muss das ASP.NET Core Hosting Bundle installiert sein. SDK wird nicht benötigt.

Je nachdem in welchem Unterordner der Service installiert ist, kann dieser Pfad in der web.config unter ASPNETCORE_PATHBASE angepasst werden.

Die Datenbankverbindung wird in der appsettings.json-Datei unter Connectionstrings/TOPqw definiert. Überprüfen der Datenbankverbindung ist mit der Service-Funktion https://SERVICE_Url/Test.html, damit wird gleichzeitig geprüft, obdie Service-Funktion erreichbar ist.

Import eines Layouts #

Das Layout muss manuell in TOPqw importiert werden, da es dafür in Gover bisher keinen Automatismus gibt. Um das Layout importieren zu können, muss es zuerst aus Gover exportiert werden. Dazu geht man in die Formularverwaltung und klickt beim gewünschten Formular auf Optionen und dann im sich öffnenden Dialog auf „Formular exportieren“. Im sich darauf öffnenden Dialog kann man das Layout als .gov-Datei herunterladen.

Das Layout kann dann über die Webseite des Services für den „Gover-Import zu TOPqw“ in TOPqw importiert werden (siehe Abschnitt Manueller Upload der Bögen bzw. der Layouts).

Details des Layoutimports #

Der Import erfolgt über die Service-Funktion ImportLayout. Beim Hochladen wird zuerst die Struktur geprüft. Es wird ein Json-String mit den Elementen „version“, „title“, „root“ erwartet. Damit unterscheidet sich das Layout bereits vom Bogen, da der Json-String des Bogens anders aufgebaut ist. Es wird zuerst ein HeaderDatensatz in der Tabelle ImportGoverLayouts angelegt. Dort wird auch das originale Json als String abgelegt. Es wird dabei nach der Version und dem Wert Slug aus dem Layout geprüft. Der Slug-Wert ist pro Layout eindeutig. Bei heruntergeladenen Layouts wird goverseitig die Layout-Id auf 0 gesetzt, damit es beim Import eines Layouts in Gover nicht zu Problemen kommt. Wegen der genullten Id, ist ein exportiertes Layout nur noch über den Slug-Wert identifizierbar.

In TOPqw wird für jede Version eines Layouts ein neuer Datensatz angelegt. Da Bögen unterschiedlicher Versionsnummern nicht zwangsläufig vergleichbar sind.

Nachdem der Header-Datensatz gespeichert wurde, werden die Mappings zu den im Layout hinterlegten Feldern gespeichert. Dabei werden aktuell folgende Felder berücksichtigt:

  • Bestätigungs-Element – Ja/nein Frage
  • Datum-Element
  • Zahlfrage-Element
  • Text-Element (Fließtext)
  • Textfrage-Element
  • Uhrzeit-Element
  • Mehrfachauswahl-Element
  • Options-Element (Einzelauswahl (Optionsfelder))
  • Options-Element (Einzelauswahl (Auswahlmenü))

Import eines Bogens #

Der Import wird über einen WebService gelöst, der als Schnittstelle in Gover hinterlegt wird. Damit werden ausgefüllte Bögen automatisch in die TOPqw-Datenbank importiert. Der Import erfolgt über die Service-Funktion ImportBogen. Die Schnittstelle wird in Gover unter Schnittstellen angelegt. Der Schnittstellen-Typ ist „HTTPSchnittstelle„. Unter API-Adresse wird die Urls zur Service-Funktion hinterlegt z.B.: https://URL_zum_Service/Gover/ImportBogen

Des weiteren muss ein API Schlüssel hinterlegt werden. Dieser muss dem in TOPqw hinterlegten API Schlüssel entsprechen. Dafür gibt es in TOPqw die Einstellung „GoverApiKey„. Ein API-Key ist meist eine mindestens 32 Zeichen lange Zeichenfolge aus Klein-, Großbuchstaben und Ziffern.

Die angelegte Schnittstelle kann dann einem oder mehr Formularen zugeordnet werden. Dazu geht man im Formularmanagement in den Bearbeitungsmodus des gewünschten Formulars. Und wechselt unter Formular konfigurieren auf den Reiter Schnittstellen. Die angelegte Schnittstelle kann hier ausgewählt werden.

Details des Bogenimports #

Beim Import wird zuerst die Struktur geprüft. Der Import erfolgt nur wenn die Struktur passt und eine Versionsnummer und der Sug-Wert enthalten sind. Danach wird geprüft, ob das Layout zu dem Bogen bereits in TOPqw importiert wurde. Dies geschieht über den Wert Slug und die Versionsnummer des Layouts. Wenn das Layout noch nicht hochgeladen wurde wird jetzt ein Datensatz angelegt, damit die Zuordnung Bogen und Layout erfolgen kann, sonst wird nur die zugehörige interne Layout-ID zurückgegeben. Sollte dabei ein Fehler auftreten, wird der Fehler: „Fehler beim Speichern der Formulardaten“ ausgegeben.

Dann wird nach dem Kennzeichen der Einrichtung im Bogen gesucht. Dabei wird zuerst in den hinterlegten Mappings in TOPqw nach der Frage gesucht, bei der ZielTOPqw Standortkennzeichen, Aktenzeichen, oder Leistungskennzeichen ist. Der erste gefundene Eintrag wird zurückgegeben. Wenn in den Mappings also ein Aktenzeichen und ein Leistungskennzeichen angeben ist wird nur das Aktenzeichen zurückgegeben. Sollte es kein Mapping geben wird nach einer Frage im Bogen gesucht, deren interne Gover-Id EKZ, Kennzeichen oder BogenEKZ ist. Sollte auch hier nichts gefunden werden, kann der zu speichernde Bogen später keiner Leistung zugeordnet werden.

Danach wird der Bogen gespeichert. Dazu wird zuerst ein Header-Datensatz mit dem Origninal JSON-Daten angelegt. Im Anschluss werden die im Bogen hinterlegten Werte (alle ausgefüllten Felder), für Auswertungen, in der Datenbank hinterlegt.

Manueller Upload der Bögen bzw. der Layouts #

Der manuelle Upload erfolgt über eine HTML-Seite, die über die Service-URL erreichbar ist. https://SERVICE_URL/Upload/Import

Standardmäßig ist der Bogen-Upload ausgewählt. Die Gover-Bogendatei kann als PDF oder als JSON-Datei heruntergeladen werden.Für den Import in TOPqw muss man die JSON-Datei mit Metainformationen wählen, da die Datei sonst keinem Layout zugeordnet werden kann.
Man muss also die *includingmetainfo.customization-Datei wählen.
Sie wird entweder über Drag&Drop oder durch Auswahl der Datei im Dateidialog hochgeladen.
Hinweis: Antragsdaten im PDF-Format können nicht importiert werden.

Um ein Layout in TOPqw zu importieren, muss der Schalter auf Layout gestellt werden. Danach kann die Layout-Datei, mit dem Datei-Schema *.gov, per Drag&Drop oder durch Auswahl der Datei im Dateidialog hochgeladen werden.