Skripthelferfunktionen für LFDocumentContentBuilder lesen

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 3 Minuten Lesedauer
  • Die LFDocumentContentBuilder Stellt Dienstprogrammfunktionen zum Erstellen von Dokumentinhalten bereit. Verwenden Sie diese Funktionen, um die Logik zu schreiben, um den übersetzbaren Inhalt aus allen Artefakten zu extrahieren, unabhängig davon, ob sie Standardtabellen verwenden oder nicht, für Übersetzungen.

    Initialisieren (Version, targetlanguage, sys_ID, tableName)

    Verwenden Sie diese Funktion als Konstruktor für LFDocumentContentBuilder Und enthält die folgenden Parameter:
    Name Typ Beschreibung
    Version Zeichenfolge Der Versionstyp des zu generierenden Dokumentinhalts. Für Zurich, Dieser Wert ist v1.
    targetLanguage Zeichenfolge Die Zielsprache des Inhalts des Lokalisierungsaufgabendokuments.

    Die Zielsprache ist mit der Sprache identisch, die im Argument der Skriptfunktion zum Lesen verfügbar ist.

    SYS_ID Zeichenfolge Die sys_ID des Artefaktdatensatzes.
    tableName Zeichenfolge Der Tabellenname des Artefaktdatensatzes.

    ProcessString (Zeichenfolge, groupName, Bezeichnung)

    Verwenden Sie diese Funktion, um das LFDocumentContentElement dem Dokumentinhalt für die angegebene Zeichenfolge hinzuzufügen. Es 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 Bezeichner für das erstellte Element.

    ProcessStringArray (StringArray, groupName, label)

    Verwenden Sie diese Funktion, um dem Dokumentinhalt für die angegebenen Zeichenfolgen Elemente (Objekt von LFDocumentContentElement) hinzuzufügen. Sie enthält die folgenden Parameter.
    Name Typ Beschreibung
    StringArray Liste der Zeichenfolgen Die Liste der Werte, für die der Dokumentinhaltseintrag erstellt wird.
    groupName Zeichenfolge Der Name der Gruppe, zu der diese Zeichenfolgen gehören.
    label Zeichenfolge Der eindeutige Bezeichner für diese Zeichenfolgen.

    ProcessScript (scriptContent, groupName, label)

    Verwenden Sie diese Funktion, um dem Dokumentinhalt ein Element für die Zeichenfolgen hinzuzufügen, die als Eingabe von „getMessage“, „gs.getMessage“ oder „gs.getMessageLang“ im bereitgestellten Skript vorhanden sind. Es hat die folgenden Parameter:
    Name Typ Beschreibung
    SkriptContent 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 Bezeichner 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 seine ü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. Der 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 encodedQuery abzurufen und Elemente (Objekt von LFDocumentContentElement) im Dokumentinhalt 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.

    ProcessElement()

    Verwenden Sie diese Funktion, um dem LFDocumentContent-Objekt ein Element (Objekt von LFDocumentContentElement) hinzuzufügen.
    Element LFDocumentContentElement Element, das dem Dokumentinhalt hinzugefügt werden soll.

    Build()

    Gibt das LFDocumentContent-Objekt zurück.

    Hinweis:
    Die Funktion „getFinalJSON“ ist in veraltet Zurich Release und es wird empfohlen, die zu verwenden Build() Funktion.
    Ein 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 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
            }
        }
    }