Lire les fonctions d’aide de script pour LFDocumentContentBuilder

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 3 minutes de lecture
  • LFDocumentContentBuilder fournit des fonctions utilitaires pour créer le contenu d’un document. Utilisez ces fonctions pour écrire la logique permettant d’extraire le contenu traduisible de n’importe quel artefact, qu’il utilise des tables standard ou non pour les traductions.

    initialize (version, targetLanguage, sys_id, tableName)

    Utilisez cette fonction en tant que constructeur pour LFDocumentContentBuilder et inclut les paramètres suivants :
    Nom Type Description
    Version Chaîne Le type de version du contenu du document à générer. Pour Washington DC, cette valeur est v1.
    targetLanguage Chaîne La langue cible du contenu du document de tâche de localisation.

    La langue cible est la même que la langue disponible à partir de l’argument de fonction de script lu.

    Sys_id Chaîne sys_id de l’enregistrement d’artefact.
    tableName Chaîne Nom de table de l’enregistrement d’artefact.

    processString (chaîne, groupName, étiquette)

    Utilisez cette fonction pour ajouter LFDocumentContentElement dans le contenu du document pour la chaîne donnée et inclut les paramètres suivants.
    Nom Type Description
    chaîne Chaîne Valeur pour laquelle une entrée de contenu de document est créée.
    groupName Chaîne Nom du groupe auquel l’élément doit appartenir.
    étiquette Chaîne L’identificateur unique de l’étiquette pour l’élément créé.

    processStringArray (stringArray, groupName, étiquette)

    Utilisez cette fonction pour ajouter des éléments (objet de LFDocumentContentElement) dans le contenu du document pour les chaînes données et inclut les paramètres suivants.
    Nom Type Description
    stringArray (en anglais seulement) Liste de chaînes Liste des valeurs pour lesquelles l’entrée de contenu du document est créée.
    groupName Chaîne Nom du groupe auquel ces chaînes appartiennent.
    étiquette Chaîne Identificateur d’étiquette unique pour ces chaînes.

    processScript (scriptContent, groupName, étiquette)

    Utilisez cette fonction pour ajouter un élément dans le contenu du document pour les chaînes présentes en tant qu’entrée de getMessage, gs.getMessage ou gs.getMessageLang dans le script fourni. Il comporte les paramètres suivants :
    Nom Type Description
    scriptContent (contenu du script) Chaîne Script à traiter pour obtenir les chaînes présentes en entrée de getMessage, gs.getMessage ou gs.getMessageLang.
    groupName Chaîne Le nom du groupe pour cette entrée.
    étiquette Chaîne L’identificateur unique de l’étiquette pour cette entrée.
    Par exemple :
    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)

    Utilisez cette fonction pour créer des éléments pour l’objet glideRecord donné, dans le contenu du document pour tous ses champs à traduire. Ces champs traduisibles peuvent être de types translated_field, translated_text ou translated_html. Il comprend les paramètres suivants :
    Nom Type Description
    glideRecord GlideRecord Objet GlideRecord à traiter pour les champs à traduire. Le GlideRecord doit pointer vers l’enregistrement de table valide.
    groupName Chaîne Le nom du groupe pour cette entrée.

    processTranslatableFieldsForMultipleRecords (tableName, encodedQuery, groupName)

    Utilisez cette fonction pour extraire tous les enregistrements qualifiés pour tableName et encodedQuery donnés, et ajoute des éléments (objet de LFDocumentContentElement) dans le contenu du document pour tous les champs traduisibles. Il comprend les paramètres suivants :
    Nom Type Description
    tableName Chaîne Table pour extraire les enregistrements.
    encodedQuery Chaîne Requête codée de filtrage des enregistrements à partir de la table processTranslatableFieldsForSingleRecord.
    groupName Chaîne Le nom du groupe pour cette entrée.

    processElement()

    Utilisez cette fonction pour ajouter un élément (objet de LFDocumentContentElement) à l’objet LFDocumentContent.
    élément LFDocumentContentElement Élément à ajouter au contenu du document.

    build()

    Renvoie l’objet LFDocumentContent.

    Remarque :
    La fonction getFinalJSON a été déconseillée dans la Washington DC version et il est recommandé d’utiliser la fonction build().
    Exemple de script pour créer le contenu du document.
    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
    }
    

    Exemple de script pour extraire des données de 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
            }
        }
    }