Páginas filhas
  • 2. Exportação e Importação de Configurações do EAI

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleÍndice

Índice

Informações
titleMatriz de evolução
Versão / Release
Funcionalidade
12.1.9
  • Versão inicial

Objetivo

...

Permitir a exportação de configurações de EAI de um ambiente, e a respectiva importação em outro, possibilitando a realização de cópias de segurança (backups) de configurações realizadas, bem como a replicação de configurações em outros ambientes Logix, com o intuito de agilizar o "setup" de um novo ambienteuma nova instalação. 

Funcionamento

Informações
titleMatriz de evolução
Versão / Release
Funcionalidade
12.1.9
  • Versão inicial
Informações
titleÍndice

Índice

 

Funcionamento

Exportação

A integração entre Identity e Datasul usando modo "pull" baseia-se no seguinte fluxo:

  • O usuário administrador realiza ações como vincular um usuário a um aplicativo, ou ativar um item de menu num grupo de segurança (papel, na terminologia do Identity);
  • As operações realizadas são encaminhadas para uma fila correspondente: fila de aplicativo, se a ação não envolver usuário; fila de usuário, quando envolver usuário;
  • O Datasul consultará as filas em uma frequência determinada, buscando as operações pendentes que ali estiverem;
  • As operações serão processadas, sendo gravadas no banco de dados caso estejam OK;
  • O Identity será comunicado pelo Datasul das operações processadas com sucesso e estas serão removidas da fila.

As duas filas do Identity - de aplicativo e de usuário - serão consultadas com frequências distintas - 15 e 30 segundos - respectivamente, mas também serão consultadas a cada acesso feito ao Datasul a partir do Identity (consulta sob demanda). Eventuais erros de processamento das operações, quer por consulta periódica, quer por consulta sob demanda, interromperão a busca das operações, sendo necessária a intervenção do administrador para restabelecer o funcionamento normal da integração.

Importação

O correto funcionamento do modo "pull" bem como o adequado monitoramento das situações de erro requerem alterações nos arquivos de configuração do Datasul, conforme segue:

Para acompanhar o status do serviço de busca das operações o Fluig Configurator disponibiliza a aba Gerenciamento, a qual exibe o status do serviço (Executando, Parado ou Desabilitado), permitindo pará-lo e iniciá-lo a qualquer tempo. A aba também disponibiliza um link para baixar o arquivo de log da integração (fluig-integration.log).

Image Removed

O arquivo de log terá formato semelhante ao da imagem abaixo. As informações exibidas nele são:

  • Data, no formato "ano-mês-dia";
  • Hora, no formato "hora:minuto:segundo,milissegundos";
  • Milissegundos desde o inicio do serviço de log;
  • Tipo do registro no log, INFO, WARN, ERROR ou DEBUG;
  • Nome da thread em execução no momento do registro da mensagem;
  • Nome da classe Java que registrou a mensagem;
  • Mensagem.

Image Removed

Erros relacionados ao funcionamento do modo "pull" também serão exibidos nesta aba, quando ocorrerem.

Image Removed

 

Componentes

Esta seção relaciona os principais componentes da funcionalidade, suas características e o relacionamento entre eles, com o objetivo de fornecer uma visão geral da arquitetura.

A integração entre Identity e Datasul usando o modo pull é composta de vários elementos, a saber:

  • Filas de operações pendentes (Identity);
  • APIs de consulta e alteração das filas (Identity);
  • Serviço de busca das operações pendentes (Datasul);
  • Processador de operações (Datasul);
  • Interface de gerenciamento (Datasul);
  • Processamento de login (Datasul).

Filas de operações pendentes

Neste documento já se comentou várias vezes da existência de duas filas no Identity: de operações de usuário e de aplicativo. Vamos detalhar agora quais operações cada uma delas pode conter.

Operações de usuárioProvisionar e desprovisionar usuário ao aplicativo.
Vincular e desvincular usuário ao papel do aplicativo.
Vincular e desvincular usuário à empresa do aplicativo.
Operações de aplicativo

Incluir, alterar ou eliminar um papel no aplicativo.

Ativar e desativar um item de menu no papel.
Ativar e desativar uma consulta rápida no papel.

