Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Aviso
titlePré-requisitos

Antes de iniciar a implantação, verifique se todos os pré-requisitos foram atendidos:


  • Requisitos de hardware


    • Equipamento: Servidor dedicado
    • Sistema Operacional: Windows 10 ou Superior superior, 64bits;
    • Processador: De 4+ núcleos e 2ghz2GHz+ de processamento;
    • Memória RAM: mínimo de 8GB (recomendado 16GB);
    • Conexão com Internet.
    • Espaço em Disco: Mínimo de 50gb disponíveis;
    • Java 1.8.0
    • Conexão com o banco de dados do WinThor:
      • Banco de dados: Oracle, versão mínima 11g, Release 11.2.0.4.0.
    • Serviço WTA Winthor disponível em IP público.


Aviso
titleATENÇÃO
  • Caso a instalação seja feita em uma estação comum de trabalho ou em servidor compartilhado com outra aplicaçãoa performance pode ser seriamente afetada
  • O compartilhamento de recursos pode não só deixar lento quanto também travar a aplicação. Isso acontece porque quando não há recursos suficientes para o processamento da JVM, a sua instancia é fechada, paralisando todos processos dependentes. Desse modo, não poderemos garantir a perfeita execução da aplicação conforme é planejado para ser.



  • Requisitos de software



Informações
titleInstalação
Expandir
titleDownloads
Expandir
titleDownload pacote WSH

O download dos arquivos necessário parar realizar a instalação do WSH - Winthor Smart Hub podem ser feitos através do link abaixo:

  • Download WSH (jre.zip, service.zip, winthor-integracao-core.jar)
Expandir
titleInstalação
Totvs custom tabs box
tabsDescompactando os arquivos, Editando arquivo de propriedades "app.properties", Parando o servido WTA, Executando jar para finalizar as configurações iniciais
idspasso1,passo2,passo3,passo4
Totvs custom tabs box items
defaultyes
referenciapasso1


Crie o diretório "C:\pcsist\produtos\winthor-integracao-core";

Realizar o download dos arquivos informados no passo anterior e descompactá-los no diretório acima criado "C:\pcsist\produtos\winthor-integracao-core".

Após ser descompactado, a estrutura deve ser a seguinte, conforme imagem abaixo:

Exibindo image.png
apps-fileview.texmex_20231019.01_p2

image.png

Exibindo image.png…

Totvs custom tabs box items
defaultno
referenciapasso2

Agora, é necessário criar, manualmente, p arquivo "app.properties" e configurar o mesmo de acordo com os dados da instalação conforme indicado na imagem abaixo, no diretório "C:\pcsist\produtos\winthor-integracao-core":


Exemplo dos dados que devem conter no arquivo app.properties;


Bloco de código
spring.datasource.initialize=false
#spring.datasource.url= jdbc:oracle:thin:@(DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = gowend01)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = ORCL)    )  )
spring.datasource.url= jdbc\:oracle\:thin\:@127.0.0.1:1521\:ORCL
spring.datasource.username= LOCAL
spring.datasource.password= 54B4C4075463B2E02CD69F5CD139B5B2
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
path.winthor.ini= C:/winthor/Prod/MOD-000/Winthor.ini
url.ssh.wta=localhost
port.ssh.wta:8101
path.folder.temporary=C:/pcsist/produtos/winthor-integracao-core/temp
app.task.habilitadas=ALL
app.task.recursos.execucao.ativar-log-tempo=true 
#app.migration.ambiente.pdvomnishop=true
#app.task.paginacao-winthor.page-size=10
app.migration.ambiente.teste=true
app.migration.habilitar=true
#app.task.status-pos-integracao.intervalo-milissegundos=1000
#app.task.status-pos-integracao.tempo-maximo-minutos=1
#app.task.recursos.schedule.fixedRate=60000



Os seguintes campos devem ser informados de acordo com as configurações do ambiente onde o mesmo está sendo configurado:

  • spring.datasource.url= jdbc\:oracle\:thin\:@127.0.0.1:1521\:ORCL

    • Este campo é responsável pela informação do banco de dados do winthor.
  • spring.datasource.username= nome_usuário_banco

    • Este campo é responsável pela informação.
  • spring.datasource.password= DED9EFD3B48EBDBB5E69A00393B57EC9

    • Este campo é responsável pela informação da senha do banco de dados que deve ser em formato MD5 sempre em caixa alta.
  • spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

    • Este campo é responsável pela informação do driver do banco de dados.
  • path.winthor.ini= C:/winthor/Prod/Winthor.ini

    • Este campo é responsável pela informação do local do arquivo de winthor.ini que deve estar dentro do diretório do winthor.
  • url.ssh.wta=localhost

    • Este campo é responsável pela informação da url do WTA.
  • port.ssh.wta:8101

    • Este campo é responsável pela informação da porta de acesso do WTA.
Totvs custom tabs box items
defaultno
referenciapasso3

Antes de executar o arquivo de configuração do WSH, devemos parar o serviço do WTA que fica nos serviços do Windows:

Acesse os serviços do Windows ('services.msc' via 'Executar') .

 


Na tela de serviços procurar pelo serviço do Winthor Anywhere:


Clicar com o botão direito sobre o serviço e clicar em "Parar"


Totvs custom tabs box items
defaultno
referenciapasso4

Após parar o serviço, podemos executar os arquivos de configurações do WSH.

Para configurar os dados mencionados, deve se executar o arquivo "winthor-integracao-core.jar" via prompt de comando para que todas as configurações sejam realizadas para iniciar o WSH:

Para isto, basta executar no prompt no local onde o arquivo se encontra "C:\pcsist\produtos\winthor-integracao-core" o comando "java -jar winthor-integracao-core.jar".

Se se todas as configurações do arquivo "app.properties" estiverem certas, as migrations serão executadas e assim que começarem a ser executados os fluxos, para a aplicação podemos conferir as migrations no log.

Após finalizar o processo, podemos verificar no banco de dados, realizando uma consulta simples para verificar os migrations.

