Von Version 1.17
bearbeitet von gru
am 31.03.2022, 12:21
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 1.36
bearbeitet von gru
am 31.03.2022, 16:39
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -1,19 +1,28 @@
1 -Im folgenden wird Anhand eines Beispieles kurz beschrieben, wie Daten von {{formcycle/}} an ein [[ALVA9 DMS System>>HERSTELLERSEITE]] übertragen werden können.
1 +Im folgenden wird Anhand eines Beispielformulars kurz beschrieben, wie Daten von {{formcycle/}} an ein [[ALVA9 System (Link zum Hersteller)>>https://www.ascherslebener-computer.de/alva-9_software-strassenverkehrsbehoerden/]] übertragen werden können.
2 2  
3 3  {{content/}}
4 4  
5 5  == Grundlegende Vorgehensweise ==
6 6  
7 -Zum Übertragen von Daten aus einem Formular an ein ALVA9 DMS muss eine XML-Datei mit den Informationen generiert und zusammen mit allen anderen zu speichernden Daten in einem ZIP-Archiv gesteckt und in einem Austauschverzeichnis abgelegt werden, von dem aus das DMS sie automatisch importiert.
7 +Zum Übertragen von Daten aus einem Formular an ein ALVA9 System muss eine XML-Datei mit den Informationen generiert und zusammen mit allen anderen zu speichernden Daten in einem ZIP-Archiv gepackt und in einem Austauschverzeichnis abgelegt werden, von dem aus ALVA9 sie automatisch importiert.
8 8  
9 9  == Workflow im Beispiel ==
10 10  
11 -Im Formularstore kann das Beispielformular mit dem Namen "ALVA Sonn- und Feiertagsverbot" importiert oder heruntergeladen werden. In diesem werden Informationen gesammelt und diese nach dem Absenden des Formulars im [[Workflow>>doc:TODO]] über eine [[XSL-Transformation>>doc:TODO]] in ein für ALVA9 importierbares XML-Format umgewandelt. Anschließend speichert der Workflow diese XML-Datei und ein ZIP-Archiv mit allen im Formular übertragenen Daten und einer PDF-Druckquittung in einem Austauschverzeichnis. Das Austauschverzeichnis ist im Beispielformular noch nicht konfiguriert und muss in den jeweiligen Aktionen zunächst noch festgelegt werden. Der Grund dafür ist, dass der Pfade nicht allgemengültig sind und vom jeweiligen System abhängen, in welches das Beispielformular importiert wurde.
11 +{{figure image="workflow_full_de.png"}}
12 +Workflow im Beispielformular, mit dem die entsprechen
13 +{{/figure}}
12 12  
15 +Im Formularstore kann das Beispielformular mit dem Namen "ALVA Sonn- und Feiertagsverbot" importiert oder heruntergeladen werden. In diesem werden Informationen gesammelt und diese nach dem Absenden des Formulars im [[Workflow>>doc:Formcycle.Designer.Workflow.WebHome]] über eine [[XSL-Transformation>>https://de.wikipedia.org/wiki/XSL_Transformation]] in ein für ALVA9 importierbares XML-Format umgewandelt. Anschließend erstellt der Workflow aus diese XML-Datei, allen im Formular übertragenen Daten und einer PDF-Druckquittung ein ZIP-Archiv.
16 +Dieses wird anschließend in das Austauschverzeichnis gespeichert. Das Austauschverzeichnis ist im Beispielformular noch nicht konfiguriert und muss in den jeweiligen Aktionen zunächst noch festgelegt werden. Der Grund dafür ist, dass der Pfade nicht allgemengültig sind und vom jeweiligen System abhängen, in welches das Beispielformular importiert wurde.
17 +
13 13  === Inhalt und Erstellung der XML-Datei ===
14 14  
15 -Die XML-Datei mit allen im Formular eingegebenen Daten wird über eine sagenannte [[XSL-Transformation>>WIKIPEDIA]] erzeugt. Die Struktur der erzeugten XML-Datei wird dabei von ALVA9 vorgegeben und besteht im Beispiel aus den Konten //daten// und //datensatz//, wobei in letzteren die einzelnen Informationen als eigene Unterknoten eingefügt werden.
20 +{{figure image="workflow_xml_de.png"}}
21 +Konfiguration der Workflow-Aktion vom Typ //Als XML exportieren//, mit der die an ALVA9 zu sendenden Daten in eine XML-Datei überführt werden.
22 +{{/figure}}
16 16  
24 +Die XML-Datei mit allen im Formular eingegebenen Daten wird durch eine Aktion vom Typ [[//Als XML exportieren//>>doc:Formcycle.Designer.Workflow.Actions.ExportXML]] mithilfe einer in {{formcycle/}} definierten [[XSL-Transformation>>doc:Formcycle.UserInterface.FilesAndTemplates.XSLTransformation]] erzeugt. Die Struktur der erzeugten XML-Datei wird dabei von ALVA9 vorgegeben und besteht im Beispiel aus den Konten //daten// und //datensatz//, wobei in letzteren die einzelnen Informationen als eigene Unterknoten eingefügt werden.
25 +
17 17  Die vollständige XSL-Transformation für das Beispiel sieht wie folgt aus:
18 18  
19 19  {{panel title="XSL-Transformation des Beispielformulars" triggerable="true" initial="hidden"}}
... ... @@ -20,161 +20,156 @@
20 20  {{code language="xslt"}}
21 21  <?xml version="1.0" encoding="UTF-8"?>
22 22  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
23 - <xsl:template match="process">
24 - <daten>
25 - <datensatz>
26 - <NAME1><xsl:value-of select="form/field[@name='tfOrgName']/plainValue"/>&#xA0;<xsl:value-of select="form/field[@name='Rechtsform']/plainValue"/></NAME1>
27 - <NAME2><xsl:value-of select="form/field[@name='tfAntragstellerAnrede']/plainValue"/>&#xA0;<xsl:value-of select="form/field[@name='tfAntragstellerTitel']/plainValue"/>&#xA0;<xsl:value-of select="form/field[@name='tfAntragstellerVorname']/plainValue"/>&#xA0;<xsl:value-of select="form/field[@name='tfAntragstellerName']/plainValue"/></NAME2>
28 - <NAME3><xsl:value-of select="form/field[@name='']/plainValue"/></NAME3>
32 + <xsl:template match="process">
33 + <daten>
34 + <datensatz>
35 + <NAME1><xsl:value-of select="form/field[@name='tfOrgName']/plainValue"/>&#xA0;<xsl:value-of select="form/field[@name='Rechtsform']/plainValue"/></NAME1>
36 + <NAME2><xsl:value-of select="form/field[@name='tfAntragstellerAnrede']/plainValue"/>&#xA0;<xsl:value-of select="form/field[@name='tfAntragstellerTitel']/plainValue"/>&#xA0;<xsl:value-of select="form/field[@name='tfAntragstellerVorname']/plainValue"/>&#xA0;<xsl:value-of select="form/field[@name='tfAntragstellerName']/plainValue"/></NAME2>
37 + <NAME3><xsl:value-of select="form/field[@name='']/plainValue"/></NAME3>
29 29   <NAME4><xsl:value-of select="form/field[@name='']/plainValue"/></NAME4>
30 - <STRASSE><xsl:value-of select="form/field[@name='tfAntragstellerAdresse']/plainValue"/></STRASSE>
31 - <HAUS_NR><xsl:value-of select="form/field[@name='']/plainValue"/></HAUS_NR>
32 - <ORT><xsl:value-of select="form/field[@name='tfAntragstellerOrt']/plainValue"/></ORT>
33 - <PLZ><xsl:value-of select="form/field[@name='tfAntragstellerPLZ']/plainValue"/></PLZ>
34 - <TELEFON><xsl:value-of select="form/field[@name='tfAntragstellerTelefon']/plainValue"/></TELEFON>
35 - <EMAIL><xsl:value-of select="form/field[@name='tfAntragstellerEmail']/plainValue"/></EMAIL>
36 - <FAX><xsl:value-of select="form/field[@name='tfAntragstellerFax']/plainValue"/></FAX>
37 - <SONNTAGE><xsl:value-of select="form/field[@name='cbSONNTAGE']/plainValue"/></SONNTAGE>
38 - <FERIEN><xsl:value-of select="form/field[@name='cbFERIEN']/plainValue"/></FERIEN>
39 + <STRASSE><xsl:value-of select="form/field[@name='tfAntragstellerAdresse']/plainValue"/></STRASSE>
40 + <HAUS_NR><xsl:value-of select="form/field[@name='']/plainValue"/></HAUS_NR>
41 + <ORT><xsl:value-of select="form/field[@name='tfAntragstellerOrt']/plainValue"/></ORT>
42 + <PLZ><xsl:value-of select="form/field[@name='tfAntragstellerPLZ']/plainValue"/></PLZ>
43 + <TELEFON><xsl:value-of select="form/field[@name='tfAntragstellerTelefon']/plainValue"/></TELEFON>
44 + <EMAIL><xsl:value-of select="form/field[@name='tfAntragstellerEmail']/plainValue"/></EMAIL>
45 + <FAX><xsl:value-of select="form/field[@name='tfAntragstellerFax']/plainValue"/></FAX>
46 + <SONNTAGE><xsl:value-of select="form/field[@name='cbSONNTAGE']/plainValue"/></SONNTAGE>
47 + <FERIEN><xsl:value-of select="form/field[@name='cbFERIEN']/plainValue"/></FERIEN>
39 39   <GRUND2><xsl:value-of select="form/field[@name='cbGRUND2']/plainValue"/></GRUND2>
40 40   <GRUND1><xsl:value-of select="form/field[@name='cbGRUND1']/plainValue"/></GRUND1>
41 - <ANTR_DATUM><xsl:value-of select="substring-before(./@creation-date, ' ')" /></ANTR_DATUM>
42 - <NAME_HALT><xsl:value-of select="form/field[@name='tfNAME_HALT']/plainValue"/></NAME_HALT>
43 - <FIRMA_HALT><xsl:value-of select="form/field[@name='tfFIRMA_HALT']/plainValue"/></FIRMA_HALT>
44 - <POS_HALTER><xsl:value-of select="form/field[@name='tfPOS_HALTER']/plainValue"/></POS_HALTER>
45 - <xsl:if test="form/field[@name='cbLKW']/plainValue!=1"><LKW>0</LKW></xsl:if>
46 - <xsl:if test="form/field[@name='cbLKW']/plainValue=1"><LKW><xsl:value-of select="form/field[@name='cbLKW']/plainValue"/></LKW></xsl:if>
47 - <xsl:if test="form/field[@name='cbANHAENGER']/plainValue!=1"><ANHAENGER>0</ANHAENGER></xsl:if>
48 - <xsl:if test="form/field[@name='cbANHAENGER']/plainValue=1"><ANHAENGER><xsl:value-of select="form/field[@name='cbANHAENGER']/plainValue"/></ANHAENGER></xsl:if>
49 - <xsl:if test="form/field[@name='cbZUGMASCHIN']/plainValue!=1"><ZUGMASCHIN>0</ZUGMASCHIN></xsl:if>
50 - <xsl:if test="form/field[@name='cbZUGMASCHIN']/plainValue=1"><ZUGMASCHIN><xsl:value-of select="form/field[@name='cbZUGMASCHIN']/plainValue"/></ZUGMASCHIN></xsl:if>
51 - <xsl:if test="form/field[@name='cbAUFLIEGER']/plainValue!=1"><AUFLIEGER>0</AUFLIEGER></xsl:if>
52 - <xsl:if test="form/field[@name='cbAUFLIEGER']/plainValue=1"><AUFLIEGER><xsl:value-of select="form/field[@name='cbAUFLIEGER']/plainValue"/></AUFLIEGER></xsl:if>
53 - <xsl:if test="form/field[@name='cbERSATZ1']/plainValue!=1"><ERSATZ1>0</ERSATZ1></xsl:if>
54 - <xsl:if test="form/field[@name='cbERSATZ1']/plainValue=1"><ERSATZ1><xsl:value-of select="form/field[@name='cbERSATZ1']/plainValue"/></ERSATZ1></xsl:if>
55 - <xsl:if test="form/field[@name='cbERSATZ2']/plainValue!=1"><ERSATZ2>0</ERSATZ2></xsl:if>
56 - <xsl:if test="form/field[@name='cbERSATZ2']/plainValue=1"><ERSATZ2><xsl:value-of select="form/field[@name='cbERSATZ2']/plainValue"/></ERSATZ2></xsl:if>
57 - <LKW_KENNZ><xsl:value-of select="form/field[@name='tfLKW_KENNZ']/plainValue"/></LKW_KENNZ>
58 - <ANH_KENNZ><xsl:value-of select="form/field[@name='tfANH_KENNZ']/plainValue"/></ANH_KENNZ>
59 - <ZUG_KENNZ><xsl:value-of select="form/field[@name='tfZUG_KENNZ']/plainValue"/></ZUG_KENNZ>
60 - <AUF_KENNZ><xsl:value-of select="form/field[@name='tfAUF_KENNZ']/plainValue"/></AUF_KENNZ>
61 - <ERS_KENNZ1><xsl:value-of select="form/field[@name='tfERS_KENNZ1']/plainValue"/></ERS_KENNZ1>
62 - <ERS_KENNZ2><xsl:value-of select="form/field[@name='tfERS_KENNZ2']/plainValue"/></ERS_KENNZ2>
63 - <LKW2KENNZ><xsl:value-of select="form/field[@name='tfLKW2KENNZ']/plainValue"/></LKW2KENNZ>
64 - <ANH2KENNZ><xsl:value-of select="form/field[@name='tfANH2KENNZ']/plainValue"/></ANH2KENNZ>
65 - <ZUG2KENNZ><xsl:value-of select="form/field[@name='tfZUG2KENNZ']/plainValue"/></ZUG2KENNZ>
66 - <AUF2KENNZ><xsl:value-of select="form/field[@name='tfAUF2KENNZ']/plainValue"/></AUF2KENNZ>
67 - <ERS2KENNZ1><xsl:value-of select="form/field[@name='tfERS2KENNZ1']/plainValue"/></ERS2KENNZ1>
68 - <ERS2KENNZ2><xsl:value-of select="form/field[@name='tfERS2KENNZ2']/plainValue"/></ERS2KENNZ2>
69 - <LKW_GEWICH>
70 - <xsl:call-template name="formatWeight">
71 - <xsl:with-param name="weight" select="form/field[@name='tfLKW_GEWICH']/plainValue" />
72 - </xsl:call-template>
73 - </LKW_GEWICH>
74 - <ANH_GEWICH>
75 - <xsl:call-template name="formatWeight">
76 - <xsl:with-param name="weight" select="form/field[@name='tfANH_GEWICH']/plainValue" />
77 - </xsl:call-template>
78 - </ANH_GEWICH>
79 - <ZUG_GEWICH>
80 - <xsl:call-template name="formatWeight">
81 - <xsl:with-param name="weight" select="form/field[@name='tfZUG_GEWICH']/plainValue" />
82 - </xsl:call-template>
83 - </ZUG_GEWICH>
84 - <AUF_GEWICH>
85 - <xsl:call-template name="formatWeight">
86 - <xsl:with-param name="weight" select="form/field[@name='tfAUF_GEWICH']/plainValue" />
87 - </xsl:call-template>
88 - </AUF_GEWICH>
89 - <!--
90 - <LKW_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></LKW_LEER>
91 - <ANH_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></ANH_LEER>
92 - <ZUG_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></ZUG_LEER>
93 - <AUF_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></AUF_LEER>
94 - -->
95 - <ERS_GEWI_1>
96 - <xsl:call-template name="formatWeight">
97 - <xsl:with-param name="weight" select="form/field[@name='tfERS_GEWI_1']/plainValue" />
98 - </xsl:call-template>
99 - </ERS_GEWI_1>
100 - <ERS_GEWI_2>
101 - <xsl:call-template name="formatWeight">
102 - <xsl:with-param name="weight" select="form/field[@name='tfERS_GEWI_2']/plainValue" />
103 - </xsl:call-template>
104 - </ERS_GEWI_2>
105 - <ART><xsl:value-of select="form/field[@name='tfART']/plainValue"/></ART>
106 - <ART_GEWICH>
107 - <xsl:call-template name="formatWeight">
108 - <xsl:with-param name="weight" select="form/field[@name='tfART_GEWICH']/plainValue" />
109 - </xsl:call-template>
110 - </ART_GEWICH>
111 - <STARTORT><xsl:value-of select="form/field[@name='tfSTARTORT']/plainValue"/></STARTORT>
112 - <ZIELORT><xsl:value-of select="form/field[@name='tfZIELORT']/plainValue"/></ZIELORT>
113 - <UEBER><xsl:value-of select="form/field[@name='tfUEBER']/plainValue"/></UEBER>
114 - <ZEIT_VON>
115 - <xsl:call-template name="formatDate">
116 - <xsl:with-param name="dateTime" select="form/field[@name='tfZEIT_VON']/plainValue" />
117 - </xsl:call-template>
118 - </ZEIT_VON>
119 - <VON_UHR><xsl:value-of select="form/field[@name='tfVON_UHR']/plainValue"/></VON_UHR>
120 - <ZEIT_BIS>
121 - <xsl:call-template name="formatDate">
122 - <xsl:with-param name="dateTime" select="form/field[@name='tfZEIT_BIS']/plainValue" />
123 - </xsl:call-template>
124 - </ZEIT_BIS>
125 - <BIS_UHR><xsl:value-of select="form/field[@name='tfBIS_UHR']/plainValue"/></BIS_UHR>
126 - <ORT_LEERFA><xsl:value-of select="form/field[@name='tfORT_LEERFA']/plainValue"/></ORT_LEERFA>
127 - <BEGRUENDG><xsl:value-of select="form/field[@name='tfBEGRUENDG']/plainValue"/></BEGRUENDG>
128 - <!--
129 - <ORTSLAGE><xsl:value-of select="form/field[@name='tfORTSLAGE']/plainValue"/></ORTSLAGE>
130 - <NOTIZ><xsl:value-of select="form/field[@name='tfNOTIZ']/plainValue"/></NOTIZ>
131 - -->
50 + <ANTR_DATUM><xsl:value-of select="substring-before(./@creation-date, ' ')" /></ANTR_DATUM>
51 + <NAME_HALT><xsl:value-of select="form/field[@name='tfNAME_HALT']/plainValue"/></NAME_HALT>
52 + <FIRMA_HALT><xsl:value-of select="form/field[@name='tfFIRMA_HALT']/plainValue"/></FIRMA_HALT>
53 + <POS_HALTER><xsl:value-of select="form/field[@name='tfPOS_HALTER']/plainValue"/></POS_HALTER>
54 + <xsl:if test="form/field[@name='cbLKW']/plainValue!=1"><LKW>0</LKW></xsl:if>
55 + <xsl:if test="form/field[@name='cbLKW']/plainValue=1"><LKW><xsl:value-of select="form/field[@name='cbLKW']/plainValue"/></LKW></xsl:if>
56 + <xsl:if test="form/field[@name='cbANHAENGER']/plainValue!=1"><ANHAENGER>0</ANHAENGER></xsl:if>
57 + <xsl:if test="form/field[@name='cbANHAENGER']/plainValue=1"><ANHAENGER><xsl:value-of select="form/field[@name='cbANHAENGER']/plainValue"/></ANHAENGER></xsl:if>
58 + <xsl:if test="form/field[@name='cbZUGMASCHIN']/plainValue!=1"><ZUGMASCHIN>0</ZUGMASCHIN></xsl:if>
59 + <xsl:if test="form/field[@name='cbZUGMASCHIN']/plainValue=1"><ZUGMASCHIN><xsl:value-of select="form/field[@name='cbZUGMASCHIN']/plainValue"/></ZUGMASCHIN></xsl:if>
60 + <xsl:if test="form/field[@name='cbAUFLIEGER']/plainValue!=1"><AUFLIEGER>0</AUFLIEGER></xsl:if>
61 + <xsl:if test="form/field[@name='cbAUFLIEGER']/plainValue=1"><AUFLIEGER><xsl:value-of select="form/field[@name='cbAUFLIEGER']/plainValue"/></AUFLIEGER></xsl:if>
62 + <xsl:if test="form/field[@name='cbERSATZ1']/plainValue!=1"><ERSATZ1>0</ERSATZ1></xsl:if>
63 + <xsl:if test="form/field[@name='cbERSATZ1']/plainValue=1"><ERSATZ1><xsl:value-of select="form/field[@name='cbERSATZ1']/plainValue"/></ERSATZ1></xsl:if>
64 + <xsl:if test="form/field[@name='cbERSATZ2']/plainValue!=1"><ERSATZ2>0</ERSATZ2></xsl:if>
65 + <xsl:if test="form/field[@name='cbERSATZ2']/plainValue=1"><ERSATZ2><xsl:value-of select="form/field[@name='cbERSATZ2']/plainValue"/></ERSATZ2></xsl:if>
66 + <LKW_KENNZ><xsl:value-of select="form/field[@name='tfLKW_KENNZ']/plainValue"/></LKW_KENNZ>
67 + <ANH_KENNZ><xsl:value-of select="form/field[@name='tfANH_KENNZ']/plainValue"/></ANH_KENNZ>
68 + <ZUG_KENNZ><xsl:value-of select="form/field[@name='tfZUG_KENNZ']/plainValue"/></ZUG_KENNZ>
69 + <AUF_KENNZ><xsl:value-of select="form/field[@name='tfAUF_KENNZ']/plainValue"/></AUF_KENNZ>
70 + <ERS_KENNZ1><xsl:value-of select="form/field[@name='tfERS_KENNZ1']/plainValue"/></ERS_KENNZ1>
71 + <ERS_KENNZ2><xsl:value-of select="form/field[@name='tfERS_KENNZ2']/plainValue"/></ERS_KENNZ2>
72 + <LKW2KENNZ><xsl:value-of select="form/field[@name='tfLKW2KENNZ']/plainValue"/></LKW2KENNZ>
73 + <ANH2KENNZ><xsl:value-of select="form/field[@name='tfANH2KENNZ']/plainValue"/></ANH2KENNZ>
74 + <ZUG2KENNZ><xsl:value-of select="form/field[@name='tfZUG2KENNZ']/plainValue"/></ZUG2KENNZ>
75 + <AUF2KENNZ><xsl:value-of select="form/field[@name='tfAUF2KENNZ']/plainValue"/></AUF2KENNZ>
76 + <ERS2KENNZ1><xsl:value-of select="form/field[@name='tfERS2KENNZ1']/plainValue"/></ERS2KENNZ1>
77 + <ERS2KENNZ2><xsl:value-of select="form/field[@name='tfERS2KENNZ2']/plainValue"/></ERS2KENNZ2>
78 + <LKW_GEWICH>
79 + <xsl:call-template name="formatWeight">
80 + <xsl:with-param name="weight" select="form/field[@name='tfLKW_GEWICH']/plainValue" />
81 + </xsl:call-template>
82 + </LKW_GEWICH>
83 + <ANH_GEWICH>
84 + <xsl:call-template name="formatWeight">
85 + <xsl:with-param name="weight" select="form/field[@name='tfANH_GEWICH']/plainValue" />
86 + </xsl:call-template>
87 + </ANH_GEWICH>
88 + <ZUG_GEWICH>
89 + <xsl:call-template name="formatWeight">
90 + <xsl:with-param name="weight" select="form/field[@name='tfZUG_GEWICH']/plainValue" />
91 + </xsl:call-template>
92 + </ZUG_GEWICH>
93 + <AUF_GEWICH>
94 + <xsl:call-template name="formatWeight">
95 + <xsl:with-param name="weight" select="form/field[@name='tfAUF_GEWICH']/plainValue" />
96 + </xsl:call-template>
97 + </AUF_GEWICH>
98 + <!--
99 + <LKW_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></LKW_LEER>
100 + <ANH_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></ANH_LEER>
101 + <ZUG_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></ZUG_LEER>
102 + <AUF_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></AUF_LEER>
103 + -->
104 + <ERS_GEWI_1>
105 + <xsl:call-template name="formatWeight">
106 + <xsl:with-param name="weight" select="form/field[@name='tfERS_GEWI_1']/plainValue" />
107 + </xsl:call-template>
108 + </ERS_GEWI_1>
109 + <ERS_GEWI_2>
110 + <xsl:call-template name="formatWeight">
111 + <xsl:with-param name="weight" select="form/field[@name='tfERS_GEWI_2']/plainValue" />
112 + </xsl:call-template>
113 + </ERS_GEWI_2>
114 + <ART><xsl:value-of select="form/field[@name='tfART']/plainValue"/></ART>
115 + <ART_GEWICH>
116 + <xsl:call-template name="formatWeight">
117 + <xsl:with-param name="weight" select="form/field[@name='tfART_GEWICH']/plainValue" />
118 + </xsl:call-template>
119 + </ART_GEWICH>
120 + <STARTORT><xsl:value-of select="form/field[@name='tfSTARTORT']/plainValue"/></STARTORT>
121 + <ZIELORT><xsl:value-of select="form/field[@name='tfZIELORT']/plainValue"/></ZIELORT>
122 + <UEBER><xsl:value-of select="form/field[@name='tfUEBER']/plainValue"/></UEBER>
123 + <ZEIT_VON>
124 + <xsl:call-template name="formatDate">
125 + <xsl:with-param name="dateTime" select="form/field[@name='tfZEIT_VON']/plainValue" />
126 + </xsl:call-template>
127 + </ZEIT_VON>
128 + <VON_UHR><xsl:value-of select="form/field[@name='tfVON_UHR']/plainValue"/></VON_UHR>
129 + <ZEIT_BIS>
130 + <xsl:call-template name="formatDate">
131 + <xsl:with-param name="dateTime" select="form/field[@name='tfZEIT_BIS']/plainValue" />
132 + </xsl:call-template>
133 + </ZEIT_BIS>
134 + <BIS_UHR><xsl:value-of select="form/field[@name='tfBIS_UHR']/plainValue"/></BIS_UHR>
135 + <ORT_LEERFA><xsl:value-of select="form/field[@name='tfORT_LEERFA']/plainValue"/></ORT_LEERFA>
136 + <BEGRUENDG><xsl:value-of select="form/field[@name='tfBEGRUENDG']/plainValue"/></BEGRUENDG>
137 + <!--
138 + <ORTSLAGE><xsl:value-of select="form/field[@name='tfORTSLAGE']/plainValue"/></ORTSLAGE>
139 + <NOTIZ><xsl:value-of select="form/field[@name='tfNOTIZ']/plainValue"/></NOTIZ>
140 + -->
132 132   <ORTSLAGE><xsl:value-of select="form/field[@name='edAnmerkungen']/plainValue"/></ORTSLAGE>
133 - <NOTIZ><xsl:value-of select="form/field[@name='edAnmerkungen']/plainValue"/></NOTIZ>
134 - <SACHGEBIET>Z</SACHGEBIET>
135 - <FORMID><xsl:value-of select="form/field[@name='tfFORMID']/plainValue"/></FORMID>
136 - <SERVICE_ID><xsl:value-of select="./@process-uid" /></SERVICE_ID>
137 - </datensatz>
138 - </daten>
139 - </xsl:template>
140 - <xsl:template name="formatDate">
141 - <xsl:param name="dateTime"/>
142 - <xsl:variable name="day" select="substring-before($dateTime, '.')" />
143 - <xsl:variable name="month" select="substring-before(substring-after($dateTime, '.'), '.')" />
144 - <xsl:variable name="year" select="substring-after(substring-after($dateTime, '.'), '.')" />
142 + <NOTIZ><xsl:value-of select="form/field[@name='edAnmerkungen']/plainValue"/></NOTIZ>
143 + <SACHGEBIET>Z</SACHGEBIET>
144 + <FORMID><xsl:value-of select="form/field[@name='tfFORMID']/plainValue"/></FORMID>
145 + <SERVICE_ID><xsl:value-of select="./@process-uid" /></SERVICE_ID>
146 + </datensatz>
147 + </daten>
148 + </xsl:template>
149 + <xsl:template name="formatDate">
150 + <xsl:param name="dateTime"/>
151 + <xsl:variable name="day" select="substring-before($dateTime, '.')" />
152 + <xsl:variable name="month" select="substring-before(substring-after($dateTime, '.'), '.')" />
153 + <xsl:variable name="year" select="substring-after(substring-after($dateTime, '.'), '.')" />
145 145  
146 - <xsl:choose>
147 - <xsl:when test="$dateTime !=''">
148 - <xsl:value-of select="concat($year, '-', $month, '-', $day)" />
149 - </xsl:when>
150 - <xsl:otherwise>
151 -
152 - </xsl:otherwise>
153 - </xsl:choose>
154 - </xsl:template>
155 - <xsl:template name="formatWeight">
156 - <xsl:param name="weight"/>
157 - <xsl:value-of select="translate($weight, ',', '.')" />
158 - </xsl:template>
155 + <xsl:choose>
156 + <xsl:when test="$dateTime !=''">
157 + <xsl:value-of select="concat($year, '-', $month, '-', $day)" />
158 + </xsl:when>
159 + <xsl:otherwise>
160 +
161 + </xsl:otherwise>
162 + </xsl:choose>
163 + </xsl:template>
164 + <xsl:template name="formatWeight">
165 + <xsl:param name="weight"/>
166 + <xsl:value-of select="translate($weight, ',', '.')" />
167 + </xsl:template>
159 159  </xsl:stylesheet>
160 160  {{/code}}
161 161  {{/panel}}
162 162  
163 -Im Beispiel werden über die am Ende stehenden Templates //formatDate// und //formatWeight// Datumswerte und Gewichte in das Format überführt, welches ALVA9 erwartet. Eine Überführung von im Formular eingegebenen Werten in eine für ALVA9 erwartetes Format kann gegebenenfalls auch bei anderen Daten nötig sein. In den meisten Fällen ist die Verwendung von speziellen Templates häufig die einfachste Lösung, um die Werte in das gewünschte Format zu konvertieren.
172 +Im Beispiel werden über die am Ende stehenden Templates //formatDate// und //formatWeight// Datumswerte und Gewichte in das Format überführt, welches ALVA9 erwartet. Eine Konvertierung von im Formular eingegebenen Werten in ein von ALVA9 erwartetes Format kann gegebenenfalls auch bei anderen Daten nötig sein. In den solchen Fällen ist die Verwendung von speziellen Templates häufig die einfachste Lösung.
164 164  
165 165  === Speichern von zusätzlichen Dokumenten ===
166 166  
167 -Im Beispiel werden alle an das Formualar angehangenen Dateien und eine mithilfe einer [[PDF-Print-Aktion>>doc:TODO]] generierte
168 -Hierbei ist die Verwendung gl dateinamen
176 +Im Beispiel wird zunächst über eine Aktion vom Typ [[ZIP Komprimieren>>doc:Formcycle.Designer.Workflow.Actions.CompressFiles]] ein ZIP-Archiv erzeugt, welches alle an das Formualar angehangenen Dateien, eine mithilfe einer [[PDF-Print-Aktion>>doc:Formcycle.PluginDocumentation.PrintServicePlugin]] generierte PDF-Quittung des Formulars und die erstellte XML-Datei beinhaltet. Dieses Archiv wird dann über eine Aktion vom Typ [[Speichern im Dateisystem>>doc:Formcycle.Designer.Workflow.Actions.SaveToFileSystem]] an eine Stelle im Dateisystem des Servers gespeichert, die als Austauschverzeichnis für ALVA9 gedacht ist und von der aus sich das System dann die Datei selbstständig abholt. Es ist wichtig, dass alle Dokumente, die zu den in der XML-Datei enthaltenen Daten gehören und zu ALVA9 übertragen werden sollen, mit im gleichen ZIP-Archiv enthalten sind.
169 169  
170 -Über eine Aktion vom Typ [[ZIP Komprimieren>>doc:TODO]]
171 -Selbe, eindeutige ID -> Es empfiehlt sich, Process_ID zu verwenden
178 +=== Benennung der erzeugten Dateien ===
172 172  
180 +Im Beispiel wird die XML-Datei //ALVA_SONNTAG_[%$PROCESS_ID%].xml// und das ZIP-Archiv //ALVA_SONN_[%$PROCESS_ID%].zip// genannt. Es ist wichtig, dass der Dateiname der ZIP-Datei eindeutig ist und nicht bei verschiedenen Vorgängen gleich ist. Im Beispiel wird dafür der Platzhalter für die Prozess-ID verwendet, welche bei jedem Vorgang unterschiedlich ist. Grundsätzlich können hierfür aber auch andere Werte wie zum Beispiel Werte von [[Zählern>>doc:Formcycle.UserInterface.Data.Counter]] verwendet werden. Auch bei der XML-Datei empfiehlt es sich, auch einen eindeutigen Namen zu verwenden.
173 173  
174 -
175 -
176 -TBD
177 -
178 178  == Ansprechpartner für Fragen ==
179 179  
180 180  Für weitere Fragen zur Anbindung und der nötigen Konfiguration für den Import in ALVA9 steht folgender Ansprechpartner auf Seiten der Ascherslebener Computer GmbH zur Verfügung: