Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

(Obrigatório)

Informações Gerais

 

Especificação

Produto

FRAMEWORK

Módulo:

EAI

Segmento Executor

 

Projeto1

R_FRW_FRW002

IRM

PCREQ-9646

Requisito1

PCREQ-9648

Subtarefa:

PDR_FRW_FRW002-52

Chamado2

 

País

(X ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

Objetivo:

Melhorar as mensagens de erros erro do EAI e propor um mecanismo de geração e gravação de logs de execução de mensagens do EAI. 

 

Definição da Regra de Negócio

Introdução

Será utilizado o padrão de SysLog para geração dos Logs do EAI da RM.

Trata-se de um padrão definido pelo pela Totvs para implementação de mecanismos de geração de loglogs.

Esse padrão foi implementado pela  Lib RM e na Lib RM,  e atualmente diversos recursos da Lib utilizam do o mesmo. ex: DataServers, Host, Process, Jobs, etc.


Definição da Regra de Negócio


1) - Ativação Regras para ativação do log do EAI:


a) Atributo "TRACESYSLOG":

O atributo "TRACESYSLOG" (disponível nos arquivos de configuração do Host) deve ser ativado (TRACESYSLOG" = true).

Isso possibilitará o uso do padrão SysLog nos processos do ERP, inclusive nas rotinas do EAI.


b) - Atributo "TRACESYSLOGDEBUG":

 

O atributo "TRACESYSDEBUG" (disponível nos arquivos de configuração do Host) permitirá que informações de debug sejam também logadas.

A ativação desse atributo causará permitirá a produção de logs mais detalhados, aumentando assim o volume dos logs gerados.


c) Atributo "TRACESYSLOGEAI":

Será criado o atributo "TRACESYSLOGEAI" nos arquivos de configuração do Host.

Por default, esse atributo estará desligado = "Falsefalse". 

Quando estiver ligado = "true", as mensagens de log do EAI serão geradas e gravadas na nova tabela de Log do EAI "HcLogMensagem".

Caso contrário, nenhum log será gravado na tabela de log do EAI.


2) - Estrutura de tabelas


a) - Criação da tabela: HCMonitor.

      Uma linha nessa tabela indicará um "monitoramento de uma determinada ação no EAI". Basicamente essa tabela será usada para agrupar mensagens relacionadas;

   

        Informações principais:

          ID- Identificador do monitor
          IDPROCESSO Identificador do processo

 ExemploCenário:

      - No RM o usuário cadastra um novo centro de custo (COSTCENTER 2.000); - Existem duas integrações Em um determinado cliente existem duas integrações mapeadas para a mensagem  COSTCENTER  "COSTCENTER 2.000; - O EAI será chamado para executar o envio da " (mensagem de centro de custo);

  - Será gerada uma única linha na tabela HCMonitor (responsável em agrupar as mensagens geradas na fila);

 - Serão geradas duas linhas na fila HCFilaMensagem (uma linha para cada integração mapeada);

 

b)-   Criação da coluna "MonitorID" na tabela "HCFilaMensagem" com referência para tabela HCMonitor;

     A mensagem gravada na fila (HCFilaMensagem) está vinculada a uma informação de monitor.

 

c) - Criação da tabela: HCLogMensagem.

   Todos os logs gerados para uma determinada mensagem serão gravados nessa tabela.

     Uma linha nessa tabela indicará uma única mensagem de log, ou seja, várias linhas serão incluídas nessa tabela para cada tentativa de execução da mensagem.

      Informações principais:

          UUID- Identificador da mensagem na fila
          SEQUENCIAL- Compor chave primária

         DATAMENSAGEM: Data e hora da geração do log
        TIPOLOG : Tipo da mensagem de log [error, warning, info, danger]

                Error: Mensagem de erro

               Warning: Mensagem de aviso

             Integração A: RM ---> Protheus

               Integração B: RM —> DataSul

      - Ao cadastrar um centro de  custo no RM, ocorrerá o seguinte:

  • O EAI RM será chamado para executar o envio da mensagem de centro de custo;
  • Será gerada uma única linha na tabela HCMonitor (responsável em agrupar as mensagens geradas na fila);
  • Serão geradas duas linhas na fila HCFilaMensagem (uma linha para cada integração mapeada);

 

