Árvore de páginas

Versões comparadas

Chave

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

MaxStringSize e MemoMega 


Nota
titleImportante!
  • Funcionalidade disponível somente na release 12.1.25 ou superior.
  • Verifique se existem campos com obrigatoriedade diferente do padrão Protheus, pois esse tipo de validação pode impactar no recebimento das Mensagens.

  • A integração de Produto não ocorrerá caso seja utilizada a rotina Cadastro de Produto (LOJA110) presente no módulo Controle de Lojas (SIGALOJA). 
  • É imprescindível que o endereço de comunicação/Porta informado pela CiaShop e endereço de Comunicação/Porta do serviço REST e Schedule estejam liberados no servidor da aplicação Cloud TOTVS ou Outros para receber e enviar informações.

...

Versão mínima da Lib:20190131

Data da Lib: 20190215_9053

...

  • Por que devo realizar configuração das chaves  MaxStringSize e MemoMega  no Appserver.ini ?

Essa configuração é necessária para evitar a ocorrência "String size overflow".

Esta ocorrência é reproduzida quando atingimos o limite do tamanho de uma string em advpl. A linguagem advpl suporta, por padrão, armazenar e operar uma string com tamanho de até 1 MB (1024 KB). Porem nos builds superiores iguais ou superiores ao 7.00.131227A-20140829 é possível alterar esse comportamento. Abaixo exemplo de como realizar esta configuração.

Exemplo:

Na seção General do arquivo Appserver.ini informe a chave maxStringSize e o seu valor como mostra o exemplo.

Bloco de código
languagec#
[general]
maxStringSize=100
Será apresentado no console do TOTVS | Application Server

a notificação *** STARTING SERVER WITH MAXIMUM STRING SIZE LIMIT SET TO 100 MB. ***.

Bloco de código
languagec#
***  TOTVS S.A.  ***
***   www.totvs.com.br    ***
TOTVS - Build 7.00.131227A - Aug 29 2014 - 09:32:37

'TOTVS' console mode.
Press Ctrl+Break to terminate.
*** SERVER BUILD WITH DUAL-STACK SOCKETS FOR IPV6 IMPLEMENTATION
*** STARTING SERVER WITH PRECISION FLOATING POINT ARITHMETIC
*** STARTING SERVER WITH MAXIMUM STRING SIZE LIMIT SET TO 100 MB. ***

Para maiores informações consulte: Seção [general], chave MaxStringSize.

Aviso
titleAviso!

Após realizar a configuração da chave maxStringSize, é necessário realizar a configuração da chave MemoMega no TOTVS | Application ServerAbaixo o exemplo para configuração do arquivo Appserver.ini.

Exemplo:

Na seção DBAccess do arquivo Appserver.ini  informe a chave MemoMega e o seu valor como mostra o exemplo.

Bloco de código
languagec#
[DBAccess]
MemoMega=100

Para maiores informações consulte: DBAccess - MemoMega.


Aviso
titleAviso!

A chave MemoMega é substituida caso na seção de ambiente a chave TOPMemoMega esteja configurada para o ambiente.

Para maiores informações consulte: TOPMemoMega


REST EAI - Protheus


Dica
titleDica
  • Por que devo realizar a configuração do serviço REST no Appserver.ini ? 

Para que o EAI Protheus seja capaz de receber mensagens do TOTVS OMMNI(para o envio o Protheus não faz o consumo do seu serviço Web, e sim do serviço do outro sistema) é necessário que seja habilitado o protocolo HTTP/REST no servidor e que as configurações de WebServices estejam ativas. Para isso é necessário configurar o arquivo appserver.ini do servidor Protheus. 

  • Agora que você já sabe porque devemos configurar o REST no Appserver.ini, vamos realizar a configuração através desta pagina: Configuração REST SERVER - Protheus. Abaixo um exemplo da configuração do REST.

Exemplo:

Bloco de código
languagec#
;===========================REST=================================

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=SEU_AMBIENTE

[HTTPV11]
Enable=1
Sockets=HTTPREST


[HTTPREST] 
Port=SUA_PORTA
IPsBind=
URIs=HTTPURI
Security=1

[HTTPURI]
URL=/
PrepareIn=99
Instances=1,1  

;===========================REST=================================

[ONSTART]
Jobs=HTTPJOB




  1. Inicie o navegador de Internet e informe o endereço do servidor e da porta do serviço REST ex: http://127.0.0.1:8070

       Observe a apresentação da Lista serviços REST disponíveis:

       Realize o teste de uma rede externa(3G/Outra Rede fora da empresa)  para saber se o acesso externo está liberado.


    Deve aparecer a lista de serviços como no exemplo abaixo:
    Image Added


 3 - Na lista de Serviço localize o serviço EAISERVICE:

      Clique em "For more details" para exibir os detalhes do serviço:Image Added 


4 - Nos Detalhes do serviço localize o serviço do tipo POST de nome: "standardmessage/v1/transactions"

     Esse é o serviço responsável por receber as mensagens da CIASHOP 

Image Added


5 - Será necessário enviar o Endereço do Serviço Protheus para CIASHOP. 

O endereço é formado pelo IP do servidor(IP Externo) e porta definido no serviço REST + totvseai/standardmessage/v1/transactions/

O caminho do serviço completo ficaria assim:    http://127.0.0.1:8070/totvseai/standardmessage/v1/transactions/


Dica
titleDica

Caso tenha definido um caminho para o serviço REST em URL o mesmo deve ser considerado no caminho do serviço.

Isso evita erros como: {"code":404,"detailedmessage":"","message":"The server can't find the requested resource."}

Ex :

[HTTPURI]
URL=/REST

então o caminho ficaria: http://127.0.0.1:8070/rest/totvseai/standardmessage/v1/transactions/




Aviso
titleAtenção

No Protheus, cada grupo de empresas é um aplicativo diferente para o EAI. Desta maneira, cada grupo de empresas deve possuir um endereço REST diferente. Caso seja recebida uma requisição para um endereço cujo grupo de empresas é diferente do enviado, a seguinte mensagem será apresentada: O grupo de empresas do aplicativo  não corresponde ao grupo de empresas deste serviço. Grupo recebido - (A). Grupo do serviço - (B) , onde A e B são respectivamente o grupo recebido na requisição e o grupo de empresas do endereço REST

A ausência dessa configuração pode gerar o erro de "String size overflow"  para mensagens com muitos itens.

Arquivo Appserver.ini:

Efetue a inclusão das chaves abaixo:

[Environment]

TopMemoMega =30

[General]

MaxStringSize=30

Exemplo:

Image Removed

Image Removed

No DBAccess altere o arquivo DBAccess.ini:

Efetue a inclusão da chave abaixo:

[General]

MaxStringSize=30

Exemplo:

Image Removed

...