Em relação à fila de operações de usuário, ela é complementada por uma lista de usuários com operações pendentes. Esta lista é consultada sempre que um usuário acessa o Datasul. Se ele estiver nesta lista, então é feita a busca de todas as operações pendentes para aquele usuário. Desta forma, o "atraso" causado pelo processamento das operações é reduzido, já que abrange somente o usuário efetuando o acesso.

APIs de consulta e alteração das filas

APIs são componentes de software usados para executar uma tarefa, dos quais só se conhece o nome, os dados de entrada que espera e os dados de saida que retorna. Para integração com o Datasul via modo pull, o Identity provê APIs para consultar as filas e recuperar as operações pendentes nelas. Entretanto, as operações só serão retiradas da fila quando o Datasul executar as APIs destinadas a esta tarefa. Sinteticamente, o Identity provê as seguintes APIs, implementadas usando o padrão REST e acessíveis via Web:

  • Consulta e recuperação de operações de aplicativo;
  • Consulta e recuperação dos usuários com operações pendentes;
  • Consulta e recuperação de operações de usuário;
  • Remoção de operações de aplicativo;
  • Remoção de operações de usuário.

Serviço de busca das operações pendentes

Constitui o núcleo da implementação do modo pull no Datasul. É o componente responsável por buscar as operações no Identity e encaminhá-las para processamento. O serviço executa em "background" e consulta de forma independente as filas de operações de usuário e de aplicativo.

Processador de operações

É um complemento ao serviço de busca de operações, que executa de modo independente, para evitar que o serviço de busca fique "travado", aguardando o processamento da operação caso ele seja extenso. Dependendo da natureza da operação recebida (usuário, grupo de segurança, consulta rápida, etc.) o processador de operações aciona rotinas correspondentes no Datasul para realizar o processamento. Eventuais erros no processamento são encaminhados novamente ao serviço de busca, que dará o tratamento adequado, registrando no arquivo de log e disparando o e-mail de notificação ao administrador.

Interface de gerenciamento

Trata-se do Fluig Configurator, pelo qual os usuários podem verificar o status do serviço de busca e, conforme a necessidade, podem parar e iniciar o serviço. Vários detalhes deste componente já foram demonstrados na seção Monitoramento.

Processamento de login

Este componente é responsável por acionar o serviço de busca fora do intervalo programado, para recuperar as operações pendentes para o usuário que está efetuando o acesso ao Datasul naquele momento. As operações pendentes serão encaminhadas para o processador de operações e o login será realizado após o retorno. Caso haja algum problema no processamento da operação, o processo de login não será realizado.

...

Exportação

Para realizar a exportação de configurações do EAI, deve-se executar o programa EAI10000 (Configurador do EAI), selecionar a opção Parametrização -> Gerais e clicar no botão Exportar.

Image Added

Será aberta uma janela para informar o local e nome do arquivo onde serão gravadas as configurações. O valor informado está limitado a 100 caracteres.

O arquivo será gerado no formato XML (ver exemplo abaixo). Para detalhes sobre as tags usadas no arquivo, consulte a seção Formato do Arquivo.

