Lire les fonctions d’aide de script pour LFDocumentContentBuilder

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • LFDocumentContentBuilder fournit des fonctions utilitaires pour créer du contenu de document. Utilisez ces fonctions pour écrire la logique afin d’extraire le contenu traduisible de tous les artefacts, qu’ils utilisent ou non des tables standard pour les traductions.

    initialiser (version, targetLanguage, sys_id, tableName)

    Utilisez cette fonction comme 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 Yokohama, cette valeur est v1.
    targetLanguage Chaîne Langue cible du contenu du document de tâche de localisation.

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

    Sys_id Chaîne Le sys_id de l’enregistrement de l’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 Le nom du groupe auquel l’élément doit appartenir.
    étiquette Chaîne L’identificateur d’étiquette unique 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
    tableau de chaînes Liste de chaînes Liste de 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 Chaîne Script à traiter pour obtenir les chaînes présentes en tant qu’entrée de getMessage, gs.getMessage ou gs.getMessageLang.
    groupName Chaîne Le nom du groupe pour cette entrée.
    étiquette Chaîne Identificateur d’étiquette unique 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 traduisibles. Ces champs traduisibles peuvent être de type translated_field, translated_text ou translated_html. Il comprend les paramètres suivants :
    Nom Type Description
    glideRecord GlideRecord L’objet GlideRecord à traiter pour les champs traduisibles. 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 récupérer 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.

    construire()

    Renvoie l’objet LFDocumentContent.

    Remarque :
    La fonction getFinalJSON a été dépréciée dans la Yokohama version et il est recommandé d’utiliser la fonction build( ).
    Exemple de script permettant de 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
            }
        }
    }