TransformerDefinition - com escopo, global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • A API TransformerDefinition fornece métodos para instanciar e gerenciar o objeto TransformerDefinition, que associa uma lista de regras de transformação e um caminho de registro.

    A API TransformerDefinition funciona junto com as APIs Transformer e TransformerRuleList. Juntas, essas APIs transformam nós XML ou qualquer entidade em um documento JSON estruturado em uma saída de pares de nome-valor. Entidades JSON compatíveis, incluindo objetos e elementos em uma matriz, como cadeias de caracteres, números e outras matrizes.

    • A API TransformerRuleList permite criar listas de regras de transformação que definem quais dados no documento de origem serão incluídos na saída e como transformar os dados de origem.

    • A API TransformerDefinition associa uma lista de regras de transformação a um caminho de registro JSON/XML para definir objetos de definição de transformação reutilizáveis. Você pode usar um objeto de definição de transformação para transformar um ou mais documentos de origem.

    Além disso, este objeto fornece métodos que permitem obter o caminho de registro do objeto TransformerDefinition. Ele também pode validar se a definição tem um TransformerRuleList válido associado a ela.

    A API do Transformador executa a transformação de dados real, uma entidade de dados de cada vez, usando a lista de regras de transformação especificada para criar os dados de saída desejados.

    Você pode usar a classe TransformerDefinition em scripts de servidor com escopo e globais. Ao usar esta classe, use o identificador de namespace sn_tfrm. Além disso, antes que esta API esteja disponível em uma instância, você deve ativar o plug-in Transformation Service (com.glide.transform).

    TransformerDefinition - TransformerDefinition(objeto TransformerRuleList, cadeia de caracteres recordPath)

    Instancia um objeto TransformerDefinition.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    TransformerRuleList Objeto TransformerRuleList a ser associado a esta definição de transformador.
    recordPath Cadeia de caracteres

    Opcional. O caminho (JSONPath para JSON, XPath para XML) que identifica o contêiner (primário) de nós a serem analisados como registros no documento de origem.

    Para documentos JSON, esses nós podem ser qualquer objeto, matriz ou JSON primário (cadeia de caracteres, número, booliano). Para documentos XML, esses nós são os elementos secundários do contêiner.

    Se recordPath não for especificado, o documento inteiro será inferido como um único registro. Para documentos JSON, se o nó superior for uma matriz e recordPath não for especificado, a matriz superior será o contêiner do registro e cada uma de suas entradas será um registro.

    var stockAPI = new sn_ws.RESTMessageV2('Stock Details', 'Default GET'); 
    var response = stockAPI.execute(); 
    var responseBody = response.getBody(); 
    
    var transformerRuleList = new sn_tfrm.TransformerRuleList()
      .fromJSON()
      .addSymbol('ticker', 'quote.symbol') 
      .addSymbol('change_percentage', 'quote.change_change') 
      .thenMultiply('100') 
      .thenRoundDown('0') 
      .addSymbol('close_price', 'quote.close') 
      .thenAdaptCurrency('USD', false) 
      .addSymbol('summary') 
      .thenConcat('Shares of ') 
      .thenConcatSymbol('ticker') 
      .thenConcat(' closed at ') 
      .thenConcatSymbol('close'); 
    
     
    var path = '$.*'; // Transform all objects in the JSON document
    var transformerDefinition = new sn_tfrm.TransformerDefinition(transformerRuleList, recordPath); 
    var transformer = new sn_tfrm.Transformer(transformerDefinition, responseBody); 
    
    var results = []; 
    while (transformer.transform()) { 
      results.push(transformer.getRow());
    }

    TransformerDefinition - TransformerDefinition(cadeia de caracteres "transformerDefinitionSysId")

    Instancia um objeto TransformerDefinition usando uma definição de transformador existente.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    TransformerDefinitionSysId Cadeia de caracteres Sys_id de uma definição de transformador. Localizado na tabela Transformador de registro [sys_record_transformer].

    Este exemplo instancia um objeto TransformerDefinition com base no sys_id fornecido.

    var transformerDefinition = new sn_tfrm.TransformerDefinition("7208b59743542110d4dc2c78c9b8f2e2");

    TransformerDefinition - recordPath()

    Se definido quando o objeto TransformerDefinition foi instanciado, retorna o caminho do registro para o arquivo de dados de origem associado ao objeto TransformerDefinition.

    Um caminho de registro (JSONPath para JSON, XPath para XML) identifica o contêiner (primário) de nós a serem analisados como registros no documento de origem.

    Para documentos JSON, esses nós podem ser qualquer objeto, matriz ou JSON primário (cadeia de caracteres, número, booliano). Para documentos XML, esses nós são os elementos secundários do contêiner.

    Se recordPath não for especificado, o documento inteiro será inferido como um único registro. Para documentos JSON, se o nó superior for uma matriz e recordPath não for especificado, a matriz superior será o contêiner do registro e cada uma de suas entradas será um registro.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Cadeia de caracteres Se definido, o caminho do registro associado à definição do transformador. Se não estiver definido, retornará nulo.
    var path = '$.records'; 
    var transformerDefinition = new sn_tfrm.TransformerDefinition(transformerRuleList, recordPath); 
    var transformer = new sn_tfrm.Transformer(transformerDefinition, responseBody);  
    .
    .
    .
    
    var recordPath = transformerDefinition.recordfPath();
    
    var results = []; 
    while (transformer.transform()) { 
      results.push(transformer.getRow());
    }

    TransformerDefinition - validar()

    Valida se um TransformerRuleList válido está associado ao objeto TransformerDefintion.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se um TransformerRuleList válido está associado ao objeto TransformerDefintion especificado.

    Valores válidos:

    • verdadeiro: TransformerRuleList válido associado
    • falso: inválido ou não há TransformerRulList associado
    var transformerDefinition = new sn_tfrm.TransformerDefinition(transformerRuleList, recordPath);
    var transformer = new sn_tfrm.Transformer(transformerDefinition, responseBody); 
    .
    .
    .
    
    if (transformerDefinition.validate()) {
    
      var results = []; 
      while (transformer.transform()) { 
        results.push(transformer.getRow());
      }
    }