Bloco de código
languagexml
titleArquivo de configuração de EAI
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<EaiConfiguration instance="EAI-LOGIX">
   <Applications>
      <Application name="EAI-LOGIX" productName="LOGIX" productVersion="12.1.6">
         <AppProgram>EAIHostApplication</AppProgram>
         <ChannelProgram>EAIChannelHost</ChannelProgram>
         <QueueProgram>EAIMessageQueueLogix</QueueProgram>
         <Transactions>
            <Transaction>
               <Name>accountantaccount</Name>
               <Version>2.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10038</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>accountingclosingdate</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10029</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>accountingentry</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10023</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>accountpayabledocument</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10022</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>accountpayabledocumentdischarge</Name>
               <Version>1.003</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10033</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>accountreceivabledocument</Name>
               <Version>1.001</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10020</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>accountreceivabledocumentdischarge</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10032</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>areaandlineofbusiness</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10040</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>bank</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>ADP10031</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>banktransactions</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10024</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>cancelrequest</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERCANCELREQUEST1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>carrier</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10010</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>city</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10002</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>company</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>ADP10034</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>costcenter</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10039</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>coveragedocument</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>ADP10005</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>currencyquotation</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10004</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>financeiro</Context>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>customervendor</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10000</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>departament</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10041</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>edidocumentfortransportation</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10009</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>employee</Name>
               <Version>2.001</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10043</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>employeeposition</Name>
               <Version>1.001</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPEREMPLOYEEPOSITION1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>datasulcrm</Context>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>employeesituations</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>EAIHELPEREMPLOYEESITUATIONS1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>inputdocument</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10006</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>inventory</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>ADP10007</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>invoice</Name>
               <Version>1.001</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10028</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>invoice</Name>
               <Version>3.004</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERINVOICE3</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>item</Name>
               <Version>1.001</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10001</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>item</Name>
               <Version>3.001</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>EAIHELPERITEM3</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>itemstructure</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERITEMSTRUCTURE1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>listofaccountpayabledocument</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERLISTOFACCOUNTPAYABLEDOCUMENT1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>monthlypayroll</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>EAIHELPERMONTHLYPAYROLL1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>order</Name>
               <Version>3.003</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERORDER3</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>packaging</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>ADP10025</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>packagingrelationship</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>ADP10026</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>paymentcondition</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERPAYMENTCONDITION1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>datasulcrm</Context>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>pricelistheaderitem</Name>
               <Version>1.002</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERPRICELISTHEADERITEM1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>datasulcrm</Context>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>productionorder</Name>
               <Version>2.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>EAIHELPERPRODUCTIONORDER2</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>productsupplierrelationship</Name>
               <Version>2.003</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>EAIHELPERPRODUCTSUPPLIERRELATIONSHIP2</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>quotation</Name>
               <Version>1.002</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERQUOTATION1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>request</Name>
               <Version>1.007</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERREQUEST1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>reversalofaccountpayabledocumentdischarge</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10037</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>reversalofaccountreceivabledocumentdischarge</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10036</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>role</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10042</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>salesorder</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10008</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>schedulework</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>EAIHELPERSCHEDULEWORK1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>seller</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERSELLER1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>datasulcrm</Context>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>setemployeebranchtranfer</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>EAIHELPERSETEMPLOYEEBRANCHTRANFER1</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>shipmentofexportinvoice</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10030</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>sintegraregister-85-86</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
               <Adapter>ADP10035</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>unitofmeasure</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP10003</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
               <Routes>
                  <Route>
                     <Destination>dts11cordas8480</Destination>
                     <Context>padrao</Context>
                  </Route>
               </Routes>
            </Transaction>
            <Transaction>
               <Name>unitofmeasureconversion</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
               <Adapter>ADP10027</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>user</Name>
               <Version>3.001</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>EAIHELPERUSER3</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
               <Contexts>
                  <Context>datasulcrm</Context>
                  <Context>padrao</Context>
               </Contexts>
            </Transaction>
            <Transaction>
               <Name>whois</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
               <Adapter>ADP0001</Adapter>
               <Anonymous>false</Anonymous>
               <IncludeOriginalMsg>false</IncludeOriginalMsg>
            </Transaction>
         </Transactions>
      </Application>
      <Application name="dts11cordas8480" productName="DATASUL" productVersion="11.5.X">
         <AppProgram>EAIDefaultApplication</AppProgram>
         <ChannelProgram>EAIChannelDatasul</ChannelProgram>
         <QueueProgram>EAIMessageQueue</QueueProgram>
         <Properties>
            <Property category="Channel" name="password">eai@123</Property>
            <Property category="Channel" name="textformat"></Property>
            <Property category="Channel" name="url">http://cordas.jv01.local:8480/eai2-ws/EAIService?wsdl</Property>
            <Property category="Channel" name="user">eai</Property>
         </Properties>
         <Transactions>
            <Transaction>
               <Name>accountreceivabledocument</Name>
               <Version>2.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>activity</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>carrier</Name>
               <Version>2.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>city</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>company</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>customerestablishment</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>customervendor</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>customervendor</Name>
               <Version>1.001</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>customervendor</Name>
               <Version>2.001</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>eaienvironment</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>employeeposition</Name>
               <Version>1.001</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>invoice</Name>
               <Version>3.003</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>invoice</Name>
               <Version>3.004</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>item</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>item</Name>
               <Version>3.001</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>paymentcondition</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>paymentcondition</Name>
               <Version>2.001</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>pricelistheaderitem</Name>
               <Version>1.001</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>pricelistheaderitem</Name>
               <Version>1.002</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>productionorder</Name>
               <Version>2.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>request</Name>
               <Version>1.007</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>seller</Name>
               <Version>1.000</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>unitofmeasure</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>unitofmeasure</Name>
               <Version>2.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>unitofmeasureconversion</Name>
               <Version>1.000</Version>
               <SupportedMode>send_enabled</SupportedMode>
               <EnabledMode>send_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>user</Name>
               <Version>3.001</Version>
               <SupportedMode>receive_enabled</SupportedMode>
               <EnabledMode>receive_enabled</EnabledMode>
            </Transaction>
            <Transaction>
               <Name>whois</Name>
               <Version>1.000</Version>
               <SupportedMode>both_enabled</SupportedMode>
               <EnabledMode>both_enabled</EnabledMode>
            </Transaction>
         </Transactions>
      </Application>
   </Applications>
   <InternalIDs>
      <InternalID id="AccountantAccount">
         <Table>plano_contas</Table>
         <KeyFields>cod_empresa|num_conta|num_conta_reduz</KeyFields>
      </InternalID>
      <InternalID id="AreaAndLineOfBusinessInternalId">
         <Table>linha_prod</Table>
         <KeyFields>cod_lin_prod|cod_lin_recei|cod_seg_merc|cod_cla_uso</KeyFields>
      </InternalID>
      <InternalID id="CompanyInternalId">
         <Table>empresa</Table>
         <KeyFields>cod_empresa</KeyFields>
      </InternalID>
      <InternalID id="DepartamentInternalId">
         <Table>unidade_funcional</Table>
         <KeyFields>cod_empresa|cod_uni_funcio</KeyFields>
      </InternalID>
      <InternalID id="InternalId">
         <Table>funcionario</Table>
         <KeyFields>cod_empresa|num_matricula</KeyFields>
      </InternalID>
      <InternalID id="RoleInternalId">
         <Table>cargo</Table>
         <KeyFields>cod_empresa|cod_cargo</KeyFields>
      </InternalID>
      <InternalID id="WorkShiftInternalId">
         <Table>escala</Table>
         <KeyFields>cod_empresa|cod_escala</KeyFields>
      </InternalID>
   </InternalIDs>
