Páginas filhas
  • 2. Conversor do EAI 1.0 para 2.0

Versões comparadas

Chave

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

Tempo aproximado para leitura: 00 min

01. Apresentação

O conversor do EAI 1.0 para 2.0 tem por finalidade disponibilizar acesso às novas rotinas de integração, convergir os pacotes de integração para aplicativos integrados, migrar as informações presentes na base para o novo modelo de dados e realizar os ajustes de base de dados necessários para cada pacote de integração instalado no EAI.

02. Acesso ao conversor

O acesso ao conversor de integrações é restrito a bases de dados que possuem o parâmetro de liberação, pois até o presente momento (fevereiro de 2019) ainda existem pacotes de integração não migrados para o


02.01. Análise de compatibilidade
Informações
titleCompatibilidade

A versão miníma exigida do RM para a conversão ao EAI 2.0

.

é 12.1.27 e do Protheus 12.1.25 (Lobo Guará)



A análise de compatibilidade do cliente com o EAI 2.0 deve ser realizada pelo consultor de implantação ou analista de suporte, que deve considerar as características:

  1. Todos os pacotes de integração utilizados pelo cliente devem estar disponíveis no EAI 2.0
  2. Caso haja planejamento de implantação de novos pacotes de integração, deve-se garantir que estes estejam disponíveis no EAI 2.0 até o prazo da implantação pois a conversão da base de dados é irreversível
  3. Verificar se o cliente possui customizações em suas Transformações XSLT ou nos SourceCodes
    1. Todas as customizações de integração do EAI 1.0 deverão ser re-codificadas pois o modelo de customização do EAI 2.0 não é retro-compatível.
02.02. 

Script de liberação
Caso após a análise acima seja constatado que o cliente é compatível com o EAI 2.0, deve-se solicitar ao suporte o script de liberação de acesso ao conversor.
Sem a execução deste script o menu de acesso não é

invisível

visível ao cliente.

02.03. Caminho do menu

O processo de conversão está disponível no contexto de integrações, na árvore de menus de Mensagem Única.

Image Removed 

03. Processo de conversão

O processo de conversão passa por 3 passos, melhor descritos nas sub-sessões a seguir.

03.01. Avisos e confirmação

A primeira etapa do processo de conversão é declarar-se ciente dos riscos e procedimentos de segurança.

 Image Removed

03.02. Parâmetros de execução  ÂncoraParametrosConversaoParametrosConversao

Ao passar do primeiro para o segundo passos o conversor tentará obter automaticamente (vide imagem abaixo) a informação do SourceApplication de cada pacote integrado a partir do envio de uma mensagem única WhoIs para o WebService parametrizado no pacote.

Image Removed

Logo após a consulta automática será apresentada a tela de parametrização da conversão, disponibilizando a lista de integrações a serem convertidas e a parametrização de mensagens a migrar para as novas tabelas.

Image Removed

Podemos observar que na imagem acima o pacote de integração não teve seu SourceApplication identificado automaticamente, devendo assim ser parametrizado de forma manual através do botão "Atualizar por Sistema Integrado".

O SourceApplication pode ser identificado a partir de uma Mensagem Única trafegada via EAI 1.0, copiando o conteúdo de uma Tag de mesmo nome.

Image Removed

A rotina de conversão não migrará mensagens com sucesso para a nova estrutura de tabelas, ficando a cargo do consultor no momento da conversão definir se deve-se ou não importar as mensagens de erro. É aconselhável que todas as análises do ambiente 1.0 sejam realizadas previamente, tornando assim a conversão das mensagens de erro desnecessárias.

03.03. Execução dos conversores por pacote de integração

Após finalizar da conversão por parte do EAI (dados de integração) serão executados os processos de conversão específicos de cada pacote de integração.

A ocorrência de erro em um dos processos por pacote de integração não fará com que a conversão por parte do EAI seja desfeita, ficando a cargo do consultor responsável pela conversão realizar os ajustes necessários e executar novamente o processo em questão.