b)-   Criação da coluna "MonitorID" na tabela "HCFilaMensagem" com referência para tabela HCMonitor;

     As mensagens gravadas na fila (HCFilaMensagem) estarão vinculadas a uma informação de monitor (HCMonitor).

 

c) - Criação da tabela: HCLogMensagem.

   Todos os logs gerados para uma determinada mensagem serão gravados nessa tabela.

     Uma linha nessa tabela indicará uma única mensagem de log, ou seja, várias linhas serão incluídas nessa tabela para cada tentativa de execução da mensagem.

      Informações principais:

          UUID- Identificador da mensagem na fila
          SEQUENCIAL- Compor chave primária

         DATAMENSAGEM: Data e hora da geração do log

        LOCALIZACAO: região do eai que gerou a mensagem

        TIPOLOG : Tipo da mensagem de log [error, warning, info]

                    Info: 0 - Mensagem de informação

              Danger: Perigo        INFOLOG Warning: mensagem de log.

       DEBUGINFO: Informações de debug

3) - Mapeamento dos logs gerados pela engine do EAI

Abaixo serão listados todos os logs a serem disponibilizados durante o processo de gravação e execução da mensagem. 

Informações

Todas as mensagens de erro logadas serão acompanhadas de seus respectivos erros técnicos (exceções geradas).

Informações

A coluna "Todas as marcas" indicará se o log deve ou não ser implementado nos EAIs das outras marcas.

 

a) - Informações de log disponibilizadas durante o processo de "Recebimento de mensagens":

1 - Mensagem de aviso

                  Error: 2 - Mensagem de erro

       INFOLOG: mensagem de log.

       INFODEBUG: Informações de debug. Nesse campo serão gravadas informações de valores de variáveis, propriedades de objetos, contextos existentes no momento da geração do log.


 

3) - Geração de logs customizados:


a) - Será disponibilizada na classe "HandleServices" (localizada no projeto: RM.Con.TotvsMessage.IServices" uma instância para o objeto "LogServices".

Informações

Um objeto da classe "HandleServices" está disponível atualmente nos extensions e estará disponível nas futuras classes de adapters.

 

b) - Será disponibilizado no objeto "LogServices" três métodos: 

       - WriteTraceInformation: responsável pelo envio de mensagens de informação;

       - WriteTraceError: responsável pelo envio de mensagens de erro;

      - WriteTraceWarning: responsável pelo envio de mensagens de aviso;

        Esses métodos recebem como parâmetro os seguintes dados:

    • Identificador do monitor : disponível no contexto global do EAI. (this.TotvsMessageContext.Monitor.MonitorId);
    • Mensagem de log: texto contendo a mensagem de log;
    • Informações de debug: Devem ser enviadas no seguinte formato: "Identificação da inf. de debug", "Valor da informação de debug";

 

   Segue abaixo um exemplo de criação customizada de logs nos adapters / extensions:

Image Added



4) - Mapeamento dos logs gerados pela engine do EAI

Abaixo serão listados todos os logs a serem disponibilizados durante o processo de gravação e execução da mensagem. 

Informações

Todas as mensagens de erro logadas serão acompanhadas de seus respectivos erros técnicos (exceções geradas).

Informações

A coluna "Todas as marcas" indicará se o log deve ou não ser implementado nos EAIs das outras marcas.

 

a) - Informações de log disponibilizadas durante o processo de "Recebimento de mensagens":

Localização

Mensagem

Tipo de menagem

E - Erro

A - Aviso

