Histórico da Página
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
Informações do processo:
A atividade de fórmula visual e os métodos de envio de mensagens do EAI foram evoluídos para aceitar informações do processo atarvés dos campos (Id.Processo e Info.Processo).
Essas informações serão gravadas na tabela de monitor (HCMonitor). Isso facilitará o agrupamento e rastreabilidade das mensagens geradas.
Informações de log:
Recebimento de mensagens:
Localização | Mensagem | Tipo de menagem (E) - Erro A - (Aviso) I - (Informação) | Todas as marcas |
Inclusão Fila | INÍCIO DO PROCESSO DE SALVAR MENSAGEM DE RECEBIMENTO NA FILA | I | Sim |
Inclusão Fila | Xml recebido é válido | I | Sim |
Inclusão Fila | Xml recebido não é válido | E | Sim |
Inclusão Fila | Informação das integrações recuperadas | I | Sim |
Inclusão Fila | Id da integração recuperada | I | Não |
Inclusão Fila | Não foi possível localizar nenhuma integração + Erro técnico | E | Sim |
Inclusão Fila | Não foi encontrado nenhuma entidade mapeada + Erro técnico | E | Não |
Inclusão Fila | Maoa de integração carregado | I | Não |
Inclusão Fila | Erro ao carregar mapa de integração | E | Não |
Inclusão Fila | XSLT de entrada está vazio | E | Não |
Inclusão Fila | Recebimento de mensagem assincrona | I | Sim |
Inclusão Fila | Evento CanSaveQueue será executado | I | Não |
Inclusão Fila | Mensagem gravada na fila | I | Sim |
Inclusão Fila | Erro ao salvar mensagem na fila + Erro técnico | E | Sim |
Inclusão Fila | Fim do processo de salvar mensagem de recebimento na fila | I | Sim |
Carga de informações | Início do processo de execução da mensagem de recebimento | I | Sim |
Carga de informações | Mensagem recuperada da fila | I | Sim |
Carga de informações | Não foi encontrado nenhuma entidade mapeada + Erro técnico | E | Não |
Carga de informações | Mapa de integração carregado | I | Não |
Carga de informações | Erro ao carregar mapa da integração | E | Não |
Carga de informações | Evento CanExecuteQueue executado | I | Não |
Carga de informações | Entidade não mapeada | E | Não |
Carga de informações | XSLT de entrada vazio | E | Não |
Preparação de contexto | Preparação de contexto | I | Não |
Preparação de contexto | Coligada e filial recuperados | I | Não |
Preparação de contexto | Alterando código de todas as coligadas e filiais encontradas | I | Não |
Preparação da execução | Evento BeforeExecuteHandle será executado | I | Não |
Preparação da execução | Início da execução do manipulador (handle)! | I | Não |
Preparação da execução | Manipulador (Handle) de 'DataServer' definido! | I | Não |
Preparação da execução | Manipulador (Handle) de 'Process' definido! | I | Não |
Preparação da execução | Manipulador (Handle) de 'Module' definido! | I | Não |
Preparação da execução | Manipulador (Handle) de 'CustomHandle' definido! | I | Não |
Preparação da execução | Contexto da RM (RMSContext) criado: | I | Não |
Preparação da execução | Inicio do processo de transformação via xslt! | I | Não |
Preparação da execução | Evento BeforeTransformReceive será executado! | I | Não |
Preparação da execução | Evento BeforeTransformReceive será executado! | I | Não |
Preparação da execução | Evento AfterTransformReceive será executado! | I | Não' |
Preparação da execução | Evento AfterTransformDataSet será executado! | I | Não |
Preparação da execução | Fim do processo de transformaçaõ via xslt | I | Não |
Preparação da execução | DataSet vazio | E | Não |
Execução de dataServer | Início da execução do manipulador de Dataserver! | I | Não |
Execução de dataServer | Executando dataServer:", "Nome do dataServer | I | Não |
Execução de dataServer | Evento BeforeSave será executado! | I | Não |
Execução de dataServer | Schema do dataServer recuperado! | I | Não |
Execução de dataServer | Início da recuperação dos valores da chave primária | I | Não |
Execução de dataServer | Valor Chave primária: Serão listados os valores da chave primária | I | Não |
Execução de dataServer | Fim da recuperação dos valores da chave primária | I | Não |
Execução de dataServer | Preechimento dos relacionamentos! | I | Não |
Execução de dataServer | Linha principal do dataSet em estado de exclusão! | I | Não |
Execução de dataServer | Linha principal do dataSet em estado de alteração! | I | Não |
Execução de dataServer | Linha principal do dataSet em estado de inclusão! | I | Não |
Execução de dataServer | Método 'SaveRecord' do dataServer executado: | I | Não |
Atualização De/Para | Atualizando De/Para da tabela | I | Sim |
Atualização De/Para | A coluna 'INTERNALID' não existe no dataSet a ser enviado para o DataServer. O De/Para não será atualizado! | A | Não |
Atualização De/Para | Não existe chave primária na tabela. O De/Para não será atualizado! | A | Não |
Atualização De/Para | Informações do De/Para a ser gravado: Serão listados os dados do de/para | I | Sim |
Atualização De/Para | Informações do De/Para serão excluídas | I | Sim |
Atualização De/Para | Erro ao atualizar De/Para | E | Sim |
Execução de dataServer | Evento AfterSave será executado | I | Não |
Execução de dataServer | Fim da execução do manipulador de Dataserver! | I | Não |
Execução de processServer | Início da execução do manipulador de process | I | Não |
Execução de processServer | Evento BeforeExecute será executado | I | Não |
Execução de processServer | Fim da execução do manipulador de process | I | Não |
Execução de processServe | Evento AfterExecute será executado | I | Não |
Execução de módule | Início da execução do manipulador de module | I | Não |
Execução de módule | Evento BeforeExecuteMethod será executado | I | Não |
Execução de módule | Evento AfterExecuteMethod será executado | I | Não |
Execução de módule | Fim da execução do manipulador de module! | I | Não |
Após Execução | Erro ao executar manipulador (handle) | E | Não |
Construção da resposta | Início da recuperação do xml de resposta | I | Não |
Construção da resposta | Evento CreateResponse será executado | I' | Não |
Construção da resposta | Início da construção da tag ReturnContent do dataServer! | I | Não |
Construção da resposta | Informações do internalId.[Serão listados os dados dos internalsIds] | I | Sim |
Construção da resposta | Fim da construção da tag ReturnContent do dataServer | I | Não |
Construção da resposta | Fim da recuperação do xml de resposta | I | Sim |
Após execução | Fim da execução do manipulador (handle) | I | Não |
Após execução | Evento AfterExecuteHandle será executado! | I | Não |
Após execução | Informações de execução da mensagem foram gravadas na fila | I | Não |
Após execução | Informações de execução da mensagem. Serão listados os dados de status da execução | I | Sim |
Após execução | FIM DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE RECEBIMENTO! | I' | Sim |
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 |
Fila | Informação das integrações recuperadas | I | Sim |
Fila | Id da integração recuperada | I | Não |
Fila | Não foi possível localizar nenhuma integração + Erro técnico | E | Sim |
Fila | Não foi encontrado nenhuma entidade mapeada + Erro técnico | E | Não |
Fila | Maoa de integração carregado | I | Não |
Fila | Erro ao carregar mapa de integração | E | Não |
Fila | XSLT de entrada está vazio | E | Não |
Fila | Recebimento de mensagem assincrona | I | Sim |
Fila | Evento CanSaveQueue será executado | I | Não |
Fila | Mensagem gravada na fila | I | Sim |
Fila | Erro ao salvar mensagem na fila + Erro técnico | E | Sim |
Fila | Fim do processo de salvar mensagem de recebimento na fila | I | Sim |
Envio de mensagens:
Localização | Mensagem | Regras de Negócio | |
Fila |
|
|
|
Execução |
|
|
|
|
|
|
|
Exemplo de Aplicação:
- Criar o campo “% Mínimo Espécie” (AAA_PERESP) onde o usuário informará o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação.
- Criar o campo “Referência Mínima para Cálculo” (AAA_REFCAL) onde o usuário informará um dos 4 valores disponíveis para pagamento das mensalidades como a referência mínima para calcular o débito total do aluno.
- Criar o parâmetro MV_ACPARNE que definirá se as informações de “% Mínimo Espécie” e “Referência Mínima para Cálculo” serão obrigatórias.
- O parâmetro MV_ACPARNE deve ter as seguintes opções: 1=Obrigatório e 2=Opcional. Deve ser inicializado como opcional>.
Tabelas Utilizadas
- SE2 – Cadastro de Contas a Pagar
- FI9 – Controle de Emissão de DARF>.
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
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>.
Opcional
Dicionário de Dados
Scripts:
CREATE TABLE HCMONITOR -- Monitor do EAI
(
ID VARCHAR(255) NOT NULL,--Identificador do nonitor
IDPROCESSO VARCHAR(100) NULL, --Identicador do processo
PROCESSINFO TEXT NULL,--Informações 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]
INFOLOG TEXT NULL,--Informações de Log do monitor
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.
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <AAA_PERESP> |
Tipo | <N> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
Introdução
Será utilizado o padrão de SysLog para geração dos Logs do EAI.
Trata-se de um padrão definido pela Totvs para implementação de mecanismos de geração de logs.
Esse padrão foi implementado na Lib RM, e atualmente diversos recursos da Lib utilizam o mesmo. ex: DataServers, Host, Process, Jobs, etc.
Definição da Regra de Negócio
1) - 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 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 = "false".
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
Cenário:
- Em um determinado cliente existem duas integrações mapeadas para a mensagem "COSTCENTER 2.000" (mensagem de centro de custo);
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
Warning: 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:
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 |
Fila | Integrações recuperadas. | I | Sim |
Fila | Id da integração recuperada | I | Não |
Fila | Não foi possível localizar nenhuma integração. | E | Sim |
Fila | Não foi encontrada nenhuma entidade mapeada. | E | Não |
Fila | Mapa de integração carregado. | I | Não |
Fila | Erro ao carregar mapa de integração. | E | Não |
Fila | XSLT de entrada não foi preenchido. | E | Não |
Fila | Recebimento de mensagem assíncrona. | I | Sim |
Fila | Evento CanSaveQueue será executado. | I | Não |
Fila | Mensagem gravada na fila. | I | Sim |
Fila | Erro ao salvar mensagem na fila. | E | Sim |
Fila | FIM DO PROCESSO DE SALVAR MENSAGEM NA FILA. | I | Sim |
Inicializando execução | INÍCIO DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE RECEBIMENTO. | I | Sim |
Inicializando execução | Mensagem recuperada da fila. | I | Sim |
Validação de execução | Não foi encontrada nenhuma entidade mapeada. | E | Não |
Validação de execução | Mapa de integração carregado. | I | Não |
Validação de execução | Erro ao carregar mapa da integração. | E | Não |
Validação de execução | Evento CanExecuteQueue executado | I | Não |
Validação de execução | Entidade não mapeada | E | Não |
Validação de execução | XSLT de entrada não foi preenchido. | E | Não |
Preparação de contexto | Preparação de contexto. | I | Não |
Preparação de contexto | Coligada e filial recuperados. | I | Não |
Preparação de contexto | Alterando código de todas as coligadas e filiais encontradas. | I | Não |
Preparação da execução | Evento BeforeExecuteHandle será executado. | I | Não |
Preparação da execução | Início da execução do manipulador (handle) | I | Não |
Preparação da execução | Manipulador (Handle) de 'DataServer' definido! | I | Não |
Preparação da execução | Manipulador (Handle) de 'Process' definido! | I | Não |
Preparação da execução | Manipulador (Handle) de 'Module' definido! | I | Não |
Preparação da execução | Manipulador (Handle) de 'CustomHandle' definido! | I | Não |
Preparação da execução | Contexto da RM (RMSContext) criado: | I | Não |
Preparação da execução | Inicio do processo de transformação via xslt! | I | Não |
Preparação da execução | Evento BeforeTransformReceive será executado! | I | Não |
Preparação da execução | Evento BeforeTransformReceive será executado! | I | Não |
Preparação da execução | Evento AfterTransformReceive será executado! | I | Não' |
Preparação da execução | Evento AfterTransformDataSet será executado! | I | Não |
Preparação da execução | Fim do processo de transformaçaõ via xslt | I | Não |
Preparação da execução | DataSet está vazio | E | Não |
Executando handle de dataServer | Início da execução do manipulador de Dataserver! | I | Não |
Executando handle de dataServer | Executando o dataServer + "Nome do dataServer" | I | Não |
Executando handle de dataServer | Evento BeforeSave será executado! | I | Não |
Executando handle de dataServer | Schema do dataServer recuperado! | I | Não |
Executando handle de dataServer | Início da recuperação dos valores da chave primária | I | Não |
Executando handle de dataServer | Valor Chave primária:[serão informados os valores da chave primária" | I | Não |
Executando handle de dataServer | Fim da recuperação dos valores da chave primária | I | Não |
Executando handle de dataServer | Preechimento dos relacionamentos! | I | Não |
Executando handle de dataServer | Linha principal do dataSet em estado de exclusão! | I | Não |
Executando handle de dataServer | Linha principal do dataSet em estado de alteração! | I | Não |
Executando handle de dataServer | Linha principal do dataSet em estado de inclusão! | I | Não |
Executando handle de dataServer | Método 'SaveRecord' do dataServer executado: | I | Não |
Atualização De/Para | Atualizando De/Para da tabela + "Nome da tabela" | I | Sim |
Atualização De/Para | A coluna 'INTERNALID' não existe no dataSet a ser enviado para o DataServer. O De/Para não será atualizado! | A | Não |
Atualização De/Para | Não existe chave primária na tabela. O De/Para não será atualizado! | A | Não |
Atualização De/Para | Informações do De/Para a serem gravados:[dados do de/para] | I | Sim |
Atualização De/Para | Informações do De/Para serão excluídas | I | Sim |
Atualização De/Para | Erro ao atualizar De/Para | E | Sim |
Executando handle de dataServer | Evento AfterSave será executado | I | Não |
Executando handle de dataServer | Fim da execução do manipulador de Dataserver! | I | Não |
Executando handle de Processo | Início da execução do manipulador de processo. | I | Não |
Execução de handle de Processo | Evento BeforeExecute será executado | I | Não |
Execução de handle de Processo | Fim da execução do manipulador de process | I | Não |
Execução de handle de Processo | Evento AfterExecute será executado | I | Não |
Execução de handle de módule | Início da execução do manipulador de module | I | Não |
Execução de handle de módule | Evento BeforeExecuteMethod será executado | I | Não |
Execução de handle de módule | Evento AfterExecuteMethod será executado | I | Não |
Execução de handle de módule | Fim da execução do manipulador de module! | I | Não |
Finalizando execução | Erro ao executar manipulador (handle) | E | Não |
Gerrando resposta | Início da recuperação do xml de resposta | I | Não |
Gerrando resposta | Evento CreateResponse será executado | I' | Não |
Gerrando resposta | Início da construção da tag ReturnContent do dataServer! | I | Não |
Gerrando resposta | Informações do internalId. Dados do internalId | I | Sim |
Gerrando resposta | Fim da construção da tag ReturnContent do dataServer | I | Não |
Gerrando resposta | Fim da recuperação do xml de resposta | I | Sim |
Finalizando execução | Fim da execução do manipulador (handle) | I | Não |
Finalizando execução | Evento AfterExecuteHandle será executado! | I | Não |
Finalizando execução | Informações de execução da mensagem foram gravadas na fila | I | Não |
Finalizando execução | Informações de execução da mensagem. | I | Sim |
Finalizando Execução | FIM DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE RECEBIMENTO! | I | Sim |
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 |
Fila | Recuperação das integrações | I | Sim |
Fila | Mensagem não foi gravada na fila, pois não existe integração mapeada! | I | Sim |
Fila | Entidade não foi mapeada | E | Não |
Fila | Mapa de integração carregado. | I | Não |
Fila | Erro ao carregar mapa de integração | E | Não |
Fila | Executando mensagem da integração. [Serão listados os dados da integração] | I | Não |
Fila | Evento CanSaveQueue será executado! | E | Não |
Fila | Mensagem gravada na fila | I | Sim |
Fila | Erro ao salvar mensagem na fila | E | Sim |
Fila | Dados da mensagem gravada. [Serão listados os dados da mensgem gravada na fila] | I | Sim |
Fila | FIM DO PROCESSO DE SALVAR MENSAGEM DE ENVIO NA FILA | I | Sim |
Inicializando execução | INICIO DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE ENVIO NA FILA! | I | Sim |
Inicializando execução | Mensagem recuperada da fila! | I | Sim |
Inicializando execução | Execução da mensagem de forma sincrona! | I | Sim |
Inicializando execução | Execução da mensagem de forma assincrona! | I | Sim |
Validação de execução | Entidade não mapeada | E | Não |
Validação de execução | Mapa de integração carregado. | I | Não |
Validação de execução | Erro na carga de informações | E | Não |
Validação de execução | Evento CanExecuteQueue será executado! | I | Não |
Preparação de contexto | Coligada não foi encontrada no dataSet enviado pelo produto! | A | Não |
Preparação de contexto | Filial não foi encontrada no dataSet enviado pelo produto! | A | Não |
Preparação de contexto | Coligada e filial recuperados | I | Não |
Preparação de contexto | Início da execução do manipulador (handle) | I | Não |
Preparação de contexto | Inicio do processo de transformação via xslt! | I | Não' |
Preparação de contexto | Evento BeforeTransformSend será executado! | I | Não |
Preparação de contexto | Evento AfterTransformSend será executado! | I | Não |
Preparação de contexto | Fim do processo de transformação via xslt! | I | Não |
Execução handle WebServices | Início da execução do manipulador de WebServices! | I | Não |
Execução handle WebServices | Evento BeforeSendWebService será executado! | I | Não |
Execução handle WebServices | Inicio da execução do webServices! | I | Não |
Execução handle WebServices | Objeto wsdl não gerado! | E | Não |
Execução handle WebServices | Informações do assemblyProxy não encontradas! | E | Não |
Execução handle WebServices | Proxy não recuperado! | E | Não |
Execução handle WebServices | Fim da execução do webServices! | I | Sim |
Execução handle WebServices | Evento AfterSendWebService será executado! | I | Não |
Execução handle WebServices | Erro ao executar manipulador (handle): | E | Não |
Validação da resposta | A resposta da execução do WebServices foi bem sucedida! | I | Sim |
Validação da resposta | Erro ao realizar parser da resposta da mensagem (ResponseMessage): | E | Sim |
Validação da resposta | Informações retornadas na resposta da mensagem:[Serão listadas as informações retornas de InternalId] | I | Sim |
Atualização De/Para | Início do processo de salvar De/para! | I | Sim |
Atualização De/Para | Atributo 'ListOfInternalId' retornado no conteúdo da resposa da mensagem! | I | Sim |
Atualização De/Para | Informações do De/Para a ser gravado:[Serão listados dados do De/para] | I | Sim |
Atualização De/Para | Tabela não existente no dataSet original da mensagem: | A | Não |
Atualização De/Para | De/para não atualizado. Indentificador do internalId não localizado na lista! | A | Não |
Atualização De/Para | De/Para excluído com sucesso! | I | Sim |
Atualização De/Para | Exclusão de De/Para não retornou nenhum valor! | A | Sim |
Atualização De/Para | Não foi possível encontrar valores no de/para para exclusão! | A | Sim |
Atualização De/Para | Valor do 'internalId' não foi encontrado! | A | Não |
Atualização De/Para | Campo 'InternalId' não foi encontrado no dataSet de transformação! | A | Não |
Atualização De/Para | Campos chaves do De/Para não foram informados! | A | Não |
Atualização De/Para | Não foi encontrada a tabela no dataSet original | A | Não |
Atualização De/Para | Tabela não encontrada no dataSet original: | A | Não |
Atualização De/Para | De/para não atualizado. Atributo 'ListOfInternalId' não retornado no conteúdo da resposa da mensagem! | I | Sim |
Atualização De/Para | Conteúdo da mensagem (ReturnContent) não retornado na resposta da mensagem. De/para não atualizado. | A | Sim |
Atualização De/Para | Fim do processo de salvar De/para! | I | Sim |
Atualização De/Para | Erro ao salvar tabela De-Para: | E | Sim |
Finalizando execução | Fim da execução do manipulador (handle) | I | Não |
Finalizando execução | Evento AfterExecuteHandle será executado! | I | Não |
Finalizando execução | Mensagem não foi executada. | I | Sim |
Finalizando execução | Informações de execução da mensagem [ Serão listados dados de status da execução] | I | Sim |
Finalizando execução | FIM DO PROCESSO DE EXECUÇÃO DA MENSAGEM DE ENVIO NA FILA! | I | Si |
Dicionário de Dados
HCMONITOR
CAMPO | DESCRIÇÃO | TIPO |
---|---|---|
ID | Identificador do monitor | int |
IDPROCESSO | Identificador do processo | varchar(255) |
RECCREATEDBY | Usuário de criação | varchar(50) |
RECCREATEDON | Data de criação | datetime |
RECMODIFIEDBY | Usuário de alteração | varchar(50) |
RECMODIFIEDON | Data de alteração | datetime |
HCLOGMENSAGEM
CAMPO | DESCRIÇÃO | TIPO |
---|---|---|
UUID | Identificador da mensagem na fila | varchar(255) |
SEQUENCIAL | Sequencial | int |
DATAMENSAGEM | Data de geração da mensagem | datetime |
TIPOLOG | Tipo do Log 0 - Information 1 - Warning 2 - Error | int |
LOCALIZACAO | localização do log na engine do eai | varchar(100) |
INFOLOG | dados do log | text |
INFODEBUG | dados do debugger | text |
RECCREATEDBY | usuário de criação | varchar(50) |
RECCREATEDON | Data de criaçaõ | datetime |
RECMODIFIEDBY | usuário de alteração | varchar(50) |
RECMODIFIEDON | data de alteração | datetime |
Scripts:
CREATE TABLE HCMONITOR -- Monitor do EAI
(
ID VARCHAR(255) NOT NULL,--Identificador do nonitor
IDPROCESSO VARCHAR(255) 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.
(Opcional)
Grupo de Perguntas
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
(Opcional)
Consulta Padrão
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição | Configurações de Planejamento |
Tipo | Consulta Padrão |
Tabela | “AMB” |
Índice | “Código” |
Campo | “Código”; ”Descrição” |
Retorno | AMB->AMB_CODIGO |
(Opcional)
Estrutura de Menu
<Informações utilizadas na linha Datasul>.
Procedimentos
Procedimento |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Módulo |
|
|
|
Programa base |
|
|
|
Nome Menu | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro padrão | Sim | Sim | Sim |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Release de Liberação |
|
|
|
Programas
Programa |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Nome Externo |
|
|
|
Nome Menu/Programa | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Nome Verbalizado[1] | (Max 254 posições) | (Max 254 posições) | (Max 254 posições) |
Procedimento |
|
|
|
Template | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) |
Tipo[2] | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoria[3] |
|
|
|
Executa via RPC | Sim/Não | Sim/Não | Sim/Não |
Registro padrão | Sim | Sim | Sim |
Outro Produto | Não | Não | Não |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Query on-line | Sim/Não | Sim/Não | Sim/Não |
Log Exec. | Sim/Não | Sim/Não | Sim/Não |
Rotina (EMS) |
|
|
|
Sub-Rotina (EMS) |
|
|
|
Localização dentro da Sub Rotina (EMS) |
|
|
|
Compact[4] | Sim/Não | Sim/Não | Sim/Não |
Home[5] | Sim/Não | Sim/Não | Sim/Não |
Posição do Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar os papeis com os quais o programa deve ser vinculado |
|
|
|
Cadastro de Papéis
<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.
<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.
Código Papel | (máx 3 posições) |
Descrição em Português* |
|
Descrição em Inglês* |
|
[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|