Handlebars is een templatemechanisme dat de mogelijkheid biedt om een sjabloon te definiëren met plaatshouders voor verwachte gegevenselementen. Tijdens het uitvoeren worden de werkelijke waarden voor die gegevenselementen in de sjabloon gesubstitueerd om een uitvoer te creëren.
Handlebars maakt gebruik van Mustache, een template-engine zonder logica. Mustache werd oorspronkelijk gemaakt om meer dynamische HTML-pagina's te kunnen bouwen, maar het kan gebruikt worden voor elke tekstgebaseerde uitvoer die gemaakt kan worden vanuit een sjabloon.
Gebruikscases
Sturen kunnen aan een groot aantal behoeften voldoen, waaronder:
- Opgemaakte e-mails genereren
- Bestanden of tekst in een vereist formaat maken, zoals de body van een HTTP POST-verzoek
- Verwerken van complexe JSON payloads, zoals die met geneste arrays
Stuurcommando's
Er zijn twee commando's voor de connector van het stuur:
- Renderbestand sjabloon: Deze opdracht wordt gebruikt om grote (>32k tekens) uitvoer te maken. Het produceert een fysiek bestand dat gebruikt kan worden door volgende kettingopdrachten die bestandsinvoer vereisen. Een optie om een bestandssjabloon op te slaan in Workiva is bestandsbronnen.
- Tekstsjabloon renderen: Deze opdracht wordt gebruikt om kleine tot middelgrote uitvoer te maken. Het genereert een tekstgebaseerde uitvoer die niet gebruikt kan worden in volgende opdrachten die een fysiek bestand vereisen.
Elk van deze commando's heeft op zijn beurt twee hoofdcomponenten:
- Sjabloon: De tekst die wordt bijgewerkt wanneer de opdracht wordt uitgevoerd. De tekst wordt precies weergegeven zoals opgegeven, inclusief inspringen of carriage returns.
- Variabelen: De waarden die in de sjabloon worden vervangen wanneer de opdracht wordt uitgevoerd. Er kunnen afzonderlijke variabelen worden opgegeven, zoals de uitvoer van het aantal rijen van een opdracht zoals advanced query.
Voorbeeldconfiguratie
Hieronder ziet u een voorbeeldconfiguratie waarbij een rendertekstsjabloon wordt gebruikt:
In het sjabloongedeelte van de opdracht zijn er verschillende dingen die het vermelden waard zijn:
Deze sjabloon rendert gewone en json variabelen.
- Deze tekst is ingesprongen en geeft de rijentelling weer: {{rows}}
Hieronder staat de lijst met prioriteiten in het JSON-object
{{#each priorities}}
+{{Priority}}
{{/each}}
- De eerste regel van de sjabloon is puur tekst en gebruikt geen variabelen.
- De tweede regel is ingesprongen en gebruikt de variabele rijen.
- De derde regel is leeg vanwege een carriage return.
- Regels 4-6 worden gebruikt om de JSON-variabele genaamd prioriteiten te verwerken.
- Regel 4 is het begin van een lus door de JSON-variabele genaamd prioriteiten.
- Regel 5 retourneert de waarde van het JSON sleutelwaardepaar voor de sleutel genaamd Prioriteit. Merk op dat sleutelnamen hoofdlettergevoelig zijn -- er is een plusteken (+) aan de regel toegevoegd om weer te geven hoe gewone tekst en variabele waarden meestal gecombineerd kunnen worden.
- Regel 6 sluit de lus door het prioriteiten JSON object.
In het gedeelte variabelen van de opdracht:
- Een variabele met de naam rijen wordt gedefinieerd als de Record Count uitvoer van een vorige opdracht.
- Een JSON-variabele met de naam prioriteiten is gedefinieerd als de uitvoer van JSON File van een vorige opdracht.
In dit voorbeeld is het JSON object het volgende:
[
{"Prioriteit":"Gemiddeld"},
{"Prioriteit":"Hoog"},
{"Prioriteit":"Laag"}
]
De resulterende gerenderde tekst van de opdracht Handlebars ziet u hieronder:
Opmerking: Aanvullende informatie over Handlebar-functies en hoe deze kunnen worden gebruikt om een sjabloon te construeren, vindt u in ons artikel Handlebar-functies.
Dingen die u moet weten
Plaatshouders voor variabelen worden gedefinieerd door dubbele ({{Variable_Name}}) of driedubbele ({{Variable_Name}}}) accolades. Drie accolades worden gebruikt wanneer een variabele waarde speciale HTML-tekens bevat die moeten worden weergegeven als het teken, in tegenstelling tot de HTML-code die bij het teken hoort.
Het teken groter dan (>) is bijvoorbeeld een speciaal HTML-teken. Met dubbele accolades zou een variabele waarde die dit teken bevat de HTML-code (>) weergeven, terwijl driedubbele accolades het teken groter dan (>) zouden weergeven.