I - Informação

Todas as marcas

Fila

INÍCIO DO PROCESSO DE SALVAR MENSAGEM DE RECEBIMENTO NA FILA

I

Sim

Fila

Xml recebido é válido

I

Sim

Fila

Xml recebido não é válido

E

Sim

FilaIntegrações recuperadas.ISim
FilaId da integração recuperadaINão
FilaNão foi possível localizar nenhuma integração.ESim
FilaNão foi encontrada nenhuma entidade mapeada.ENão
FilaMapa de integração carregado.INão
FilaErro ao carregar mapa de integração.ENão
FilaXSLT de entrada não foi preenchido.ENão
FilaRecebimento de mensagem assíncrona.ISim
FilaEvento CanSaveQueue será executado.INão
FilaMensagem gravada na fila.ISim
FilaErro ao salvar mensagem na fila.ESim
FilaFIM DO PROCESSO DE SALVAR MENSAGEM NA FILA.ISim
Inicializando execução INÍCIO DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE RECEBIMENTO.Sim 
Inicializando execução Mensagem recuperada da fila.ISim
Validação de execuçãoNão foi encontrada nenhuma entidade mapeada.ENão
Validação de execuçãoMapa de integração carregado.INão
Validação de execuçãoErro ao carregar mapa da integração.ENão
Validação de execuçãoEvento CanExecuteQueue executadoINão
Validação de execuçãoEntidade não mapeadaENão
Validação de execuçãoXSLT de entrada não foi preenchido.ENão
Preparação de contextoPreparação de contexto. INão
Preparação de contextoColigada e filial recuperados.INão
Preparação de contextoAlterando código de todas as coligadas e filiais encontradas.

Localização

Mensagem

Tipo de menagem

(E) - Erro

A - (Aviso)

I - (Informação)

Todas as marcas

Fila

INÍCIO DO PROCESSO DE SALVAR MENSAGEM DE RECEBIMENTO NA FILA

I

Sim

Fila

Xml recebido é válido

I

Sim

Fila

Xml recebido não é válido

E

Sim

