Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Programas fontes envolvidos :

  1. O ambiente Protheus ( RPO ) deve possuir esses programas com datas iguais ou superiores :

LJRETAILWIZ.PRW - 0608 
LJRETAILAPP 0608  


Sistema Operacionais:

Windows®/Linux®
Banco de dados:Todos Relacionais
Servidor:É recomendável um serviço ( appserver.ini ) separado para o RetailApp.
Capacidade máxima da String

Conforme documentação: http://www.tdn.totvs.com/display/tec/MaxStringSize, é necessário alterar o tamanho da capacidade da string no appserver.ini conforme exemplo:

[general]
maxStringSize=500

Incluir a chave TopMemoMega conforme documentação: http://tdn.totvs.com/display/tec/TOPMemoMega

Certificado Digital:

A configuração do certificado digital é obrigatória para utilizar o protocolo seguro (HTTPS) , os detalhes da configuração que deve ser realizado no server do Protheus ( appserver.ini )
está no link
( clique aqui )

É recomendável um serviço ( appserver.ini ) separado para o RetailApp.


Antes de realizar a configuração é necessário Antes de realizar a configuração é necessário verificar se o certificado está convertido:

Conversão de certificados ‘PFX’ para ‘PEM’ – Windows

Esse procedimento destina-se, exclusivamente, aos usuários do Sistema operacional Windows.

Análise da cadeia de certificação

Ao receber um certificado digital do tipo A1, antes da conversão para o formato PEM, recomenda-se a análise de alguns pontos importantes, para que não haja problemas com a conexão SSL3 e com a Secretaria de Fazenda.

Primeiramente, é necessário instalar o certificado para visualizá-lo. O procedimento é feito da seguinte forma:

  1. Faça um duplo clique no arquivo PFX para acessar a tela do Assistente de Instalação.
  2. Clique em Avançar e, posteriormente, em Arquivo a ser Importado.
  3. Selecione o arquivo que deseja importar e clique em Avançar.
  4. Assinale uma das três opções disponíveis: Formato Apache (.pem); Formato PFX (.pfx ou .p12) ou HSM.
  5. Clique em Avançar. O Sistema operacional armazena o certificado automaticamente.
  6. Clique em Concluir para efetivar a instalação do certificado.
  7. Abra uma página de Internet e acesse as opções Ferramentas / Opções da Internet / Conteúdo / Certificados.
  8. Selecione o certificado digital instalado.
  9. Clique em Exibir e em Caminho de Certificação., Verifique a existência de todos os certificados apresentados no Caminho de Certificação. Caso negativo, é necessário contatar o fornecedor do certificado digital para realizar a instalação.
  10. Se o certificado estiver instalado, clique em Exibir Certificado.

Algumas Secretarias de Fazenda exigem toda a cadeia da certificação para permitir a conexão SSL3. Caso o certificado seja instalado sem todos os certificados contidos na cadeia de certificação, o acesso é feito apenas em algumas Secretarias da Fazenda.

Se isso ocorrer, siga os procedimentos já descritos a fim de solucionar o problema de conexão.

Exportação do certificado digital

Após concluir a análise do certificado digital, é necessário exportá-lo juntamente com a chave privada.

  1. Clique Exportar. Um Wizard é apresentado. Siga o procedimento prescrito.
  2. Assinale a opção que permite exportar a chave privada ou particular.
  3. Assinale a opção que inclua todos os certificados no caminho de certificação e todas as propriedades estendidas.
  4. Informe a senha do certificado.
  5. Conclua a operação informando o arquivo de destino.
  6. Clique em Remover. Esta tarefa é fundamental para a segurança do certificado digital.



Conversão de certificados ‘PFX’ para ‘PEM’ – Linux

Este procedimento destina-se aos usuários do Sistema operacional Linux.

Para converter o certificado digital de ‘PFX’ para ‘PEM’ é necessário o utilitário ‘OpenSSL’. Acesse http://www.openssl.org/source/.

Após instalar o utilitário ‘OpenSSL‘, execute os seguintes comandos:

  • Para obter o CertificadoClient: openssl pkcs12 -in <nome do certificado de origem> -out <nome do certificado de destino>_cer.pem
  • Para obter o KeyClient: openssl pkcs12 -in <nome do certificado de origem>  -nocerts -out <nome do certificado de destino>_key.pem ->KeyClient

Um exemplo de configuração no appserver.ini utilizado :

[SSLConfigure]

TRYPROTOCOLS=1