</EaiConfiguration>

Importação

Para realizar a importação de configurações, utiliza-se também o EAI10000. Nele, deve-se selecionar a opção Parametrização -> Gerais e clicar no botão Importar.

Image Added

A importação será realizada em duas etapas. A primeira fará a carga e validação do arquivo de configurações. As validações realizadas são as seguintes:

  • Verificação da estrutura do arquivo com relação ao padrão XML;
  • Verificação das tags do arquivo com relação ao XML Schema. O arquivo de XML Schema usado nesta validação pode ser visto na seção XML Schema, ao final do documento;
  • Verificação do conteúdo das tags que fazem referência a aplicativos. Por exemplo, uma rota não pode estar vinculada a um aplicativo externo que não existe no arquivo;
  • Verificação do conteúdo das tags que fazem referência a adapters, ou seja, o adapter informado no arquivo deve existir no RPO do ambiente de destino.

Havendo alguma inconsistência no arquivo, relacionada às validações acima, a importação é cancelada e nenhuma informação é atualizada no ambiente.

Nota

Caso seja necessário atualizar o ambiente com os dados do arquivo de configuração, mesmo que parcialmente, será necessário editar o mesmo, removendo o conteúdo que gerou a inconsistência. Entretanto, esta é uma operação que requer profundo conhecimento da estrutura do arquivo de configuração e não é recomendada para usuários sem tal conhecimento.

Após estas validações, segue a segunda etapa, onde será verificado a existência de configurações de EAI no ambiente de destino. Caso o ambiente não possua configurações, os dados importados são gravados sem qualquer pergunta ao usuário.

Entretanto, havendo configurações de EAI no ambiente de destino, será exibida uma tela de opções, onde o usuário informará o que deseja fazer em relação as configurações existentes.

Image Added