FilaInformação das integrações recuperadasISim
FilaId da integração recuperadaINão
FilaNão foi possível localizar nenhuma integraçãoESim
FilaNão foi encontrado nenhuma entidade mapeadaENão
FilaMaoa de integração carregadoINão
FilaErro ao carregar mapa de integraçãoENão
FilaXSLT de entrada está vazioENão
FilaRecebimento de mensagem assincronaISim
FilaEvento CanSaveQueue será executadoINão
FilaMensagem gravada na filaISim
FilaErro ao salvar mensagem na filaESim
FilaFim do processo de salvar mensagem de recebimento na filaISim
Execução Início do processo de execução da mensagem de recebimentoSim 
Execução Mensagem recuperada da filaISim
Preparação de informaçõesNão foi encontrado nenhuma entidade mapeada + Erro técnicoENão
Preparação de informaçõesMapa de integração carregadoINão
Preparação de informaçõesErro ao carregar mapa da integraçãoENão
Preparação de informaçõesEvento CanExecuteQueue executadoINão
Preparação de informaçõesEntidade não mapeadaENão
Preparação de informaçõesXSLT de entrada vazioENão
Preparação de contextoPreparação de contextoINão
Preparação de contextoColigada e filial recuperadosINão
Preparação de contextoAlterando código de todas as coligadas e filiais encontradasINão
Preparação da execuçãoEvento BeforeExecuteHandle será executadoINão
Preparação da execuçãoInício da execução do manipulador (handle)!INão
Preparação da execuçãoManipulador (Handle) de 'DataServer' definido!INão
Preparação da execuçãoManipulador (Handle) de 'Process' definido!INão
Preparação da execuçãoManipulador (Handle) de 'Module' definido!INão
Preparação da execuçãoManipulador (Handle) de 'CustomHandle' definido!INão
Preparação da execuçãoContexto da RM (RMSContext) criado:INão
Preparação da execuçãoInicio do processo de transformação via xslt!INão
Preparação da execuçãoEvento BeforeTransformReceive BeforeExecuteHandle será executado!.INão
Preparação da execuçãoEvento BeforeTransformReceive será executado!Início da execução do manipulador (handle)INão
Preparação da execuçãoEvento AfterTransformReceive será executadoManipulador (Handle) de 'DataServer' definido!INão'
Preparação da execuçãoEvento AfterTransformDataSet será executadoManipulador (Handle) de 'Process' definido!INão
Preparação da execuçãoFim do processo de transformaçaõ via xsltManipulador (Handle) de 'Module' definido!INão
Preparação da execuçãoDataSet vazioENãoManipulador (Handle) de 'CustomHandle' definido!INão
Preparação da execuçãoContexto da RM (RMSContext) criado:INão
Preparação da execuçãoInicio do processo de transformação via xsltExecução de dataServerInício da execução do manipulador de Dataserver!INão
Preparação da execuçãoEvento BeforeTransformReceive será executado!Execução de dataServerExecutando dataServer:", "Nome do dataServerINãoExecução de dataServer
Preparação da execuçãoEvento BeforeSave BeforeTransformReceive será executado!INão
Preparação da execuçãoEvento AfterTransformReceive será executadoExecução de dataServerSchema do dataServer recuperado!INão'
Preparação da execuçãoEvento AfterTransformDataSet será executado!Execução de dataServerInício da recuperação dos valores da chave primáriaINão
Preparação da execuçãoFim do processo de transformaçaõ via xsltExecução de dataServerValor Chave primária:INão
Execução de dataServerFim da recuperação dos valores da chave primáriaINão
Preparação da execuçãoDataSet está vazioENão
Executando handle de dataServerInício da execução do manipulador de DataserverExecução de dataServerPreechimento dos relacionamentos!INão
Execução Executando handle de dataServerLinha principal do dataSet em estado de exclusão!Executando o dataServer + "Nome do dataServer"INão
Execução Executando handle de dataServerLinha principal do dataSet em estado de alteraçãoEvento BeforeSave será executado!INão
Execução Executando handle de dataServerLinha principal do dataSet em estado de inclusãoSchema do dataServer recuperado!INão
Execução Executando handle de dataServerMétodo 'SaveRecord' do dataServer executado:Início da recuperação dos valores da chave primáriaINão
Executando handle de dataServerValor Chave primária:[serão informados os valores da chave primária"INão
Executando handle de dataServerFim da recuperação dos valores da chave primáriaDe/ParaAtualizando De/Para da tabelaISim
De/ParaA coluna 'INTERNALID' não existe no dataSet a ser enviado para o DataServer. O De/Para não será atualizado!ANão
De/ParaNão existe chave primária na tabela. O De/Para não será atualizado!ANão
De/ParaInformações do De/Para a ser gravado:ISim
De/ParaInformações do De/Para serão excluídasISim
De/ParaErro ao atualizar De/ParaESim
Execução de dataServerEvento AfterSave será executadoINão
Execução de dataServerFim da execução do manipulador de Dataserver!INão
Execução de processServerInício da execução do manipulador de processINão
Execução de processServerEvento BeforeExecute será executadoINão
Execução de processServerFim da execução do manipulador de processINão
Não
Executando handle de dataServerPreechimento dos relacionamentos!INão
Executando handle de dataServerLinha principal do dataSet em estado de exclusão!INão
Executando handle de dataServerLinha principal do dataSet em estado de alteração!INão
Executando handle de dataServerLinha principal do dataSet em estado de inclusão!INão
Executando handle de dataServerMétodo 'SaveRecord' do dataServer executado:INão
Atualização De/ParaAtualizando De/Para da tabela + "Nome da tabela"ISim
Atualização De/ParaA coluna 'INTERNALID' não existe no dataSet a ser enviado para o DataServer. O De/Para não será atualizado!ANão
Atualização De/ParaNão existe chave primária na tabela. O De/Para não será atualizado!ANão
Atualização De/ParaInformações do De/Para a serem gravados:[dados do de/para]ISim
Atualização De/ParaInformações do De/Para serão excluídasISim
Atualização De/ParaErro ao atualizar De/ParaESim
Executando handle de dataServerEvento AfterSave Execução de processServeEvento AfterExecute será executadoINão
Execução Executando handle de móduledataServerInício Fim da execução do manipulador de moduleDataserver!INão
Execução Executando handle de móduleEvento BeforeExecuteMethod será executadoProcessoInício da execução do manipulador de processo.INão
Execução de handle de móduleProcessoEvento AfterExecuteMethod BeforeExecute será executadoINão
Execução de handle de móduleProcessoFim da execução do manipulador de module!processINão
Execução Erro ao executar manipulador (handle)de handle de ProcessoEvento AfterExecute será executadoIENãoResposta
Execução de handle de móduleInício da recuperação execução do xml manipulador de respostamoduleINãoResposta
Execução de handle de móduleEvento CreateResponse BeforeExecuteMethod será executadoI'Não
Execução de handle de móduleEvento AfterExecuteMethod será executadoRespostaInício da construção da tag ReturnContent do dataServer!INão
Execução de handle de móduleFim da execução do manipulador de module!RespostaInformações do internalId.ISimNãoRespostaFim da construção da tag ReturnContent do dataServer
Finalizando execuçãoErro ao executar manipulador (handle)EINãoResposta
Gerrando respostaFim Início da recuperação do xml de respostaISimExecuçãoFim da execução do manipulador (handle)INãoExecução
Gerrando respostaEvento AfterExecuteHandle CreateResponse será executado!I'Não
Gerrando respostaInício da construção da tag ReturnContent do dataServer!ExecuçãoInformações de execução da mensagem foram gravadas na filaINãoExecução
Gerrando respostaInformações de execução da mensagem.do internalId. Dados do internalIdISim
Gerrando respostaFim da construção da tag ReturnContent do dataServerExecuçãoFIM DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE RECEBIMENTO!ISimNão
    

 

b) - Informações de log disponibilizadas durante o processo de "Envio de mensagens":

 

