From version 1.14
edited by gru
on 31.03.2022, 12:15
Change comment: There is no comment for this version
To version 1.13
edited by gru
on 31.03.2022, 11:59
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -12,161 +12,11 @@
12 12  
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 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.
15 +Hierbei ist die Verwendung gl dateinamen
16 16  
17 -Die vollständige XSL-Transformation für das Beispiel sieht wie folgt aus:
18 18  
19 -{{panel title="XSL-Transformation des Beispielformulars" triggerable="true" initial="hidden"}}
20 -{{code language="xslt"}}
21 -<?xml version="1.0" encoding="UTF-8"?>
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>
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 - <GRUND2><xsl:value-of select="form/field[@name='cbGRUND2']/plainValue"/></GRUND2>
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 -
70 - <LKW_GEWICH>
71 - <xsl:call-template name="formatWeight">
72 - <xsl:with-param name="weight" select="form/field[@name='tfLKW_GEWICH']/plainValue" />
73 - </xsl:call-template>
74 - </LKW_GEWICH>
75 - <ANH_GEWICH>
76 - <xsl:call-template name="formatWeight">
77 - <xsl:with-param name="weight" select="form/field[@name='tfANH_GEWICH']/plainValue" />
78 - </xsl:call-template>
79 - </ANH_GEWICH>
80 - <ZUG_GEWICH>
81 - <xsl:call-template name="formatWeight">
82 - <xsl:with-param name="weight" select="form/field[@name='tfZUG_GEWICH']/plainValue" />
83 - </xsl:call-template>
84 - </ZUG_GEWICH>
85 - <AUF_GEWICH>
86 - <xsl:call-template name="formatWeight">
87 - <xsl:with-param name="weight" select="form/field[@name='tfAUF_GEWICH']/plainValue" />
88 - </xsl:call-template>
89 - </AUF_GEWICH>
90 - <!--
91 - <LKW_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></LKW_LEER>
92 - <ANH_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></ANH_LEER>
93 - <ZUG_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></ZUG_LEER>
94 - <AUF_LEER><xsl:value-of select="form/field[@name='']/plainValue"/></AUF_LEER>
95 - -->
96 - <ERS_GEWI_1>
97 - <xsl:call-template name="formatWeight">
98 - <xsl:with-param name="weight" select="form/field[@name='tfERS_GEWI_1']/plainValue" />
99 - </xsl:call-template>
100 - </ERS_GEWI_1>
101 - <ERS_GEWI_2>
102 - <xsl:call-template name="formatWeight">
103 - <xsl:with-param name="weight" select="form/field[@name='tfERS_GEWI_2']/plainValue" />
104 - </xsl:call-template>
105 - </ERS_GEWI_2>
106 - <ART><xsl:value-of select="form/field[@name='tfART']/plainValue"/></ART>
107 - <ART_GEWICH>
108 - <xsl:call-template name="formatWeight">
109 - <xsl:with-param name="weight" select="form/field[@name='tfART_GEWICH']/plainValue" />
110 - </xsl:call-template>
111 - </ART_GEWICH>
112 - <STARTORT><xsl:value-of select="form/field[@name='tfSTARTORT']/plainValue"/></STARTORT>
113 - <ZIELORT><xsl:value-of select="form/field[@name='tfZIELORT']/plainValue"/></ZIELORT>
114 - <UEBER><xsl:value-of select="form/field[@name='tfUEBER']/plainValue"/></UEBER>
115 - <ZEIT_VON>
116 - <xsl:call-template name="formatDate">
117 - <xsl:with-param name="dateTime" select="form/field[@name='tfZEIT_VON']/plainValue" />
118 - </xsl:call-template>
119 - </ZEIT_VON>
120 - <VON_UHR><xsl:value-of select="form/field[@name='tfVON_UHR']/plainValue"/></VON_UHR>
121 - <ZEIT_BIS>
122 - <xsl:call-template name="formatDate">
123 - <xsl:with-param name="dateTime" select="form/field[@name='tfZEIT_BIS']/plainValue" />
124 - </xsl:call-template>
125 - </ZEIT_BIS>
126 - <BIS_UHR><xsl:value-of select="form/field[@name='tfBIS_UHR']/plainValue"/></BIS_UHR>
127 - <ORT_LEERFA><xsl:value-of select="form/field[@name='tfORT_LEERFA']/plainValue"/></ORT_LEERFA>
128 - <BEGRUENDG><xsl:value-of select="form/field[@name='tfBEGRUENDG']/plainValue"/></BEGRUENDG>
129 - <!--
130 - <ORTSLAGE><xsl:value-of select="form/field[@name='tfORTSLAGE']/plainValue"/></ORTSLAGE>
131 - <NOTIZ><xsl:value-of select="form/field[@name='tfNOTIZ']/plainValue"/></NOTIZ>
132 - -->
133 - <ORTSLAGE><xsl:value-of select="form/field[@name='edAnmerkungen']/plainValue"/></ORTSLAGE>
134 - <NOTIZ><xsl:value-of select="form/field[@name='edAnmerkungen']/plainValue"/></NOTIZ>
135 - <SACHGEBIET>Z</SACHGEBIET>
136 - <FORMID><xsl:value-of select="form/field[@name='tfFORMID']/plainValue"/></FORMID>
137 - <SERVICE_ID><xsl:value-of select="./@process-uid" /></SERVICE_ID>
138 - </datensatz>
139 - </daten>
140 - </xsl:template>
141 - <xsl:template name="formatDate">
142 - <xsl:param name="dateTime"/>
143 - <xsl:variable name="day" select="substring-before($dateTime, '.')" />
144 - <xsl:variable name="month" select="substring-before(substring-after($dateTime, '.'), '.')" />
145 - <xsl:variable name="year" select="substring-after(substring-after($dateTime, '.'), '.')" />
146 -
147 - <xsl:choose>
148 - <xsl:when test="$dateTime !=''">
149 - <xsl:value-of select="concat($year, '-', $month, '-', $day)" />
150 - </xsl:when>
151 - <xsl:otherwise>
152 -
153 - </xsl:otherwise>
154 - </xsl:choose>
155 - </xsl:template>
156 - <xsl:template name="formatWeight">
157 - <xsl:param name="weight"/>
158 - <xsl:value-of select="translate($weight, ',', '.')" />
159 - </xsl:template>
160 -</xsl:stylesheet>
161 -{{/code}}
162 -{{/panel}}
163 -
164 -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.
165 -
166 166  === Speichern von zusätzlichen Dokumenten ===
167 167  
168 -Hierbei ist die Verwendung gl dateinamen
169 -
170 170  Über eine Aktion vom Typ [[ZIP Komprimieren>>doc:TODO]]
171 171  Selbe, eindeutige ID -> Es empfiehlt sich, Process_ID zu verwenden
172 172