Descrição das opções de importação

  • Tipo de importação: pode-se escolher entre sobrescrever as configurações existentes ou combinar (mesclar) com as novas configurações sendo importadas. Quando as configurações são sobrescritas, todo o conteúdo anterior é substituído pelo conteúdo importado, inclusive o nome do aplicativo hospedeiro. Quando as configurações são mescladas, o nome do aplicativo hospedeiro é mantido e apenas os dados de configuração novos são incluídos no ambiente.
  • Backup das configurações: Marcando esta opção, será possível exportar as configurações existentes antes do processamento ser concluído. Será aberta uma tela para permitir informar o local e nome do arquivo de destino das configurações.
  • Eliminar mensagens: Marcando esta opção, será possível eliminar as mensagens recebidas e enviadas usando as configurações anteriores. Recomendado nos casos onde as configurações são sobrescritas.
  • Backup das mensagens: Caso a opção Eliminar mensagens seja escolhida, é possível exportar as mesmas para arquivo antes da remoção. Os arquivos de backup serão gerados no formato UNL, um padrão comum ao Logix. Caso seja necessário reimportar as mensagens para o ambiente, isso pode ser feito pelo programa LOG0002.
  • Diretório de exportação mensagem: Neste campo será exibido o caminho completo onde os arquivos de backup das mensagens serão gerados. A edição do seu conteúdo não é permitida.

Combinando configurações

Ao combinar configurações de EAI existentes num ambiente com as provenientes de um arquivo de configuração, serão realizadas as seguintes operações:

  • O nome do aplicativo hospedeiro existente será mantido.
  • As transações do aplicativo hospedeiro existente que coincidirem com as transações do aplicativo hospedeiro importado serão mantidas.
  • As transações do aplicativo hospedeiro importado que não existirem no aplicativo hospedeiro de destino serão acrescentadas.
  • Os aplicativos externos cujo nome coincidir com algum aplicativo externo importado serão mantidos.
  • Os aplicativos externos importados que não existirem no ambiente de destino serão acrescentados.
  • As transações dos aplicativos externos que já existirem no ambiente de destino serão mantidas.
  • As transações dos aplicativos externos que não existirem serão acrescentadas.
  • As rotas existentes serão mantidas.
  • As novas rotas serão acrescentadas.
  • As informações de "de-para" que já existirem serão mantidas.
  • As novas informações de "de-para" serão acrescentadas.

Relatório de importação

Ao final da importação será gerado um relatório contendo as opções feitas pelo usuário e os conteúdos importados. O mesmo é gerado em formato texto e gravado no diretório configurado no programa LOG1100, para o sistema LST e empresa do usuário que executou o EAI10000. 

Bloco de código
languagetext
titleExemplo de relatório
collapsetrue
Processamento das configurações de EAI
======================================
Data/hora de inicio...........: 29/12/2015 - 16:19:38
Realizar backup?..............: NÃO
Local e nome do arquivo.......: 
Eliminar mensagens ?..........: NÃO
Backup das mensagens..........: NÃO
Local do backup das mensagens.: 
Forma de processamento........: Assumir configurações importadas, descartando as atuais

Aplicativo hospedeiro..: LOGIX_1100

    Novas transações                                                     Versão
    ---------------------------------------------------------------------------
    accountantaccount                                                     2.000     
    accountingclosingdate                                                 1.000     
    accountingentry                                                       1.000     
    accountpayabledocument                                                1.000     
    accountpayabledocumentdischarge                                       1.003     
    accountreceivabledocument                                             1.001     
    accountreceivabledocumentdischarge                                    1.000     
    areaandlineofbusiness                                                 1.000     
    bank                                                                  1.000     
    banktransactions                                                      1.000     
    cancelrequest                                                         1.000     
    carrier                                                               1.000     
    city                                                                  1.000     
    company                                                               1.000     
    costcenter                                                            1.000     
    coveragedocument                                                      1.000     
    currencyquotation                                                     1.000     
    customervendor                                                        1.000     
    departament                                                           1.000     
    edidocumentfortransportation                                          1.000     
    employee                                                              2.001     
    employeeposition                                                      1.001     
    employeesituations                                                    1.000     
    inputdocument                                                         1.000     
    inventory                                                             1.000     
    invoice                                                               1.001     
    invoice                                                               3.004     
    item                                                                  1.001     
    item                                                                  3.001     
    itemstructure                                                         1.000     
    listofaccountpayabledocument                                          1.000     
    monthlypayroll                                                        1.000     
    order                                                                 3.003     
    packaging                                                             1.000     
    packagingrelationship                                                 1.000     
    paymentcondition                                                      1.000     
    pricelistheaderitem                                                   1.002     
    productsupplierrelationship                                           2.003     
    quotation                                                             1.002     
    request                                                               1.007     
    reversalofaccountpayabledocumentdischarge                             1.000     
    reversalofaccountreceivabledocumentdischarge                          1.000     
    role                                                                  1.000     
    salesorder                                                            1.000     
    schedulework                                                          1.000     
    seller                                                                1.000     
    shipmentofexportinvoice                                               1.000     
    sintegraregister-85-86                                                1.000     
    unitofmeasure                                                         1.000     
    unitofmeasureconversion                                               1.000     
    user                                                                  3.001     
    whois                                                                 1.000     

    TOTAL: 52 transações

