- Não – A rotina a ser cadastrada deve possuir a função Static Modeldef declarada. Para detalhes do funcionamento do Modeldef e MVC Protheus consulte o TDN, clicando aqui;
- Campo Mensagem Única=Sim – A rotina trabalha com o conceito de Mensagem Única TOTVS. Neste caso, a rotina deverá possuir a função Static Integdef.
- Mensagem (XX4_MODEL) – O nome da mensagem que é processada por esta rotina. Nas mensagens que usam a arquitetura de Mensagem Única TOTVS deverá ser incluído neste campo o nome da mensagem acordado pelo comitê e utilizado para a transação em questão. Para as rotinas que não são desta arquitetura neste campo deverá ser incluído o nome do modelo de dados principal da rotina;
- Descrição (X4_DESCRI)– Descrição da mensagem. Utilizada para facilitar o entendimento do processo;
- Envia (XX4_SENDER) – Define se o adapter envia mensagens para outro sistema;
- Recebe(XX4_RECEIV) – Define se o adapter pode receber mensagens de outro sistema. Quando o Protheus recebe uma mensagem de outro sistema e este campo, para a mensagem em questão, está cadastrado como 'não', é retornado para o outro sistema que o adapter não está disponível;
- Método (XX4_METODO) – Define o método de envio da mensagem. Importante – O Método de processamento é sempre definido por quem envia a mensagem. Logo, independentemente do valor deste campo, uma mensagem recebida como síncrona será sempre processada como síncrona;
- Operação (XX4_TPOER) – Indica o tipo de operação utilizado na mensagem. Só é possível cadastrar uma mesma rotina mais de uma vez (até o limite de 2) caso possuam o tipo de operação diferente entre elas, e também diferente do tipo 'Todas';
- Condição (XX4_EXPFIL) – Campo que pode receber uma expressão ou ainda uma função advpl. Em ambos os casos, é esperado um resultado lógico deste campo. Com um retorno.T. deste campo, o adapter é executado. Um retorno.F. indica que o adapter não deve ser executado naquele momento. Este campo é avaliado tanto no envio quanto no recebimento das mensagens;
- Compl. Recep. (XX4_LOADRE) – Este campo é utilizado para mensagens que não utilizam a arquitetura de Mensagem Única TOTVS. Neste campo deve ser informado uma rotina de processamento complementar para o processamento do XML recebido na mensagem. Esta rotina é chamada antes no ponto da gravação dos dados, porém depois das validações do modelo e recebe como parâmetros o modelo de dados e o XML (este passado por valor) recebido. Não é esperado retorno desta rotina;
- Compl. Envio (XX4_LOADSE) – Rotina para complementar o envio das mensagens. Esta rotina é chamada antes do envio do XML e recebe como parâmetro o xml (passado por valor) que será enviado;
- Canal Envio (XX4_CHANEL) – Indica o canal para o qual o EAI Protheus irá enviar a mensagem. Para detalhes sobre a diferença entre os dois canais, verifique o tópico Parâmetros importantes do EAI Protheus;
- XSD (XX4_XSD) – Indica o nome do arquivo de validação dos XMLs recebidos. Este arquivo pode ter ou não sua extensão omitida. O diretório onde o arquivo de validação se encontra é definido por um parâmetro de sistema (veja o tópico Parâmetros importantes do EAI Protheus). Para cada uma das mensagens recebidas, caso este campo esteja preenchido, a mensagem é validada e em caso de não conformidade com o XSD é gerada uma mensagem de SoapFault, indicando o problema encontrado;
- Filial Execução (XX4_FILEXE) – Indica a filial de execução do adapter. Caso não seja informada nenhuma filial a rotina será processada em todas as filiais da empresa/grupo no qual o adapter está cadastrado. Neste campo deve ser sempre informado o valor completo do campo Filial. Exemplo para a filial D MG 01. Neste layout temos o valor de 'D ' para a Empresa, 'MG ' para a Unidade de Negócios e o valor '01 ' para a Filial do sistema. Neste caso, devemos incluir no campo o valor completo - 'D MG 01'. Um adapter com filial de execução somente é executado na filial em questão;
- Manipulação XML (XX4_CHGXML) – Este campo é utilizado para mensagens que não utilizam a arquitetura de Mensagem Única TOTVS. Rotina para manipulação do XML recebido. Esta rotina é chamada antes das validações da mensagem (até mesmo antes da validação do XSD, caso exista). Esta rotina recebe como parâmetro o XML recebido e espera como retorno o XML alterado;
- Versão Envio (XX4_SNDVER) – Campo de versão da mensagem trafegada. As Mensagens Únicas TOTVS tem a sua versão definida no adapter de processamento, e este valor é retornado pelo adapter WhoIs (APCFG060). Para este campo só são permitidos os valores indicados no adapter, sendo inicializado este campo com o maior valor de versão disponível. Para as mensagens que não são da arquitetura de Mensagem Única TOTVS este campo não tem uso, e seu valor default é 1.000;
- Alias (XX4_ALIASP) – Este campo é utilizado somente nas mensagens da arquitetura Mensagem Única TOTVS e deve ser utilizado somente em mensagens que trafegam cadastros e nunca para movimentos. Este campo define o Alias principal da mensagem. Quando este campo é preenchido é enviado no cabeçalho as seguintes tags:
- CompanySharingMode – Indica o compartilhamento desta tabela no nível de Empresas;
- BusinessUnitySharingMode – Indica o compartilhamento desta tabela no nível de Unidade de Negócios;
- BranchSharingMode – Indica o compartilhamento desta tabela no nível de Filial.
O conteúdo destas tags pode conter dois valores: E – Para exclusivo e C para compartilhado.
Na parte inferior deste cadastro existe uma interface de Tags para Busca. É possível incluir neste campo tags nas quais se deseja pesquisar o valor, e o valor destas tags é gravada concatenada com '|', posteriormente no campo XX3_REFER, no mesmo registro da mensagem.
Âncora |
---|
| _Toc403759537 |
---|
| _Toc403759537 |
---|
|
Cadastro de De/Para de Empresas No EAI Protheus existe a possibilidade de se cadastrar, para as Mensagens Únicas TOTVS, um relacionamento entre a Empresa e Filial de processamento que chegou na mensagem com uma existente no Protheus. Isto se deve ao fato de que, na Mensagem Única TOTVS os valores trafegados na mensagem são sempre do sistema que enviou a mensagem, cabendo ao sistema receptor a tradução das informações trafegadas. Desta forma é enviada na mensagem o valor do correspondente a Empresa e Filial do sistema que originou a mensagem o que, em muitas vezes, não coincide com o código destas entidades no Protheus.
Vamos observar os campos deste cadastro, no menu Ambiente/Schedule/Emp.Fil Msg. Unica (APCFG050):
Image Modified
Figura 11 - Tela do cadastro de De/para de Empresas e FiliaisDe
- Referência (XXD_REFER) – Marca de referência do de/para. Esta marca é o atributo name da tag Product no path /TOTVSMessage/MessageInformation/;
- Company (XXD_COMPA) – Valor da empresa recebida na mensagem. Este valor é o conteúdo da tag CompanyId no path /TOTVSMessage/MessageInformation/;
- Branch (XXD_BRANCH) Valor da filial recebida na mensagem. Este valor é o contéudo da tag BranchId no path /TOTVSMessage/MessageInformation/;
- Emp. Protheus (XXD_EMPPRO) – Código da empresa/Grupo correspondente no Protheus;
- Fil.Protheus (XXD_FILPRO) – Código da filial correspondente no Protheus. Deve ser incluído o valor completo da filial no Protheus.
A transformação dos valores recebidos para os valores de contexto do Protheus é realizada automaticamente pelo EAI Protheus. Como isto é realizado pode ser verificado no tópico Montagem de ambientes no recebimento das mensagens pelo EAI Protheus.
Âncora |
---|
| _Toc403759538 |
---|
| _Toc403759538 |
---|
|
Cadastro de De/para de Mensagens Únicas De acordo com as definições da Mensagem Única TOTVS os valores transitados nas mensagens refletem sempre os códigos dos produtos que as enviam. Por este motivo existe um facilitador que pode ser utilizado pelas Mensagens Únicas TOTVS. Através do cadastro de De/Para de mensagens é possível realizar o relacionamento dos códigos recebidos e associar com os códigos internos do Protheus.
Vamos verificar os campos deste cadastro, no menu Ambientes/Schedule/De.Para Msg.Unica (APCFG070):
Image Modified
Figura 12 - Tela do Cadastro de De/Para de Mensagem Única TOTVS
Os campos do formulário deste cadastro são:
- Referência (XXF_REFER) – Marca do produto que enviou a mensagem para o Protheus;
- Tabela (XXF_TABLE) – Nome físico da tabela na qual o registro que será realizado o de/para será inserido. Exemplo para a tabela SA1, no grupo de empresas 18: SA1180;
- Alias(XXF_ALIAS) – Alias da tabela do registo ao qual o de-para se refere. Exemplo: SA1;
- Campo (XXF_FIELD) – Nome do Campo ao qual se refere o de-para.
O grid deste cadastro possui dois campos:
- Valor Externo (XXF_EXTVAL) – Valor que é recebido na mensagem;
- Valor Interno (XXF_INTVAL) – Correspondente do valor no Protheus.
Importante: O preenchimento do formulário deste cadastro é definido para cada mensagem no Protheus, e a regra para os campos Tabela, Alias, Campo, Valor Externo e Valor Interno é definida pelo criador da mensagem. O Acesso e manipulação das informações deste facilitador não são realizados pela camada do EAI Protheus e sim pela camada do adapter. A utilização ou não deste recurso pelo adapter é de responsabilidade da equipe que o criou.
As rotinas utilizadas internamente pelos adapters para realizar a manipulação destes registros são demonstradas no tópico Funções utilizáveis no EAI Protheus.
Âncora |
---|
| _Ref402799344 |
---|
| _Ref402799344 |
---|
|
Âncora |
---|
| _Toc403759539 |
---|
| _Toc403759539 |
---|
|
Parâmetros importantes do EAI Protheus O EAI Protheus utiliza alguns parâmetros de sistema para definir o comportamento da integração. Estes parâmetros são listados abaixo:
- MV_EAIURL – Parâmetro que indica ao EAI Protheus para qual endereço de Webservices a mensagem será disparada. Este parâmetro é utilizado quando o adapter está cadastrado com o Canal Envio (XX4_CHANEL) =ESB;
- MV_EAIPORT – Parâmetro que indica ao EAI Protheus qual o método de Webservices será consumido no envio da mensagem. Este parâmetro é carregado com o valor default WSCHANNELReceiver. Este parâmetro é utilizado quando o adapter está cadastrado com o Canal Envio (XX4_CHANEL) =ESB;
- MV_EAIESBC – Parâmetro que indica qual a versão do Webservice do TOTVS ESB para o qual o EAI Protheus irá realizar o envio da mensagem. Este parâmetro deve ser informado no formato <versão>.<release>. Exemplo: 11.1. Este parâmetro é utilizado quando o adapter está cadastrado com o Canal Envio (XX4_CHANEL) =ESB;
- MV_EAIXSD – Parâmetro com o diretório no qual estarão os XSDs utilizados na validação das mensagens do EAI. Possui como valor default o diretório relativo '\xsd\totvsmessage'. Este diretório é criado automaticamente no Protheus. Este parâmetro é utilizado somente quando a mensagem é do tipo Mensagem Única TOTVS. Para as mensagens do TOTVSIntegrator que possuem adapter configurado a validação do XSD gerado pelo modelo de dados contra a mensagem é realizado de forma automática;
- MV_EAIURL2 - Parâmetro que indica ao EAI Protheus para qual endereço de Webservices a mensagem será disparada. Este parâmetro é utilizado quando o adapter está cadastrado com o Canal Envio (XX4_CHANEL) =EAI;
- MV_EAIWS - Parâmetro que indica ao EAI Protheus qual o cliente de Webservices utilizado para envio a outro EAI. Este parâmetro é utilizado quando o adapter está cadastrado com o Canal Envio (XX4_CHANEL) =EAI e tem como conteúdo default o valor WSEAISERVICE. O Client de Webservices do EAI TOTVS não precisa ser recompilado, pois ele é de controle interno. Importante: Para integrações com o produto DATASUL o valor deste parâmetro deve ser alterado para WSEAIDATASUL;
- MV_EAIMETH – Parâmetro que indica o método de Webservice que será consumido no envio da mensagem. . Este parâmetro é utilizado quando o adapter está cadastrado com o Canal Envio (XX4_CHANEL) =EAI e tem como conteúdo default o valor receiveMessage. Normalmente este parâmetro não deve ser alterado, pois o método utilizado nas integrações via Mensagem Única TOTVS é padronizado com este nome.
- MV_EAIUSER – Parâmetro para envio do usuário de acesso a camada de Webservices no sistema destino. Este parâmetro é utilizado quando o adapter está cadastrado com o Canal Envio (XX4_CHANEL) =EAI. Este parâmetro somente deve ser configurado quando o sistema que irá receber a mensagem oriunda do EAI Protheus possuir autenticação de usuários na camada de Webservices;
- MV_EAIPASS – Parâmetro para envio da senha do usuário de acesso a camada de Webservices no sistema destino. Este parâmetro é utilizado quando o adapter está cadastrado com o Canal Envio (XX4_CHANEL) =EAI. Este parâmetro somente deve ser configurado quando o sistema que irá receber a mensagem oriunda do EAI Protheus possuir autenticação de usuários na camada de Webservices;
Âncora |
---|
| _Toc403759540 |
---|
| _Toc403759540 |
---|
|
Classe FWEAI A classe FWEAI é a classe responsável por criar os objetos principais do EAI Protheus. Para verificar o funcionamento desta classe, acesse a sua documentação no TDN clicando aqui.
Âncora |
---|
| _Ref402863016 |
---|
| _Ref402863016 |
---|
|
Âncora |
---|
| _Toc403759541 |
---|
| _Toc403759541 |
---|
|
Montagem de ambientes no recebimento das mensagens pelo EAI Protheus O EAI Protheus permite o processamento das mensagens recebidas na empresa e filial indicadas no cabeçalho da mensagem.
Para mensagens do envelope TOTVSIntegrator o valor recebido nas tags DocCompany (empresa) e DocBranch (filial) são consultados e seus valores utilizados para determinar ao EAI Protheus qual será o par Empresa/Filial no qual o ambiente será criado. Caso o valor destas tags sejam inválidos no contexto do Protheus (empresa e filial inexistente ou inválidas) é retornado uma mensagem de SoapFault para o sistema que enviou a mensagem.
Para mensagens da arquitetura de Mensagem Única TOTVS (TOTVSMessage) estes valores são recebidos nas tags CompanyId (Empresa) e BranchId (Filial). Estas tags estão no path /TOTVSMessage/MessageInformation do XML recebido. Para as Mensagens Única TOTVS existe um comportamento adicional para a montagem de ambientes. Primeiramente é verificado se o par empresa/filial recebido na mensagem existe no De-para de Empresas no Protheus (tabela XXD). Caso seja encontrado o relacionamento de de-para no Protheus o ambiente é montado com os valores encontrados. Caso não seja encontrado o relacionamento é realizada a tentativa de montagem de ambiente com os valores recebidos diretamente na mensagem. Em ambos os casos (encontrando o relacionamento e não encontrando-o) a empresa e filial são validadas, e em caso de não possibilidade de processamento é retornada um SoapFault para o sistema que enviou a mensagem.
Âncora |
---|
| _Toc403759542 |
---|
| _Toc403759542 |
---|
|
O Ponto de entrada EAICHGEMP O Ponto de entrada EAICHGEMP é um ponto de entrada utilizado, no recebimento das mensagens únicas pelo EAI Protheus para que seja possível dizer para qual empresa e filial o ambiente deverá ser aberto. O array PARAMIXB enviado neste ponto de entrada recebe possui cinco elementos:
- Paramixb[1] =Marca recebida na mensagem. Esta marca é o atributo name da tag Product no path /TOTVSMessage/MessageInformation/;
- Paramixb[2] =Nome da aplicação recebida na mensagem. Este valor é o conteúdo da tag SourceApplication no path /TOTVSMessage/MessageInformation/. O Protheus envia nesta tag o nome do ambiente no qual a mensagem foi gerada;
- Paramixb[3] =Nome da mensagem única. Este valor é o conteúdo da tag Transaction no path /TOTVSMessage/MessageInformation/;
- Paramixb[4] =Código da empresa recebido na mensagem. Este valor é o conteúdo da tag CompanyId no path /TOTVSMessage/MessageInformation/;
- Paramixb [5] =Código da filial recebido na mensagem. Este valor é o conteúdo da tag CompanyId no path /TOTVSMessage/MessageInformation/.
O retorno esperado deste ponto de entrada é um array de duas posições, sendo a primeira posição o valor da empresa/grupo e a segunda posição o valor completo da filial. Exemplo de retorno esperado do ponto de entrada = {'18',' D MG 01'}. A empresa e filial retornados no array devem ser válidas no contexto do Protheus.
Caso seja retornado um array vazio neste ponto de entrada, o EAI segue o caminho descrito no tópico Montagem de ambientes no recebimento das mensagens pelo EAI Protheus.