API
Konstruktor
constructor
new TemplateCompiler(
template: string,
withData?: Object
): TemplateCompiler
Parameter
template: string: Der Handlebar TemplatewithData?: Object: Optional - Daten
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const compiler = new TemplateCompiler("<h1>Howdy!</h1>")
Statische Funktionen
fromFileCoverTemplate : TemplateCompiler
Erstellt eine neue TemplateCompiler Instanz. Dabei wird das standardisierte FileCover Template geladen und mit dem Daten aus dem DocFile kompiliert.
Bitte folgende Punkte beachten:
- Gadget Felder werden ignoriert.
- Die Reihenfolge der Felder bezieht sich immer aus documents. Die Reihenfolge in der
includedFieldsist irrelevant!
fromFileCoverTemplate(docFile: DocFile, fileCoverOptions: {
includedFields?: Array<string>;
excludedFields?: Array<string>;
multiTableFields?: Array<{
fieldName: string;
columns: Array<string>;
}>;
asPdf?: boolean = true;
showPageFooter?: boolean = true;
}): TemplateCompiler
Parameter fromFileCoverTemplate
docFile: DocFile: Das DocFile welches verwendet werden sollfileCoverOptions.includeFields: (Optional) Array mit Felder, welche im Report sichtbar sein sollen (Achtung: ist ein Feld unsichtbar ist und hier mit angegeben, wird es trotzdem im Report angezeigt).fileCoverOptions.excludedFields: (Optional) Array mit Felder, welche im Report nicht sichtbar sein sollen.fileCoverOptions.multiTableFields: (Optional) Array mit Informationen über zu einem MultiTable.fileCoverOptions.asPdf: (Optional) Template wird für eine PDF-Datei optimiert (Ausgabe eines gültigen HTMLs mit Body usw.).fileCoverOptions.showPageFooter: (Optional) Nur in Verbindung mitasPdf, Zeit unten in der Fusszeile Informationen zur Mappe an (Ersteller und letzter Bearbeiter)
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const template = TemplateCompiler.fromFileCoverTemplate(context.file);
Die Reihenfolge der Felder bezieht sich immer aus documents. Die Reihenfolge in der includedFields ist irrelevant!
Beispiel Ausgabe mit folgenden Felder:
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const template = TemplateCompiler.fromFileCoverTemplate(context.file, {
includedFields: [
"Feld1",
"Feld2",
"Feld3",
]
});
Beispiel MultiTable Die Implementierung der MultiTable ist (aktuell) sehr einfach gestaltet.
Angenommen das MultiTable Gadget sieht so aus:
context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");
context.returnValue = new TableGadget({
fieldName: "jsonField",
columns: {
column1: {
label: "de:Spalte1;en:Column1"
},
column2: {
label: "de:Spalte2;en:Column2"
},
column3: {
label: "de:Spalte3;en:Column3"
}
}
}).transfer();
- Nun muss der Wert aus
fieldNameübernommen werden. - Die
labelder Spalten müssen alsString-Arrayincolumnsübergeben werden.
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const template = TemplateCompiler.fromFileCoverTemplate(context.file, {
multiTableFields: [{
// JSON-Feld in Mappe
fieldName: "jsonField",
columns: [
"de:Spalte1;en:Column1",
"de:Spalte2;en:Column2",
"de:Spalte3;en:Column3",
]
}]
});
fromDocFile : TemplateCompiler
Erstellt eine neue TemplateCompiler Instanz. Dabei wird das Handlebar-Template geladen und mit dem Daten aus dem DocFile kompiliert.
fromDocFile(docFile: DocFile, templateOrFilePath: string, additionalData?: Object): TemplateCompiler
Parameter
docFile: DocFile: Das DocFile welches verwendet werden solltemplateOrFilePath: string: Handlebar-Template - Entweder als String oder ein Dateipfad.additionalData?: Object: Optionale Daten
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const TemplateCompiler = TemplateCompiler.fromDocFile(context.file, "D:\\EASY\\Workflow-ext\\TemplateCompilers\\ou\\cust\\custom-TemplateCompiler.hbs");
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const TemplateCompiler = TemplateCompiler.fromDocFile(context.file, "<h1>{{DlcFile_Title}} {{custom}}</h1>", {
custom: "works!"
});
fromDocFileWithDocumentTemplate : TemplateCompiler
Erstellt eine neue TemplateCompiler Instanz. Dabei wird die Dokumentenvorlage des Mappentyp von docFile geladen und mit dem Daten aus dem DocFile kompiliert.
fromDocFileWithDocumentTemplate(docFile: DocFile, templateName: string, additionalData?: Object): TemplateCompiler
Parameter
docFile: DocFile: Das DocFile welches verwendet werden solltemplateName: string: Die zu verwende Dokumentenvorlage des MappentypsadditionalData?: Object: Optionale Daten
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const TemplateCompiler = TemplateCompiler.fromDocFileWithDocumentTemplate(context.file, "meineVorlage");

