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 “Localizar Registro na Tabela” disponível na Fórmula Visual.

Especificação:


     A atividade “Executar Código Fonte” “Localizar Registro na Tabela” é 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.registro especifico de uma tabela específica seja localizada. No exemplo que será utilizado abaixo iremos, ao editarmos um usuário, enviar um e-mail informando que o usuário "X" foi modificado.


Image AddedImage Removed


Para começarmos a utilizar a atividade, temos que conhecer os parâmetros que ele recebe.


Image RemovedImage Added

Nome do Parâmetro
Descrição do Parâmetro
Obrigatoriedade
1
ExecuteCodeCódigo à ser executado
KeyFieldsCampos que serão utilizados como chave de pesquisa (separados por vírgula)

Estado
colourGreen
titleOBRIGATÓRIO

2TabelaTabela cujo registro será localizado

Estado
colourGreen
titleOBRIGATÓRIO


1) Existem duas formas de preencher a Propriedade ExecuteCode: Primeiramente iremos preencher a tabela à qual o registro será localizado (recuperado).

Clique 1.1) Clicando no Ícone Amarelo ao lado da Propriedade ExecuteCodeTabela, ou no botão [...] que aparece ao lado da mesma propriedade, a tela abaixo irá aparecer.


Image Added

Image AddedImage 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:

 Agora devemos preencher a Propriedade KeyFields

Como escolhemos a tabela PFUNC (Funcionários) devemos informar suas chaves primárias, separadas por vírgula:

  • CODCOLIGADA
  • CHAPA


Image Added


3) Agora iremos preencher os parâmetros que foram criados dinamicamente à partir da propriedade KeyFields (CHAPA e CODCOLIGADA)


Image AddedImage Removed

Nome do Parâmetro
Descrição do Parâmetro
Obrigatoriedade
1
CompletedCódigo à ser executado no momento em que a execução do WorkFlow termina.
CODCOLIGADAValor da Coligada que será utilizada para recuperar um registro específico

Estado
colour

Yellow

Green
title

Opcional

OBRIGATÓRIO

2
InitializedCódigo à ser executado no momento em que a execução do WorkFlow se inicia.
CHAPAValor da Chapa do Funcionário que será utilizada para recuperar um registro específico

Estado
colour

Yellow

Green
title

Opcional

Tanto para a Propriedade Completed, quanto para a Propriedade Initialized, existem duas formas de preenchê-las, são elas: 

OBRIGATÓRIO


42.1) Clicando no Ícone Amarelo ao lado das Propriedades Initialized / Completed da Propriedade CODCOLIGADA , ou no botão [...] que aparece ao lado das mesmas propriedadesda mesma propriedade, a tela abaixo irá aparecer.

Initialized


Image Added

Completed
Image Removed
Image Removed

2.2) Clicando duas vezes em cima das Propriedades Initialized / Completed, um console de programação .Net irá aparecer abaixo do diagrama do Workflow.

InitalizedCompleted
Image Removed
Image Removed

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:

Image Added


5) Clicando no Ícone Amarelo ao lado da Propriedade CHAPA, 3.2.1) Clicando no Ícone Amarelo ao lado da Propriedade Condition, ou no botão [...] que  que aparece ao lado da mesma propriedade, a tela abaixo irá aparecer.


Image Added

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
languagesql
firstline1
titleConsulta SQL FVXML01
linenumberstrue
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
languagec#
firstline1
titlecodeActivity1: ExecuteCode
linenumberstrue
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); 
}
Informações
titleOUTROS EXEMPLOS DE CÓDIGO

Image Added


6) Ao término da configuração da Atividade "Localizar Registro na Tabela", vamos configurar agora a atividade "Enviar E-mail" [Utilizando a Atividade Enviar E-mail]


Image Added


6.1) Na imagem acima, foi preenchido:


PropriedadeValorDescrição / (Valor Amigável)
1AssuntoActivity=rmsFindRecordActivity1, Path=Fields["NOME"].AsStringColuna NOME da tabela PFUNC
2DestinatáriosMatriz String[]Conjunto de endereços de e-mail
3RemetenteCompanyO Remetente do e-mail será a própria empresa (COLIGADA do contexto)
4Texto do e-mailFoi realizado alteração no funcionário objeto desse e-mailTexto que será apresentado no Corpo do e-mail


O E-mail enviado será como a imagem abaixo:


Image Added

Image Added

EXEMPLO (Geração de Erro com conteúdo de SQL de uma Atividade Consulta SQL e retornando um erro):

Bloco de código
languagec#
firstline1
titlecodeActivity1: ExecuteCode
linenumberstrue
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
languagec#
firstline1
titlecodeActivity1: ExecuteCode
linenumberstrue
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

Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 12.1.17 ou Superior

Informações
iconfalse

Processo: Atividade "Executar Código Fonte" da Fórmula Visual

Informações
iconfalse
Informações
iconfalse

Status: Finalizado

Informações
iconfalse

Data:  

Informações
iconfalse

Autores:

Alexandre de Sousa José

Carlos Philippe de Farias Marques

Carlos Roberto Pereira Garcia

Diogo Damiani Ferreira

Douglas Maxwell de Oliveira

Fábio Augusto Amaral Melo Nunes

Informações
iconfalse