Wiki-Quellcode von Einreichungswebservice

Zuletzt geändert von MACH ProForms GmbH am 02.07.2024

Zeige letzte Bearbeiter
1 ## Architekturskizze
2
3 Bei jeder im Folgenden beschriebenen Variante des Webservices wird eine einheitliche Architektur verwendet. Da der Webservice derzeit ausschließlich über HTTP erreichbar ist, wird ein Reverse-Proxy benötigt, um die die Verschlüsselung der Daten zu gewährleisten. Nachfolgend wird die Kommunikationsstrecke vom Absenden eines Antrages bis hin zur Annahme und Weiterverarbeitung durch den Webservice visuell dargestellt.
4
5 ![[Architekturskizze Submissionwebservice|@Submissionwebservice_architecture.svg]]
6
7 _**Hinweis:**_ Bei der Kommunikation vom MACH formsolutions Plattform in das interne Netzwerk wird standardmäßig der SSL-Port 443 verwendet. Die interne Weiterleitung des Reverse-Proxies an den Webservice erfolgt auf den Port, welcher bei der Installation des Webservices angegeben wurde.
8
9 ## Standard-Webservice
10
11 Bei dieser Variante wird auf dem zugrundeliegenden Server innerhalb des zutreffenden Arbeitsverzeichnisses ein Ordner für den jeweiligen Assistenten angelegt. Innerhalb dieses Ordners wird je Transaktion ein weiteres Verzeichnis hinzugefügt, welches die zugehörigen Dateien (PDF, XML, FDF, weitere Metadaten) beinhaltet. Sollten Anlagen bei der Einreichung an den Webservice versendet werden, so werden diese ebenfalls entpackt gespeichert.
12
13 Mit dem Startparameter --single-folder werden alle Anträge direkt im ausführenden Ordner abgelegt. Anlagen werden hierbei nicht entpackt.
14
15 ### Nicht enthalten:
16
17 * Schreiben einer CSV-Datei
18 * Flattening der PDF-Dokumente
19
20 ---
21
22 ## Standard-Webservice mit flexibler CSV-Generierung
23
24 Bei dieser Variante wird für jeden Assistenten im zutreffenden Arbeitsverzeichnis ein Ordner angelegt, welcher keine weiteren Unterverzeichnisse enthält. Bei der Ablage der Dateien ist zu unterscheiden, ob es sich um eine Einreichung mit oder Anlagen handelt.
25
26 ### Einreichung ohne Anlagen
27
28 Für jede Einreichung wird das zugehörige PDF-Dokument sowie eine generierte CSV-Datei in der oben beschriebenen Ordnerstruktur abgelegt.
29
30 ### Einreichung mit Anlagen
31
32 Für jede Einreichung wird mindestens eine CSV-Datei erzeugt. Bei dieser Variante werden keine eingereichten PDF-Dokumente gespeichert, sondern ausschließlich die entpackten Anlagen der Einreichung. Der Dateiname der auf der Platte abgelegten Anlagen bildet sich wie folgt:
33
34 ```javascript
35 <Formularnummer\>-\<TransaktionsId\>-\<Anlagenname\>.
36 ```
37
38 Sollten mehrere Anlagen hochgeladen werden, so werden pro Anlage eine generierte CSV-Datei sowie die Anlage selbst gespeichert. Die Bildung des Dateinamens sieht wie folgt aus:
39
40 ```javascript
41 \<Formularnummer\>-\<Transaktionsid\>-\<Anlagennummer\>-\<Anlagenname\>, wobei der Platzhalter \<Anlagennummer\>
42 ```
43
44 entsprechend hochgezählt wird.
45
46 ### Aufbau der CSV-Datei
47
48 Die generierte CSV-Datei beinhaltet folgende Daten:
49
50 * Dateinamen der zugehörigen Anlage oder des zugehörigen PDF-Dokuments
51 * Alle im Antrag vorhandenen Felder. Hierbei kann die Reihenfolge der Felder über eine Konfigurationsdatei (Properties-Datei) durch den Administrator bestimmt und entsprechend angepasst werden. Die Konfigurationsdatei ist innerhalb des Ordners für den jeweiligen Assistenten unter dem Namen `*"\<identifier\>.properties"*` zu finden. Hierbei dient `*"\<identifier\>"*` als Platzhalter und repräsentiert den Namen des Assistenten. Ein exemplarischer Aufbau dieser Properties-Datei stellt sich wie folgt dar:
52
53 ```javascript
54 transId=01
55 fileUrl=02
56 Wie_hat_Ihnen_die_Präsentation_gefallen=03
57 input=04
58 staat=05
59 AS_PLZ=06
60 AS_Ort=07
61 AS_Bundesland=08
62 AS_Strasse=09
63 AS_Hausnummer=10
64 file=11
65 ```
66
67 > _**Hinweis:**_
68 >
69 > Im obigen Beispiel repräsentiert der erste Wert die technische Bezeichnung, wodurch der zugehörige Wert die auftretende Reihenfolge in der CSV-Datei angibt.
70
71 ### Nicht enthalten:
72
73 * Eingangsdatum des Antrags
74 * Startparameter --single-folder entfällt
75 * kein Anlagenverzeichnis
76 * Es wird keine XML-Datei erzeugt
77
78 ---
79
80 ## Standard-Webservice mit CSV-Generierung inklusive Anlagenverzeichnis
81
82 Bei dieser Variante wird für jeden Assistenten im entsprechenden Arbeitsverzeichnis ein Ordner angelegt, welcher keine weiteren Unterordner enthält. Bei einer Einreichung wird ein geflattetes PDF sowie eine generierte CSV-Datei gespeichert. Der Dateiname der generierten Dateien bildet sich wie folgt: Formularnummer + Transaktions-ID. Alle Einreichungen werden in einer flachen Hierarchie unterhalb des Ordners mit dem entsprechenden Assistentennamen abgelegt.
83
84 ### Aufbau der CSV-Datei
85
86 Die generierte CSV-Datei beinhaltet folgende Daten:
87
88 * Dateinamen des zugehörigen PDF-Dokuments
89 * Eingangsdatum der Einreichung
90
91 > _**Hinweis:**_
92 >
93 > Bei dieser Variante kann die Reihenfolge der enthaltenen Felder nicht über eine Konfigurationsdatei (Properties-Datei) bestimmt werden.
94
95 > _**Besonderheit:**_
96 >
97 > In der CSV-Datei werden insgesamt zehn Felder für die Anlagen vorgehalten. Diese Anlagen werden dann separat gespeichert. Die Verlinkung von der CSV-Datei zu den Anlagen findet über einen Pfad statt, welcher den Ablageort der entsprechende Anlage repräsentiert.
98
99 ### Nicht enthalten:
100
101 * Erzeugen eines XML-Files
102 * Möglichkeit der Sortierbarkeit der Anträge
103 * Startparameter --single-folder
104
105 ## Support
106
107 Der Einreichungswebservice unterliegt nach Inbetriebnahme keiner weiteren Pflege durch MACH ProForms. Versionsänderungen, Funktionserweiterungen oder sonstige Supportanfragen sind daher kostenpflichtig und müssen gesondert beauftragt werden.