Páginas filhas
  • Dicas úteis e dúvidas sobre o EAI Protheus

Versões comparadas

Chave

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

Âncora
lic01
lic01
O EAI Protheus consome ou necessita de algum tipo de licença especial?

     Não, o EAI Protheus não consome nem necessita de nenhum tipo de licença. Para mais detalhes consulte Consumo de licenças no EAI Protheus.

Âncora
_Toc403759563
_Toc403759563
Caracteres especiais no XML

         Os cabeçalhos das mensagens em XML trafegam, normalmente, a definição do encode (mapa de caracteres) utilizado na mensagem. Quando esta informação não está disponível a mensagem está no padrão UTF-8 (Universal character set Transformation Format). Alguns caracteres fazem parte dos controles utilizados no XML (<, & etc.) e não podem ser enviados de maneira explícita no XML. Estes caracteres devem trocadas pelas entidades de referência em HTML( HyperText Markup Language). Isto pode ser realizado através da função _NoTags(). Esta função recebe uma cadeia de caracteres e a retorna para que seja possível o seu envio no formato esperado. Desta maneira é possível enviar o texto 'Este é o símbolo de maior - < ' na mensagem. Esta função deve ser utilizada sempre que o texto a ser enviado possa conter algum caractere utilizado no controle do XML.

Âncora
_Toc403759564
_Toc403759564
Recebo uma mensagem de outro sistema. Esta mensagem pode iniciar outra mensagem no Protheus?

           As mensagens da arquitetura Mensagem Única Protheus e as TOTVSIntegrator, desde que sejam da arquitetura MVC Protheus e estejam no cadastro de adapter não inicializam outra chamada de EAI dentro do Protheus. Existe um controle interno para que uma Mensagem Única TOTVS não inicialize outra mensagem. Na arquitetura da TOTVSIntegrator isto também se faz verdade, desde que esta seja uma mensagem cadastrada no adapter. Para as mensagens TOTVSIntegrator que não estão no cadastro do adapter este controle não existe. O desenvolvedor, caso necessite, deve realizá-lo manualmente.

Âncora
_Toc403759565
_Toc403759565
O EAI Protheus faz a gravação de de-para de registros?

          A camada responsável por criar os de-para de registros, quando isto se faz necessário é a camada do adapter EAI. A rotina de processamento é responsável por realizar a manutenção dos registros de de-para quando necessário. Este controle não pertence a camada do EAI Protheus.

Âncora
_Toc403759566
_Toc403759566
Tenho todos os XSDs das mensagens envolvidas, porém ocorre erro de validação na chegada das mensagens

          Certifique-se que os XSDs estão mapeados de maneira correta. O que isto significa?
          Vejamos o exemplo de um trecho do XSD da Mensagem Única WhoIs:



Trecho inicial da Mensagem Única WhoIs


          Perceba que existe um include para esta mensagem, definido pelo arquivo totvsmsg.xsd. Isto quer dizer que podem existir na mensagem estruturas pertencentes a este arquivo. Perceba também que o XSD espera este arquivo em uma pasta um nível acima da pasta onde o XSD da mensagem WhoIs está. Assim sendo, caso o XSD WhoIs.xsd esteja no caminho c:\Protheus_11\Protheus_data\xsd\schema, o XSD totvsmsg.xsd deverá estar no caminho c:\Protheus_11\Protheus_data\xsd. Devem ser verificados todos os XSDs necessários para a mensagem.

Âncora
_Toc403759567
_Toc403759567
Existem mensagens na Fila do EAI Protheus paradas, com canal de envio = ESB. Porque elas não estão sendo processadas?

Nota
titleAtenção!

Este comportamento somente é observado em libs de label anterior a 07082015 (esta lib foi liberada em 07/10/2015.)

 

          Mensagens assíncronas, enviadas para o TOTVS ESB possuem um controle de envio. Uma mensagem é enviada, e caso haja erro no recebimento pelo ESB o processo é parado e é realizada a tentativa de reenviar a mensagem com erro. Serão realizadas quatro tentativas de envio. Caso não seja possível o seu envio, todas as mensagens com destino ao TOTVS ESB deixarão de ser processadas, até que o registro com erro seja verificado (seja bloqueado, seja realizada a interação para que o mesmo seja reprocessado, etc). Enquanto este registro estiver na fila com erro, e com a quantidade de tentativas for maior ou igual a 4 a fila, no que diz respeito ao envio ao ESB, continuará parada.

Âncora
_Toc403759568
_Toc403759568
Possuo uma rotina em MVC PROTHEUS, o adapter está cadastrado porém a rotina não é chamada

          Verifique se o commit da rotina está sendo realizado pelo commit padrão do MVC ou sua rotina tem um bloco customizado. Caso o bloco não seja o bloco padrão do MVC a integração somente é disparada se a rotina FwFormCommit for executada.

