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.
|
info | title | Procedimentos para Configuração | | |
---|
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 |
---|
| - Inquilino ativo na base do POSH
- Usuário e senha do RAC
- Acesso validado com token
|
Expandir |
---|
title | Configurações iniciais |
---|
| |
|
Informações |
---|
icon | false |
---|
title | Envio de dados do ERP para o PDV Omni |
---|
|
Expandir |
---|
|
|
Todo a arquitetura do 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 lote. |
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 teremos várias 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 |
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 |
|
Informações |
---|
title | 2 - Envio de dados com o POSH |
---|
|
Expandir |
---|
title | 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 |
---|
|
|