LFDocumentContentBuilder のスクリプト読み取りヘルパー関数

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む7読むのに数分
  • LFDocumentContentBuilder は、ドキュメントコンテンツを構築するためのユーティリティ関数を提供します。これらの関数を使用して、それらが翻訳に標準テーブルを使用するかどうかに関係なく、アーティファクトから翻訳可能なコンテンツを抽出するロジックを記述します。

    initialize (version, targetLanguage, sys_id, tableName)

    この関数を LFDocumentContentBuilder のコンストラクターとして使用し、次のパラメーターを含めます。
    名前 タイプ 説明
    Version 文字列 生成されるドキュメントコンテンツのバージョンタイプ。Washington DC の場合、この値は v1 です。
    targetLanguage 文字列 ローカライズタスクドキュメントコンテンツのターゲット言語。

    ターゲット言語は、スクリプト読み取り関数の引数から使用可能な言語と同じです。

    Sys_id 文字列 アーティファクトレコードの sys_id。
    tableName 文字列 アーティファクトレコードのテーブル名。

    processString (string, groupName, label)

    この関数を使用して、指定された文字列のドキュメントコンテンツに LFDocumentContentElement を追加し、次のパラメーターを含めます。
    名前 タイプ 説明
    string 文字列 ドキュメントコンテンツエントリが作成される値。
    groupName 文字列 要素が属するグループの名前。
    label 文字列 作成された要素の一意のラベル識別子。

    processStringArray (stringArray, groupName, label)

    この関数を使用して、指定された文字列のドキュメントコンテンツに要素 (LFDocumentContentElement のオブジェクト) を追加し、次のパラメーターを含めます。
    名前 タイプ 説明
    stringArray 文字列のリスト ドキュメントコンテンツエントリが作成される値のリスト。
    groupName 文字列 これらの文字列が属するグループの名前。
    label 文字列 これらの文字列の一意のラベル識別子。

    processScript (scriptContent, groupName, label)

    この関数を使用して、提供されたスクリプトで getMessage、gs.getMessage、または gs.getMessageLang の入力として存在する文字列のドキュメントコンテンツに要素を追加します。次のパラメーターがあります。
    名前 タイプ 説明
    scriptContent 文字列 getMessage、gs.getMessage、または gs.getMessageLang の入力として存在する文字列を取得するために処理されるスクリプト。
    groupName 文字列 この入力のグループの名前。
    label 文字列 この入力の一意のラベル識別子。
    例を次に示します。
    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)

    この関数を使用して、すべての翻訳可能フィールドのドキュメントコンテンツで、指定された glideRecord オブジェクトの要素を作成します。これらの翻訳可能フィールドは、translated_field、translated_text、または translated_html タイプにすることができます。これには次のパラメーターが含まれます。
    名前 タイプ 説明
    glideRecord GlideRecord 翻訳可能フィールド用に処理される GlideRecord オブジェクト。GlideRecord は有効なテーブルレコードを指している必要があります。
    groupName 文字列 この入力のグループの名前。

    processTranslatableFieldsForMultipleRecords (tableName, encodedQuery, groupName)

    この関数を使用して、指定された tableName および encodedQuery のすべての修飾レコードをフェッチし、すべての翻訳可能フィールドのドキュメントコンテンツに要素 (LFDocumentContentElement のオブジェクト) を追加します。これには次のパラメーターが含まれます。
    名前 タイプ 説明
    tableName 文字列 レコードをフェッチするテーブル。
    encodedQuery 文字列 processTranslatableFieldsForSingleRecord テーブルからレコードをフィルタリングするためのエンコードされたクエリ。
    groupName 文字列 この入力のグループの名前。

    processElement()

    この関数を使用して、要素 (LFDocumentContentElement のオブジェクト) を LFDocumentContent オブジェクトに追加します。
    要素 LFDocumentContentElement ドキュメントコンテンツに追加する要素。

    build()

    LFDocumentContent オブジェクトを返します。

    注:
    getFinalJSON 関数は Washington DC リリースで廃止されたため、build() 関数を使用することをお勧めします。
    ドキュメントコンテンツを構築するためのサンプルスクリプト。
    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
    }
    

    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
            }
        }
    }