Gerrando respostaFim da recuperação do xml de respostaISim
Finalizando execuçãoFim da execução do manipulador (handle)INão
Finalizando execuçãoEvento AfterExecuteHandle será executado!INão
Finalizando execuçãoInformações de execução da mensagem foram gravadas na filaINão
Finalizando execuçãoInformações de execução da mensagem.ISim
Finalizando ExecuçãoFIM DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE RECEBIMENTO

Localização

Mensagem

Tipo de menagem

(E) - Erro

A - (Aviso)

I - (Informação)

Todas as marcas

Fila

INÍCIO DO PROCESSO DE SALVAR MENSAGEM DE ENVIO NA FILA

I

Sim

FilaRecuperação das integraçõesISimFilaMensagem não foi gravada na fila, pois não existe integração mapeada
!ISim
    

 

b) - Informações de log disponibilizadas durante o processo de "Envio de mensagens":

 

Localização

Mensagem

Tipo de menagem

(E) - Erro

A - (Aviso)

I - (Informação)

Todas as marcas

Fila

INÍCIO DO PROCESSO DE SALVAR MENSAGEM DE ENVIO NA FILA

I

Sim

FilaRecuperação das integraçõesISim
FilaMensagem não foi gravada na fila, pois não existe integração mapeada!
FilaEntidade não foi mapeadaENão
FilaMapa de integração carregado.INão
FilaErro ao carregar mapa de integraçãoENão
FilaExecutando mensagem da integração. [Serão listados os dados da integração]INão
FilaEvento CanSaveQueue será executado!ENão
FilaMensagem gravada na filaISim
FilaErro ao salvar mensagem na filaEntidade não foi mapeadaESimNão
FilaDados da mensagem gravada. [Serão listados os dados da mensgem gravada na fila]ISim
FilaFIM DO PROCESSO DE SALVAR MENSAGEM DE ENVIO NA FILAISim
Mapa de integração carregado.INão
FilaErro ao carregar mapa de integraçãoENão
FilaExecutando mensagem da integração. [Serão listados os dados da integração]INão
FilaEvento CanSaveQueue será executado!ENão
FilaMensagem gravada na filaISim
FilaErro ao salvar mensagem na filaESim
FilaDados da mensagem gravada. [Serão listados os dados da mensgem gravada na fila]ISim
FilaFIM DO PROCESSO DE SALVAR MENSAGEM DE ENVIO NA FILAISim
Inicializando execuçãoExecução mensagemINICIO DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE ENVIO NA FILA!ISimExecução
mensagemInicializando execuçãoMensagem recuperada da fila!ISimExecução
mensagemInicializando execuçãoExecução da mensagem de forma sincrona!ISimExecução
mensagemInicializando execuçãoExecução da mensagem de forma assincrona!ISimCarga Informações
Validação de execuçãoEntidade não mapeadaENãoCarga Informações
Validação de execuçãoMapa de integração carregado.INãoCarga Informações
Validação de execuçãoErro na carga de informaçõesENãoCarga Informações
Validação de execuçãoEvento CanExecuteQueue será executado!INão
Preparação de contextoColigada não foi encontrada no dataSet enviado pelo produto!ANão
Preparação de contextoFilial não foi encontrada no dataSet enviado pelo produto!ANão
Preparação de contextoColigada e filial recuperadosINão
Preparação de contextoInício da execução do manipulador (handle)INão
Preparação de contextoInicio do processo de transformação via xslt!INão'
Preparação de contextoEvento BeforeTransformSend será executado!INão
Preparação de contextoEvento AfterTransformSend será executado!INão
Preparação de contextoFim do processo de transformação via xslt!INão
Execução handle WebServicesInício da execução do manipulador de WebServices!INão
Execução handle WebServicesEvento BeforeSendWebService será executado!INão
Execução handle WebServicesInicio da execução do webServices!INão
Execução handle WebServicesObjeto wsdl não gerado!ENão
Execução handle WebServicesInformações do assemblyProxy não encontradas!ENão
Execução handle WebServicesProxy não recuperado!ENão
Execução handle WebServicesFim da execução do webServices!ISim
Execução handle WebServicesEvento AfterSendWebService será executado!INão
Execução handle WebServicesErro ao executar manipulador (handle):ENão
Construção Validação da respostaA resposta da execução do WebServices foi bem sucedida!ISim
Construção Validação da respostaErro ao realizar parser da resposta da mensagem (ResponseMessage):ESim
Construção Validação da respostaInformações retornadas na resposta da mensagem:[Serão listadas as informações retornas de InternalId]ISim
Atualização De/ParaInício do processo de salvar De/para!ISim
Atualização De/ParaAtributo 'ListOfInternalId' retornado no conteúdo da resposa da mensagem!ISim
Atualização De/ParaInformações do De/Para a ser gravado:[Serão listados dados do De/para]ISim
Atualização De/ParaTabela não existente no dataSet original da mensagem:ANão
Atualização De/ParaDe/para não atualizado. Indentificador do internalId não localizado na lista!ANão
Atualização De/ParaDe/Para excluído com sucesso!ISim
Atualização De/ParaExclusão de De/Para não retornou nenhum valor!ASim
Atualização De/ParaNão foi possível encontrar valores no de/para para exclusão!ASim
Atualização De/ParaValor do 'internalId' não foi encontrado!ANão
Atualização De/ParaCampo 'InternalId' não foi encontrado no dataSet de transformação!ANão
Atualização De/ParaCampos chaves do De/Para não foram informados!ANão
Atualização De/ParaNão foi encontrada a tabela no dataSet originalANão
Atualização De/ParaTabela não encontrada no dataSet original:ANão
Atualização De/ParaDe/para não atualizado. Atributo 'ListOfInternalId' não retornado no conteúdo da resposa da mensagem!ISim
Atualização De/ParaConteúdo da mensagem (ReturnContent) não retornado na resposta da mensagem. De/para não atualizado.ASim
Atualização De/ParaFim do processo de salvar De/para!ISim
Atualização De/ParaErro ao salvar tabela De-Para:ESimExecução
handle webServicesFinalizando execuçãoFim da execução do manipulador (handle)INãoExecução handle webServices
Finalizando execuçãoEvento AfterExecuteHandle será executado!INãoExecução
da mensagemFinalizando execuçãoMensagem não foi executada.ISimExecução da mensagem
Finalizando execuçãoInformações de execução da mensagem [ Serão listados dados de status da execução]ISimExecução da mensagem
Finalizando execuçãoFIM DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE ENVIO NA FILA!ISim

 