04. Dados convertidos

O processo de conversão realiza a consolidação e migração de dados das tabelas do EAI 1.0 para o EAI 2.0.

Segue abaixo os dados trabalhados pelo conversor padrão do EAI:

    1. Conversão dos pacotes de integração
      1. Os pacotes de integração são convertidos em Aplicativos e Pacotes Instalados, conforme descrito no documento de Entidades Relacionadas.
    2. Conversão dos Mapas de integração para a tabela de Rotas.
    3. Cópia das informações de De-Para para a nova tabela.
    4. Cópia das informações de mensagens trafegadas para a nova estrutura de tabelas
      1. A cópia ou não destas informações depende da parametrização apresentada na sessão 03.02.
    5. Conversão de parâmetros e execução de scripts de conversão por transação
      1. São realizados procedimentos necessários para compatibilização entre o comportamento de adapters do EAI 1.0 com os novos adpters do EAI 2.0.
      2. Exemplo: O adapter de Centro de Custo possuía três versões diferentes que utilizavam três parâmetros diferentes para definir se utiliza código auto-incremental. O adapter do EAI 2.0 padronizou estes três parâmetros em um só e o conversor é responsável por gerenciar esta unificação.

05. Inclusão de novos pacotes ou transações

Durante os projetos de migração dos pacotes de integração do EAI 1.0 para o EAI 2.0 podem surgir necessidades específicas de adapters ou destes pacotes de integração. Estas necessidades devem ser analisadas e ter suas regras de negócio implementadas na respectiva sessão do conversor.

Os fontes do conversor estão disponíveis no projeto RM.EAI.TotvsMessage.Conversor.Server e as sub-sessões a seguir apresentam os pontos de desenvolvimento para cada necessidade.

05.01. Conversão de parâmetros de adapter

Este ponto de desenvolvimento deve ser utilizado para implementação de ajustes de base de dados relacionados a um adapter específico.