Novos Aplicativos Externos
-------------------------------------------------------------------------------

Aplicativo
-------------------------------------------------------------------------------
dts11cordas8480                         

    Transações                                                           Versão
    ---------------------------------------------------------------------------
    accountreceivabledocument                                             2.000     
    activity                                                              1.000     
    carrier                                                               2.000     
    city                                                                  1.000     
    company                                                               1.000     
    customerestablishment                                                 1.000     
    customervendor                                                        1.000     
    customervendor                                                        1.001     
    customervendor                                                        2.001     
    eaienvironment                                                        1.000     
    employeeposition                                                      1.001     
    invoice                                                               3.003     
    invoice                                                               3.004     
    item                                                                  1.000     
    item                                                                  3.001     
    paymentcondition                                                      1.000     
    paymentcondition                                                      2.001     
    pricelistheaderitem                                                   1.001     
    pricelistheaderitem                                                   1.002     
    productionorder                                                       2.000     
    request                                                               1.007     
    seller                                                                1.000     
    unitofmeasure                                                         1.000     
    unitofmeasure                                                         2.000     
    unitofmeasureconversion                                               1.000     
    user                                                                  3.001     
    whois                                                                 1.000     

    TOTAL: 1 aplicativos 27 transações


Novas Transações em Aplicativos Existentes
-------------------------------------------------------------------------------

    TOTAL: 0 aplicativos 0 transações


    Novas rotas..................................: 1
    Novas informações de 'de-para' (Internal IDs): 0
    Data/hora de término.........................: 29/12/2015 - 16:19:38

Informações Técnicas

...

Nesta seção descrevemos informações de ordem técnica, como o formato do arquivo XML e o XSD utilizado para validação do arquivo de configuração importado.

Formato do Arquivo
Âncora
fileformat
fileformat

A tabela abaixo descreve o significado de cada uma das tags usadas no arquivo de configuração de EAI.

Tag

Descrição

Obrigatória

EaiConfiguration

Tag que abrange as configurações de EAI.

Atributos:

• Instance: nome do aplicativo hospedeiro.

Sim

Applications

Agrupa os vários aplicativos da configuração.

Sim

Application

Descreve um aplicativo, que pode ser interno (hospedeiro) ou externo. O aplicativo hospedeiro será aquele cujo nome conste no atributo instance da tag EaiConfiguration.

Atributos:

• name: nome do aplicativo (obrigatório).
• productName: nome do produto do aplicativo. Pode ser: LOGIX, PROTHEUS, DATASUL, RM (obrigatório).
• productVersion: versão do produto do aplicativo (obrigatório).

Sim

AppProgram

Nome do programa ou classe que executa as funções de processamento das transações.

Sim

ChannelProgram

Nome do programa ou classe que faz o envio das mensagens de forma síncrona.

Sim

QueueProgram

Nome do programa ou classe que envia as mensagens para a fila, em caso de envio assíncrono.

Sim

Properties

Agrupa as propriedades de um aplicativo.

Sim (aplicativo externo)

Property

Descreve uma propriedade do aplicativo.

Atributos:

• Category: categoria da propriedade. Pode ser: Channel, Application, Input-Queue.
• Name: nome da propriedade.

Sim (aplicativo externo)

 

TransactionsAgrupa as transações relacionadas ao aplicativo.Sim

Transaction

Descreve uma transação relacionada a um aplicativo.

Sim

Name

Nome da transação.

Sim

Version

Versão da transação.

Sim

SupportedMode

