# Interface de Produtos ###### Informações: > Cliente : Grupo Nós > Criado por : Logic Information Systems - 02/01/2023 > Introdução: Readme para descrever tecnicamente o fluxo de integração de produtos com origem no RMS e destino no Zanthus. ## ARQUITETURA ### Visão geral: 1. O RIB publica as mensagens de criação, modificação ou exclusão de itens na fila AQ etItemsFromRMS; 2. Na aplicação RIB rib-zth, o subscriber Items_sub lê as mensagens de itens publicadas na fila. O rib-zth envia essas mensagens para o injector do RSB em uma chamada SOAP, passando os seguintes parâmetros: - family; - Messagetype; - businessObjectId; - retailPayload 3. O injector RibZthToRsbZthRouting-ServicesIntegrationFlow, com base nos dados enviados pelo rib-zth, realiza a chamada à operação correspondente do decorator zth-Items-AppServiceDecorator. 4. O decorator zth-Items-AppServiceDecorator trata a mensagem recebida, aplicando os filtros configurados e transformando os dados com base no mapeamento definido. Se necessário, o serviço enriquece a mensagem buscando os dados do item por meio da chamada à API rms-item. Por fim, realiza uma chamada REST à API da Zanthus passando um JSON no body da mensagem. 5. A API rms-item recebe como parâmetro o código do item ou UPC e busca seus detalhes no banco de dados do RMS. A API da Zanthus responde à requisição do decorator com um payload no formato JSON. O serviço então converte a resposta para o formato XML e realiza as seguintes validações: 1. Se o HTTP Status retornado é 200 e a resposta não contém pelo menos um nó listaNaoProcessados. Exceção código 130, definido para lojas não ativadas na Zanthus. 2. Se a resposta não contém um nó resultado ou se esse nó tem um conteúdo diferente de error. Caso as validações sejam cumpridas, o serviço finaliza com sucesso. ## OPERAÇÕES/FILTROS ### createItemDesc; Filtro de item aprovado Filtro da UDA Canal de Venda Filtro da UDA Venda Food Service Filtro de item transacional ### updateItemHdrDesc; Filtro de item aprovado Chamada à API rms-item para buscar os detalhes do item no banco de dados do RMS Filtro da UDA Canal de Venda Filtro da UDA Venda Food Service Filtro de item transacional ### DeleteItemDesc; Filtro das UDAs Canal de Venda, Venda Food Service, Venda Menores 18 anos e Finalizadora Chamada à API rms-item para buscar os detalhes do item no banco de dados do RMS Filtro de item transacional Filtro da UDA Canal de Venda Filtro da UDA Venda Food Service ### createItemUDALOVDesc; Filtro das UDAs Venda Menores 18 anos e Finalizadora Chamada à API rms-item para buscar os detalhes do item no banco de dados do RMS Filtro de item transacional Filtro da UDA Canal de Venda Filtro da UDA Venda Food Service ### deleteItemUDALOVDesc; Filtro das UDAs Venda Menores 18 anos e Finalizadora Chamada à API rms-item para buscar os detalhes do item no banco de dados do RMS Filtro de item transacional Filtro da UDA Canal de Venda Filtro da UDA Venda Food Service ### createItemUPCDesc; Chamada à API rms-item para buscar os detalhes do item no banco de dados do RMS Filtro da UDA Canal de Venda Filtro da UDA Venda Food Service Valida se o UPC da mensagem é primário Caso seja um UPC primário, faz a transformação do payload Item retornado pela API rms-item no formato XML para a requisição JSON enviada à Zanthus. Essa transformação é necessária para atualizar o campo EAN_UNIDADE no cabeçalho do Produto (JSON MERCADORIA) Caso seja um UPC não primário, faz a transformação do payload ItemHdrDesc no formato XML para a requisição JSON enviada à Zanthus. Essa transformação gera uma mensagem apenas para a criação do EAN na Zanthus, sem necessidade de alterar o cabeçalho do produto ### updateItemUPCDesc; Chamada à API rms-item para buscar os detalhes do item no banco de dados do RMS Filtro da UDA Canal de Venda Filtro da UDA Venda Food Service Valida se o UPC da mensagem é primário Caso seja um UPC primário, faz a transformação do payload Item retornado pela API rms-item no formato XML para a requisição JSON enviada à Zanthus. Essa transformação é necessária para atualizar o campo EAN_UNIDADE no cabeçalho do Produto (JSON MERCADORIA) Caso seja um UPC não primário, faz a transformação do payload ItemHdrDesc no formato XML para a requisição JSON enviada à Zanthus. Essa transformação gera uma mensagem apenas para a criação do EAN na Zanthus, sem necessidade de alterar o cabeçalho do produto ### deleteItemUPCDesc; Não possui filtros nesta operação. ## TRANSFORMAÇÕES As seguintes transformações em XQuery estão configuradas no decorator zth-Items-AppServiceDecorator. Para este fluxo de integração são gerados os seguintes objetos JSON de acordo com a operação executada: ***MERCADORIA – objeto que contém os dados do produto transacional PRODUTOACESSO – objeto que contém a relação entre produto e EAN*** #### ItemDescToReplaceMercadoriaProdutoAcesso Esta XQuery recebe como parâmetro de entrada o payload XML ItemDesc e o transforma em dois objetos JSON: **MERCADORIA e PRODUTO_ACESSO.** Esses objetos são encapsulados pelo objeto REPLACE, que realiza a criação ou modificação do dado na Zanthus. Utilizada na operação ***createItemDesc*** #### ItemDetailsToReplaceMercadoriaProdutoAcesso Esta XQuery recebe como parâmetro de entrada o payload XML Item, definido no arquivo XSD ItemDetails, e o transforma em dois objetos JSON:**MERCADORIA e PRODUTO_ACESSO.** Esses objetos são encapsulados pelo objeto REPLACE, que realiza a criação ou modificação do dado na Zanthus. Utilizada nas seguintes operações:**createItemUPCDesc; updateItemUPCDesc; createItemUDALOVDesc.** #### ItemHdrDescToReplaceMercadoria Esta XQuery recebe como parâmetro de entrada o payload XML ItemHdrDesc e o transforma no objeto JSON MERCADORIA. Esse objeto é encapsulado pelo objeto REPLACE, que realiza a criação ou modificação do dado na Zanthus. Utilizada na operação updateItemHdrDesc. #### ItemRefToReplaceMercadoria Esta XQuery recebe como parâmetro de entrada o payload XML ItemRef e o transforma no objeto JSON MERCADORIA. Esse objeto é encapsulado pelo objeto REPLACE, que realiza a criação ou modificação do dado na Zanthus. Utilizada na operação deleteItemDesc. #### ItemsDetailsRefToReplaceMercadoria Esta XQuery recebe como parâmetro de entrada o payload XML item, definido no XSD ItemDetails, e transforma no objeto JSON MERCADORIA. Este objeto é encapsulado pelo objeto REPLACE, que realiza a deleção ou modificação do dado na Zanthus. Utilizada na operação deleteItemDesc. #### ItemsDetailsToReplaceMercadoria Esta XQuery recebe como parâmetro de entrada o payload XML Item, definido no arquivo XSD ItemDetails, e o transforma no objeto JSON MERCADORIA. Esse objeto é encapsulado pelo objeto REPLACE, que realiza a criação ou modificação do dado na Zanthus. Utilizada na operação deleteItemUDALOVDesc #### ItemUPCDescToReplaceProdutoAcesso Esta XQuery recebe como parâmetro de entrada o payload XML ItemUPCDesc e o transforma no objeto JSON PRODUTO_ACESSO. Esse objeto é encapsulado pelo objeto REPLACE, que realiza a criação ou modificação do dado na Zanthus. Utilizada nas seguintes operações: createItemUPCDesc e updateItemUPCDesc #### ItemUPCRefToDeleteProdutoAcesso Esta XQuery recebe como parâmetro de entrada o payload XML ItemUPCRef e o transforma no objeto JSON PRODUTO_ACESSO. Esse objeto é encapsulado pelo objeto DELETE, que realiza a exclusão do dado na Zanthus. Utilizada na operação deleteItemUPCDesc. ## LOGS As mensagens que passam por este fluxo de integração são registradas no banco de dados do RSB na tabela **rsb_soainfra.RSB_SERVICE_ACTIVITY**. Nessa tabela podem ser encontrados os payloads das requisições enviadas no formato XML e as respostas retornadas pela API da Zanthus. Este fluxo também realiza um filtro nas mensagens com base em regras definidas pela área de negócio, com o objetivo de integrar somente os dados necessários para o destino. As mensagens que não atendem às regras estabelecidas são descartadas e registradas no log do domínio do Weblogic rsb_server1-diagnostic.log. Abaixo um exemplo de mensagem registrada nesse log. zth-Items-AppServiceDecorator - createItemDesc operation: Excluded message for item 108850007 (UDA Venda Food Service: 2) ## Informações de Software para abertura do decorator | Softwares | Versão/Ambiente | | ----------------- |:----------------------- | | JDeveloper Studio Developer |12.2 Studio - Instalação Local | | Console Weblogic Grupo Nós | QAS/SDX/PRD | - Auto-generated Table of Content [ToC]