Festlegen von Werten für das JSON-Datenelement in AEM Forms Workflow setting-value-of-json-data-element-in-aem-forms-workflow
Da ein adaptives Formular im AEM-Workflow an verschiedene Benutzende weitergeleitet wird, müssen bestimmte Felder oder Panels abhängig davon, wer sich das Formular ansieht, ausgeblendet oder deaktiviert werden. Um diesen Anwendungsfällen gerecht zu werden, legen wir normalerweise ein Wert für ein ausgeblendetes Feld fest. Basierend auf dem Wert dieses ausgeblendeten Felds können Geschäftsregeln erstellt werden, um entsprechende Panels oder Felder auszublenden/zu deaktivieren.
In AEM Forms OSGi müssen wir ein benutzerdefiniertes OSGi-Bundle erstellen, um den Wert des JSON-Datenelements festzulegen. Dieses Bundle wird im Rahmen dieses Tutorials bereitgestellt.
Wir verwenden den Prozessschritt in AEM-Workflow. Wir verknüpfen das OSGi-Bundle „Set Value of Element in Json“ mit diesem Prozessschritt.
Wir müssen zwei Argumente an das Bundle zum Festlegen der Werte übergeben. Das erste Argument ist der Pfad zum Element, dessen Wert festgelegt werden muss. Das zweite Argument ist der Wert, der festgelegt werden muss.
Im obigen Screenshot ist beispielsweise für das initialStep-Element der Wert „N“ festgelegt.
afData.afUnboundData.data.initialStep,N
In unserem Beispiel haben wir einen einfachen Urlaubsantrag vorliegen. Die Person, die dieses Formular aufgerufen hat, gibt ihren Namen und die Urlaubstage ein. Bei der Übermittlung wird dieses Formular zur Überprüfung an die Vorgesetzte oder den Vorgesetzten gesendet. Wenn die oder der Vorgesetzte das Formular öffnet, sind die Felder im ersten Bedienfeld deaktiviert. Dies liegt daran, dass wir für das initialStep-Element in den JSON-Daten den Wert „N“ festgelegt haben.
Basierend auf dem Wert des initialStep-Feldes lassen wir das Bedienfeld für genehmigende Personen anzeigen, über das die oder der Vorgesetzte den Antrag genehmigen oder ablehnen kann.
Sehen Sie sich bitte die Regeln an, die für „InitialSetup“ festgelegt wurden. Basierend auf dem Wert des initialStep-Feldes lassen wir die Benutzerdetails mithilfe des Formulardatenmodells abrufen, die entsprechenden Felder auffüllen und die entsprechenden Panels ausblenden/deaktivieren.
So stellen Sie die Assets auf Ihrem lokalen System bereit:
-
Laden Sie „DevelopingWitheServiceUserBundle“ herunter und stellen Sie dieses Bundle bereit.
-
Laden Sie das setvalue-Bundle herunter und stellen Sie es bereit. Hierbei handelt es sich um das benutzerdefinierte OSGi-Bundle, mit dem Sie die Werte eines Elements in den übermittelten JSON-Daten festlegen können.
-
Laden Sie die ZIP-Datei herunter und extrahieren Sie deren Inhalt.
- Verweisen Sie Ihren Browser auf Package Manager.
- Importieren und installieren Sie die Datei „SetValueOfElementInJSONDataWorkflow.zip“. Dieses Paket enthält das Workflow-Beispielmodell und das mit dem Formular verknüpfte Formulardatenmodell.
- Verweisen Sie Ihren Browser auf Package Manager.
-
Verweisen Sie Ihren Browser auf Formulare und Dokumente.
-
Klicken Sie auf „Erstellen“ > „Datei hochladen“.
-
Laden Sie die Datei „TimeOffRequestForm.zip“ hoch.
Dieses Formular wurde mit AEM Forms 6.4 erstellt. Bitte stellen Sie sicher, dass Sie AEM Forms 6.4 oder höher verwenden. -
Öffnen Sie das Formular.
-
Tragen Sie das Start- und Enddatum ein und übermitteln Sie das Formular.
-
Navigieren Sie zum Posteingang.
-
Öffnen Sie das mit der Aufgabe verknüpfte Formular.
-
Die Felder im ersten Panel sind deaktiviert.
-
Das Panel zum Genehmigen oder Ablehnen des Antrags wird jetzt angezeigt.
Sie können die Debugging-Protokollierung aktivieren, indem Sie den Logger für „com.aemforms.setvalue.core.SetValueInJson“ hier aktivieren.