Da ein adaptives Formular in AEM Workflow an verschiedene Benutzer weitergeleitet wird, müssen bestimmte Felder oder Bereiche je nach Benutzer, die das Formular überprüfen, ausgeblendet oder deaktiviert werden. Um diese Anwendungsfälle zu erfüllen, legen wir normalerweise den Wert eines ausgeblendeten Felds fest. Basierend auf den Werten dieses ausgeblendeten Felds können Geschäftsregeln erstellt werden, um entsprechende Bereiche oder Felder auszublenden/zu deaktivieren.
In AEM Forms OSGi müssen wir ein benutzerdefiniertes OSGi-Bundle erstellen, um den Wert des JSON-Datenelements festzulegen. Das Bundle wird im Rahmen dieses Tutorials bereitgestellt.
Wir verwenden Prozessschritt in AEM Workflow. Wir verknüpfen dieses Prozessschritt mit dem OSGi-Bundle "Set Value of Element in Json".
Wir müssen zwei Argumente an das Set Value Bundle übergeben. Das erste Argument ist der Pfad zum Element, dessen Wert festgelegt werden muss. Das zweite Argument ist der festzulegende Wert.
Im obigen Screenshot legen wir beispielsweise den Wert des Elements "intialStep"auf "N"fest
afData.afUnboundData.data.initialStep,N
In unserem Beispiel haben wir ein einfaches Antragsformular für die Zeit vor der Abreise. Der Initiator dieses Formulars gibt seinen Namen und die Uhrzeit der Veröffentlichung ein. Bei der Übermittlung wird dieses Formular zur Überprüfung an den "Manager"gesendet. Wenn der Manager das Formular öffnet, sind die Felder im ersten Bedienfeld deaktiviert. Dies liegt daran, dass wir den Wert des Elements des ersten Schritts in den JSON-Daten auf N festgelegt haben.
Basierend auf dem Wert der Felder für den ersten Schritt zeigen wir das Fenster Genehmiger , in dem der "Manager"die Anfrage genehmigen oder ablehnen kann.
Bitte schauen Sie sich die Regeln an, die gegen "Ursprünglicher Schritt"festgelegt wurden. Basierend auf dem Wert des Felds initialStep rufen wir die Benutzerdetails mithilfe des Formulardatenmodells ab, füllen die entsprechenden Felder aus und blenden/deaktivieren die entsprechenden Bereiche ein.
So stellen Sie die Assets auf Ihrem lokalen System bereit:
Herunterladen und Bereitstellen von DevelopingWitheServiceUserBundle
Herunterladen und Bereitstellen des setvalue-Bundles. Dies ist das benutzerdefinierte OSGi-Bundle, mit dem Sie die Werte eines Elements in den gesendeten JSON-Daten festlegen können.
Herunterladen und Extrahieren des Inhalts der ZIP-Datei
Zeigen Sie Ihren Browser auf Forms und Dokumente
Klicken Sie auf Erstellen | Datei-Upload
Datei "Upload TimeOffRequestForm.zip"
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 die Formular
Füllen Sie die Start- und Enddaten aus und senden Sie das Formular.
Navigieren Sie zu "Posteingang"
Öffnen Sie das mit der Aufgabe verknüpfte Formular.
Beachten Sie, dass die Felder im ersten Bedienfeld deaktiviert sind.
Beachten Sie, dass der Bereich zum Genehmigen oder Ablehnen der Anfrage jetzt angezeigt wird.
Da wir das adaptive Formular mit dem Benutzerprofil vorab ausfüllen, stellen Sie sicher, dass der Administrator Benutzerprofilinformationen . Stellen Sie mindestens sicher, dass Sie die Feldwerte FirstName, LastName und Email festgelegt haben.
Sie können die Debug-Protokollierung aktivieren, indem Sie die Protokollfunktion für com.aemforms.setvalue.core.SetValueInJson aktivieren von hier
Das OSGi-Bundle zum Festlegen des Werts von Datenelementen in JSON Data unterstützt derzeit die Möglichkeit, einen Elementwert gleichzeitig festzulegen. Wenn Sie mehrere Elementwerte festlegen möchten, müssen Sie den Prozessschritt mehrmals verwenden.
Stellen Sie sicher, dass der Datendateipfad in den Sendeoptionen des adaptiven Formulars auf "Data.xml"festgelegt ist. Dies liegt daran, dass der Code im Prozessschritt nach einer Datei namens Data.xml unter dem Payload-Ordner sucht.