Zum Hauptinhalt springen

API

Konstruktor

constructor

new TemplateCompiler(
template: string,
withData?: Object
): TemplateCompiler

Parameter

  • template: string: Der Handlebar Template
  • withData?: 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:

tipp
  • Gadget Felder werden ignoriert.
  • Die Reihenfolge der Felder bezieht sich immer aus documents. Die Reihenfolge in der includedFields ist 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 soll
  • fileCoverOptions.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 mit asPdf, 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);
tipp

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 label der Spalten müssen als String-Array in columns ü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 soll
  • templateOrFilePath: 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 soll
  • templateName: string: Die zu verwende Dokumentenvorlage des Mappentyps
  • additionalData?: Object: Optionale Daten

Beispiel


context.enableModules();
const { TemplateCompiler } = require("ou.sp.TemplateCompiler");

const TemplateCompiler = TemplateCompiler.fromDocFileWithDocumentTemplate(context.file, "meineVorlage");

typings

fromDocumentTemplate : TemplateCompiler

Erstellt eine neue TemplateCompiler Instanz anhand des angegebenen Mappentyp und Dokumentenvorlage.

fromDocumentTemplate(fileTypeName: string, templateName: string, data: Object): TemplateCompiler
info

Im Gegensatz zu fromDocFileWithDocumentTemplate wird hier nur der Mappentyp übergeben. Es werden keine Daten aus einem DocFile geladen!

Parameter

  • fileTypeName: string: Der gewünschte Mappentyp
  • templateName: string: Die zu verwende Dokumentenvorlage des Mappentyps
  • data: 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"
});

typings

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 soll
  • templateOrFilePath: 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.

tipp

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 soll
  • additionalData?: 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>"