fromDocumentTemplate : TemplateCompiler
Erstellt eine neue TemplateCompiler Instanz anhand des angegebenen Mappentyp und Dokumentenvorlage.
fromDocumentTemplate(fileTypeName: string, templateName: string, data: Object): TemplateCompiler
Im Gegensatz zu fromDocFileWithDocumentTemplate wird hier nur der Mappentyp übergeben. Es werden keine Daten aus einem DocFile geladen!
Parameter
fileTypeName: string: Der gewünschte MappentyptemplateName: string: Die zu verwende Dokumentenvorlage des Mappentypsdata: object: Das Daten-Objekt, welches die Daten enthält.
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const TemplateCompiler = TemplateCompiler.fromString("testMappe", "meineVorlage", {
name: "Chuck"
});

fromFilePath : TemplateCompiler
Erstellt eine neue TemplateCompiler Instanz anhand des angegebenen Datei aus dem Dateisystem.
fromFilePath(filePath: string, data: object): TemplateCompiler
Parameter
filePath: string: Handlebar-Template als Dateipfad.data: object: Das Daten-Objekt, welches die Daten enthält.
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const TemplateCompiler = TemplateCompiler.fromString("D:\\EASY\\Workflow-ext\\TemplateCompilers\\ou\\cust\\custom-TemplateCompiler.hbs", {
name: "Chuck"
});
compileFromDocFile : string
Kompiliert das Handlebar-Template mit dem Daten aus dem DocFile und gibt dies als string zurück.
compileFromDocFile(docFile: DocFile, templateOrFilePath: string, additionalData?: Object): string
Parameter
docFile: DocFile: Das DocFile welches verwendet werden solltemplateOrFilePath: string: Handlebar-Template - Entweder als String oder ein Dateipfad.additionalData?: Object: Optionale Daten
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const template = TemplateCompiler.compileFromDocFile(context.file, "D:\\EASY\\Workflow-ext\\TemplateCompilers\\ou\\cust\\custom-TemplateCompiler.hbs");
compileFromFilePath : string
Kompiliert die Datei aus dem Dateisystem und gibt dies als string zurück.
compileFromFilePath(filePath: string, data: object): string
Parameter
filePath: string: Handlebar-Template als Dateipfad.data: object: Das Daten-Objekt, welches die Daten enthält.
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const template = TemplateCompiler.compileFromFilePath("D:\\EASY\\Workflow-ext\\TemplateCompilers\\ou\\cust\\custom-TemplateCompiler.hbs", {
name: "Chuck"
});
// template: "Hello Chuck"
Instanz Funktionen
useDocFile : void
Verwendet das angegebene DocFile als Datenpool.
Verwendet wird die Funktion docFile.asJSON([], util.JSON_RAW | util.JSON_LABEL | util.JSON_LOCALE) .
Somit ist es möglich in den Templates auch die Labels zu verwenden, z. B. {{label.invoiceNumber}}
useDocFile(docFile: DocFile, additionalData?: Object)
Parameter
docFile: DocFile: Das DocFile welches verwendet werden solladditionalData?: Object: Optionale Daten
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const compiler = new TemplateCompiler("<h1>{{label.invoiceNumber}}: {{invoiceNumber}}</h1>");
compiler.useDocFile(context.file);
const template = compiler.compile();
// template: "<h1>Rechnungsnummer: 12345</h1>"
compile : string
Kompiliert das Template mit den optionalen Daten.
compile(data?: object, compileOptions: CompileOptions = {}): string
Parameter
data?: object: (Optional) Das Daten-Objekt, welches die Daten enthält.compileOptions?: CompileOptions: Optionale Kompiler-Optionen für Handlebars, siehe Handlebars-API.
Beispiel
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const compiler = new TemplateCompiler("<h1>Hello {{name}}</h1>");
const template = compiler.compile({
name: "Chuck"
});
// template: "<h1>Hello Chuck</h1>"
context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");
const compiler = new TemplateCompiler("{{autoText 'userFullname'}}");
const template = compiler.compile();
// template: "One Unity, Admin"
toString : string
Gibt das kompilierte Template, wenn dies mit Daten erstellt wurde, ansonsten nur das Template.
toString(): string
Beispiel
context.enableModules();
const { Report } = require("ou.sp. Report");
new Report("<h1>Hello {{name}}</h1>").toString();
// "<h1>Hello {{name}}</h1>"
// ABER
new Report("<h1>Hello {{name}}</h1>", {
name: "Chuck"
}).toString();
// "<h1>Hello Chuck</h1>"