Umgebung
AEM 6.5 Forms auf JEE
Problem
Wenn Sie Ihre Version auf AEM 6.5 Forms aktualisieren, passiert Folgendes:
- Ein HTML5-Formular, das in einen Workflow eingebunden ist, der den Prozess „Default Submit Form“ enthält, kann nicht gesendet werden.
- Ein HTML5-Formular, das in einen Workflow eingebunden ist, der den Prozess „Default Render“ enthält, kann nicht gerendert werden.
Ursache
Aktualisierung der JBoss-Version von JBoss 6.4.5 (verwendet in AEM 6.3 Forms) und JBoss 7.0.6 (verwendet in AEM 6.4 Forms) auf JBoss 7.1.2 in AEM 6.5 Forms.
Daraufhin schlägt die Übermittlung oder Darstellung von HTML5-Formularen fehl, weil eine Aktualisierung von Content-Type im Prozess „Default Submit Form“ oder User-Agent im Prozess „Default Render“ verwendet wird.
Lösung
Führen Sie die folgenden Schritte aus, um den Fehler durch den Prozess „Default Submit Form“ zu umgehen:
- Öffnen Sie den Prozess Default Submit Form in Workbench.
- Erstellen Sie eine neue Variable des Datentyps String. Zum Beispiel camelCaseContentType.
- Mappen Sie im Schritt Detect Content Type /process_data/@camelCaseContentType mit /process_data/httpHeaders[@id='Content-Type'].
- Fügen Sie in der Zeile content type refers to html form folgende Bedingung hinzu:
string(contains(lower-case(/process_data/@camelCaseContentType), 'application/x-www-form-urlencoded')) - Speichern Sie den Prozess und stellen Sie ihn bereit.
Führen Sie die folgenden Schritte aus, um den Fehler durch den Prozess „Default Render“ zu umgehen:
- Öffnen Sie den Prozess Default Render in Workbench.
- Erstellen Sie eine neue Variable des Datentyps String. Zum Beispiel, camelCaseUserAgent.
- Mappen Sie im Schritt Detect User Agent /process_data/@camelCaseUserAgent mit /process_data/httpHeaders[@id='User-Agent'].
- Fügen Sie in der Zeile user agent contains ipad or android folgende Bedingung hinzu:
string(contains(lower-case(/process_data/@camelCaseUserAgent), 'msapphost')) = 'true'
string(contains(lower-case(/process_data/@camelCaseUserAgent), 'android')) = 'true'
string(contains(lower-case(/process_data/@camelCaseUserAgent), 'ipad')) = 'true‘ - Speichern Sie den Prozess und stellen Sie ihn bereit.