Âncora
_Ref403759405
_Ref403759405
Âncora
_Toc403759569
_Toc403759569
O EAI Protheus realiza a gravação dos dados se a integração não for bem sucedida?

          O EAI Protheus, quando as rotinas estão escritas em MVC Protheus e são disparadas pela rotina FwFormCommit (Mensagens únicas TOTVS e TOTVSIntegrator com adapters em MVC e cadastradas no cadastro de adapters) somente fazem a gravação do modelo de dados se a integração for bem sucedida. Uma integração é bem sucedida se:

  • Enviadas ao TOTVS ESB
    • Se foi possível o post no serviço do TOTVS ESB.
  • Enviadas para outro EAI
    • Para mensagens síncronas, se a mensagem foi processada com sucesso;
    • Para mensagens assíncronas, se foi retornada a mensagem de Receipt.

          Mensagens únicas TOTVS que não estão em fontes MVC Protheus somente tem o controle de transação da rotina se, dentro do adapter EAI, a chamada da rotina FWIntegDef for realizado dentro de um bloco de BEGIN / END TRANSACTION. Nestes casos a camada do EAI Protheus, ao identificar que houve erro na mensagem e que a chamada foi realizada dentro de uma transação, faz o disarm do processo. Desta maneira, o controle de não gravar os dados em uma integração mal sucedida é de responsabilidade da equipe que criou o adapter.
          Para todos os outros casos este controle, quando necessário, deve ser realizado pelo desenvolvedor.

Âncora
errogravacao
errogravacao
Quando ocorre erro na integração algumas rotinas mostram a mensagem na tela do usuário e não permitem a gravação. Outras rotinas não permitem a gravação e não mostram a mensagem.

          As integrações onde o adpater está escrito em MVC Protheus podem ou não validar a gravação dos dados de acordo com o resultado da integração (vide o tópico O EAI Protheus realiza a gravação dos dados se a integração não for bem sucedida?). As rotinas em MVC também são capazes de informar ao usuário a mensagem recebida no erro do processamento. Para rotinas que não são MVC Protheus este tratamento deve ser realizado pelo desenvolvedor do adapter.

Âncora
definitions
definitions
 Ao enviar uma Mensagem EAI do Protheus para outro Protheus ou para o Logix a seguinte mensagem de erro é apresentada: WSCERR062/Invalid XML-Soap Server Response: Unable to determine Soap Prefix of envelope[DEFINITIONS]

          Este erro normalmente ocorre quando incluímos no endereço de envio do EAI (parâmetros MV_EAIURL ou MV_EAIURL2) o trecho ?wsdl. Vejamos o exemplo abaixo, um endereço de EAI no localhost, na porta 8080, o endereço do EAI será como exemplo:

http://localhost:8080/eaiservice.apw

          Se modificarmos para o seguinte endereço

http://localhost:8080/eaiservice.apw?wsdl o erro acima será apresentado. Para que isto não ocorra, basta retirar o '?Wsdl' do endereço de envio.

Âncora
auth
auth
O EAI Protheus permite envio de mensagens com autenticação?

          O EAI Protheus trabalha com autenticaçãosomente quando o canal de envio da mensagem é o canal de envio EAI. Para o canal de envio ESB não existe autenticação de webservices. Para enviar os dados de autenticação basta preencher os parâmetros MV_EAIUSER e MV_EAIPASS. Caso a sua mensagem seja do tipo Mensagem Única TOTVS e o canal de envio da mesma seja o canal EAI, esta configuração também é possível através dos campos da grid de roteamento (campos Usuário Ws e Senha Ws).

          O tipo de autenticação utilizado pelo EAI TOTVS é do tipo basic (RFC 2617 - http://tools.ietf.org/html/rfc2617).

 

Âncora
auth
auth
Como saber o nome de uma Mensagem Única para realizar o cadastro no configurador?

Após cadastrar o nome da rotina do adapter, caso esta tenha disponibilizado o terceiro elementro do array de retorno de sua IntegDef, este valor é automaticamente gatilhado para o campo Mensagem (XX4_MODEL).  Caso não exista este retorno é necessário buscar, junto ao manual de integrações que acompanha a documentação dos adapters, qual o nome da Mensagem Única a ser utilizada.

Esta melhoria está disponível a partir da lib label 08062015.

Status do documentoConcluído
Data14/05/2015
Versão1.1
Versão anterior1.0
Autores

Jandir Deodato De Souza Silva

Índice resumido
Índice
maxLevel1
indent10px
Índice
Índice
outlinetrue
indent10px