Modo de operação suportado pela transação. Pode ser: not_enabled, send_enabled, receive_enabled e both_enabled.

Sim

EnabledMode

Modo de operação habilitado para a transação. Pode ser: not_enabled, send_enabled, receive_enabled e both_enabled.

O valor desta tag deve estar de acordo com a tag supportedMode conforme segue:

SupportedModeEnabledMode
both_enabled

both_enabled

send_enabled

receive_enabled

not_enabled

send_enabledsend_enabled
 not_enabled
receive_enabled

receive_enabled

not_enabled

not_enablednot_enabled
Sim

Adapter

Nome do programa ou classe que processa a mensagem recebida para a transação.

Sim (aplicativo hospedeiro)

Anonymous

Indica se a transação pode ser recebida de um aplicativo não conhecido.

Sim (aplicativo hospedeiro)

IncludeOriginalMsg

Indica se a mensagem original será incluída no corpo da mensagem de resposta para aquela transação.

Sim (aplicativo hospedeiro)

Contexts

Agrupa os contextos relacionadas com a transação.

Sim (aplicativo hospedeiro)

Context (em Contexts)

Descreve o contexto associado à transação.

Sim, se houver Contexts

Routes

Agrupa as rotas relacionadas com a transação.

Sim (aplicativo hospedeiro)

Route

Descreve a rota da transação.

Sim, se houver Routes

Destination

Aplicativo externo para o qual a mensagem da transação será enviada.

Sim, se houver Route

Context (em Route)

Indica o contexto que deve estar na mensagem para que esta seja enviada ao aplicativo externo.

Sim, se houver Route

InternalIDs

Agrupa os registros de de-para.

Não

InternalID

Descreve um registro de de-para.

Atributos:

• Id: Identificador (nome) do de-para.

Sim, se houver InternalIDs

Table

Tabela do ERP contendo o registro referenciado pela parte "interna" do de-para.

Sim, se houver InternalID

KeyFields

Campos chaves da tabela que são usados na composição da parte "interna" do de-para.

Sim, se houver InternalID

ValueMappings

Agrupa os valores de um de-para.

Não

ValueMapping

Valores de de-para para um aplicativo externo.

Atributo:

• App: Identificador do aplicativo externo ao qual se refere o de-para.

Sim, se houver ValueMappings

ExternalValue

Valor no aplicativo externo.

Sim

InternalValue

Valor no aplicativo hospedeiro (interno).

Sim

XML Schema
Âncora
xmlschema
xmlschema

O XML abaixo define a estrutura do arquivo de configuração e é usado no processo de importação para validar o arquivo de configuração utilizado.

Bloco de código
languagexml
titleEAIConfiguration.xsd
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    
    <xs:complexType name="TransactionType">
        <xs:sequence>
            <xs:element name="Name">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="(\S)+"></xs:pattern>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="Version" type="xs:string"></xs:element>
            <xs:element name="SupportedMode">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="not_enabled"></xs:enumeration>
                        <xs:enumeration value="send_enabled"></xs:enumeration>
                        <xs:enumeration value="receive_enabled"></xs:enumeration>
                        <xs:enumeration value="both_enabled"></xs:enumeration>
                        <xs:enumeration value="NOT_ENABLED"></xs:enumeration>
                        <xs:enumeration value="SEND_ENABLED"></xs:enumeration>
                        <xs:enumeration value="RECEIVE_ENABLED"></xs:enumeration>
                        <xs:enumeration value="BOTH_ENABLED"></xs:enumeration>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="EnabledMode">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="not_enabled"></xs:enumeration>
                        <xs:enumeration value="send_enabled"></xs:enumeration>
                        <xs:enumeration value="receive_enabled"></xs:enumeration>
                        <xs:enumeration value="both_enabled"></xs:enumeration>
                        <xs:enumeration value="NOT_ENABLED"></xs:enumeration>
                        <xs:enumeration value="SEND_ENABLED"></xs:enumeration>
                        <xs:enumeration value="RECEIVE_ENABLED"></xs:enumeration>
                        <xs:enumeration value="BOTH_ENABLED"></xs:enumeration>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="Adapter" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Esta tag é opcional para aplicativos externos</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="(\S)+"></xs:pattern>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="Anonymous" type="xs:boolean" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Esta tag é opcional para aplicativos externos</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="IncludeOriginalMsg" type="xs:boolean" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Esta tag é opcional para aplicativos externos</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="Contexts" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Esta tag é opcional para aplicativos externos</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Context" type="xs:string" maxOccurs="unbounded"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Routes" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Esta tag é opcional para aplicativos externos</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Route" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                     <xs:element name="Destination" type="xs:string"></xs:element>
                                     <xs:element name="Context" type="xs:string"></xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="ApplicationType">
        <xs:sequence>
            <xs:element name="AppProgram">
                <xs:simpleType>                
                    <xs:restriction base="xs:string">
                        <xs:pattern value="(\S)+"></xs:pattern>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="ChannelProgram">
                <xs:simpleType>                
                    <xs:restriction base="xs:string">
                        <xs:pattern value="(\S)+"></xs:pattern>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="QueueProgram">
                <xs:simpleType>                
                    <xs:restriction base="xs:string">
                        <xs:pattern value="(\S)+"></xs:pattern>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="Properties" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>Esta tag é opcional para aplicativo interno</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Property"  maxOccurs="unbounded">                                                    
                            <xs:complexType>
                                <xs:simpleContent>
                                    <xs:extension base="xs:string">
                                        <xs:attribute name="category">
                                            <xs:annotation>
                                                <xs:documentation>Categoria à qual a propriedade se refere.
