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

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.

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.

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.

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.

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.

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

Atençã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.

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.

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.

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.

 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.

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

          O EAI Protheus trabalha com autenticação somente 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).


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.


 Qual informação é enviada na tag SourceApplication  de uma mensagem enviada a partir do Protheus?

          Nesta tag é enviada o nome do ambiente em uso, para libs de label anterior a 08122016. Em libs posteriores é enviado o nome do ambiente em uso concatenado ao código do grupo de empresas utilizado.

Cliente da Linha Logix, integrando com o Protheus, que atualizem a lib Protheus para uma versão mais recente precisam seguir o procedimento a seguir, para cadastrar novamente as rotas de aplicativos:

  1. No EAI10000 (Configurador do EAI Logix), acessar o item Configuração -> Aplicativos Externos.
  2. Pesquisar pelo aplicativo desejado e clicar no botão Modificar.
  3. Clicar no botão Configuração, situado ao lado do campo Aplicativo.
  4. Clicar no botão Confirmar sem alterar os dados. Aguardar até a comunicação com o aplicativo externo ser efetuada e os dados serem atualizados.
  5. Após retornar a tela principal, com os dados atualizados, clicar no botão Confirmar.
  6. Uma mensagem será exibida, caso o nome do aplicativo tenha sido alterado, informando de tal ocorrência e questionando se deseja alterar também as informações relacionadas (mensagens, histórico, etc.). Se a escolha for Não, a modificação será cancelada. Se a escolha for Sim, os dados do aplicativo externo, e as informações relacionadas serão alteradas para o novo nome.


Como efetuar um filtro por Tipo de Transação (XX3_TPTRAN) no Monitor do EAI?

          Embora apareça em tela os textos "Envio" e "Recebimento" no Tipo de Transação, a informação que está gravada na tabela XX3 é 0 para recebimento e 1 para envio. Então, o filtro deve ser feito utilizando 0 ou 1 para filtrar, e não o respectivo texto.


Status do documentoConcluído
Data14/05/2015
Versão1.1
Versão anterior1.0
Autores
Índice resumido
Índice
  • Sem rótulos