Ler funções de ajuda de script para LFDocumentContentBuilder
O LFDocumentContentBuilder fornece funções de utilitário para criar conteúdo de documento. Use essas funções para gravar a lógica para extrair o conteúdo traduzível de qualquer artefato, independentemente de usar tabelas padrão ou não para traduções.
inicializar (version, targetLanguage, sys_id, tableName)
Use esta função como um construtor para LFDocumentContentBuilder e inclui os seguintes parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
| Versão | Cadeia de caracteres | O tipo de versão do conteúdo do documento a ser gerado. Para Xanadu, este valor é v1. |
| targetLanguage | Cadeia de caracteres | O idioma de destino do conteúdo do documento da tarefa de localização. O idioma de destino é o mesmo que o idioma disponível no argumento da função de script de leitura. |
| Sys_id | Cadeia de caracteres | O sys_id do registro do artefato. |
| tableName | Cadeia de caracteres | O nome da tabela do registro do artefato. |
processString (cadeia de caracteres, groupName, rótulo)
Use esta função para adicionar o LFDocumentContentElement ao conteúdo do documento para a cadeia de caracteres fornecida e inclui os seguintes parâmetros.
| Nome | Tipo | Descrição |
|---|---|---|
| Cadeia de caracteres | Cadeia de caracteres | O valor para o qual uma entrada de conteúdo de documento é criada. |
| groupName | Cadeia de caracteres | O nome do grupo ao qual o elemento deve pertencer. |
| rótulo | Cadeia de caracteres | O identificador de rótulo exclusivo do elemento criado. |
processStringArray (stringArray, groupName, rótulo)
Use esta função para adicionar elementos (objeto de LFDocumentContentElement) ao conteúdo do documento para as cadeias de caracteres fornecidas e inclui os seguintes parâmetros.
| Nome | Tipo | Descrição |
|---|---|---|
| cadeia de caracteresArray | Lista de cadeias de caracteres | A lista de valores para os quais a entrada de conteúdo do documento é criada. |
| groupName | Cadeia de caracteres | O nome do grupo ao qual essas cadeias de caracteres pertencem. |
| rótulo | Cadeia de caracteres | O identificador de rótulo exclusivo para essas cadeias de caracteres. |
processScript (scriptContent, groupName, rótulo)
Use esta função para adicionar um elemento no conteúdo do documento para as cadeias de caracteres presentes como entrada de getMessage, gs.getMessage ou gs.getMessageLang no script fornecido. Ele tem os seguintes parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
| scriptContent | Cadeia de caracteres | O script a ser processado para obter as cadeias de caracteres presentes como entrada de getMessage, gs.getMessage ou gs.getMessageLang. |
| groupName | Cadeia de caracteres | O nome do grupo para esta entrada. |
| rótulo | Cadeia de caracteres | O identificador de rótulo exclusivo para esta entrada. |
Por exemplo,
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)
Use esta função para criar elementos para o objeto glideRecord fornecido no conteúdo do documento para todos os campos traduzíveis. Esses campos traduzíveis podem ser dos tipos translated_field, translated_text ou translated_html. Inclui os seguintes parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
| glideRecord | GlideRecord | O objeto GlideRecord a ser processado para campos conversíveis. O GlideRecord deve estar apontando para o registro de tabela válido. |
| groupName | Cadeia de caracteres | O nome do grupo para esta entrada. |
processTranslatableFieldsForMutipleRecords (tableName, encodedQuery, groupName)
Use esta função para buscar todos os registros qualificados para o tableName e encodedQuery fornecidos e adicionar elementos (objeto de LFDocumentContentElement) no conteúdo do documento para todos os campos traduzíveis. Inclui os seguintes parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
| tableName | Cadeia de caracteres | A tabela para buscar registros. |
| encodedQuery | Cadeia de caracteres | A consulta codificada para filtrar registros da tabela processTranslatableFieldsForSingleRecord. |
| groupName | Cadeia de caracteres | O nome do grupo para esta entrada. |
processElement()
Use esta função para adicionar um elemento (objeto de LFDocumentContentElement) ao objeto LFDocumentContent.
| elemento | LFDocumentContentElement | Elemento a ser adicionado ao conteúdo do documento. |
criar ()
Retorna o objeto LFDocumentContent.
Nota:
A função getFinalJSON foi descontinuada na versão Xanadu e é recomendável usar a função build().
Um script de exemplo para criar o conteúdo do documento.
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
}
Script de exemplo para extrair dados do 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
}
}
}