Leseskript-Hilfsfunktionen für LFDocumentContentBuilder
Der LFDocumentContentBuilder bietet Dienstprogrammfunktionen zum Erstellen von Dokumentinhalten. Verwenden Sie diese Funktionen, um die Logik zum Extrahieren des übersetzbaren Inhalts aus Artefakten zu schreiben, unabhängig davon, ob sie Standardtabellen verwenden oder nicht.
initialisieren (version, targetLanguage, sys_id, tableName)
Verwenden Sie diese Funktion als Konstruktor für LFDocumentContentBuilder. Enthält die folgenden Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| Version | Zeichenfolge | Der Versionstyp des zu generierenden Dokumentinhalts. Für Xanadulautet dieser Wert v1. |
| Zielsprache | Zeichenfolge | Die Zielsprache des Inhalts des Lokalisierungsaufgabendokuments. Die Zielsprache ist mit der Sprache identisch, die über das Funktionsargument zum Lesen des Skripts verfügbar ist. |
| Sys_id | Zeichenfolge | Die sys_id des Artefaktdatensatzes. |
| tableName | Zeichenfolge | Der Tabellenname des Artefaktdatensatzes. |
processString (Zeichenfolge, groupName, label)
Verwenden Sie diese Funktion, um dem Dokumentinhalt für die angegebene Zeichenfolge das LFDocumentContentElement hinzuzufügen. Sie enthält die folgenden Parameter.
| Name | Typ | Beschreibung |
|---|---|---|
| Zeichenfolge | Zeichenfolge | Der Wert, für den ein Dokumentinhaltseintrag erstellt wird. |
| groupName | Zeichenfolge | Der Name der Gruppe, zu der das Element gehören soll. |
| label | Zeichenfolge | Der eindeutige Bezeichnungsbezeichner für das erstellte Element |
processStringArray (stringArray, groupName, label)
Verwenden Sie diese Funktion, um im Dokumentinhalt Elemente (Objekt von LFDocumentContentElement) für die angegebenen Zeichenfolgen hinzuzufügen. Sie enthält die folgenden Parameter.
| Name | Typ | Beschreibung |
|---|---|---|
| Zeichenfolgen-Array | Liste von Zeichenfolgen | Die Liste der Werte, für die ein Dokumentinhaltseintrag erstellt wird. |
| groupName | Zeichenfolge | Der Name der Gruppe, zu der diese Zeichenfolgen gehören. |
| label | Zeichenfolge | Der eindeutige Bezeichnungsbezeichner für diese Zeichenfolgen. |
processScript (scriptContent, groupName, label)
Verwenden Sie diese Funktion, um im Dokumentinhalt ein Element für die Zeichenfolgen hinzuzufügen, die als Eingabe für „getMessage“, „gs.getMessage“ oder „gs.getMessageLang“ im bereitgestellten Skript vorhanden sind. Sie besitzt die folgenden Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| scriptContent | Zeichenfolge | Das Skript, das verarbeitet werden soll, um die Zeichenfolgen abzurufen, die als Eingabe von getMessage, gs.getMessage oder gs.getMessageLang vorhanden sind. |
| groupName | Zeichenfolge | Der Name der Gruppe für diese Eingabe. |
| label | Zeichenfolge | Der eindeutige Bezeichnungsbezeichner für diese Eingabe. |
Beispiel:
var documentContentBuilder = new LFDocumentContentBuilder("v1", language, sysId, tableName);
Var name = "name";
documentContentBuilder .processScript("gs.getMessage('Hello {0}, How are you', name)", "Script_Group", "Script_Label");processTranslatableFieldsForSingleRecord (glideRecord, groupName)
Verwenden Sie diese Funktion, um Elemente für das angegebene glideRecord-Objekt im Dokumentinhalt für alle zugehörigen übersetzbaren Felder zu erstellen. Diese übersetzbaren Felder können vom Typ „translated_field“, „translated_text“ oder „translated_html“ sein. Sie enthält die folgenden Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| glideRecord | GlideRecord | Das GlideRecord-Objekt, das für übersetzbare Felder verarbeitet werden soll. GlideRecord muss auf den gültigen Tabellendatensatz verweisen. |
| groupName | Zeichenfolge | Der Name der Gruppe für diese Eingabe. |
processTranslatableFieldsForMultipleRecords (tableName, encodedQuery, groupName)
Verwenden Sie diese Funktion, um alle qualifizierten Datensätze für den angegebenen „tableName“ und die „encodedQuery“ abzurufen und dem Dokumentinhalt Elemente (Objekt von LFDocumentContentElement) für alle übersetzbaren Felder hinzuzufügen. Sie enthält die folgenden Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| tableName | Zeichenfolge | Die Tabelle zum Abrufen von Datensätzen. |
| encodedQuery | Zeichenfolge | Die codierte Abfrage zum Filtern von Datensätzen aus der Tabelle „processTranslatableFieldsForSingleRecord“. |
| groupName | Zeichenfolge | Der Name der Gruppe für diese Eingabe. |
Prozesselement ()
Diese Funktion verwenden, um ein Element (Objekt von LFDocumentContentElement) dem LFDocumentContent-Objekt hinzuzufügen.
| Element | LFDokumentInhaltElement | Element, das dem Dokumentinhalt hinzugefügt werden soll. |
Build ()
Gibt das LFDocumentContent-Objekt zurück.
Hinweis:
Die Funktion getFinalJSON wurde im Release Xanadu eingestellt und es wird empfohlen, die Funktion build() zu verwenden.
Beispielskript zum Erstellen des Dokumentinhalts.
getTranslatableContent: function(params) {
var tableName = params.tableName;
var sysId = params.sysId;
var language = params.language;
var lfDocumentContentBuilder = new global.LFDocumentContentBuilder("v1", language, sysId, tableName);
// This will create a new object of LFDocumentContent and stores it internally
lfDocumentContentBuilder.processTranslatableFieldsForSingleRecord(gr, "Basic Info");
var field = LFDocumentContentHelper.createField(originalValue, translatedValue);
field.setTextType(LFDocumentContentHelper.PLAIN_TEXT_TYPE);
// All the other relevant attributes can be set
var element = LFDocumentContentHelper.createElement(groupName, label);
element.addField(field);
lfDocumentContentBuilder.processElement(element); // Adds element to the LFDocumentContent object
return lfDocumentContentBuilder.build(); // return the LFDocumentContent object
}
Beispielskript zum Extrahieren von Daten aus dem LFDocumentContent
saveTranslatedContent: function(documentContent) {
// LFDocumentContent object is passed as an argument to the saveTranslatedContent
var targetLanguage = documentContent.getLanguage();
var version = documentContent.getVersion();
var elements = documentContent.getElements(); // Array of LFDocumentContentElement objects
for (var idx = 0; idx < elements.length; idx++) {
var element = elements[idx];
var groupName = element.getGroupName();
var fields = element.getFields(); // Array of LFDocumentContentField objects
for (var fieldIdx = 0; fieldIdx < fields.length; fieldIdx++) {
var field = fields[fieldIdx];
var originalValue = field.getOriginalValue();
var translatedValue = field.getTranslatedValue();
// Get all the other required members and process them appropriately
}
}
}