Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Índice:
Objetivo:
Este documento tem por objetivo especificar a atividade “Executar Código Fonte” disponível na Fórmula Visual.
Especificação:
A atividade “Executar Código Fonte” é uma atividade que permite que um código (que varia de Levantar uma Exceção à realizar rotinas de Selecionar Dados de Tabelas do Banco, entre outras ) seja executado. Devido a sua complexidade,esta atividade exige um nível de conhecimento avançado em Fórmula Visual e em codificação.
Image Removed
Para começarmos a utilizar a atividade, temos que conhecer os parâmetros que ele recebe.
Image Removed
N° | Nome do Parâmetro | Descrição do Parâmetro | Obrigatoriedade |
---|---|---|---|
1 | ExecuteCode | Código à ser executado | OBRIGATÓRIO |
1) Existem duas formas de preencher a Propriedade ExecuteCode:
1.1) Clicando no Ícone Amarelo ao lado da Propriedade ExecuteCode, ou no botão [...] que aparece ao lado da mesma propriedade, a tela abaixo irá aparecer.
Image Removed
1.2) Clicando duas vezes em cima da Propriedade ExecuteCode, um console de programação .Net irá aparecer abaixo do diagrama do Workflow.
Image Removed
A funcionalidade de Executar Código aparece também clicando:
2) Na parte branca do Workflow, através do Grupo Manipuladores:
Image Removed
N°
Nome do Parâmetro
Descrição do Parâmetro
Obrigatoriedade
Estado | ||||
---|---|---|---|---|
|
Estado | ||||
---|---|---|---|---|
|
Tanto para a Propriedade Completed, quanto para a Propriedade Initialized, existem duas formas de preenchê-las, são elas:
2.1) Clicando no Ícone Amarelo ao lado das Propriedades Initialized / Completed , ou no botão [...] que aparece ao lado das mesmas propriedades, a tela abaixo irá aparecer.
2.2) Clicando duas vezes em cima das Propriedades Initialized / Completed, um console de programação .Net irá aparecer abaixo do diagrama do Workflow.
3) Na atividade Se / Senão.
3.1) No Grupo Condições Escolher Condição de Código
Image Removed
3.2) Existem duas formas de preencher a Propriedade Condition:
3.2.1) Clicando no Ícone Amarelo ao lado da Propriedade Condition, ou no botão [...] que aparece ao lado da mesma propriedade, a tela abaixo irá aparecer.
Image Removed
3.2.2) Clicando duas vezes em cima da Propriedade Condition, um console de programação .Net irá aparecer abaixo do diagrama do Workflow.
Image Removed
A diferença do console da Propriedade Condition é que ela já vem por padrão com a linha args.Result = true;.
Como é uma atividade que necessita definir uma condição, o resultado desse código deve ser um valor booleano (ou lógico), true ou false.
Exemplo de Utilização da Atividade
EXEMPLO 1:
Iremos utilizar a atividade "Executar Web Service" em conjunto com a atividade "Executar Código".
1) Configure a atividade de Web Service [Utilizando a atividade "Executar Web Service"]
Image Removed
2) Defina o Retorno como uma Nova Propriedade clicando no botão [...] à frente da Propriedade Retorno
Image Removed
2.1) A tela da Atividade ficará assim:
Image Removed
3) Vamos gerar uma exceção trazendo o retorno do Web Service
Image Removed
O Resultado é o mesmo das telas apresentadas abaixo:
Image Removed
Image Removed
EXEMPLO 2:
Iremos utilizar a atividade "Executar Consulta SQL" em conjunto com as atividades "Executar Código" e "Enviar E-mail".
Image Removed
1) Configure a atividade de Consulta SQL [Utilizando a atividade "Consulta SQL"]
Image Removed
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
SELECT XMLNFE FROM TNFEMUNICIPAL (NOLOCK) WHERE CODCOLIGADA = 1 AND IDMOV = 2231 |
2) Configure a atividade de "Executar Código Fonte".
Image Removed
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
string Xml = null;
private void codeActivity1_ExecuteCode(object sender, System.EventArgs args)
{
string xml = Convert.ToString(this.rmsConsSQLActivity1.Tables[0].Row[0]);
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
this.XmlResultEmail = encoding.GetBytes(xml);
} |
title | OUTROS EXEMPLOS DE CÓDIGO |
---|
EXEMPLO (Geração de Erro com conteúdo de SQL de uma Atividade Consulta SQL e retornando um erro):
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
string Xml = null;
private void codeActivity1_ExecuteCode(object sender, System.EventArgs args)
{
string xml = Convert.ToString(this.rmsConsSQLActivity1.Tables[0].Row[0]);
this.rmsThrowActivity1.Message = "Erro"+xml;
//this.XmlResult = xml;
// outra opção que pode ser utilizada para passar o conteúdo para a Gera Exceção, porém é necessário criar um novo campo na Atividade Gera Exceção, através da Aba "Associar a um novo membro"
} |
EXEMPLO Geração de Erro com conteúdo de SQL de dentro da Atividade Executar Código e retornando um erro:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
string Xml = null;
private void codeActivity1_ExecuteCode(object sender, System.EventArgs args)
{
string xml = Convert.ToString(DBS.QueryValue("", "SELECT XMLNFE FROM TNFEMUNICIPAL (NOLOCK) WHERE CODCOLIGADA = 1 AND IDMOV = 2231"));
this.rmsThrowActivity1.Message = "Erro"+xml;
} |
3) Configure a atividade de "Enviar E-mail" [Utilizando a atividade "Enviar E-mail"].
Image Removed
4) Ao executar a Fórmula Visual o E-mail com o XML da Nota Fiscal Eletrônica (Exemplo Utilizado) será enviado aos destinatários configurados.
Image Removed
Image Removed
Image Removed
o bloco Saúde da Aplicação do Cockpit.
1 - Especificação:
HTML |
---|
<style type="text/css">
.confluence-information-macro {
width: calc(100% - 25px);
background: #fff !important;
border: 0;
-moz-border-radius: 0px !important;
-webkit-border-radius: 0px !important;
border-radius: 0px !important;
color: #333;
margin: 10px 0 1em 0;
min-height: 20px;
padding: 10px;
position: relative;
}
.confluence-information-macro p.title{
padding-left: 20px;
margin-top: 0px;
margin-bottom: 5px;
}
.confluence-information-macro .confluence-information-macro-icon.aui-iconfont-error{
color: #fff;
}
.confluence-information-macro-warning{
background-color: #d04437 !important;
color: #fff;
}
.confluence-information-macro-information{
border: 1px solid #aab8c6 !important;
}
</style> |
1.1 - Bloco Saúde da Aplicação e Verificação de Serviços:
Para acessar a tela do Cockpit acesse, em qualquer módulo, o Menu Ambiente >> Cockpit,
Image Added
Na tela do Cockpit, observe que para cada servidor conhecido, um bloco de informações é apresentado. Esse bloco de informações possui grupos distintos, que são:
- Processos
- Servidores de Aplicação
- Saúde da Aplicação
Nesse documento iremos explicar apenas o bloco "Saúde da Aplicação".
Image Added
Vamos descrever os componentes desse grupo.
Image Added
N° | Componente | Descrição do Componente |
---|---|---|
1 | Ícone de Status | Situação da Saúde do Servidor Conhecido/ Situação do Processo Executado (Visual) |
2 | Situação da Aplicação / Situação do Processo Executado | Aqui é apresentado de forma textual a situação da saúde do servidor conhecido/ situação do processo executado dentro do grupo "Saúde da Aplicação". Refere-se aos processos executados pelos botões (4, 5 e 6). |
3 | Descrição dos Serviços Indisponíveis. | Aqui é apresentado de forma textual os serviços indisponíveis que poderão ser recuperados através do Processo de Recuperar Serviços (Botão 6). |
4 | Verificação Rápida | Realiza uma verificação superficial dos serviços do Host do RM para um determinado servidor conhecido. |
5 | Verificação Completa | Realiza uma verificação de todos os serviços do Host do RM para um determinado servidor conhecido. |
6 | Recuperar Serviços | O processo de Recuperar Serviços tentará recuperar todos os serviços que por algum motivo se tornaram indisponíveis. |
Vamos Iniciar a Verificação Rápida para tentar descobrir se algum serviço está indisponível e se poderá impactar na Saúde do Servidor Conhecido.
1 - Clique no botão Verificação Rápida (4):
Você poderá obter dois resultados:
- Sucesso
Se a Verificação Rápida for executada com sucesso, quer dizer que não foi identificado serviço indisponível (lembrando que uma busca superficial é feita nesse caso), o que é um ótimo indicativo. Caso deseje, poderá executar a Verificação Completa para ter certeza que realmente não há nenhum serviço indisponível que poderá impactar na Saúde do Servidor.
Image Added
Falha
Se o Ícone (1) for vermelho (critico) e o Texto (2) for "Indisponivel", algum problema ocorreu no processo de Verificação, então execute novamente o processo de Verificação Rápida.Informações title Observação Caso essa mensagem persista, verifique se o servidor está offline.
Image Added
Agora iremos realizar a Verificação Completa para confirmar se algum serviço está indisponível.
2 - Clique no botão Verificação Completa (5):
Você poderá obter 2 resultados:
- Sucesso
Caso a Verificação Completa termine em sucesso, quer dizer que todos os serviços do host do RM estão ativos e disponíveis para uso, ou seja, tanto a aplicação quanto o servidor estarão em sua atividade plena.
Image Added
- Falha (Atenção)
Caso a Verificação Completa termine em falha, verifique:- O Status da Aplicação:
- se o Ícone (1) for amarelo (atenção) e o Texto (2) for "Indisponível", confira em seguida o campo Serviços Indisponíveis (3) e verifique se algum serviço foi apresentado. Caso algum serviço tenha sido apresentado selecione-o, e clique no botão Recuperar Serviços (6).
- se o Ícone (1) for amarelo (atenção) e o Texto (2) for "Indisponível", confira em seguida o campo Serviços Indisponíveis (3) e verifique se algum serviço foi apresentado. Caso algum serviço tenha sido apresentado selecione-o, e clique no botão Recuperar Serviços (6).
- O Status da Aplicação:
Image Added
se o Ícone (1) for vermelho (critico) e o Texto (2) for "Indisponivel", algum problema ocorreu no processo de Verificação, então execute novamente o processo de Verificação Completa.
Informações title Observação Caso essa mensagem persista, verifique se o servidor está offline.
Image Added
Se a Verificação Completa apontar algum serviço indisponível, devemos recuperar esses serviços, para que a saúde do servidor conhecido seja recuperada.
3 - Para isso selecione o(s) serviço(s) indisponível(is) e clique no botão Recuperar Serviços (6):
Informações | ||
---|---|---|
| ||
Os serviços selecionados serão recuperados e uma nova Verificação Completa é realizada, podendo gerar os dois resultados vistos acima, no segundo apêndice. |
Aviso | ||
---|---|---|
| ||
Se a situação (Status) da Saúde da Aplicação estiver como Indisponível juntamente com o Ícone Amarelo, clique no botão Recuperar Serviços (6) até que a Situação (Status) mude para "Verificação Completa Finalizada". |
1.2 - Verificação Total:
Iremos abordar agora sobre a Verificação Total.
Image Added
A Verificação Total tem o objetivo de verificar/analisar a saúde de todos os servidores conhecidos.
A Verificação Total pode ser feita de dois modos:
- Verificação Rápida
- Verificação Completa
Image Added
Tudo o que foi dito na seção 1.1 - Bloco Saúde da Aplicação e Verificação de Serviços serve para a Verificação Total. A diferença é que as verificações são realizadas em todos os servidores conhecidos.
No exemplo abaixo, perceba que a Verificação Completa realizada no servidor BHN0501030950:8050, não culminou em sucesso, um serviço (GatewayService) não estava disponível no momento, porém a Verificação Completa no servidor BHN0509503010:8050 terminou com sucesso, indicando perfeita saúde nesse servidor.
Image Added
Informações | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
Informações | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
|