Pular para o conteúdo principal
Regras de negócio são funções JavaScript que permitem realizar transformações e filtros de dados durante a integração.

Transformar dados

Modificar ou combinar valores

Filtrar dados

Remove dados da integração

Estrutura das regras de negócio

Toda regra de negócio é uma arrow function em JavaScript que recebe um parâmetro e retorna um valor.
(context) => {
  // sua lógica aqui
  // retorna valor transformado
};
O context contém o dado atual sendo processado, e a função retorna um valor que pode ser utilizado na integração.

Referência do object

PropriedadesContémAcesso
objectUnidade atual do dado que está sendo processadocontext.object
resourcesResposta do Enriquecimentocontext.resources.{{enrichmentName}}.{{completeFieldPath}}
paramsParâmetros usado na Extraçãocontext.params

Regra reutilizável

Na RWS Integration é possível reutilizar uma regra já existente.

Quando usar

  • Quando a mesma lógica é utilizada em várias regras
  • Para encapsular uma lógica muito complexa

Como funciona

Você pode utilizar a função BusinessRule.transform para chamar uma regra já existente, ela funciona com os seguintes parâmetros:
ParâmetroDescrição
tenantIdO ID do tenant em que a regra deve ser executada
ruleIdO ID da regra de negócio a ser chamada
objectOs dados do object que a outra regra deve utilizar

Exemplo

Para criar uma regra reutilizável para formatação de preço e chamá-la de outras regras: Regra de Formatação de Preço (ID: 67f51e19c8a10ceefa121cd2):
(context) => {
  const price = new Decimal(context.object.price);
  return price.toFixed(2);
};
Regra de Produto (chama o formatador):
(context) => {
  const formattedPrice = await BusinessRule.transform(
    'seuTenant',
    '67f51e19c8a10ceefa121cd2',
    context
  );

  return {
    name: context.object.name,
    price: formattedPrice
  };
}

Bibliotecas auxiliares

A RWS fornece várias bibliotecas JavaScript que você pode usar em suas regras de negócio
BibliotecaComo usarDocumentação
LodashVariável global _ (underline)Documentação do Lodash
DayjsVariável global dayjsDocumentação do Day.js
DecimaljsVariável global DecimalDocumentação do Decimal.js