- Channel: propriedade relativa ao canal de comunicação com o aplicativo ao qual ela pertence.
- Application: propriedade relativa ao aplicativo.
- Input-Queue: propriedade relativa à fila de saída das mensagens.</xs:documentation>
                                            </xs:annotation>
                                            <xs:simpleType>
                                                <xs:restriction
                                                    base="xs:string">
                                                    <xs:enumeration
                                                        value="Channel">
                                                    </xs:enumeration>
                                                    <xs:enumeration
                                                        value="Application">
                                                    </xs:enumeration>
                                                    <xs:enumeration
                                                        value="Input-Queue">
                                                    </xs:enumeration>
                                                </xs:restriction>
                                            </xs:simpleType>
                                        </xs:attribute>
                                        <xs:attribute name="name" type="xs:string"></xs:attribute>
                                    </xs:extension>
                                </xs:simpleContent>                                
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Transactions">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Transaction" type="TransactionType" maxOccurs="unbounded"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="name" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:pattern value="(\S)+"></xs:pattern>
                </xs:restriction>
            </xs:simpleType>        
        </xs:attribute>
        <xs:attribute name="productName" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="logix"></xs:enumeration>
                    <xs:enumeration value="datasul"></xs:enumeration>
                    <xs:enumeration value="protheus"></xs:enumeration>
                    <xs:enumeration value="rm"></xs:enumeration>
                    <xs:enumeration value="LOGIX"></xs:enumeration>
                    <xs:enumeration value="DATASUL"></xs:enumeration>
                    <xs:enumeration value="PROTHEUS"></xs:enumeration>
                    <xs:enumeration value="RM"></xs:enumeration>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="productVersion" type="xs:string"></xs:attribute>
    </xs:complexType>
    
    <xs:complexType name="InternalIDType">
        <xs:sequence>
            <xs:element name="Table" type="xs:string"></xs:element>
            <xs:element name="KeyFields" type="xs:string"></xs:element>
            <xs:element name="ValueMappings" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ValueMapping" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="ExternalValue" type="xs:string"></xs:element>
                                    <xs:element name="InternalValue" type="xs:string"></xs:element>                                    
                                </xs:sequence>
                                <xs:attribute name="app" use="required">
                                    <xs:simpleType>
                                        <xs:restriction base="xs:string">
                                            <xs:pattern value="(\S)+"></xs:pattern>
                                        </xs:restriction>
                                    </xs:simpleType>
                                </xs:attribute>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="id" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:pattern value="(\S)+"></xs:pattern>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    
    <xs:complexType name="EaiConfigurationType">
        <xs:sequence>
            <xs:element name="Applications">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Application" type="ApplicationType" maxOccurs="unbounded"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="InternalIDs" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="InternalID" type="InternalIDType" maxOccurs="unbounded"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="instance" use="required">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:pattern value="(\S)+"></xs:pattern>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="EaiConfiguration" type="EaiConfigurationType"></xs:element>                    
</xs:schema>

...