Section |
---|
O TOTVS Varejo PDV Omni Smart Hub (POSH) funciona como uma camada de comunicação entre o PDV OMNISHOP e as retaguardas TOTVS. é a camada responsável por orquestrar as operações de sincronização de dados entre o TOTVS Varejo PDV Omni e as suas respectivas retaguardas/ERPs. Toda comunicação entre a retaguarda/ERP e o PDV Omni será executada e orquestrada pelo POSH. As informações são disponibilizadas através de serviços web tendo como lógica o trafego por lote.
draw.io Diagram |
---|
border | true |
---|
| |
---|
diagramName | fluxo_sync_minimalista |
---|
simpleViewer | false |
---|
width | |
---|
links | auto |
---|
tbstyle | top |
---|
lbox | true |
---|
diagramWidth | 541 |
---|
revision | 2 |
---|
|
|
Informações |
---|
title | 1 - Procedimentos para Configuração |
---|
| Expandir |
title |
Expandir |
---|
title | Ativação do inquilino |
---|
| A criação do inquilino é realizada pelo time de Integração Varejo da TOTVS, Para solicitar a criação de um inquilino é necessário .... |
Expandir |
---|
| A criação do usuário no RAC ... |
Expandir |
---|
|
|
Para realizar requisições no TOTVS VAREJO PDV OMNI SMART HUB (POSH) é necessário ter uma chave de acesso (Token).
Para se obter este token é necessário ter um usuário ativo no RAC e realizar a requisição com as informações corretas.
O usuário do RAC deverá ter a permissão de RETAGUARDA para se conectar
Informações |
---|
title | 2 - Envio de dados com o POSH |
---|
|
Expandir |
---|
title | Fluxo inicial de cadastro |
---|
| Nesta seção iremos fazer as configurações iniciais para uso do TOTVS Varejo PDV Omni Smart Hub (POSH), antes de iniciarmos essas configurações, devemos ter os requisitos iniciais. Caso esse passo não esteja concluído, favor acessar a seção de Requisitos mínimos para uso do TOTVS Varejo PDV Omni Smart Hub (POSH) e finalizar os requisitos. A partir desse ponto a retaguarda é responsável pelos dados que serão enviados e também responsáveis pela integridade dos dados. Nos passos abaixo iremos mostrar como realizar a configuração de compartilhamento e loja, dois tipo de dados extremamente importante para a integração. Neste fluxo mandaremos os dados de compartilhamento e loja no mesmo lote, porém também podem ser mandados em lotes separados caso necessário. Image Removed Aqui iremos mostar o passo a passo para seguir este fluxo. Salientamos que as informações mais completas sobre fluxos ou tipo de dados estão em suas respectivas páginas e podem ser acessadas através dos links nessa página. - Passo 1 - Abertura do lote para envio dos dados para o POSH
- Passo 2 - Envio dos dados de compartilhamento para o POSH
- Passo 3 - Envio dos dados de loja para o POSH
- Passo 4 - Fechamento do lote
Após o envio dessas informações, os dados já estão esperando para serem baixados pelo POSH no PDV Omnishop Esse passo precisam ser refeito sempre que precisar realizar o cadastro de uma loja, toda loja tem um compartilhamento para que a inteligência do POSH identifique para qual loja mandar os dados
|
Informações |
---|
icon | false |
---|
title | Envio de dados do ERP para o PDV Omni |
---|
|
Expandir |
---|
|
Todo a arquitetura do TOTVS Varejo PDV Omni Smart Hub (POSH) funciona através do envio de lotes. Podemos imaginar um lote como um container em um navío, esse container contêm os dados que serão enviados para a(s) loja(s). O envio dos dados segue o seguinte fluxo - Abertura de lote
- Envio dos dados
- Fechamento do lote
- Monitoramento do lote
Abaixo está listado cada passo e as informações para o envio. |
Expandir |
---|
title | Passo 1 - Abertura de lote |
---|
|
Expandir |
---|
|
Para se abrir um lote é necessário fazer uma requisição para o micro serviço do PDVSync,Core.Controle.
- Endpoint: /api/retaguarda/inquilinolotesexternos
- Método: Post
- Autenticação: Bearer token
- Permissão: Retaguarda
O retorno dessa requisição gerará um código chamado loteOrigem, ele é de suma importância, pois, esse código identifica qual o lote que pertence o(s) dado(s) e deverá ser passado no envio dos dados para que a integração funcione corretamente.
Expandir |
---|
|
{
"status":0,
"tipoLote":[
17
],
"idInquilino":"{{IdInquilino}}"
} Expandir |
---|
title | Definição dos campos de requisição |
---|
|
Campo | Tipo | Descrição | Observações |
---|
idInquilino | string | idInquilino gerado na criação do inquilino | Não Nulo |
tipoLote | Lista de string | Lista dos tipos de dados a serem enviados. São aceitos vários tipos. (Tipos na seção Tipos Lote) | Não nulo |
status | string | Status do lote, na abertura sempre enviar 0 - Inicio Envio | Não nulo |
Expandir |
---|
|
Os tipos de dados passados na requisição são os seguintes: Cliente = 0 Loja = 1 Motivo = 2 Perfil = 3 Usuario = 4 FcpProduto = 5 Compartilhamento = 6 Imposto = 7 Ncm = 8 PisCofins = 9 TributoNcm = 10 ClassificacaoProduto = 11 Produto = 12 Preco = 13 Estoque = 14 Operadora = 15 DadoComplementarPagto = 16 CondicaoPagto = 17 FormaPagto = 18 CanalVenda = 24 AlteracaoCliente = 40 AlteracaoImposto = 47 AlteracaoNcm = 48 AlteracaoPisCofins = 49 AlteracaoTributoNcm = 50 AlteracaoClassificacaoProduto = 51 AlteracaoProduto = 52 AlteracaoPreco = 53 AlteracaoEstoque = 54 PreVenda = 55 ClienteEndereco = 56 |
Expandir |
---|
title | Retorno da requisição |
---|
|
{
"success":true,
"message":"",
"data":{
"loteOrigem":"{LoteOrigem}",
"mensagem":null,
"status":0,
"tipoLote":[
"17"
],
"idInquilino":"{IdInquilino)",
"dataAtualizacao":"{DataAtualizacao}",
"dataCadastro":"{DataCadastro}",
"id":"{Identificador}",
"_expandables":[]
}
} Expandir |
---|
title | Definição dos campos de retorno |
---|
|
Campo | Tipo | Descrição |
---|
Success | bool | Indica se a criação do lote foi feita com sucesso |
Message | string | Caso ocorra erros durante a criação do lote eles serão enviados nesse campo |
Data | objeto | Objeto lote criado |
Data.LoteOrigem | string | Número de identificação do lote |
Data.Mensagem | string | Data.Status | int | Status do lote |
Data.TipoLote | List String | Lista de tipos de dados que serão enviados no lote |
Data.IdInquilino | string | idInquilino vinculado ao lote |
Data.DataAtualização | datetime | Data da ultima atualização do registo |
Data.DataCadastro | datetime | Data de criação do lote |
Data.Id | string | Identificador do lote no banco |
Expandir |
---|
title | Passo 2 - Envio dos dados |
---|
|
Os dados são enviados para os seus respectivos micro serviços. Exemplo: venda é enviada para o serviço comercial Todos os dados que serão enviados deverão conter o loteOrigem para identificar de qual lote ele pertence. Caso o loteOrigem não seja enviado os dados não serão integrados com o PDV Omni. O lote deve conter o tipo de dado que está sendo enviado |
Expandir |
---|
title | Passo 3 - Fechamento do lote |
---|
|
Expandir |
---|
|
Todo lote que é aberto deve ser fechado após o envio dos dados. Para se fechar um lote é necessário fazer uma requisição para o micro serviço do PDVSync,Core.Controle. - Endpoint: /api/retaguarda/inquilinolotesexternos/{IdInquilino}/{LoteOrigem}
- Método: Put
- Autenticação: Bearer token
- Permissão: Retaguarda
Ao ser fechado o lote começa a ser processado pela inteligência do POSH, nesse momento são feitas várias verificações de integridade dos dados e há um processo para enviar os dados para todas as lojas que fazem parte do compartilhamento. |
Expandir |
---|
title | Retorno da requisição |
---|
|
{
"success":true,
"message":"Lote finalizado e processado com sucesso",
"data":null
} Expandir |
---|
title | Definição dos campos de retorno |
---|
|
Campo | Tipo | Descrição |
---|
Success | bool | Indica se a criação do lote foi feita com sucesso |
Message | string | Mensagem enviada |
Expandir |
---|
title | Passo 4 - Monitoramento do lote |
---|
|
Expandir |
---|
|
O monitoramento do lote pode ser feito de várias formas. Antes é necessário que haja o entendimento que há dois tipos de lote. - Lote Externo - Lote criado pela retaguarda que identifica os dados que serão enviados
- Loja Lote - Lote criado pelo POSH para enviar para o PDV Omni
O loja lote é criado pelo POSH quando o lote externo é fechado pela Retaguarda, o passo a passo é o seguinte: - Retaguarda fecha o lote
- O POSH verifica os dados do lote
- O POSH verifica os corpartilhamentos do inquilino
- O POSH cria os loja lotes de acordo com os compartlhamentos do inquilino
Nesse módulo teremos a explicação de como fazer o monitoramento dos dois tipos de lotes. IMPORTANTE: O POSH tem rotinas de expurgo de dados que rodam automaticamente todos os dias, os dados ficam nos serviços do POSH por 14 dias corridos, depois disso não há como recuperar as informações dos lotes. |
Expandir |
---|
title | Monitoramento Lote Externo |
---|
|
Expandir |
---|
|
O monitoramento do lote externo é feito pelas apis do PDVSync.Core.Controle. Nesse endpoint teremos algumas informações muito importante com relação ao lote aberto pela retaguarda. - Endpoint: /api/retaguarda/v2/inquilinolotesexternos/{id lote externo}
- Método: GET
- Autenticação: Bearer token
- Permissão: Retaguarda
Nesse endpoint um dos dados mais importantes é o status, ele indica se o lote prosseguiu para o próximo passo ou se ele foi barrado por algum motivo. |
Expandir |
---|
title | Retorno da requisição |
---|
|
{
"success":true,
"message":"",
"data":{
"loteOrigem":"string",
"mensagem":"string",
"status":int,
"tipoLote":[
"string"
],
"idInquilino":"string",
"dataAtualizacao":"datetime",
"dataCadastro":"datetime",
"id":"string",
"_expandables":[]
}
} Expandir |
---|
title | Definição dos campos de retorno |
---|
|
Campo | Tipo | Descrição |
---|
Success | bool | Indica se a requisição foi realizada com sucesso |
Message | string | Caso ocorra erros durante a criação do lote eles serão enviados nesse campo |
Data | objeto | Objeto lote externo |
Data.LoteOrigem | string | Número de identificação do lote |
Data.Mensagem | string | Mensagem enviada no cadastro do lote |
Data.Status | int | Status do lote (Definições na seção abaixo) |
Data.TipoLote | List String | Lista de tipos de dados que serão enviados no lote |
Data.IdInquilino | string | idInquilino vinculado ao lote |
Data.DataAtualização | datetime | Data da ultima atualização do registo |
Data.DataCadastro | datetime | Data de criação do lote |
Data.Id | string | Identificador do lote no banco |
Expandir |
---|
|
Código | Nome | Descrição |
---|
0 | InicioEnvio | Indica que o lote foi aberto pela retaguarda e está sendo enviado os dados para o lote. |
1 | FimEnvio | Indica que a retaguarda fechou o lote para iniciar o processamento do lote. |
2 | ValidadoOK | Indica que o POSH validou os dados e criou os loja lotes para baixa |
3 | ValidadoErro | Indica que ocorreu algum erro no processo e não foram criado os loja lotes. O erro mais comum nesse caso é o POSH não encontra os dados q foram enviados. |
4 | Processando | Indica que o POSH está processando o lote |
Expandir |
---|
title | Monitoramento Loja Lote |
---|
|
Expandir |
---|
|
O monitoramento do loja lote é feito pelas apis do PDVSync.Core.Controle.
Nesse endpoint temos informações com relação aos loja lotes, informações como:
- Quais itens deram problema na baixa? Por quê?
- Quais lojas baixaram os dados? Quais não iniciaram a baixa?
Para acessar os dados a requisição é a seguinte
- Endpoint: /api/retaguarda/v2/LojaLoteStatusRetorno/{id lote externo}?{parâmetros}
- Método: GET
- Autenticação: Bearer token
- Permissão: Retaguarda
Para esse endpoint, alguns parâmetro precisam ser enviados na requisição. Estes parâmetros são:
Parametro | Descrição | Tipo | Observação |
---|
inquilino | Id inquilino do loja lote | string | Obrigatório |
loteorigem | Lote origem que será buscado o status | string | Obrigatório |
idRetaguardaLoja | Id retaguarda da loja que será buscado o status | string | Opcional |
tipoLote | Tipo do lote que será buscado o status | int | Opcional |
Os parâmetros opcionais funcionam como um filtro de dados, caso estejam preenchidos ele trará somente os dados relacionados ao filtro.
Expandir |
---|
title | Retorno da requisição |
---|
|
{ "success": bool, "message": "string", "data": { "lote": "string", "loteOrigem": "string", "lojaLotes": [ { "status": int, "errosIdentificados": [ { "tipoLote": int, "idRetaguarda": "string", "erro": "string", "tipoLojaLote": int } ], "idRetaguardaLoja": "string", "idInquilino": "string", "dataAtualizacao": "datetime", "dataCadastro": "datetime", "id": int } ], "pagina": int, "hasnext": bool } } |
Expandir |
---|
title | Definição dos campos de retorno |
---|
|
Campo | Tipo | Descrição |
---|
Success | bool | Indica se a requisição foi feita com sucesso |
Message | string | Mensagem de erro retornada |
Data | objeto | Objeto de retorno |
Data.Lote | string | Número de identificação do lojaLote |
Data.Loteorigem | string | Número de identificação do lote |
Data.Lojalotes | lista de objetos | Lista com os loja lotes |
Data.Lojalotes.Status | int | Indica o status em que o loja lote se encontra. (Definição dos status na seção abaixo) |
Data.Lojalotes.Errosidentificados | lista de objetos | Lista com o erros identificados na integração do loja lote |
Data.Lojalotes.Errosidentificados.Tipolote | int | Indica o tipo do lote |
Data.Lojalotes.Errosidentificados.Idretaguarda | string | Id retaguarda do item |
Data.Lojalotes.Errosidentificados.Erro | string | Erro ocorrido com o item |
Data.Lojalotes.ErrosidentificadosTipolojalote | int | Indio o tipo do loja lote do item |
Data.Idretaguardaloja | string | Id retaguada da loja proprietária do lote |
Data.Idinquilino | string | Identificação do inquilino |
Data.Dataatualizacao | datetime | data de atualização do loja lote |
Data.Datacadastro | datetime | data de cadastro do loja lote |
Data.Id | int | Id do loja lote |
Pagina | int | Indica em qual página está os dados |
Hasnext | bool | Indica se há mais páginas de dados |
Expandir |
---|
|
Código | Nome | Descrição |
---|
0 | EmPreparacao | Indica que o POSH está criando o loja lote |
1 | EmProcessamento | Indica que o POSH está validando o loja lote |
2 | Disponivel | Indica que o loja lote está disponível para a baixa pelo PDV Omni |
3 | Indisponivel | Indica que o loja lote está indisponível para baixa pelo PDV Omni |
4 | EmProcessoDeBaixa | Indica que o loja lote está sendo baixado pelo PDV Omni |
5 | BaixadoComSucesso | Indica que todos os dados enviados para o loja lote foram integrados com sucesso ao PDV Omni |
6 | BaixadoComErro | Indica que ao menos um item deu erro na integração com o PDV Omni |
7 | EnviadoComSucesso | Indica que o loja lote foi envidado com sucesso para a retaguarda |
8 | EnviadoComErro | Indica que o loja lote não foi enviado com sucesso para a retaguarda |
9 | ComProblemaVerificar | Indica que ocorreu alguma problema com o loja lote e deve-se verificar |
Informações |
---|
|
Expandir |
---|
title | Fluxo Assíncrono (Offline) |
---|
| Image Removed |
Expandir |
---|
title | Fluxo Síncrono (Online) |
---|
| Image Removed |
|
Envio de dados do ERP para o PDV Omni |
| Aqui temos os passos para que seja feito o envio de dados do ERP para o PDV Omni. Caso queira saber o fluxo completo que o dado enviado pela retaguarda percorre visualize a seção fluxomagramas POSH logo abaixo |
Expandir |
---|
title | Envio de dados do PDV Omni para o ERP |
---|
| Os dados gerado ou alterados no PDV Omni podem ser enviados para a retaguarda por dois fluxos - Fluxo Síncrono (Online)
- Os dados são enviados diretamente do PDV para o ERP.
- Fluxo Assíncrono (Offline)
- Os dados são enviados para o POSH e a retaguarda busca esses dados posteriormente.
Mais informações sobre os dois fluxos podem ser encontradas na seção 3 - Fluxogramas POSH
|
|
Informações |
---|
title | 3 - Fluxogramas POSH |
---|
|
Inclusão de trecho |
---|
| Fluxos de dados POSH |
---|
| Fluxos de dados POSH |
---|
nopanel | true |
---|
|
|
Informações |
---|
title | 4 - Documentação técnica |
---|
|
Expandir |
---|
| Exibir filhos |
---|
page | Cliente TOTVS Varejo PDV Omni Smart Hub |
---|
|
|
|
Informações |
---|
title | 5 - Informações Úteis |
---|
|
|
Informações |
---|
|
- Lote criado, populado com dados e fechado. Não consigo encontrar se o loja lote está disponibilizado ?
- Dado enviado pela retaguarda não integrado no PDV ?
- Venda enviada pelo PDV para a retaguarda está disponível para ser integrada ?
- Verificação se serviços estão ativos na loja
|
Informações |
---|
title | 7 - Solicitação de apoio |
---|
|
O time de produto do POSH atua no projeto DVARINT1, qualquer acionamento ao time de produto por outras equipes deverá ser feito através da abertura de apoios no jira. Para que o apoio seja realizado, algumas informações devem ser enviadas previamente para que o time de produto possa dar início ao apoio. Segue abaixo o que deve ser enviado na abertura do apoio. Segue os projetos existentes para abertura: PDVSYNC - DVARINT / PSH - DVARLOJ / WSH - DDWMISSI / PDV - DVARLIVEPDV Expandir |
---|
| 1 - Qual a Jornada/processo? R: 2 - Qual o Ambiente? R: 3 - Qual é o Inquilino? R: 4 - Descrição do Erro R: 5 - Foi feito os Troubleshooting básicos? R: 6 - Qual versão dos serviços? (Api, Client, Down) R: 7 - Incluir os logs se houver R: 8 - Existe(m) lote(s) relacionado(s) a esta caso? Qual o número(s) do(s) lote(s)? R: 9 - Disponibilizar backup do banco do PDV. 10 - ApiRest do cliente se houver (online): URL: Usuário: Senha: 11 - Qual a requisição esta sendo feita para o PDVSync (online) ? R: 12- Quais são os dados de autenticação (tenant/usuário) utilizados (online) ? R: |
|
Informações |
---|
title | Procedimentos para Utilização |
---|
|
|