Pré-Requisitos:

 Para implantar o Mozart no processo de integrações assícronas de Gemco para o Protheus é necessário que as seguintes configurações estejam instaladas corretamente.

1 - Detalhes técnico no Gemco                  

  1.1 Configurações de Banco

Para implantação do Mozart é necessário a instalação das seguintes tabelas de dados:

Script :

Os scripts das tabelas podem ser encontrados no endereço : http://tfs.bematech.com.br:8080/tfs/spo/Varejo/Gemco/

Seguindo o processo de implantação, os próximos passos de configurações devem ser executados no banco de dados.

Obs.: No momento não é possível configurar o Mozart via interface, apenas via querys no banco de dados. segue abaixo scripts e orderm de execução.

MzOperacao, nesta tabela é necessário informar os campos : Id e Descricao

SET IDENTITY_INSERT [dbo].[MzOperacao] ON 

INSERT [dbo].[MzOperacao] ([Id], [Descricao], [Request], [RequestCallback], [IdCallback]) VALUES (3101, N'GEMCO PARA PROTHEUS - PEDIDO DE VENDA - RESERVAR VENDA', NULL, NULL, NULL)

SET IDENTITY_INSERT [dbo].[MzOperacao] OFF

Nesta tabela é criado o código da operação (coluna Id) que identificará está integração de "GEMCO PARA PROTHEUS - PEDIDO DE VENDA - RESERVAR VENDA" no Mozart. 

Obs.: Adicione sempre Id sequencial, neste caso foi adicionado o id 3101.

         MzCliente, nesta tabela é necessário informar os campos : Id e Descricao        

SET IDENTITY_INSERT [dbo].[MzCliente] ON
INSERT [dbo].[MzCliente] ([Id], [Descricao], [Referencia]) VALUES (1, N'GEMCO', NULL)
INSERT [dbo].[MzCliente] ([Id], [Descricao], [Referencia]) VALUES (8, N'PROTHEUS', NULL)
SET IDENTITY_INSERT [dbo].[MzCliente] OFF

         Nesta tabela deve ser informado os Nomes e Id dos sistemas que serão integrados. Neste caso, Gemco e Protheus.

Obs.: Adicione sempre Id sequencial.

.       MzOperacaoCliente. Informe : Id, IdOperacao e IdCliente

SET IDENTITY_INSERT [dbo].[MzOperacaoCliente] ON
INSERT [dbo].[MzOperacaoCliente] ([Id], [IdOperacao], [IdCliente], [Request], [RequestCallback]) VALUES (20, 3101, 8, NULL, NULL)

SET IDENTITY_INSERT [dbo].[MzOperacaoCliente] OFF

         Está tabela tem o relacionamento com as tabelas MzOperacao e MzOperacaoCliente.

Obs.: Adicione sempre Id sequencial.

         MzTransacao, nesta tabela é necessário informar Id e Nome.

SET IDENTITY_INSERT [dbo].[MzTransacao] ON
INSERT [dbo].[MzTransacao] ([Id], [Nome]) VALUES (4, N'ITEMRESERVE')

SET IDENTITY_INSERT [dbo].[MzTransacao] OFF

Informe um Id sequencial e o nome da mensagem.

Obs.: O globalization culture deve seguir uma escolha do começo ao fim da configuração. Por exemplo: Ao configurar usando o Nome ITEMRESERVE esse mesmo nome é uma chave de indentificação na transação. A integração não funcionará caso encontre algum nome como RESERVA

        MzAplicacaoEvento, nesta tabela é necessário informar Id, IdAplicacao, evento, IdOperacao e IdTransacao.

         SET IDENTITY_INSERT [dbo].[MzAplicacaoEvento] ON
         INSERT [dbo].[MzAplicacaoEvento] ([Id], [IdAplicacao], [Evento], [TipoIntegracao], [IdOperacao], [IdTransacao]) VALUES (36, 8, N'UPSERT', NULL, 3101, 4)

         MzAssinatura, nesta tabela é necessário informar Id, IdAplicacaoEvento, IdCliente, Tenant e IdOperacao.  

          SET IDENTITY_INSERT [dbo].[MzAssinatura] ON
          INSERT [dbo].[MzAssinatura] ([Id], [IdAplicacaoEvento], [IdAplicacaoAssinante], [IdCliente], [Tenant], [IdOperacao]) VALUES (29, 36, 8, 8, N'T3', NULL)

                   MzAssinaturaPasso, nesta table é necessário informar os seguintes campos : Id, IdAssinatura, Ordem e Request.

          SET IDENTITY_INSERT [dbo].[MzAssinaturaPasso] ON
          INSERT [dbo].[MzAssinaturaPasso] ([Id], [IdAssinatura], [Ordem], [Request]) VALUES (69, 29, 1, N'{"AwaitCallback": true, "Url": "http://10.171.67.163:8175/EAISERVICE.apw", "Method": "POST","TimeoutEmSegundos": 30, "Headers": {                  "Content-Type": "text/xml", "SOAPAction" : "http://www.totvs.com/RECEIVEMESSAGE" }}')

          O insert acima é necessário quando temos uma integração onde o evento parte do Gemco para o Protheus. na coluna request sempre deve ser informado em "AwaitCallback": true quando aguardamos o EAI Totvs processar uma mensagem recebida.  No insert abaixo é inserido o passo que recebe o processamento do EAI Totvs.

          INSERT [dbo].[MzAssinaturaPasso] ([Id], [IdAssinatura], [Ordem], [Request]) VALUES (70, 29, 2, N'{"Adapter": false, "Url": "http://localhost:84/Reserva/api/gemco/Reserva/ToUpsertBusinessMessageResponse", "Method": "POST", "Headers": { "Content-Type": "application/json" } }')

1.2 Configurações de ambiente

      O ambiente que será executado o Mozart EAI deve ser instalado o plugin .Net Core 2.0.

      O download do plugin pode ser feito no seguinte site : https://www.microsoft.com/net/download/dotnet-core/2.0

      Obs.: Instale a versão Runtime 2.0.0.

      No ambiente windows o iis deve está instalado e devidamente configurado apartir da versão 6

     

   Após todas essa configurações, o Mozart EAI pode ser publicado no IIS normalmente.

      

Obs.: Para mais detalhes de configuração e publicação de aplicativos web no IIS, acesse o link : https://docs.microsoft.com/pt-br/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.1&tabs=aspnetcore2x

Depois de finalizadas as configurações, o Mozart EAI pode ser iniciado no IIS de acordo com a rota(ip) cadastrado. Ex.:     

Para submeter uma mensagem de ITEMRESERVE do gemco para o Mozart EAI. Envie um Post com o seguinte mapeamento :

  ___________________________________________________________________________________________________________________________________

__________________________________________________________________________________________________________________________________

______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________      

___________________________________________________________________________________________________________________________________   

___________________________________________________________________________________________________________________________________   

No Mozart para concluir um processo de configuração é preciso configurar o arquivo "configuracao.json", como mostra a imagem abaixo.

Caso esse processo de Reserva(ItemReserve) seja enviado pelo Gemco é preciso configurar o parametro "Temporizadores"  com as seguintes informações

Como mostra as imagens acima, foi configurado no Mozart o endpoint da api de reserva que será chamada pelo Mozart de acordo com o time configurado em "Frequencia".