O fonte com o conversor do adapter deve seguir as regras citadas abaixo:

  • Estar disponível no mesmo projeto, dentro da estrutura de pastas "./ConverteEAI2/AdapterConverter"
  • Possuir o atributo "AdapterConverterAttr", definindo neste o nome da transação convertida.
  • Herdar da classe "EaiAdapterConverterBase"
  • Aviso
    titleClientes Stored

    Clientes que tem por origem Stored devem garantir a correta conversão a versão do EAI 1.0 antes de realizar a conversão para o EAI 2.0. Por exemplo o correto carregamento de De/Para na tabela HCINTEGRACAOID.


    02. Desabilitando fórmulas visuais 

    Image Added

    Gestão | Fórmula Visual | Fórmula Visual


    Selecionar a Fórmulas

    • Mensagem Padrão - Lançamentos Financeiros 1.002
    • Menssagem única - Obra / Etapa / Tarefa
    • Mensagem única - Projeto
    • Mensagem única - Contrato

     Inativar todas as Fórmulas

    02. Acesso ao conversor

    O acesso ao conversor de integrações é restrito a bases de dados que possuem o parâmetro de liberação, pois até o presente momento (fevereiro de 2019) ainda existem pacotes de integração não migrados para o EAI 2.0.

    02.01. Análise de compatibilidade

    A análise de compatibilidade do cliente com o EAI 2.0 deve ser realizada pelo consultor de implantação ou analista de suporte, que deve considerar as características:

      1. Todos os pacotes de integração utilizados pelo cliente devem estar disponíveis no EAI 2.0
      2. Caso haja planejamento de implantação de novos pacotes de integração, deve-se garantir que estes estejam disponíveis no EAI 2.0 até o prazo da implantação pois a conversão da base de dados é irreversível
      3. Verificar se o cliente possui customizações em suas Transformações XSLT ou nos SourceCodes
        1. Todas as customizações de integração do EAI 1.0 deverão ser re-codificadas pois o modelo de customização do EAI 2.0 não é retro-compatível.

    02.02. Script de liberação

    Caso após a análise acima seja constatado que o cliente é compatível com o EAI 2.0, deve-se solicitar ao suporte o script de liberação de acesso ao conversor. Sem a execução deste script o menu de acesso não é invisível ao cliente.

    02.03. Caminho do menu

    O processo de conversão está disponível no contexto de integrações, na árvore de menus de Mensagem Única.

    Image Added 

    03. Processo de conversão

    O processo de conversão passa por 4 passos, melhor descritos nas sub-sessões a seguir.

    03.01. Teste de comunicação dos serviços

    A primeira etapa, consiste nos teste de comunicação dos serviços do Ambiente do Protheus. basta informar a URL do Web Services e do serviços REST para testar a comunicação.

    Image Added

    03.02. Validação de compartilhamento das Entidades do Protheus

    Nesta etapa, ao clicar no botão iniciar validações é onde a Api Rest "ShareModeRest" entra em ação para obter os compartilhamento das tabelas no Protheus. 
    Na imagem abaixo, segue exemplo de resultado de compartilhamentos das tabelas do Protheus.


    Image Added

    03.03. Avisos e confirmação

    Nesta etapa do processo de conversão é declarar-se ciente dos riscos e procedimentos de segurança.


     Image Added

    03.04. Parâmetros de execução 
    Âncora
    ParametrosConversao
    ParametrosConversao

    Ao passar do segundo para o terceiro passo, o conversor tentará obter automaticamente (vide imagem abaixo) a informação do SourceApplication de cada pacote integrado a partir do envio de uma mensagem única WhoIs para o WebService parametrizado no pacote.

    Image Added


    Logo após a consulta automática será apresentada a tela de parametrização da conversão, disponibilizando a lista de integrações a serem convertidas e a parametrização de mensagens a migrar para as novas tabelas.

    Image Added


    Podemos observar que na imagem acima o pacote de integração não teve seu SourceApplication identificado automaticamente, devendo assim ser parametrizado de forma manual através do botão "Atualizar por Sistema Integrado".

    O SourceApplication pode ser identificado a partir de uma Mensagem Única trafegada via EAI 1.0, copiando o conteúdo de uma Tag de mesmo nome.

    Image Added


    A rotina de conversão não migrará mensagens com sucesso para a nova estrutura de tabelas, ficando a cargo do consultor no momento da conversão definir se deve-se ou não importar as mensagens de erro. É aconselhável que todas as análises do ambiente 1.0 sejam realizadas previamente, tornando assim a conversão das mensagens de erro desnecessárias.

    03.05. Execução dos conversores por pacote de integração

    Após finalizar da conversão por parte do EAI (dados de integração) serão executados os processos de conversão específicos de cada pacote de integração.

    A ocorrência de erro em um dos processos por pacote de integração não fará com que a conversão por parte do EAI seja desfeita, ficando a cargo do consultor responsável pela conversão realizar os ajustes necessários e executar novamente o processo em questão.

    04. Dados convertidos

    O processo de conversão realiza a consolidação e migração de dados das tabelas do EAI 1.0 para o EAI 2.0.

    Segue abaixo os dados trabalhados pelo conversor padrão do EAI:

      1. Conversão dos pacotes de integração
        1. Os pacotes de integração são convertidos em Aplicativos e Pacotes Instalados, conforme descrito no documento de Entidades Relacionadas.
      2. Conversão dos Mapas de integração para a tabela de Rotas.
      3. Cópia das informações de De-Para para a nova tabela.
      4. Cópia das informações de mensagens trafegadas para a nova estrutura de tabelas
        1. A cópia ou não destas informações depende da parametrização apresentada na sessão 03.02.
      5. Conversão de parâmetros e execução de scripts de conversão por transação
        1. São realizados procedimentos necessários para compatibilização entre o comportamento de adapters do EAI 1.0 com os novos adpters do EAI 2.0.
        2. Exemplo: O adapter de Centro de Custo possuía três versões diferentes que utilizavam três parâmetros diferentes para definir se utiliza código auto-incremental. O adapter do EAI 2.0 padronizou estes três parâmetros em um só e o conversor é responsável por gerenciar esta unificação.

    05. Inclusão de novos pacotes ou transações

    Durante os projetos de migração dos pacotes de integração do EAI 1.0 para o EAI 2.0 podem surgir necessidades específicas de adapters ou destes pacotes de integração. Estas necessidades devem ser analisadas e ter suas regras de negócio implementadas na respectiva sessão do conversor.

    Os fontes do conversor estão disponíveis no projeto RM.EAI.TotvsMessage.Conversor.Server e as sub-sessões a seguir apresentam os pontos de desenvolvimento para cada necessidade.

    05.01. Conversão de parâmetros de adapter

    Este ponto de desenvolvimento deve ser utilizado para implementação de ajustes de base de dados relacionados a um adapter específico.

    O fonte com o conversor do adapter deve seguir as regras citadas abaixo:

    1. Estar disponível no mesmo projeto, dentro da estrutura de pastas "./ConverteEAI2/AdapterConverter"
    2. Possuir o atributo "AdapterConverterAttr", definindo neste o nome da transação convertida.
    3. Herdar da classe "EaiAdapterConverterBase"
    4. Implementar a conversão internamente ao método "ConvertAdapter", definido na interface "IEaiAdapterConverter".

    Bloco de código
    languagec#
    firstline1
    titleExemplo de código: Conversor CustomerVendor
    linenumberstrue
    collapsetrue
    using RM.Eai.TotvsMessage.IService;
    using RM.Eai.TotvsMessage.Lib;
    using RM.Lib;
    using RM.Lib.Data;
    using System.Linq;
    using static RM.Eai.TotvsMessage.Conversor.Intf.EaiEnums;
    
    namespace RM.Eai.TotvsMessage.Conversor.Server
    {
      [AdapterConverterAttr(TransactionName="COSTCENTER")]
      public class EaiCostCenterConverter : EaiAdapterConverterBase
      {
        public EaiCostCenterConverter(RMSContext contextRM, IDbServices dbs, EAILog EAILog):base(contextRM,dbs,EAILog){ }
    
        public override void ConvertAdapter(EAIConversorInfo info)
        {
          UsaPCCusto(info);
        }
    
        /// <summary>
        /// Setar o parâmetro interno "USAPCCUSTO" para true quando os pacotes informados forem:
        /// TOTVS RH RM x Gestão de Pessoas Protheus
        /// TOTVS Folha pagto RM x Backoffice Protheus
        /// TOTVS Folha pagto RM x Backoffice Logix
        /// <param name="info">Informações de conversão</param>
        private void UsaPCCusto(EAIConversorInfo info)
        {
          AddLog(null, Properties.Resources.sEaiCaptionParametroUsaPccusto, TypeLogEnum.tyInfo);
          if (!ExistParam(0, "USAPCCUSTO"))
          {        
            if (info.Apps.SelectMany(app => app.InstallPackage).Any(pacote => EaiPacotesIntegracao.Enum(pacote.IDIntegracao.ToString()) == EaiPacotesIntegracaoEnum.RHRMxFieldService
                     
    Implementar a conversão internamente ao método "ConvertAdapter", definido na interface "IEaiAdapterConverter".
    Bloco de código
    languagec#
    firstline1
    titleExemplo de código: Conversor CustomerVendor
    linenumberstrue
    collapsetrue
    using RM.Eai.TotvsMessage.IService;
    using RM.Eai.TotvsMessage.Lib;
    using RM.Lib;
    using RM.Lib.Data;
    using System.Linq;
    using static RM.Eai.TotvsMessage.Conversor.Intf.EaiEnums;
    
    namespace RM.Eai.TotvsMessage.Conversor.Server
    {
      [AdapterConverterAttr(TransactionName="COSTCENTER")]
      public class EaiCostCenterConverter : EaiAdapterConverterBase
      {
        public EaiCostCenterConverter(RMSContext contextRM, IDbServices dbs, EAILog EAILog):base(contextRM,dbs,EAILog){ }
    
        public override void ConvertAdapter(EAIConversorInfo info)
        {
          UsaPCCusto(info);
        }
    
        /// <summary>
        /// Setar o parâmetro interno "USAPCCUSTO" para true quando os pacotes informados forem:
        /// TOTVS RH RM x Gestão de Pessoas Protheus
        /// TOTVS Folha pagto RM x Backoffice Protheus
        /// TOTVS Folha pagto RM x Backoffice Logix
        /// <param name="info">Informações de conversão</param>
        private void UsaPCCusto(EAIConversorInfo info)
        {
          AddLog(null, Properties.Resources.sEaiCaptionParametroUsaPccusto, TypeLogEnum.tyInfo);
          if (!ExistParam(0, "USAPCCUSTO"))
          {        
            if (info.Apps.SelectMany(app => app.InstallPackage).Any(pacote => EaiPacotesIntegracao.Enum(pacote.IDIntegracao.ToString()) == EaiPacotesIntegracaoEnum.RHRMxFieldService
                                                                            || EaiPacotesIntegracao.Enum(pacote.IDIntegracao.ToString()) == EaiPacotesIntegracaoEnum.FolhaPagtoRMxBackOfficeProtheus
                                                                            || EaiPacotesIntegracao.Enum(pacote.IDIntegracao.ToString()) == EaiPacotesIntegracaoEnum.RHRMxBackOfficeLogix))          
            {
              CreateParams(0, "USAPCCUSTO", "Boolean", "True");
            }
            else
            {
              CreateParams(0, "USAPCCUSTO", "Boolean", "False");
         || EaiPacotesIntegracao.Enum(pacote.IDIntegracao.ToString()) == }EaiPacotesIntegracaoEnum.FolhaPagtoRMxBackOfficeProtheus
          }
          }
      }
    }
    
    05.02. Conversão de scripts por Pacote de Integração

    Este ponto de desenvolvimento é reservado para ajustes específicos de um pacote de integração que devem ser executados na mesma transação dos scripts do EAI, como ajustes de roteamento e de parâmetros de integração.

    Estes ajustes devem ser adicionados como uma sessão no método "ExecutarScriptsPacotes" da classe "EAIConverteEAI2", conforme exemplo de código abaixo.

    Bloco de código
    languagec#
    firstline1
    titleExemplo de código: Pacote TOP x Protheus
    linenumberstrue
    collapsetrue
    ...
    
        private void ExecutarScriptsPacotes(EAIConversorInfo infos)
                                                                    || EaiPacotesIntegracao.Enum(pacote.IDIntegracao.ToString()) == EaiPacotesIntegracaoEnum.RHRMxBackOfficeLogix))          
            {
              CreateParams(0, "USAPCCUSTO", "Boolean", "True");
            }
            else
            {
          EAIConverterRepository convRep = new EAIConverterRepositoryCreateParams(ContextRM0, Dbs"USAPCCUSTO", ConvertContext"Boolean", EAILog"False");
    
          #region Atualiza parâmetros}
     da integração do TOP x Protheus}
        }
      }
    }
    


    05.02. 
    Conversão de scripts por Pacote de Integração

    Este ponto de desenvolvimento é reservado para ajustes específicos de um pacote de integração que devem ser executados na mesma transação dos scripts do EAI, como ajustes de roteamento e de parâmetros de integração.

    Estes ajustes devem ser adicionados como uma sessão no método "ExecutarScriptsPacotes" da classe "EAIConverteEAI2", conforme exemplo de código abaixo.

    Bloco de código
    languagec#
    firstline1
    titleExemplo de código: Pacote TOP x Protheus
    linenumberstrue
    collapsetrue
    ...EAIAppItem app = infos.Apps.FirstOrDefault(x => x.InstallPackage.Any(pacote => pacote.IDIntegracao == 1002));
          if (app != null)
          {
            AddLog(null, Properties.Resource1.SEaiInicioAtualizacaoParamTOPxProtheus, TypeLogEnum.tyInfo);
    
        private void ExecutarScriptsPacotes(EAIConversorInfo infos)
     #region Update de parâmetros{
     de tipo de movimento
      EAIConverterRepository convRep = new EAIConverterRepository(ContextRM,  Dbs.QueryExec($@"
      Dbs, ConvertContext, EAILog);
    
          #region Atualiza UPDATE
    parâmetros da integração do TOP        MCNTx Protheus
          EAIAppItem app =  SET
         infos.Apps.FirstOrDefault(x => x.InstallPackage.Any(pacote => pacote.IDIntegracao == 1002));
          if IDMOVDEFAULT(app != '2.1.01',null)
          {
           TIPOMOVRETDEFAULT = '2.2.06',
    AddLog(null, Properties.Resource1.SEaiInicioAtualizacaoParamTOPxProtheus, TypeLogEnum.tyInfo);
    
            #region Update de parâmetros de RECMODIFIEDONtipo =de $DATE,movimento
                RECMODIFIEDBY = :RECMODIFIEDBYDbs.QueryExec($@"
              WHEREUPDATE
                TIPOMCNT
     = 'R'",
            ContextRM.CodUsuario);SET
            #endregion
    
        IDMOVDEFAULT    #region Parâmetros de integração= '2.1.01',
            Dbs.QueryExec($@"
        TIPOMOVRETDEFAULT = '2.2.06',
        UPDATE
            RECMODIFIEDON =   MPARAMETRO$DATE,
              SET
      RECMODIFIEDBY = :RECMODIFIEDBY
            VALORINT = 0,WHERE
                RECMODIFIEDONTIPO = $DATE'R'",
            ContextRM.CodUsuario);
          RECMODIFIEDBY = :RECMODIFIEDBY#endregion
    
            #region Parâmetros WHEREde integração
            Dbs.QueryExec($@"
        PARAMETRO = 'ENVIARRETENCAODESCONTO'",
        UPDATE
        ContextRM.CodUsuario);
    
            #endregion
    MPARAMETRO
            #region Atualização deSET
     versões de mensagem e rotas
           VALORINT List<EAITransactionItem>= lstTransaction0,
     = new List<EAITransactionItem>();
            List<EAITransactionVersionItem> lstTransactionVersionRECMODIFIEDON = new List<EAITransactionVersionItem>();
    $DATE,
               List<EAITransactionAppItem> lstTransactionAppRECMODIFIEDBY = new List<EAITransactionAppItem>();:RECMODIFIEDBY
            EAITransactionItem transaction = null;WHERE
            EAITransactionVersionItem transactionVersion = null;
     PARAMETRO = 'ENVIARRETENCAODESCONTO'",
         EAITransactionAppItem transactionApp = nullContextRM.CodUsuario);
    
            #endregion
    
       #region Criação da rota para a#region mensagemAtualização ORDERde naversões versãode 3.007 (anteriormente 3.004)
    mensagem e rotas
            List<EAITransactionItem> transactionlstTransaction = new convRep.GetTransaction("ORDER"List<EAITransactionItem>();
            ifList<EAITransactionVersionItem> (transactionlstTransactionVersion != null)
     new List<EAITransactionVersionItem>();
            List<EAITransactionAppItem> lstTransactionApp = new {List<EAITransactionAppItem>();
            EAITransactionItem  transactionVersiontransaction = convRep.GetTransactionVersion("ORDER", "3.007")null;
            EAITransactionVersionItem  if (transactionVersion != null);
            EAITransactionAppItem transactionApp = {null;
    
            #region Criação da  //Limpa a rota para inclusão da nova versãorota para a mensagem ORDER na versão 3.007 (anteriormente 3.004)
            transaction =   DbsconvRep.QueryExecGetTransaction($@"ORDER");
            if (transaction     DELETE!= null)
                    GEAITRANSACAOAPP{
              transactionVersion = convRep.GetTransactionVersion("ORDER", "3.007");
      WHERE
            if (transactionVersion != null)
           IDAPP  = :IDAPP{
                //Limpa a rota para ANDinclusão IDTRANSACAOda = :IDTRANSACAO",nova versão
                app.ID,Dbs.QueryExec($@"
                transaction.ID);
    
      DELETE
                   transactionApp = convRep.CreateTransactionAppObj(app, transaction, transactionVersion, EnabledModeEnum.emSend);
    GEAITRANSACAOAPP
                  WHERE
      if  (transactionApp != null)
              IDAPP = {:IDAPP
                  lstTransaction.Add(transaction);
      AND IDTRANSACAO = :IDTRANSACAO",
             lstTransactionVersion.Add(transactionVersion);   app.ID,
                  lstTransactionApp.Add(transactionApptransaction.ID);
    
                 }transactionApp = convRep.CreateTransactionAppObj(app, transaction, transactionVersion, EnabledModeEnum.emSend);
              }
      if (transactionApp != null)
        }
            #endregion{
    
            //Atualiza base de dados
            convRep.CreateDBTransactions(lstTransaction);
            convRep.CreateDBTransactionsVersion(lstTransactionVersion);
            convRep.CreateDBTransactionsApp(lstTransactionApp);
    
            #endregion
    
            AddLog(null, Properties.Resource1.SEaiFimAtualizacaoParamTOPxProtheus, TypeLogEnum.tyInfo);
          }        
          #endregion
        }
    
    
    ...
    05.03. Processos de conversão específicos por pacote de integração
                  lstTransaction.Add(transaction);
                  lstTransactionVersion.Add(transactionVersion);
                  lstTransactionApp.Add(transactionApp);
                }
              }
            }
            #endregion
    
            //Atualiza base de dados
            convRep.CreateDBTransactions(lstTransaction);
            convRep.CreateDBTransactionsVersion(lstTransactionVersion);
            convRep.CreateDBTransactionsApp(lstTransactionApp);
    
            #endregion
    
            AddLog(null, Properties.Resource1.SEaiFimAtualizacaoParamTOPxProtheus, TypeLogEnum.tyInfo);
          }        
          #endregion
        }
    
    
    ...


    05.03. Processos de conversão específicos por pacote de integração

    Após finalizar a execução do processo de conversão do EAI são executadas também todas as actions de processos parametrizadas para os pacotes de integração convertidos. Este fluxo de execução deve ser utilizado na conversão de informações que necessitem de iteração do usuário, para processamentos de longa duração ou que devam ser executados fora da transação do conversor padrão.


    Aviso
    titleAtenção!

    A execução dos processos de conversão específicos por pacote de integração é realizada pelo Client, estando assim fora da transação original e não realizando nenhum tipo de tratamento de erros.

    Todo o tratamento de erro dos processos deve estar contidos na execução do próprio, como por exemplo o travamento da integração até a re-execução com sucesso do processo.


    Passos para desenvolvimento de um processo de conversão específico:

    1. Desenvolvimento do Processo
      1. Deve-se passar por todo o desenvolvimento padrão de um Processo da Framework RM, como o desenvolvimento do Form, ParamsProc, Process e a Action.
      2. Este processo deve conter todas as regras de negócio necessárias, bem como o tratamento de erros.
    2. Adição da Action desenvolvida no retorno do método "GetProcessBeforeConvertEai2" do server "EAIConversorServer".
      1. Este é o método responsável por retornar a lista de Actions a serem executadas.

    06. Assuntos Relacionados