4) - Procedimentos para geração de logs pelos produtos.

a) - Será disponibilizado na classe "HandleServices" (localizado no projeto: RM.Con.TotvsMessage.IServices" uma instância para o objeto "LogServices".

      Um objeto dessa classe já está disponível nos extensions e estará disponível nas futuras classes de adapters.

 

b) - Será disponibilizado no objeto "LogServices" três métodos: 

       - WriteTraceInformation: responsável pelo envio de mensagens de "informações";

       - WriteTraceError: responsável pelo envio de mensagens de "erro";

      - WriteTraceWarning: responsável pelo envio de mensagens de "aviso";

        Esses métodos recebem como parâmetro os seguintes dados:

    • Identificador do monitor : disponível em "this.TotvsMessageContext.Monitor.MonitorId";
    • Mensagem de log: texto contendo a mensagem de log;
    • Informações de debug: Devem ser enviadas no seguinte formato: "Identificação da inf. de debug", "Valor da informação de debug";

 

Segue abaixo um exemplo de criação customizada de logs nos adapters / extensions:

Image Removed

 

Opcional

Protótipo de Tela

 

<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.

 

Protótipo 01

 

 

 Image Removed

 

 

 

 

 

 

Opcional

Fluxo do Processo

 

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Si

 

 

 