Consulta a realizar (utilize o sqlplus ou gerenciador de banco de dados de seu conhecimento:

"SELECT * FROM PCINTEGRACAOCOREMIGRATION;"

Verifique a coluna "SUCESSO" onde todas devem estar com um "S".

Após as migrations executadas pode instalar a aplicação como serviço:

Para isso, no CMD, em modo administrador e, acesse a pasta service "C:\pcsist\produtos\winthor-integracao-core\service" e rode o comando para instalar


Bloco de código
winthor-integracao-core.exe install


OBS: caso precise desinstalar rode o comando com uninstall

Acesse os serviços do Windows ('services.msc' via 'Executar') e procure por 'WSH - Winthor Smart Hub'.

Expandir
titleConfiguração de serviços do WSH
Expandir
titleServiço de expurgo de dados obsoletos
Totvs custom tabs box
tabsTabelas relacionadas,Editando arquivo de propriedades "app.properties",Executando o serviço WSH
idspasso1-servExpurgo,passo2-servExpurgo,passo3-servExpurgo
Totvs custom tabs box items
defaultyes
referenciapasso1-servExpurgo

Abaixo segue a relação de tabelas em que o serviço fará o expurgo de dados obsoletos:

  • PCINTEGRACAOCORE; 
    • Tabela responsável por armazenar as integrações realizadas. A referência para realizar o expurgo será a coluna DATASINCRONISMO. Serão removidos apenas os registros que possuem status = 2 (sucesso);
  • PCINTEGRACAODADOSRECEBIDOS;
    • Tabela responsável por armazenar os dados recebidos da integração;
  • PCINTEGRACAOVARIAVEISTEMP;
    • Tabela responsável por armazenar as variáveis temporárias que a integração necessita criar (por exemplo números de lotes, entre outros). 
  • PCINTEGRACAOLOGEXCLUSAODADOS;
    • Tabela responsável por armazenar o horário e os logs de execução do serviço de expurgo;
  • PCINTEGRACAOEVENTORECEBIDO;
    • Tabela responsável por armazenar os eventos integrados via API de eventos. Apenas os registros marcados como processados entram na regra de exclusão;

A execução do serviço ocorrerá no horário definido no parâmetro app.integracao-core.excluir.agendador do arquivo app.properties (mais detalhes no próximo passo), no entanto caso a última execução tenha ocorrido a mais de 24 horas (caso em que a aplicação esteve parada no período definido para a execução), o serviço de expurgo irá executar automaticamente ao iniciar a aplicação;


Totvs custom tabs box items
defaultno
referenciapasso2-servExpurgo

É necessário editar o arquivo "app.properties" localizado no diretório "C:\pcsist\produtos\winthor-integracao-core" para adicionar as seguintes opções:


Exemplo dos dados que devem conter no arquivo app.properties;

Bloco de código
spring.datasource.initialize=false
spring.datasource.url= jdbc\:oracle\:thin\:@127.0.0.1:1521\:ORCL
spring.datasource.username=local
spring.datasource.password=54B4C4075463B2E02CD69F5CD139B5B2
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
path.winthor.ini=C:/winthor/Prod/Winthor.ini
url.ssh.wta=localhost
port.ssh.wta=8101
path.folder.temporary=C:/pcsist/produtos/winthor-integracao-core/temp
app.task.habilitadas=ALL
app.task.recursos.execucao.ativar-log-tempo=true
app.migration.ambiente.teste=false
app.migration.habilitar=false
#app.task.status-pos-integracao.intervalo-milissegundos=1000
#app.task.status-pos-integracao.tempo-maximo-minutos=1
#app.task.recursos.schedule.fixedRate=6000
app.task.paginacao-winthor.page-size=100
app.task.envio-integracao.threads=1
app.task.buscar-integracao.threads=1
app.task.buscar-integracao.tamanho=25
app.integracao-core.excluir=true
app.integracao-core.excluir.minimo-dias=120
app.integracao-core.excluir.tipo-dado=3
app.integracao-core.excluir.agendador: 0 0 2 * * *
  • app.integracao-core.excluir=true
    • Este campo é responsável por definir se o serviço de expurgo estará ativo ou não. O valor default é
  • false
    • true (
  • desabilitado
    • habilitado).
  • app.integracao-core.excluir.minimo-dias= 120

    • Este campo é responsável por definir a quantidade de dias em que os registros serão armazenados no banco. No exemplo acima, se o valor definido é 120, serão armazenados os registros até 120 dias desde a sua criação, portanto todos os registros com data inferior aos 120 dias serão deletados. O valor default é 120 dias.
  • app.integracao-core.excluir.tipo-dado= 3

    • Este campo é responsável por definir o tipo de registro que será deletado. 1 para registros ENVIADOS (do WinThor para uma integração externa), 2 para registros RECEBIDOS (de uma integração externa para o WinThor) e 3 para AMBOS. O valor default é 3 - AMBOS.
  • app.integracao-core.excluir.agendador=0 0 2 * * *

    • Este campo é responsável por definir o horário no qual o serviço será agendado para executar. O modelo segue o formato de string unix-cron, sendo que cada informação possui a seguinte representação: Segundos, Minutos, Horas, Dia, Mes, Dia da Semana, respectivamente. O * indica recorrência. O horário default é 0 0 2 * * * (todos os dias às 02:00 am).
Totvs custom tabs box items
defaultno
referenciapasso3-servExpurgo

Acesse os serviços do Windows ('services.msc' via 'Executar') e execute o serviço  'WSH - Winthor Smart Hub'.

No arquivo de logs do WSH (C:\pcsist\produtos\winthor-integracao-core\logs\winthor-integracao-core.out.log) caso o serviço seja habilitadonão esteja desabilitado, deverá constar a seguinte informação:

Já no caso de a última execução ter ocorrido a mais de 24 horas, o serviço irá executar o expurgo junto com a inicialização da aplicação:

Expandir
titleConfiguração de rotinas
Expandir
titleConfigurando rotina 2650
  • Acesse o WinThor Anywhere e no menu principal, preencha no campo de Pesquisar a rotina 801 - Atualização de Serviços Web e tecle Enter (ou clique diretamente sobre a rotina no menu principal do lado esquerdo);


  • Na tela Gerenciador de Rotinas e Serviços, clique o botão Instalações;

  • Instale os serviços winthor-integracao-config e winthor-integracao-2650 na última versão disponível. 


Expandir
titleConfiguração de integrações
Expandir
titleCadastro de integrações

O objetivo é possibilitar o Cadastro de Integrações no Winthor Smart Hub.


Para realizar uma nova integração, devemos acessar as configurações de integrações através da rotina 2650 do WSH.



Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3, Passo 4
idsitem-int1,item-int2,item-int3,item-int4
Totvs custom tabs box items
defaultyes
referenciaitem-int1

Acesse o WinThor Anywhere, localize/pesquise a rotina 2650 - Winthor Smart Hub




Totvs custom tabs box items
defaultyes
referenciaitem-int2

Selecione a opção Integrações no Menu;


Totvs custom tabs box items
defaultno
referenciaitem-int3

Clique no botão Novo, (será apresentado os dados para Cadastro de Integração);


Totvs custom tabs box items
defaultno
referenciaitem-int4

 Cadastro de Integração nova


 


Tela destinada ao cadastro de uma nova integração:

    •  Código - Campo que apresentará o ID único do cadastro, este campo é gerado automaticamente.
    • Nome - Deverá ser informado o nome da integração para identificação da mesma.
    • URL Sistema Externo - Deverá ser informada a URL da API que será usada na integração externa.
    • Utiliza WTA - Deverá ser informado se será utilizado como processo WTA (Sim ou Não ).
    • Filial - Deverá ser selecionado o nome da filial.
    • Tempo de expiração - Deve ser informado o tempo (em segundos) para expiração do token. 
    • Token - Este campo será gerado automaticamente após a criação da Integração
    • Botão Salvar - Salva os dados adicionados.
Expandir
titleConfigurações do ERP

O objetivo é possibilitar a Configuração de parâmetros e serviços do WTA necessários para realizar uma integração no Winthor Smart Hub.

Para realizar uma configuração de parâmetros e serviços, devemos prosseguir com o Cadastro de integração.

Nota
titleATENÇÃO
  • Essa funcionalidade só estará disponível  em versão futura.
Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3, Passo 4
idsitem-intconfig1,item-intconfig2,item-intconfig3,item-intconfig4
Totvs custom tabs box items
defaultyes
referenciaitem-intconfig1

Acesse o próximo passo da tela de Cadastro de integração.

Totvs custom tabs box items
defaultyes
referenciaitem-intconfig2

Nesta tela, será possível consultar todos os parâmetros e serviços já cadastrados anteriormente;

Filtros:

Sucesso: Parâmetros e serviços cuja validação ocorreu com sucesso;

Pendente: O registro ainda não passou pela validação;

Falha: A validação retornou erro devido a alguma inconformidade, que será descrita na coluna "Observação" da tabela;



Exemplo de validação preenchida:

Totvs custom tabs box items
defaultno
referenciaitem-intconfig3

Para adicionar uma nova validação, basta rolar a tela até o final e preencher as informações desejadas:

Tipo: Tipo da validação (serviço ou parâmetro);

Em caso de Serviço:

  • Preencher o nome do serviço (Ex.: winthor-produto);
  • Preencher a versão mínima esperada. Caso o requisito seja apenas que o serviço esteja instalado. pode deixar o campo em branco;
  • Os campos Filial e Permite nulo não precisaram ser usados nesse cenário;

Em caso de Parâmetro:

  • Preencher o nome do parâmetro (Ex.: CON_UTILIZAVENDAPOREMBALAGEM)
  • Preencher o valor esperado:
    • OBS1: tratar valores booleanos como S (verdadeiro) e N (falso);
    • OBS2: caso o requisito seja apenas que o parâmetro esteja preenchido com algum valor, deixar o campo vazio e desmarcar a opção "Permite nulo?" ao lado;
  • Preencher a filial do parâmetro. Caso seja um parâmetro geral, deixar o campo vazio ou preencher com filial 99;
  • Caso o parâmetro deva necessariamente estar preenchido com alguma informação, desmarcar a opção "Permite nulo?";

Adicionar: O botão "Adicionar" levará o registro para a tabela de cima, com a situação igual a "Pendente", ou seja, aguardando validação;

Totvs custom tabs box items
defaultno
referenciaitem-intconfig4

Para realizar a validação, basta clicar no botão "Validar":

 


Exemplo:


Caso a barra fique verde, todos os itens foram validados com sucesso, caso fique vermelha, um ou mais itens não puderam ser validados.

Expandir
titleConfiguração de rotas
Expandir
titleCadastro de rotas/serviço

O objetivo é possibilitar o Cadastro de Rotas de busca e envio de dados, independente das API’s de emitente e destinatário.


Desta forma o serviço WSH(Winthor Smart Hub)  poderá realizar os processos de integração do produto Winthor, criando uma camada de transformação e intermediação de dados onde será possível realizar integrações com parceiros internos e externos.


Para cadastrar uma nova Rota, realize os procedimentos abaixo:


Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3, Passo 4, Passo 5, Passo 6
idsitem-rota1,item-rota2,item-rota3,item-rota4,item-rota5,item-rota6
Totvs custom tabs box items
defaultyes
referenciaitem-rota1

Acesse o WinThor Anywhere, localize/pesquise a rotina 2650 - Winthor Smart Hub


Totvs custom tabs box items
defaultno
referenciaitem-rota2

Selecione a opção Rotas no Menu;


Totvs custom tabs box items
defaultno
referenciaitem-rota3

Clique no botão Novo, (será apresentado os dados para Cadastro de Rota/Serviço);


Totvs custom tabs box items
defaultno
referenciaitem-rota4

 Cadastro de Rota/Serviço 



Tela destinada ao cadastro de uma nova rota

    •  Código - Campo que apresentará o ID único do cadastro, este campo é gerado automaticamente.
    • ID Integração - Deverá ser informado a empresa da rota que executará a ação.
    • Descrição da Integração - Ao selecionar o ID da empresa o nome será apresentado conforme cadastrado no banco de dados.
    • Status -O status ele define se a própria rota que tá sendo criada vai ser executada ou não. Deverá selecionar uma das opções ATIVO(será executada) / INATIVO(não será executada).
    • Autenticador -  Deverá selecionar as opções SIM/NÃO. Caso a Rota precise de autenticação antes da execução, este campo deverá ser informado igual a SIM, caso contrário informar NÃO.
    • Atualizar Token - Deverá selecionar as opções SIM/NÃO. Caso a Rota precise ATUALIZAR o Token, este campo deverá ser informado igual a SIM, caso contrário informar NÃO.
    • Nome do Serviço - É o nome que o usuário pode dar à rota pra identificá-la depois.


Totvs custom tabs box items
defaultno
referenciaitem-rota5

 Cadastro de Rota/Serviço 




Tela destinada ao cadastro de uma nova rota

    • Nome do Serviço / Nome Layout - É o nome que o usuário pode dar ao layout pra identificá-la depois.
    • Método HTTP - É o método que será utilizado pelo layout (GET, POST, PUT, DELETE, PATCH).
    • URL - A url a qual o layout irá utilizar.
    • Query -  Query utilizada no layout para realizar as consultas necessárias conforme configurações desejadas.
    • Body - Irá preencher o bodyraw do JSON
    • Parâmetros de Header - Permite adicionar novos parâmetros ao JSON do layut
    • Layout de Comunicação - Campo destinado a inserção do Layout que faça comunicação com o serviço, deve-se indicar o tipo de requisição e parâmetros necessários para que a ação seja executada, conforme o exemplo abaixo:
Bloco de código
languagejs
titleExemplo Comunicação
{
  "name": "",
  "request": {
    "method": "",
    "header": [],
    "url": {
      "raw": "",
      "query": ""
    },
    "bodyraw": ""
  },
  "response": []
}

Ao finalizar o Cadastro de layout de comunicação de Rota/Serviço, será apresentado o botão "Próximo" que levará ao segundo passo de configuração, Layout de Transformação.




Totvs custom tabs box items
defaultno
referenciaitem-rota6
  • O layout de transformação é dividido em 4 partes que são:
    • JSON de entrada - Campo destinado a adição de como receber a informação.

  • JSON de Saída - Campo destinado a informação de como deve ficar o JSON final do processo.


  • Mapear JSON - está no centro das informações JSON de entrada e JSON de Saída, este campo é responsável por configurar o que liga os campos de entrada e saída para gerar o JSON de transformação do processo.


  • Layout de Transformação - Campo destinado a inserção do Layout que faça transformação dos dados recebidos de forma que o ERP Winthor consiga integrar. Ao clicar no botão "Gerar Layout" será gerado dinamicamente após preenchimento das informações JSON entrada/saída e mapeamento dos campos,


Bloco de código
languagejs
titleExemplo Transformação
[
  {
    "operation": "shift",
    "spec": {
      "id": "idExterno[0]",
      "shipment": { "logistic_type": "ignorarImportacaoDiferente(regra)" }
    }
  }
]

  • Botão Salvar - Salva os dados adicionados.


Expandir
titleConfiguração de Parâmetros
Expandir
titleCadastro de parâmetros

O objetivo é possibilitar o Cadastro de parâmetros no Winthor Smart Hub.


Para cadastrar um novo Parâmetro, devemos acessar as configurações de parâmetros através da rotina 2650 do WSH.


Expandir
titleCadastro de parâmetros

Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3
idsitem-param1,item-param2,item-param3
Totvs custom tabs box items
defaultyes
referenciaitem-param1

No WSH, acessar o item 3 da rotina 2650, que é a configuração de parâmetros;


Totvs custom tabs box items
defaultno
referenciaitem-param2

Clique no botão Novo, (será apresentado os dados para Cadastro de parâmetro);


Totvs custom tabs box items
defaultno
referenciaitem-param3

Cadastro de Parâmetro



Tela destinada ao cadastro de um novo parâmetro;

    • Código - Campo que apresentará o ID único do cadastro, este campo é gerado automaticamente.
    • ID Rota Serviço- Deverá ser informado o ID da rota para qual o parâmetro será vinculado.
    • Global- Ao selecionar o checkbox Global, será utilizado a rota global ao invés de alguma outra selecionada (Ao selecionar a Global, a seleção de ID Rota Serviço fica desabilitada).
    • Tipo Chave - Deverá selecionar o tipo da chave que será utilizada, se vai ser um parâmetro de BODY, PARAMS ou HEADER.
    • Chave - Será o nome do parâmetro.
    • Tipo Valor -  Informação que identifica de qual natureza é o valor, pode ser uma STRING pura, um SELECT no banco ou um ENCRYPTED, um valor que armazena codificado.
    • Valor - Deverá informar o valor referente ao campo.
    • Botão Salvar - Salva os dados adicionados.

Abaixo um exemplo de cadastro:


Expandir
title
Configuração de fluxos
Expandir
titleCadastro de fluxosReplicação de Valores entre Parâmetros

O objetivo é possibilitar o Cadastro de fluxos a Replicação de valores entre parâmetros de mesmo nome no Winthor Smart Hub.

Os fluxo basicamente são os passos que devem ser feitos para que os dados sejam trafegados da maneira adequada no winthor. É basicamente um conjunto de rotas configuradas para serem executadas em uma ordem específica

Para fazer isso devemos acessar as configurações de parâmetros através da rotina 2650 do WSH.

Expandir
titleReplicação de Valores
Para cadastrar um novo Fluxo, devemos acessar as configurações de parâmetros através da rotina 2650 do WSH.



Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3, Passo 4, Passo 5, Passo 6
idsitem-fluxo1replicar1,item-fluxo2replicar2,item-fluxo3replicar3,item-fluxo4replicar4,item-fluxo5,item-fluxo6replicar5
Totvs custom tabs box items
defaultyes
referenciaitem-fluxo1replicar1

Já no No WSH, acessar o item 4 3 da rotina 2650, que é a configuração de fluxosparâmetros;

Image RemovedImage Added

Totvs custom tabs box items
defaultno
referenciaitem-fluxo2replicar2

Clique nos 3 pontos na frente do parâmetro que deseja editar e clique em Editar.

Image Added

Clique no botão Novo, (será apresentado os dados para Cadastro de fluxos);

Image Removed

Totvs custom tabs box items
defaultno
referenciaitem-fluxo3replicar3

Após alterar o campo valor, clique em Replicar para.

Image Added

Cadastro de fluxos

Image Removed

Nesta tela deverá ser informado o nome(descrição) do fluxo a ser criado e selecionar uma integração;

Cadastro de fluxos

Image Removed

Nesta dela, podemos montar os fluxos de acordo com o necessário simplesmente selecionando no lado esquerdo o fluxo necessário e arrastando para a tela em branco da direita.

Caso tenham vários fluxos já adicionados, e a ordem não esteja de acordo com o esperado, podemos mover os fluxos já adicionados entre eles, também arrastando os mesmos com o mouse.

Temos uma lista com vários recursos que podem ser utilizados:

AutenticadorRefreshTokenApi =

BuscaRotaServicoNaoPaginada =

BuscaRotaServicoPaginada =

CriaVariavelTemporaria =

FinalizaVariavelTemporaria =

PersisteIntegracao =

EnvioIntegracaoStatusRecebido =

EnvioIntegracaoStatusEmProcessamento =

ConsultarStatusPosIntegracao =

EnvioIntegracaoStatusRecebidoLote =

Após adicionar os itens que forem necessários, podemos ir para a Seleção de rotas clicando em próximo passo;

Image Removed
Totvs custom tabs box items
defaultno
referenciaitem-fluxo4
replicar4

Selecione os parâmetros que deseja replicar o valor e clique em Confirmar.

Image Added

Totvs custom tabs box items
defaultno
referenciaitem-replicar5

Clique em Salvar para concluir a replicação.

Image Added

Expandir
titleConfiguração de fluxos
Expandir
titleCadastro de fluxos

O objetivo é possibilitar o Cadastro de fluxos no Winthor Smart Hub.

Os fluxo basicamente são os passos que devem ser feitos para que os dados sejam trafegados da maneira adequada no winthor. É basicamente um conjunto de rotas configuradas para serem executadas em uma ordem específica

Para cadastrar um novo Fluxo, devemos acessar as configurações de parâmetros através da rotina 2650 do WSH.


-items
Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3, Passo 4, Passo 5, Passo 6
idsitem-fluxo1,item-fluxo2,item-fluxo3,item-fluxo4,item-fluxo5,item-fluxo6
Totvs custom tabs box items
defaultyes
referenciaitem-fluxo1

Já no WSH, acessar o item 4 da rotina 2650, que é a configuração de fluxos;


Image Added

Totvs custom tabs box items
defaultno
referenciaitem-fluxo2

Clique no botão Novo, (será apresentado os dados para Cadastro de fluxos);


Image Added

Totvs custom tabs box items
defaultno
referenciaitem-fluxo3

Cadastro de fluxos


Image Added


Nesta tela deverá ser informado o nome(descrição) do fluxo a ser criado e selecionar uma integração;

defaultno
referenciaitem-fluxo5

Neste passo, devemos vincular as rotas em cada fluxo que foi adicionar, clicando na lupa para realizar a busca da rota;

Image Removed

Após clicar na lupa, devemos procurar a rota necessária de acordo com o fluxo, como no exemplo abaixo, buscamos a rota de autenticação para o fluxo de AutenticadorRefreshTokenApi;

Buscando a rota digitando pelo nome, ou listando as mesmas sem a necessidade de digitar;

Clicar sobre a rota para selecionar a mesma;

Confirmar a rota selecionada.

Image Removed

Após selecionar as rotas para cada fluxo podemos ir para a revisão dos dados ou em caso de necessidade, podemos voltar um passo para selecionar ou remover outro item no fluxo voltando a página anterior;

Image Removed

Ao chegar no último passo, o passo de revisão, podemos ficará ativo ou não, também definir IDs independentes e também podemos alterar novamente a ordem de cada item arrastando os mesmos para cima e para baixo.

Obs: No caso de alterar a ordem, podemos verificar que o primeiro item da tabela, "Ordem de execução" também irá alterar, respeitando a ordem de cima para baixo.

Image Removed

Ativar ou desativar o fluxo, irá definir se o fluxo vai ficar operante ou não;

A informação do ID independente serve para informar se uma rota depende da execução de outra para funcionar.

Ex: Se for necessário enviar uma requisição pro WTA, vai precisar fazer o login antes, então a rota que comunica com o WTA é dependente de uma rota de login que o usuário precisa definir no cadastro do fluxo

Ao clicar em concluir o fluxo é salvo.

Totvs custom tabs box items
defaultno
referenciaitem-fluxo6
Expandir
titleConfiguração de detalhes técnicos
fluxo4

Cadastro de fluxos


Image Added


Nesta dela, podemos montar os fluxos de acordo com o necessário simplesmente selecionando no lado esquerdo o fluxo necessário e arrastando para a tela em branco da direita.


Caso tenham vários fluxos já adicionados, e a ordem não esteja de acordo com o esperado, podemos mover os fluxos já adicionados entre eles, também arrastando os mesmos com o mouse.


Temos uma lista com vários recursos que podem ser utilizados:


AutenticadorRefreshTokenApi =

BuscaRotaServicoNaoPaginada =

BuscaRotaServicoPaginada =

CriaVariavelTemporaria =

FinalizaVariavelTemporaria =

PersisteIntegracao =

EnvioIntegracaoStatusRecebido =

EnvioIntegracaoStatusEmProcessamento =

ConsultarStatusPosIntegracao =

EnvioIntegracaoStatusRecebidoLote =


Após adicionar os itens que forem necessários, podemos ir para a Seleção de rotas clicando em próximo passo;


Image Added



Totvs custom tabs box items
defaultno
referenciaitem-fluxo5

Neste passo, devemos vincular as rotas em cada fluxo que foi adicionar, clicando na lupa para realizar a busca da rota;

Image Added


Após clicar na lupa, devemos procurar a rota necessária de acordo com o fluxo, como no exemplo abaixo, buscamos a rota de autenticação para o fluxo de AutenticadorRefreshTokenApi;


Buscando a rota digitando pelo nome, ou listando as mesmas sem a necessidade de digitar;

Clicar sobre a rota para selecionar a mesma;

Confirmar a rota selecionada.


Image Added


Após selecionar as rotas para cada fluxo podemos ir para a revisão dos dados ou em caso de necessidade, podemos voltar um passo para selecionar ou remover outro item no fluxo voltando a página anterior;


Image Added

Expandir
titleDetalhes técnicos

O objetivo é possibilitar o acesso aos detalhes técnicos do Winthor Smart Hub.

Para consultar os detalhes técnicos, devemos acessar a rotina 2650 do WSH.

item-detalhes1,item-detalhes2,item-detalhes3
Totvs custom tabs box
tabsPasso 1, Passo 2
ids



Na tela dos detalhes técnicos, podemos realizar as devidas consultas podendo filtrar as mesmas por período de data, por rota, por status sendo esses apenas um ou múltiplos e também controlar a quantidade itens exibidos por página.

Image Removed

Já no WSH, acessar o item 5 da rotina 2650, que é a configuração de detalhes técnicos;

Image Removed
Totvs custom tabs box items
defaultyesno
referenciaitem-detalhes1fluxo6

Ao chegar no WSHúltimo passo, acessar o item 5 da rotina 2650, que é a configuração de detalhes técnicos;

Image Removed

Totvs custom tabs box items
defaultno
referenciaitem-detalhes2
Totvs custom tabs box
tabsPasso 1, Passo 2
idsitem-detalhes1,item-detalhes2,item-detalhes3
Totvs custom tabs box items
defaultyes
referenciaitem-detalhes1

o passo de revisão, podemos ficará ativo ou não, também definir IDs independentes e também podemos alterar novamente a ordem de cada item arrastando os mesmos para cima e para baixo.


Obs: No caso de alterar a ordem, podemos verificar que o primeiro item da tabela, "Ordem de execução" também irá alterar, respeitando a ordem de cima para baixo.


Image Added


Ativar ou desativar o fluxo, irá definir se o fluxo vai ficar operante ou não;

A informação do ID independente serve para informar se uma rota depende da execução de outra para funcionar.

Ex: Se for necessário enviar uma requisição pro WTA, vai precisar fazer o login antes, então a rota que comunica com o WTA é dependente de uma rota de login que o usuário precisa definir no cadastro do fluxo


Ao clicar em concluir o fluxo é salvo.

Expandir
titleConfiguração de detalhes técnicos
Expandir
titleDetalhes técnicos

O objetivo é possibilitar o acesso aos detalhes técnicos do Winthor Smart Hub.

Para consultar os detalhes técnicos, devemos acessar a rotina 2650 do WSH.





Totvs custom tabs box
tabsPasso 1, Passo 2
idsitem-detalhes1,item-detalhes2,item-detalhes3
Expandir
titleDe/Para

O objetivo é possibilitar o acesso aos dados de DE/PARA do Winthor Smart Hub.

Para consultar editar ou cadastrar um novo dado, devemos acessar a rotina 2650 do WSH.

Totvs custom tabs box
tabs
Totvs custom tabs box items
defaultyes
referenciaitem-detalhes1

Já no WSH, acessar o item 5 da rotina 2650, que é a configuração de detalhes técnicos;


Image Modified

Totvs custom tabs box items
defaultno
referenciaitem-detalhes2

Na tela dos detalhes técnicos, podemos realizar as devidas consultas podendo filtrar as mesmas por período de data, por rota, por status sendo esses apenas um ou múltiplos e também controlar a quantidade itens exibidos por página.


Image Modified

Expandir
titleCadastro e consulta de DE/PARA
, Passo 3, Passo 4, ´Passo 5depara1depara2depara3,item-depara4,item-depara5
Totvs custom tabs box
tabs
Passo 1, Passo 2
idsitem-
detalhes1,item-
detalhes2,item-
depara1
detalhes3
Totvs custom tabs box items
defaultyes
referenciaitem-
detalhes1

Já no WSH, acessar o item

6

5 da rotina 2650, que é a configuração de

DE/PARA

detalhes técnicos;

Image Removed


Image Added



Totvs custom tabs box
tabsPasso 1, Passo 2
idsitem-detalhes1,item-detalhes2,item-detalhes3
no
Totvs custom tabs box-items
default
yes
referenciaitem-detalhes1

Já no WSH, acessar o item 5 da rotina 2650, que é a configuração de detalhes técnicos;


Image Added

depara2

Na tela inicial do cadastro de de/para, temos uma visualização geral dos itens já cadastrados, e também podemos utilizar os filtros para uma melhor visualização dos dados de interesse.

Image Removed

depara3

Cadastro de novo item

Para cadastrar um novo item de de/para, basta clicar em novo e informar os campos solicitados:

Image Removed

Neste exemplo usamos a tabela de produtos(PCPRODUT) para cadastrar um código alternativo para um produto:

Image Removed

Após preencher todos os dados, basta salvar e depois em confirmar:

Image Removed

Então o novo item já deve aparecer salvo na coluna de exibição:

Totvs custom tabs box items
defaultno
referenciaitem-
detalhes2

Na tela dos detalhes técnicos, podemos realizar as devidas consultas podendo filtrar as mesmas por período de data, por rota, por status sendo esses apenas um ou múltiplos e também controlar a quantidade itens exibidos por página.


Image Added



Expandir
titleCadastro e consulta de DE/PARA
Expandir
titleDe/Para

O objetivo é possibilitar o acesso aos dados de DE/PARA do Winthor Smart Hub.

Para consultar editar ou cadastrar um novo dado, devemos acessar a rotina 2650 do WSH.


Image Removed
Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3, Passo 4, ´Passo 5
idsitem-depara1,item-depara2,item-depara3,item-depara4,item-depara5

Edição de itens

Para editar um item de de/para, basta clicar no botão de contexto (...) e editar o item que desejar:

Image Removed

Os dados devem vir carregados com as informações já existentes:

Image Removed

Basta editar o item que desejar e salvar.

Neste caso vamos apenas mudar o código externo para exemplificar:

Image Removed

Após salvar, o item deve estar atualizado na listagem:

Image Removed

Totvs custom tabs box items
defaultnoyes
referenciaitem-depara4
depara1

Já no WSH, acessar o item 6 da rotina 2650, que é a configuração de DE/PARA;


Image Added

Totvs custom tabs box items
defaultno
referenciaitem-depara2

Na tela inicial do cadastro de de/para, temos uma visualização geral dos itens já cadastrados, e também podemos utilizar os filtros para uma melhor visualização dos dados de interesse.


Image Added

totvs-totvs-custom-tabs-box-items
defaultno
referenciaitem-depara5depara3

Exclusão Cadastro de itensnovo item


Para excluir cadastrar um novo item de de/para, basta clicar no botão de contexto (...) e excluir o item que desejar (esta alteração é Irreversível):

Image Removed

Após clicar em excluir, é necessário confirmar a exclusão:

Image Removed

Após confirmar, um toast de confirmação será exibido informando que o item foi excluído, e o mesmo não irá mais aparecer na listagem:

Image Removed

Expandir
titleTransformação de layouts

em novo e informar os campos solicitados:


Image Added


Neste exemplo usamos a tabela de produtos(PCPRODUT) para cadastrar um código alternativo para um produto:


Image Added


Após preencher todos os dados, basta salvar e depois em confirmar:


Image Added


Então o novo item já deve aparecer salvo na coluna de exibição:


Image Added


Totvs custom tabs box items
defaultno
referenciaitem-depara4

Edição de itens


Para editar um item de de/para, basta clicar no botão de contexto (...) e editar o item que desejar:


Image Added


Os dados devem vir carregados com as informações já existentes:


Image Added


Basta editar o item que desejar e salvar.


Neste caso vamos apenas mudar o código externo para exemplificar:


Image Added


Após salvar, o item deve estar atualizado na listagem:


Image Added

Expandir
titleTransformação de layouts

O objetivo é possibilitar a validação de layouts de transformação do Winthor Smart Hub.

Para consultar a validação dos layouts, devemos acessar a rotina 2650 do WSH.

Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3, Passo 4, ´Passo 5
idsitem-layouts1,item-layouts2,item-layouts3,item-layouts4,item-layouts5
Totvs custom tabs box items
defaultyes
referenciaitem-layouts1

Já no WSH, acessar o item 7 da rotina 2650, que é a configuração de Transformação de Layouts

Image Removed

Na tela inicial da seção de Transformação de Layouts temos já os campos destinados a realizar a validação de nossos layouts.

Nesta tela temos 3 campos, sendo eles;

Json de entrada: Neste campo, devemos inserir o json que queremos transformar;

Layout: Neste campo, devemos inserir o Json, que será responsável pela transformação, ou seja, o próprio layout de transformação;

Resultado/erros: Neste campo, será apresentado  o resultado da transformação, no caso de sucesso, será informado um Json com o resultado da transformação, e em caso de erro, será exibido o erro que ocorreu brevemente.

Também é possível clicar nos botões de Validar Json de Entrada e Validar Json Layout, para que seja realizado uma validação do Json antes de transformar.

Image Removed
Totvs custom tabs box items
defaultno
referenciaitem-layouts2
depara5

Exclusão de itens


Para excluir um item de de/para, basta clicar no botão de contexto (...) e excluir o item que desejar (esta alteração é Irreversível):


Image Added


Após clicar em excluir, é necessário confirmar a exclusão:


Image Added


Após confirmar, um toast de confirmação será exibido informando que o item foi excluído, e o mesmo não irá mais aparecer na listagem:


Image Added

Expandir
titleTransformação de layouts
Expandir
titleTransformação de layouts

O objetivo é possibilitar a validação de layouts de transformação do Winthor Smart Hub.

Para consultar a validação dos layouts, devemos acessar a rotina 2650 do WSH.


Totvs custom tabs box
tabsPasso 1, Passo 2, Passo 3, Passo 4, ´Passo 5
idsitem-layouts1,item-layouts2,item-layouts3,item-layouts4,item-layouts5
Totvs custom tabs box items
defaultnoyes
referenciaitem-layouts3layouts1

Já no WSH, acessar o item 7 da rotina 2650, que é a configuração de Transformação de Layouts


Image Added

{ "rating": { "primary": { "value": 3 }, "quality": { "value": 3 } } }

Neste campo, devemos inserir o json que queremos transformar;

Layout: Neste campo, devemos inserir o Json, que será responsável pela transformação, ou seja, o próprio layout de transformação;

Resultado/erros: Neste campo, será apresentado  o resultado da transformação, no caso de sucesso, será informado um Json com o resultado da transformação, e em caso de erro, será exibido o erro que ocorreu brevemente.


Também é possível clicar nos botões de Validar Json de Entrada e Validar Json Layout, para que seja realizado uma validação do Json antes de transformar.


Image Added

Totvs custom tabs box items
defaultno
referenciaitem-layouts2

Na tela inicial da seção de Transformação de Layouts temos já os campos destinados a realizar a validação de nossos layouts.


Nesta tela temos 3 campos, sendo eles;

Exemplificando o uso, abaixo, a demonstração de uma transformação de exemplo;

Json de Entrada:

Image Removed


Json de entrada:

Bloco de código
titleJson usado para Json de Entrada
Totvs custom tabs box items
defaultno
referenciaitem-layouts4layouts3

Exemplificando o uso, abaixo, a demonstração de uma transformação de exemplo;


Json de Entrada:


Image Added


Json de entrada:


Bloco de código
titleJson usado para Json de Entrada
{
  "rating": {

Json do Layout: 

Image Removed

Bloco de código
 [
  {
    "operation": "shift",
    "specprimary": {
      "ratingvalue": {3
    },
    "primaryquality": {
          "value": 3
    }
  }
}




Totvs custom tabs box items
defaultno
referenciaitem-layouts4

Json do Layout: 


Image Added


Bloco de código
 [
  {
"Rating",
          "maxoperation": "RatingRangeshift",
        },
  "spec": {
      "*rating": {
        "primary": {
          "value": "Rating",
          "max": "RatingRange"
        },
        "*": {
          "max":   "SecondaryRatings.&1.Range",
          "value": "SecondaryRatings.&1.Value",
          "$": "SecondaryRatings.&1.Id"
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "Range": 5,
      "SecondaryRatings": {
        "*": {
          "Range": 5
        }
      }
        }
    }
  }
]

}
  }
]

Totvs custom tabs box items
defaultno
referenciaitem-layouts5

Resultado: 


Neste caso, um exemplo onde ocorreu sucesso na transformação, o resultado é um Json com os dados transformados;


Image Added

Bloco de código
{
  "Rating": 3,
  "SecondaryRatings": {
    "quality": {
      "Id": "quality",
      "Value": 3,
      "Range": 5
    }
  },
  "Range": 5
}
Informações
titleFerramentas
Expandir
titleRotina 2660 - Atualização de Dados

A rotina 2660 permite atualizar datas de registros que estejam nulas (data de atualização, data de cadastro, etc). O intuito é preencher as datas dos registros que estejam nulas com uma data fixa (01/01/1900) ou com uma data especificada, afim de otimizar a carga de dados feita via WSH.

Aviso
titleATENÇÃO
  • Para utilizar a rotina 2660, é necessário instalar o serviço winthor-integracao-2660 na rotina 801 do WTA.
  • Para conseguir acessar a rotina 2660, é necessário habilitar na rotina 530 do WinThor a opção "1 - Permite controlar opção 'Atualização de dados para Integração'";
Totvs custom tabs box
tabs1 - Inicio, 2 - Temas, 3 - Tabelas, 4 - Colunas, 5 - Detalhes, 6 - Revisão
idsitem1-2660,item2-2660,item3-2660,item4-2660,item5-2660,item6-2660
Totvs custom tabs box items
defaultyes
referenciaitem1-2660
  • Nesta etapa será apresentada uma descrição da funcionalidade. É importante ler atentamente e entender o funcionamento da ferramenta.

Image Added

  • Feita a leitura, basta clicar no botão "Iniciar", e em seguida "Confirmar" conforme imagem abaixo:

Image Added


Totvs custom tabs box items
defaultno
referenciaitem2-2660
  • Nesta etapa serão apresentados em tela os temas principais presentes nas integrações realizadas pelo WSH. A escolha do tema definirá quais as tabelas que deverão ser listadas no passo seguinte.

Image Added

Totvs custom tabs box items
defaultno
referenciaitem3-2660
  • Após a escolha do tema, serão listadas as tabelas impactadas pelas integrações referentes ao tema. Escolha as tabelas que deseja para na sequencia definir quais colunas de data serão atualizadas.

Image Added

Totvs custom tabs box items
defaultno
referenciaitem4-2660
  • Nesta etapa, após a escolha das tabelas, são listadas em tela as colunas de data que a integração utiliza. Selecione quais colunas deseja atualizar os registros nulos.

Image Added

Totvs custom tabs box items
defaultno
referenciaitem5-2660
  • Após a escolha das colunas de data que deseja alterar, será apresentado um detalhamento da quantidade de registros nulos presentes em cada uma das colunas selecionadas, basta seguir para o próximo passo e definir a data que deseja inserir para esses registros.

Image Added

  • Caso não existam registros nulos, ao clicar no botão "Próximo passo", a seguinte mensagem será apresentada:

Image Added

item{ "Rating": 3, "SecondaryRatings": { "quality": { "Id": "quality", "Value": 3, "Range": 5 } }, "Range": 5 }

Totvs custom tabs box items
defaultno
referencia
item6-2660
  • Nesta última etapa, deverá ser definida a data que será inserida nos registros nulos:

Image Added

  • Opção "Inserir data/hora de forma automática"
    • Define automaticamente a data 01/01/1900 00:00:00 aos registros nulos.
  • Opção "Manual"
    • Permitirá definir uma data específica nos campos de data e hora presentes em tela.
  • Ao clicar em "Finalizar", será apresentada uma tela de confirmação da operação:

Image Added

  • Após a confirmação, o update será realizado em todos os registros nulos com a data definida. Ao finalizar, será apresentado em tela um resumo da quantidade de registros alterados, e nesse resumo será possível visualizar um log do que foi realizado em cada uma das colunas.

Image Added

Image Added

layouts5

Resultado: 

Neste caso, um exemplo onde ocorreu sucesso na transformação, o resultado é um Json com os dados transformados;

Image Removed

Bloco de código
Informações
titleAPI's
Expandir
titleIntegração de eventos

O objetivo é disponibilizar uma api API de integração de eventos ao WSH;

Aviso
titleATENÇÃO
  • Para utilizar a apiAPI, deverá ser instalado o serviço winthor-integracao-config na versão 1.35.1.16 ou superior.
  • Antes de utilizar a API de integração de eventos é necessário realizar o Login no WTA.
Totvs custom tabs box
tabsRequest, Response
idsitem1-apiEvento,item2-apiEvento
Totvs custom tabs box items
defaultyes
referenciaitem1-apiEvento

O envio da requisição de eventos deverá ser realizado no seguinte endpoint:

  • winthor/integracao/fulfillment/v1/evento método POST;

O JSON deverá respeitar a seguinte estrutura:

Bloco de código
languagejs
{
	"origem": "ORIGEM",
	"codigoOrigem": "CODIGOORIGEM",
	"token": "bf602066-d434-47c6-9930-37fcd6891300",
	"codigoProcesso": 1,
	"descricaoProcesso": "DESCRICAO",
    "observacao":"OBSERVACAO"
}
CampoTipoDescriçãoObrigatório
origemString (50)Origem do evento.Sim
codigoOrigemString (100)Código de identificação da origem do eventoSim
tokenStringToken de identificação da requisição;Não
codigoProcessoLong (10)Código do processo referente ao evento.Sim
descricaoProcessoString (200)Descrição do processo referente ao evento.Não
observacaoStringObservação sobre o evento.Não


O objetivo da API é armazenar essa informação enviada no request na tabela PCINTEGRACAOEVENTORECEBIDO.


Totvs custom tabs box items
defaultno
referenciaitem2-apiEvento

Casa respeitados os campos de envio da requisição, o response deverá apresentar a seguinte estrutura:

  • HttpStatusCode 201 CREATED;
  • Um objeto contendo o evento inserido;

Ex:

Bloco de código
languagejs
{
    "origem": "ORIGEM",
    "codigoOrigem": "CODIGOORIGEM",
    "token": "bf602066-d434-47c6-9930-37fcd6891300",
    "descricaoProcesso": "DESCRICAO",
    "observacao": "OBSERVACAO",
    "codigoProcesso": 1,
    "dataCriacao": "2024-04-24T15:31:10.482",
    "dataAlteracao": "2024-04-24T15:31:10.482",
    "processado": false
}


Do contrário, caso algum campo obrigatório não tenha sido informado, o response irá informar HttpStatusCode 400 BAD REQUEST e o seguinte erro:

Bloco de código
languagejs
{
    "code": "WT-CONFIG-000032",
    "message": "Erro ao receber evento",
    "detailedMessage": "Campo Obrigatorio não pode ser nulo. Campo: X",
    "details": []
}

...