ArrayList-Variable im AEM-Workflow

Variablen vom Typ ArrayList wurden in AEM Forms 6.5 eingeführt. Ein gängiges Anwendungsbeispiel für die Verwendung der ArrayList-Variablen besteht darin, benutzerdefinierte Routen zu definieren, die in der AssignTask verwendet werden sollen.

Um die ArrayList-Variable in einem AEM-Workflow zu verwenden, müssen Sie ein adaptives Formular erstellen, durch das sich wiederholende Elemente in den übermittelten Daten generiert werden. Eine gängige Praxis ist dabei, ein Schema zu definieren, das ein Array-Element enthält. Für die Zwecke dieses Artikels wurde ein einfaches JSON-Schema mit Array-Elementen erstellt. Der Anwendungsfall besteht darin, dass eine Mitarbeiterin oder ein Mitarbeiter einen Ausgabenbericht ausfüllt. Im Ausgabenbericht erfassen wir, wie die oder der Vorgesetzte der Absenderin bzw. des Absenders und die Managerin oder der Manager dieser bzw. dieses Vorgesetzten heißen. Die Namen dieser Führungskräfte werden in einem Array namens „managerchain“ gespeichert. Der folgende Screenshot zeigt das Ausgabenberichtsformular und die Daten aus dem übermittelten adaptiven Formular.

Ausgabenbericht

Im Folgenden finden Sie die Daten aus dem übermittelten adaptiven Formular. Das adaptive Formular hat auf einem JSON-Schema basiert und die an das Schema gebundenen Daten sind im Datenelement von „afBoundData“ gespeichert. „managerchain“ ist ein Array, und wir müssen „ArrayList“ mit dem name-Element des Objekts innerhalb des managerchain-Arrays auffüllen.

{
    "afData": {
        "afUnboundData": {
            "data": {
                "numericbox_2762582281554154833426": 700
            }
        },
        "afBoundData": {
            "data": {
                "Employee": {
                    "Name": "Conrad Simms",
                    "Department": "IT",
                    "managerchain": [{
                        "name": "Gloria Rios"
                    }, {
                        "name": "John Jacobs"
                    }]
                },
                "expense": [{
                    "description": "Hotel",
                    "amount": 300
                }, {
                    "description": "Air Fare",
                    "amount": 400
                }]
            }
        },
        "afSubmissionInfo": {
            "computedMetaInfo": {},
            "stateOverrides": {},
            "signers": {},
            "afPath": "/content/dam/formsanddocuments/helpx/travelexpensereport",
            "afSubmissionTime": "20190402102953"
            }
        }
}

Zum Initialisieren der ArrayList-Variablen vom Untertyp „String“ können Sie entweder den JSON-Punktnotation- oder den XPath-Zuordnungsmodus verwenden. Der folgende Screenshot zeigt, wie Sie eine ArrayList-Variable namens CustomRoutes mit der JSON Dot Notation befüllen. Stellen Sie sicher, dass Sie auf ein Element in einem Array-Objekt verweisen, wie im folgenden Screenshot gezeigt. Die CustomRoutes-ArrayList wird mit den Namen des Managerchain-Array-Objekts gefüllt.
Mit CustomRoutes ArrayList werden dann die Routen in der AssignTask-Komponente ausgefüllt
customRoutes
Nachdem die Variable „CustomRoutes ArrayList“ mit den Werten aus den übermittelten Daten initialisiert wurde, werden die Routen der Komponente „AssignTask“ mit der Variablen „CustomRoutes“ ausgefüllt. Der folgende Screenshot zeigt die benutzerdefinierten Routen in einer AssignTask
AslingTask

Gehen Sie wie folgt vor, um diesen Workflow auf Ihrem System zu testen:

  • Laden Sie die Datei „ArrayListVariable.zip“ herunter und speichern Sie sie in Ihrem Dateisystem.
  • Importieren Sie die ZIP-Datei mit dem AEM-Paket-Manager.
  • Öffnen Sie das Formular für die Reisekostenabrechnung.
  • Geben Sie einige Ausgaben sowie den Namen der oder des Vorgesetzten und den Namen der Managerin oder des Managers der bzw. des Vorgesetzten ein.
  • Klicken Sie auf die Schaltfläche „Absenden“.
  • Öffnen Sie Ihren Posteingang.
  • Es sollte sich dort eine neue Aufgabe zum Zuweisen der für die Spesenabrechnung zuständigen Person befinden.
  • Öffnen Sie das der Aufgabe zugeordnete Formular.
  • Es sollten zwei benutzerdefinierte Routen mit dem Namen der oder des Vorgesetzten und dem Namen der Managerin oder des Managers der bzw. des Vorgesetzten zu sehen sein.
    Erkunden des ReviewExpenseReportWorkflow. Dieser Workflow verwendet die ArrayList-Variable, die JSON-Typvariable und den Regeleditor in der ODER-Split-Komponente
recommendation-more-help
experience-manager-learn-help-forms