HSM=0
SSL2=0
SSL3=0
TLS1=1
TLS1_0=1
TLS1_1=1
TLS1_2=1
BUGS=1

CertificateClient=C:\Protheus\Protheus_data\certificado\000002_all.pem

KeyClient=C:\Protheus\Protheus_data\certificado\000002_key.pem
PassPhrase=( senha de acesso a chave privada ou certificado )

Rotina Rotinas no Menu:

  1.  No Configurador (SIGACFG), acesse Ambientes/Cadastro/Menu (CFGX013)
  2.  Informe as novas opções de menu do Controle de Lojas ( SIGALOJA), conforme instruções a seguir:
 Menu Miscelânea

Submenu

Integração RetailAPP

Nome da Rotina

Setup Inicial

Programa

LJRETAILSI

Módulo

Controle de Lojas
Menu  Miscelânea

Submenu

Integração RetailAPP

Nome da Rotina

Carga Dados

Programa

LJRETAILDF

Módulo

Controle de Lojas

 Nesse link você encontra o passo a passo para incluir uma rotina no configurador (apenas exemplo) ( clique aqui )

Parâmetros:

  1. No Configurador (SIGACFG), acesse Ambientes/Cadastros/Parâmetros (CFGX017).
  2. Crie os parâmetros a seguir: 

Itens/Pastas

Descrição

Nome

MV_LJRAPP0

Tipo:

Caracter

Cont. Por

Deixar em branco, pois serão preenchidos automaticamente na rotina de carga inicial

Descrição

Esse parâmetro contém as informações sobres os caminhos ( URLs ) de integração com a RetailApp™ , as informações são separadas pela barra vertical pipe ( | ), na

seguinte sequência : URL de login | URL dos dados | URL de cálculo , conforme exemplo abaixo default abaixo 

https://woolton-backend.azurewebsites.net/api/login|https://woolton-backend.azurewebsites.net/api/data|https://woolton-backend.azurewebsites.net/api/calculate    

Itens/Pastas

Descrição

Nome

MV_LJRAPP1

Tipo:

Caracter

Cont. Por

Deixar em branco, pois serão preenchidos automaticamente na rotina de carga inicial.

Descrição

Esse parâmetro contém as informações de setup da integração , as informações são separadas pela barra vertical pipe ( | ) ,

na seguinte sequência : usuário (email) de conexão com o App | senha de conexão | quantidade de dias para o processamento | códigos das TES | minutos de intervalo

para a execução do job de carga ,exemplo de conteúdo default : teste@teste.com.br|teste123|7|501,502|15.

Importante: Devido a limitação de tamanho do parâmetro(SX6) o local destinado para "códigos das TES", permite que seja informado User Function (customização) para retornar os códigos das TES separado por vírgula.

Exemplo: 

teste@teste.com.br|teste123|7|U_MinhaUserFunction()|15.

User Function MinhaUserFunction()

Local cTes := '501,502,503'

Return cTes


Habilitar Campos

Para realizar a integração, necessário habilitar os campos reservados: F2_MSEXP.

  1. No Configurador ( SIGACFG) acesse Base de Dados /Dicionário /Base de Dados.
  2. Selecione a opção Dicionario de Dados.
  3. Selecione a tabela correspondente ( SF2) 
  4. Ao entrar no cadastro através da função, clique em editar.
  5. Selecione a opção Campos.
  6. Na barra superior,(6) clique no botão Campos reservados.
  7. Selecione a opção Ident. Exp. Dados.
    Image Added

8. Salvar a alteração.

Habilitar Campos

Para realizar a integração, necessário habilitar os campos reservados: F2_MSEXP.

  1. No Configurador ( SIGACFG) acesse Base de Dados /Dicionário /Base de Dados.
  2. Selecione a opção Dicionario de Dados.
  3. Selecione a tabela correspondente ( SF2) 
  4. Ao entrar no cadastro através da função, clique em editar.
  5. Selecione a opção Campos.
  6. Na barra superior,(6) clique no botão Campos reservados.
  7. Selecione a opção Ident. Exp. Dados.
    Image Removed

8. Salvar a alteração.

9. Atualizar o dicionário.

