---
# System prepended metadata

title: Interface de Produtos

---

# 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]


	  
	  
	  