Dicionário de Dados

Image Added

   

HCMONITOR

CAMPODESCRIÇÃOTIPO
IDIdentificador do monitorint
IDPROCESSO Identificador do processovarchar(255)
RECCREATEDBY Usuário de criaçãovarchar(50)
RECCREATEDON Data de criaçãodatetime
RECMODIFIEDBY Usuário de alteraçãovarchar(50)
RECMODIFIEDON Data de alteraçãodatetime

 

HCLOGMENSAGEM

CAMPODESCRIÇÃOTIPO
UUID Identificador da mensagem na filavarchar(255)
SEQUENCIAL Sequencialint
DATAMENSAGEM Data de geração da mensagemdatetime
TIPOLOG 

Tipo do Log

0 - Information

1 - Warning

2 - Error

int
LOCALIZACAOlocalização do log na engine do eaivarchar(100)
INFOLOG dados do logtext
INFODEBUGdados do debuggertext
RECCREATEDBYusuário de criaçãovarchar(50)
RECCREATEDON Data de criaçaõdatetime
RECMODIFIEDBY usuário de alteraçãovarchar(50)
RECMODIFIEDON data de alteraçãodatetime

Dicionário de Dados

Image Removed

1) - Criação da tabela: HCMonitor.

      Uma linha nessa tabela indicará um "monitoramento de uma determinada ação no EAI".Basicamente essa tabela será usada para agrupar mensagens relacionadas;

        Estrutura:

          ID - Identificador do nonitor
          IDPROCESSO - Identificador do processo

 Exemplo:

a) - No RM o usuário cadastra um novo centro de custo (COSTCENTER 2.000);

b) - Existem duas integrações mapeadas para a mensagem  COSTCENTER 2.000;

c) - O EAI será chamado para executar o envio da mensagem de centro de custo;

d) - Será gerada uma única linha na tabela HCMonitor (contendo informações do processo);

d) - Serão geradas duas linhas na fila HCFilaMensagem (uma linha para cada integração mapeada);

 

2)-   Criação da coluna "MonitorID" na tabela "HCFilaMensagem" com referência para tabela HCMonitor;

3) - Será criada a tabela HCLogMensagem:

   Todos os logs gerados para uma determinada mensagem serão gravados nessa tabela.

     Uma linha nessa tabela indicará uma única mensagem de log, ou seja, várias linhas serão incluídas nessa tabela para cada tentativa de execução da mensagem.

        Estrutura:

          UUID- Identificador da mensagem na fila
          SEQUENCIAL- Compor chave primária

         DATAMENSAGEM: Data e hora da geração do log
        TIPOLOG : Tipo da mensagem de log [error, warning, info, danger]

                Error: Mensagem de erro

               Warning: Mensagem de aviso

              Info: Mensagem de informação

              Danger: Perigo

       INFOLOG: mensagem de log.

 


Scripts:

CREATE TABLE HCMONITOR -- Monitor do EAI
(
ID VARCHAR(255) NOT NULL,--Identificador do nonitor
IDPROCESSO VARCHAR(100255) NULL, --Identicador do processo
RECCREATEDBY VARCHAR(50) NULL,
RECCREATEDON DATETIME NULL,
RECMODIFIEDBY VARCHAR(50) NULL,
RECMODIFIEDON DATETIME NULL,
)

ALTER TABLE HCMONITOR
ADD CONSTRAINT PK_HCMONITOR PRIMARY KEY (ID)

CREATE TABLE HCLOGMENSAGEM -- Log de mensagens.
(
UUID VARCHAR(255) NOT NULL,--Identificador do log
SEQUENCIAL INT NOT NULL,--Número sequencial
DATAMENSAGEM DATETIME NULL, --Data de inclusão da mensagem.
TIPOLOG INT NULL, --Tipo do log [error, warning, info, danger]

LOCALIZACAO VARCHAR(100) NULL, --localização dolog na engine do eai
INFOLOG TEXT NULL,--Informações de Log do monitor

INFODEBUG TEXT NULL, --Informações de debug
RECCREATEDBY VARCHAR(50) NULL,
RECCREATEDON DATETIME NULL,
RECMODIFIEDBY VARCHAR(50) NULL,
RECMODIFIEDON DATETIME NULL,
)

ALTER TABLE HCLOGMENSAGEM
ADD CONSTRAINT PK_HCLOGMENSAGEM PRIMARY KEY(UUID, SEQUENCIAL)

ALTER TABLE HCLOGMENSAGEM
ADD CONSTRAINT FK_HCLOGMENSAGEM_HCFILAMENSAGEM FOREIGN KEY(UUID)
REFERENCES HCFILAMENSAGEM (UUID)

 

--ALTERAÇÕES NA TABELA DE FILA DE MENSAGEM
ALTER TABLE HCFILAMENSAGEM
ADD MONITORID VARCHAR(255) NULL --Identificador do monitor.

ALTER TABLE HCFILAMENSAGEM
ADD CONSTRAINT FK_HCFILAMENSAGEM_HCMONITOR FOREIGN KEY (MONITORID)
REFERENCES HCMONITOR(ID)

ALTER TABLE HCFILAMENSAGEM
ADD STATUSMENSAGEM INT NULL --Status da mensagem.

 

  

 

 


 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.