Para conferir o envio das informações para RetailappRetailApp, é necessário habilitar os campos reservados das tabelas SF1 (NF. Entrada), SA3 ( Vendedor), SB1 ( Produto e Estoque) e SE1 (Título a Reber - )

  1. No Configurador ( SIGACFG) acesse Base de Dados /Dicionário /Base de Dados.
  2. Selecione a opção Dicionario de Dados.
  3. Selecione a tabela correspondente (SA3SF1
  4. Ao entrar no cadastro através da função, clique em editar.
  5. Selecione a opção Campos.
  6. Na barra superior,(6) clique no botão Campos reservados.
  7. Selecione a opção Ident. Exp. Dados.
  8. Salvar a alteração.

  9. Atualizar o dicionário.

  1. No Configurador ( SIGACFG) acesse Base de Dados /Dicionário /Base de Dados.
  2. Selecione a opção Dicionario de Dados.
  3. Selecione a tabela correspondente (SB1SA3
  4. Ao entrar no cadastro através da função, clique em editar.
  5. Selecione a opção Campos.
  6. Na barra superior,(6) clique no botão Campos reservados.
  7. Selecione a opção Ident. Exp. Dados.
  8. Salvar a alteração.

  9. Atualizar o dicionário.

  1. No Configurador ( SIGACFG) acesse Base de Dados /Dicionário /Base de Dados.
  2. Selecione a opção Dicionario de Dados.
  3. Selecione a tabela correspondente (SE1SB1
  4. Ao entrar no cadastro através da função, clique em editar.
  5. Selecione a opção Campos.
  6. Na barra superior,(6) clique no botão Campos reservados.
  7. Selecione a opção Ident. Exp. Dados.
  8. Salvar a alteração.
  9. Atualizar o dicionário.

Passo 1 - Efetuando o setup inicial:

A rotina Setup Inicial (rotina  LJRETAILSI ) tem a finalidade de efetuar a montagem da estrutura organizacional da empresa, conforme os passos abaixo:


  1. No Configurador ( SIGACFG) acesse Base de Dados /Dicionário /Base de Dados.
  2. Selecione a opção Dicionario de Dados.
  3. Selecione a tabela correspondente (SE1) 
  4. Ao entrar no cadastro através da função, clique em editar.
  5. Selecione a opção Campos.
  6. Na barra superior,(6) clique no botão Campos reservados.
  7. Selecione a opção Ident. Exp. Dados.
  8. Salvar a alteração.
  9. Atualizar o dicionário.



Passo 1 - Efetuando o setup inicial:

A rotina Setup Inicial (rotina  LJRETAILSI ) tem a finalidade de efetuar a montagem da estrutura organizacional da empresa, conforme os passos abaixo:

  1. No Controle de Lojas (SIGALOJA) acesse Miscelânea/ RetailApp Integração/Setup Inicial (rotina LJRETAILSI ).
  2. A
  3. No Controle de Lojas (SIGALOJA) acesse Miscelânea/ RetailApp Integração/Setup Inicial (rotina  LJRETAILSI ).
  4. A primeira tela do Wizard de configuração será para a configuração da estrutura organizacional da empresa, ou seja, todas as lojas que aparecerão no app no nível hierárquico.
  5. Abaixo temos 2 exemplos de estruturas organizacionais: um exemplo de uma empresa com apenas uma loja e outro exemplo de um grupo com duas empresas e cada empresa com suas lojas:

...

Caso tente acessar a rotina Setup Inicial( LJRETAILSI ), após ter concluido concluído a montagem da estrutura organizacional, observe que é apresentada a seguinte mensagem: 

...

7 - Enviar um e-mail para [email protected] com o arquivo .ZIP anexado para que seja criado a estrutura no app e você recebera receberá o usuário com login e senha que será utilizado na próxima etapa da configuração.

...

  • Ter efetuado a montagem da estrutra estrutura organizacional na rotina Setup Inicial (rotina  LJRETAILSI ).
  • Ter recebido o e-mail com a confirmação da estrutura organizacional, o email/login e senhas de acesso para o app é necessário realizar a carga inicial, conforme instruções abaixo:

...

Para facilitar essa verificação, revisar as seguintes tabelas: SB2 - Saldo Físico e Financeiro (B2_FILIAL, B2_COD, B2_QATU), SBM - Grupo de Produtos (BM_DESC), SA3 - Vendedores (A3_FILIAL, A3_COD, A3_NOME, A3_NREDUZ).

  1. No Controle de Lojas (SIGALOJA) acesse Miscelânea/ RetailApp Integração/Carga Dados (rotina   LJRETAILDF ) .
  2. Nesse primeiro passo (Empresas/Filiais), selecione quais filiais devem gerar as cargas, conforme abaixo.

Por padrão, todas as filiais que foram cadastradas no Setup Inicial, serão apresentadas nessa tela e marcadas para geração das cargas.
É possível desmarcar as filiais que Não forem não forem gerar a carga.

  

   Após selecionar as filiais, são apresentadas os endereços de comunicação com o app (Urls RetailApp).

...

Informe e-mail (login) e senha do usuário que realiza a conexão com o app. (Informe o e-mail e senha, conforme informações do e-mail enviado pela RetailappRetailApp, confirmando a estrutura organizacional). 
Observação!  Esse usuário foi previamente cadastrado no Setup Inicial.

...

      Observação!  Somente as TES de saída são aceitas. Deve-se informar pelo menos um código.

      

 5. Nesse passo (Rotina Automática), é possível realizar a configuração automática da carga das vendas.


Importante: Devido a limitação de tamanho do parâmetro(SX6) o local destinado para "códigos das TES", permite que seja informado User Function (customização) para retornar os códigos das TES separado por vírgula.

Exemplo: 

User Function MinhaUserFunction()

Local cTes := '501,502,503'

Return cTes


Exemplo:

Image Added


 5. Nesse passo (Rotina Automática), é possível realizar a configuração automática da carga das vendas.

     Para isso, é necessário marcar a opção de      Para isso, é necessário marcar a opção de rotina automática e é imprescindível informar o tempo (minutos) entre uma execução e outra.

...

     É recomendável inserir as configurações automáticas no appserver.ini, pois caso não selecione a opção automaticaautomática, a integração ocorrerá apenas de forma manual, sendo necessário executar a opção Executa Movimento da rotina Carga de Dados

...

Após realizar a confirmação, é apresentada uma mensagem de aviso, solicitando a  inclusão dessas informações no arquivo do servidor. Caso tenha outros serviços de rotinas automáticas já configuradas, não será possível deixar incluir esse serviço automático.

É solicitado que seja configurado um servidor somente para esse serviço de carga (RetailappRetailApp). Essa configuração é necessária para que não entre em conflito com os outros serviços automáticos. 

...

  •   usuário (email) de conexão com o App | senha de conexão | quantidade de dias para o processamento (default = 001)| códigos das TES | minutos de intervalo.
    Observações: caso a soma dos caracteres informados (E-mail e senha para conexão, TES, minutos de Job Automático e os dias para processamento) seja maior que a quantidade de caracteres permitida no parâmetro, é exibida uma mensagem alertando sobre a gravação das informações:

Image Added


Executa Movimento: Após a carga inicial, esta opção pode ser utilizada se houver necessidade de enviar movimentações com quantidade de dias diferentes da configuração do parâmetro MV_LJRAPPI, que por default =001.

Campo Dias para Processamento: Deve informar a quantidade de dias que deseja enviar as informações para a RetailApp.

Exemplo:
Data da Venda 1: 05/07/2020
Data da Venda 2: 06/07/2020
Data da Venda 3: 07/07/2020
Data do sistema: 09/07/2020

Para enviar todas as vendas anteriores a data atual do sistema, no campo Dias para Processamento informe 004, com isso o sistema irá selecionar todas as vendas a partir do dia 05/07/2020. Este processo deve ser realizado caso a não tenha sido executado a movimentação durante o período do dia 05/07/2020 ao dia 09/07/2020  Executa Movimento: Após a carga inicial, esta opção pode ser utilizada se houver necessidade de enviar movimentações com quantidade de dias diferentes da configuração do parâmetro MV_LJRAPPI, que por default =001.


Importante: Após a carga inicial, pode-se realizar a carga das últimas vendas, definindo a quantidade de dias no campo e clicando no botão "Executar Movimento"

Observe que após concluir a carga inicial ou a execução da opção Executa Movimento, são gerados os seguintes arquivos na Raiz do Protheus, Pasta RetailappRetailApp:

       Os arquivos abaixo são apresentados com informações da última execução, não são gravados histórico de execuções:

...

  • Orders.json -  Vendas - Essa entidade é responsável pelo envio das vendas realizadas no Protheus , com a seguinte regra, Todas as vendas ( SF2 ) da empresa corrente.Somente irá considerar as filiais na qual conter o arquivo de estrutura ( organization_structure.csv ). 

  • Orders_reserva.json -  Reservas - Essa entidade é responsável pelo envio das reservas realizadas no Protheus , com a seguinte regra, todas as reservas ( SL1/SL2 ) da empresa corrente. Somente irá considerar as filiais na qual conter o arquivo de estrutura ( organization_structure.csv ). 

...