[AEM Forms]{class="badge positive" title="van toepassing op AEM Forms)."}
Een aangepaste functie maken voor een adaptief formulier op basis van kerncomponenten
Adaptieve Forms op basis van Core Components biedt een dynamische gebruikerservaring door de inhoud en het gedrag aan te passen op basis van de gebruikersinvoer. Met aangepaste functies kunnen ontwikkelaars hun functionaliteit uitbreiden, zodat formulieren aan specifieke vereisten voldoen. Door douanefuncties te integreren, kunnen de ontwikkelaars complexe logica uitvoeren, processen automatiseren, en unieke interactie introduceren die zich op specifieke bedrijfsvereisten of gebruikersverwachtingen richten. Het zorgt ervoor dat de formulieren niet alleen worden aangepast aan uiteenlopende omstandigheden, maar ook een preciezere en effectievere oplossing bieden voor verschillende gebruiksgevallen.
Dit artikel begeleidt u door de stappen voor het maken van aangepaste functies voor Adaptive Forms met behulp van kerncomponenten.
Overwegingen
-
De
parameter typeenreturn typebieden geen ondersteuning voorNone. -
De functies die niet worden ondersteund in de lijst met aangepaste functies zijn:
- Generatorfuncties
- Functies Async/Await
- Methodedefinities
- Methoden van Class
- Standaardparameters
- Rustparameters
-
De nieuwste ECMAScript-functies zijn beschikbaar als Early Access (EA), terwijl ECMAScript 2019 in het algemeen beschikbaar is.
Vereisten om een aangepaste functie te maken
Voordat u een aangepaste functie toevoegt aan de Adaptive Forms, moet u het volgende doen:
Software:
-
Onbewerkte Redacteur van de Tekst (winde): Terwijl om het even welke duidelijke tekstredacteur kan werken, biedt een Geïntegreerde Milieu van de Ontwikkeling (winde) zoals de Code van Microsoft Visual Studio geavanceerde eigenschappen voor het gemakkelijkere uitgeven aan.
-
Git: Dit systeem van de versiecontrole wordt vereist voor het beheren van codeveranderingen. Als u deze niet hebt geïnstalleerd, kunt u deze downloaden van https://git-scm.com.
Een aangepaste functie maken
Creeer een cliëntbibliotheek om douanefuncties in de regelredacteur te roepen. Voor meer informatie, zie Gebruikend cliënt-Kant Bibliotheken .
Stappen voor het maken van aangepaste functies zijn:
Een clientbibliotheek maken create-client-library
U kunt aangepaste functies toevoegen door een clientbibliotheek toe te voegen. Voer de volgende stappen uit om een clientbibliotheek te maken:
Kloon de Bewaarplaats
Kloon uw Bewaarplaats van AEM Forms as a Cloud Service :
-
Open de opdrachtregel of het terminalvenster.
-
Navigeer naar de gewenste locatie op uw computer waar u de opslagplaats wilt opslaan.
-
Voer de volgende opdracht uit om de gegevensopslagruimte te klonen:
git clone [Git Repository URL]
Met deze opdracht downloadt u de opslagplaats en maakt u een lokale map van de gekloonde opslagplaats op uw computer. Door deze gids, verwijzen wij naar deze omslag als [ AEMaaCS projectfolder ].
voeg een Omslag van de Bibliotheek van de Cliënt toe
Om nieuwe omslag van de cliëntbibliotheek aan de [ AEMaaCS projectfolder ] toe te voegen, volg deze stappen:
-
Open de [ AEMaaCS projectfolder ] in een redacteur.
-
Zoek
ui.apps. -
Nieuwe map toevoegen. Voeg bijvoorbeeld een map toe met de naam
experience-league. -
Navigeer naar de map
/experience-league/en voeg eenClientLibraryFoldertoe. Maak bijvoorbeeld een clientbibliotheekmap met de naamcustomclientlibs.Location is: [AEMaaCS project directory]/ui.apps/src/main/content/jcr_root/apps/
voegt dossiers en omslagen aan de omslag van de Bibliotheek van de Cliënt toe
Voeg het volgende toe aan de toegevoegde omslag van de cliëntbibliotheek:
- .content.xml, bestand
- js.txt, bestand
- map js
Location is: [AEMaaCS project directory]/ui.apps/src/main/content/jcr_root/apps/experience-league/customclientlibs/
-
Voeg in
.content.xmlde volgende coderegels toe:code language-javascript <?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="cq:ClientLibraryFolder" categories="[customfunctionscategory]"/>note note NOTE U kunt een willekeurige naam kiezen voor de eigenschappen client library folderencategories. -
Voeg in
js.txtde volgende coderegels toe:code language-javascript #base=js function.js -
Voeg in de map
jshet javascript-bestand toe alsfunction.jsdat de aangepaste functies bevat:code language-javascript /** * Calculates Age * @name calculateAge * @param {object} field * @return {string} */ function calculateAge(field) { var dob = new Date(field); var now = new Date(); var age = now.getFullYear() - dob.getFullYear(); var monthDiff = now.getMonth() - dob.getMonth(); if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) { age--; } return age; } -
Sla de bestanden op.
omvat de nieuwe omslag in filter.xml:
-
Navigeer aan het
/ui.apps/src/main/content/META-INF/vault/filter.xmldossier in uw [ AEMaaCS projectfolder ]. -
Open het bestand en voeg de volgende regel aan het einde toe:
<filter root="/apps/experience-league" /> -
Sla het bestand op.
stel de pas gecreëerde de bibliotheekomslag van de Cliënt aan uw milieu van AEM op
Stel AEM as a Cloud Service, [ AEMaaCS projectfolder ], aan uw milieu van Cloud Service op. Distribueren naar uw Cloud Service-omgeving:
-
De wijzigingen vastleggen
- U kunt de wijzigingen in de opslagplaats toevoegen, vastleggen en doorvoeren met behulp van de onderstaande opdrachten:
code language-javascript git add . git commit -a -m "Adding custom functions" git push -
De bijgewerkte code implementeren:
- Trigger een plaatsing van uw code door de bestaande full-stack pijpleiding. Hiermee wordt de bijgewerkte code automatisch samengesteld en geïmplementeerd.
Als u niet reeds opstelling een pijpleiding hebt, verwijs naar de gids op hoe te opstelling een pijpleiding voor AEM Forms as a Cloud Service .
Zodra de pijpleiding met succes wordt uitgevoerd, wordt de douanefunctie die in de cliëntbibliotheek wordt toegevoegd beschikbaar in uw Aangepaste redacteur van de Regel van de Vorm .
Clientbibliotheek toevoegen aan een adaptief formulier use-custom-function
Zodra u de clientbibliotheek hebt geïmplementeerd in uw Forms CS-omgeving, gebruikt u de mogelijkheden van de clientbibliotheek in uw adaptieve formulier. De clientbibliotheek toevoegen aan uw adaptieve formulier
-
Open het formulier in de bewerkingsmodus. Als u een formulier wilt openen in de bewerkingsmodus, selecteert u een formulier en selecteert u Edit .
-
Open de browser Inhoud en selecteer de component Guide Container van het adaptieve formulier.
-
Klik de eigenschappen van de Container van de Gids
pictogram. Het dialoogvenster Aangepaste formuliercontainer wordt geopend. -
Open het tabblad Basic en selecteer de naam van de client library category in de vervolgkeuzelijst (in dit geval selecteert u
customfunctionscategory).
note note NOTE U kunt meerdere categorieën toevoegen door een door komma's gescheiden lijst op te geven in het veld Client library category . -
Klik op Done.
U kunt de douanefunctie in de regelredacteur van een Aangepaste Vorm gebruiken gebruikend de annotaties van JavaScript .
Een aangepaste functie gebruiken in een adaptief formulier
In een AanpassingsVorm, kunt u douanefuncties binnen de regelredacteur gebruiken. Voeg de volgende code toe aan het JavaScript-bestand (Function.js ) om de leeftijd te berekenen op basis van de geboortedatum (JJJJ-MM-DD). Maak een aangepaste functie als calculateAge() die de geboortedatum als invoer neemt en de leeftijd retourneert:
/**
* Calculates Age
* @name calculateAge
* @param {object} field
* @return {string}
*/
function calculateAge(field) {
var dob = new Date(field);
var now = new Date();
var age = now.getFullYear() - dob.getFullYear();
var monthDiff = now.getMonth() - dob.getMonth();
if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) {
age--;
}
return age;
}
In het bovenstaande voorbeeld wordt de aangepaste functie calculateAge aangeroepen en wordt de leeftijd geretourneerd wanneer de gebruiker de geboortedatum in de notatie invoert (JJJJ-MM-DD).
Bekijk een voorbeeld van het formulier om te zien hoe de aangepaste functies worden geïmplementeerd via de regeleditor:
Functies van Aangepaste functies
Aangepaste functies in AEM-formulieren bieden een robuuste oplossing voor het uitbreiden en aanpassen van de functionaliteit van uw formulieren. U kunt de aangepaste functies gebruiken om aan de specifieke behoeften van uw organisatie te voldoen.
Deze functies ondersteunen diverse mogelijkheden, zoals het werken met specifieke gebieden, het gebruiken van globale gebieden, en asynchrone verrichtingen, evenals het opnemen van caching mechanismen. Dankzij deze flexibiliteit kunnen formulieren zich aanpassen aan complexe vereisten en een efficiënte, op maat gemaakte gebruikerservaring bieden. Door gebruik te maken van deze geavanceerde functies kunt u de interactie van formulieren verbeteren en de prestaties optimaliseren, zodat uw AEM-formulieren zowel functioneler als responsiever worden.
Laten we eens kijken naar de functies van aangepaste functies.
Asynchrone ondersteuning in aangepaste functies support-of-async-functions
U kunt asynchrone functies in de regelredacteur uitvoeren gebruikend douanefuncties. Voor begeleiding op hoe te om dit te doen, verwijs naar het artikel Gebruikend asynchrone functies in een AanpassingsVorm .
Veld- en globale bereikobjecten ondersteunen aangepaste functies support-field-and-global-objects
Veldobjecten verwijzen naar de afzonderlijke componenten of elementen in een formulier, zoals tekstvelden, selectievakjes. Het object Globals bevat alleen-lezen variabelen, zoals formulierinstantie, doelveldinstantie en methoden voor het uitvoeren van formulierwijzigingen binnen aangepaste functies.
param {scope} globals moet de laatste parameter zijn en wordt niet weergegeven in de regeleditor van een adaptief formulier.Voor meer informatie over werkingsgebiedvoorwerpen, zie de voorwerpen van het Toepassingsgebied in douanefuncties artikel.
Ondersteuning voor caching in aangepaste functies
De adaptieve Forms voert caching voor douanefuncties uit om reactietijd te verbeteren terwijl het terugwinnen van de lijst van de douanefunctie in de regelredacteur. Er verschijnt een bericht als Fetched following custom functions list from cache in het error.log -bestand.
Als de aangepaste functies worden gewijzigd, wordt het in cache plaatsen ongeldig en wordt het geparseerd.
Problemen oplossen
-
Als het JavaScript-bestand met code voor aangepaste functies een fout bevat, worden de aangepaste functies niet vermeld in de regeleditor van een adaptief formulier. Als u de lijst met aangepaste functies wilt controleren, navigeert u naar het
error.log-bestand voor de fout. In het geval van een fout wordt de lijst met aangepaste functies leeg weergegeven:
Als er geen fout optreedt, wordt de aangepaste functie opgehaald en in het
error.log-bestand weergegeven. Er verschijnt een bericht alsFetched following custom functions listin heterror.log-bestand:
Volgende stap
Laat ons nu diverse voorbeelden van douanefuncties voor een Aangepaste Vorm zien die op de Componenten van de Kern wordt gebaseerd.
Zie ook
- Inleiding aan de Redacteur van de Regel voor AanpassingsForms die op de Componenten van de Kern wordt gebaseerd
- De types en de gebeurtenissen van de exploitant in regelredacteur van een Adaptief Vorm die op de Componenten van de Kern wordt gebaseerd
- De Redacteur van de regel Gebruikersinterface voor Adaptieve Forms die op de Componenten van de Kern wordt gebaseerd
- Verschillende gevallen van gebruik van de Rule Editor voor een adaptief formulier op basis van kerncomponenten
- Verschil in verschillende versies van de redacteur van de Regel
- Asynchrone functies in een adaptief formulier gebruiken
- De verhogingen van de Dienst van de aanwending in de Visuele Redacteur van de Regel voor vormen die op de Componenten van de Kern worden gebaseerd
- Inleiding tot aangepaste functies voor adaptieve Forms op basis van kerncomponenten
- Een aangepaste functie maken voor een adaptief formulier op basis van kerncomponenten
- Object Scope in aangepaste functies
- Voorbeelden van het ontwikkelen en gebruiken van een aangepaste functie