De service Script uitvoeren in AEM Forms op JEE Workbench gebruiken om XML-gegevens te maken using-execute-script-service-forms-jee-workbench
AEM Forms heeft bijvoorbeeld veel XML-gegevens nodig voor JEE Process Management-workflows. XML-gegevens kunnen in een proces worden ingebouwd en naar een Flex-toepassing in AEM Forms op JEE Workspace worden verzonden, voor systeeminstellingen worden gebruikt of voor het doorgeven van informatie van en naar formulieren. Er zijn veel gevallen waarin een AEM Forms on JEE-ontwikkelaar XML moet beheren. Dit vereist vaak dat de XML via een AEM Forms on JEE-proces wordt beheerd.
Wanneer u werkt met eenvoudige XML-instellingen, kunt u de service Set Value
gebruiken. Dit is een standaard AEM Forms op JEE-service. Deze dienst plaatst de waarde van één of meerdere gegevenspunten in het model van procesgegevens. Voor eenvoudige voorwaardelijke logica "als dit, dan dat"scenario's, kan deze dienst het doel aanpassen.
In complexere situaties is de service Waarde instellen echter niet zo effectief. In deze situaties moet u vertrouwen op een robuustere set programmeringsopdrachten, zoals die welke worden geleverd door een programmeertaal zoals Java™. Het gebruik van Java™ om complexe XML te maken kan veel eenvoudiger en duidelijker zijn dan het maken van een XML-document op basis van eenvoudige tekst in de service Waarde instellen. Bovendien is het gemakkelijker om voorwaardelijk programmeren in Java™ dan binnen de Vastgestelde dienst van de Waarde op te nemen.
Het gebruiken van de Dienst van het Manuscript in een Proces uitvoeren using-execute-script-service-in-process
Binnen de standaard AEM Forms on JEE services die beschikbaar zijn in AEM Forms op JEE Workbench, is de Execute Script
-service. Met deze service kunt u scripts uitvoeren in processen en beschikt u over de bewerking executeScript
om dat te doen.
Creeer een Toepassing en een Proces met de Dienst van het Manuscript van de "Uitvoeren"die als Activiteit wordt bepaald create-an-application
De algemene toepassing en het proces worden gemaakt buiten het bereik van deze zelfstudie, maar in het belang van deze instructie is een toepassing met de naam "DemoApplication02" gemaakt. Ervan uitgaande dat er al een toepassing is gemaakt, moet u in deze toepassing een proces maken om de service executeScript aan te roepen. U kunt als volgt een proces toevoegen aan de toepassing die de service Execute Script
bevat:
- Klik met de rechtermuisknop op de toepassing en selecteer New . Selecteer Process in het menu New slide-out. Geef een naam op voor het proces, voeg desgewenst een beschrijving toe en selecteer het pictogram dat u wilt weergeven voor dit proces. In deze zelfstudie hebben we een proces gemaakt met de naam
executeScriptDemoProcess
. - Definieer de beginpunten of kies de eenvoudige optie om de beginpunten later toe te voegen.
- Het proces wordt nu gemaakt en wordt automatisch geopend in het Process Design -venster. Klik in dit venster op het pictogram Activiteitenkiezer boven aan het venster Process Design (Process Design) en sleep de nieuwe activiteit naar de zwembaan. Op dit punt wordt Define Activity Window weergegeven (zie onderstaande afbeelding).
- De service executeScript vindt u onder de set met services van
Foundation
. De naam van de Diensten maakt een lijst van het voorwerp alsExecute Script – 1.0
met de naam van de VerrichtingexecuteScript
. Klik om dit item te selecteren. - Dit proces moet nu worden gemaakt en het venster Process Properties moet standaard in het linkerdeelvenster worden weergegeven.
Voeg een Manuscript aan het Proces met de Dienst van het Manuscript van de "Uitvoeren" toe add-script-to-process-with-execute-script
Zodra het proces met de "Uitvoeren de bepaalde activiteit van de Dienst van het Manuscript"is gecreeerd, kan men dan een manuscript aan dit proces toevoegen. Een script toevoegen aan dit proces:
-
Navigeer naar het palet Process Properties . Vouw in dit palet de sectie Input uit en klik op het pictogram "…".
-
Schrijf uw script in het tekstvak dat wordt weergegeven. Wanneer het manuscript is geschreven, druk O.K. (zie hieronder Figuur).
uit
XML maken met de Scriptservice uitvoeren create-xml-execute-script-service
Nadat een proces is gemaakt met de service Script uitvoeren, kunt u dit script gebruiken om XML te maken. U kunt de scripts schrijven die hieronder worden beschreven in het tekstvak dat wordt beschreven in het gedeelte Een script toevoegen aan het proces met de sectie Execute Script
Service hierboven.
Ongeveer de Uitvoeren Technologie van de Dienst van het Manuscript
Om te weten wat de capaciteiten en de beperkingen van de dienst van het Manuscript zijn, moet men de technologische steunen van de dienst kennen. AEM Forms on JEE gebruikt de parser Apache Xerces Document Object Model (DOM) om XML-variabelen in processen te maken en op te slaan. De middelen zijn een implementatie Java™ van het ModelSpecificatie van de Objecten van het Document van W3C 🔗. De DOM-specificatie is een standaardmanier om XML te manipuleren die al sinds 1998 bestaat. De Java™-implementatie van Xerces, Xerces-J, ondersteunt DOM Level 2 versie 1.0.
De klassen Java™ die worden gebruikt om XML-variabelen op te slaan zijn:
-
org.apache.xerces.dom.NodeImpl en
-
org.apache.xerces.dom.DocumentImpl
DocumentImpl is een subklasse van NodeImpl, zodat kan worden verondersteld dat om het even welke procesvariabele van XML een afleiding NodeImpl is. Zie de documentatie van NodeImplvoor meer details.
de BemonsteringsXML creatie die de Uitvoeren Dienst van het Manuscript gebruikt
Hier volgt een voorbeeld van het maken van XML in een service Script uitvoeren. Het proces heeft een veranderlijke knoop die van type XML is. Het resultaat van deze activiteit is een XML-document. Wat dat document doet, of hoe het op het algemene proces van toepassing is is is buiten bereik voor deze zelfstudie; uiteindelijk komt het neer op wat XML in de algemene toepassing moet doen. Zoals vermeld in de inleiding, kan XML voor vele doeleinden in AEM Forms op JEE vormen en processen worden gebruikt, is dit eenvoudig een verklaring van hoe te om de activiteit van het Manuscript van de Uitvoer te coderen om een eenvoudig document van XML uit te voeren.
Een eenvoudige JavaScript voor het uitvoeren van XML zou er ongeveer als volgt uitzien:
import org.apache.xerces.dom.DocumentImpl;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
Document document = new DocumentImpl();
Element topLevelResources = document.createElement("resources");
Element resource = document.createElement("resource");
resource.setAttribute("id", "first item id");
resource.setAttribute("value", "first item value");
topLevelResources.appendChild(resource);
document.appendChild(topLevelResources);
patExecContext.setProcessDataValue("/process_data/node", document);
Het resultaat van dit eenvoudige script is een nieuw XML-document met een knooppunt met variabele die is ingesteld op:
<resources>
<resource id="first item id" value="first item value"/>
</resources>
Gebruikend een Herhalende lijn om Knooppunten aan XML toe te voegen
U kunt ook knooppunten toevoegen aan een bestaande XML-variabele in het proces. De variabele, node, bevat het XML-object dat is gemaakt.
Document document = patExecContext.getProcessDataValue("/process_data/node");
NodeList childNodes = document.getChildNodes();
int numChildren = childNodes.getLength();
for (int i = 0; i < numChildren; i++)
{
Node currentChild = childNodes.item(i);
if (currentChild.getNodeType() == Node.ELEMENT_NODE)
{
// found the top-level node
Element newResource = document.createElement("resource");
newResource.setAttribute("id", "second item id");
newResource.setAttribute("value", "second item value");
currentChild.appendChild(newResource);
break;
}
}
patExecContext.setProcessDataValue("/process_data/node", document);
The variable node in the XML is now set to:
<resources>
<resource id="first item id" value="first item value"/>
<resource id="second item id" value="second item value"/>
</resources>