Skip to main content

Programação em C# - Na Regra de Negócio

IMPORTANTE: as variáveis e métodos descritos aqui só funcionarão na programação C# na Regra de Negócio do formulário. Para a construção das APIs os códigos estão descritos na documentação de API.

O agilityflow permite a customização em C#, além de já disponibilizar diversas bibliotecas e funções para facilitar sua programação, incluindo acesso a dados, validações, envio de e-mail, notificação, entre outras.

Abaixo mostramos alguns exemplos, se o material abaixo não for suficiente , entre em contato com nossa equipe.

Variáveis disponíveis

Variável Tipo  
FormularioCamposPreenchidos dynamic (Json)

retorna um json com os campos do preenchidos no formulário, exemplo:

{

 "campo1": "xxxxx",

 "campo2": "yyyyy",

 "campo3": "zzzzz",

}

 

Para resgatar a informação do campo1, utilize:

 

var campo1 = FormularioCamposPreenchidos["campo1"];

 

IsNovoFormulario bool retorna true, caso seja um novo formulário, e false caso contrário.
IdFormulario Guid 

retorna o ID do formulário

CurrentStatusFluxo StatusFluxo? (Enum)

Variável disponível apenas para Workflow

 

Nessa ENUM será retornado o Status do fluxo.

As opções podem ser:

 

  • StatusFluxo.Pendente - Enquanto o fluxo ainda estiver pendente em alguma das etapas.
  • StatusFluxo.Aprovado - Depois do fluxo encerrado e completamente aprovado
  • StatusFluxo.Reprovado - Depois do fluxo encerrado e completamente reprovado

Exemplo de utilização:

 

if(CurrentStatusFluxo == StatusFluxo.Aprovado){
//restante do código
}

 

 

 

Classe BusinessRepository

Para utilizar execute BusinessRepository.NomeDoMetodo(....)

Método Retorno  
GetDataTable(string sql, params DbParameter[] parameters) DataTable

Permite retornar informações dos bancos de dados através de uma query.

Veja exemplo

GetValueFromCampo(string idCampo) string Esse método retornará o Valor de um determinado campo
GetTextFromCampo(string idCampo) string

Esse método retornará o Texto de um determinado campo, utilizado apenas se o campo for um campo de lista dinâmica, exemplo: Combo, Auto complete, Campo de Múltipla escolha, radio etc.

Esse método é necessário em algumas situações pois no Json de Campos Preenchidos no Formulario ( variável FormularioCamposPreenchidos), só retorna o ID que foi selecionado nos campos que são de Lista Dinâmica.
Veja exemplo

 

GetEnvironmentVariable(string nomeVariavel)

ou

GetEnvironmentVariable_Text(string nomeVariavel) **

string

Recupera o Valor de uma variável de ambiente.

 

** Recupera a Descrição (texto), no caso de variáveis do Tipo "Query com Id + Descrição":

 

Recuperando dados do banco de dados através de uma query SQL
//parametros da query
var paramsQuery = new List<SqlParameter>();
paramsQuery.Add(new SqlParameter("@param1", "xxx"));
paramsQuery.Add(new SqlParameter("@param2", "yyy"));
paramsQuery.Add(new SqlParameter("@param3", "zzz"));

//query usando (nolock) nas tabelas para evitar problema com a transação que está ativa
var sql = "select column1,column2,column3 from table (nolock) where column1 = @param1 or  column2 = @param2 or  column3 = @param3 ";

//executar no banco de dados
var dt = BusinessRepository.GetDataTable(sql, paramsQuery.ToArray());

//percorrendo as linhas de retorno da tabela
foreach (DataRow dr in dt.Rows)
{
  if (dr["column1"] != DBNull.Value)
  	FormMessage.Warning(dr["column1"].ToString());
}

 

Para recuperar o Texto de um campo que seja uma Lista Dinâmica (Combo, Auto completar, Múltipla seleção, Radio):

Suponhamos que você tenha um formulário de Pedido e  nesse formulário você tenha um campo chamado 'Produto'.
Esse campo é do tipo 'Pesquisa com Auto Completar' e listará os 'Produtos' por 'Nome'.
Quando o usuário salvar o formulário, no Json de envio não retornará o Nome do Produto, apenas o Id do produto selecionado (Esse id estará no formato de um GUID).
Para recuperar o Nome do produto, você precisará executar o método GetTextFromCampo da seguinte forma:

var nomeProduto = BusinessRepository.GetTextFromCampo("produto");
Recuperar os valores das "Variáveis de Ambiente"

Para saber mais sobre variáveis de ambiente entre em Variáveis de ambiente

var valorDaVariavel = BusinessRepository.GetEnvironmentVariable("var_nomeDaVariavel");

Recuperar a Descrição (texto), no caso de variáveis do Tipo "Query com Id + Descrição":

var textDaVariavel = BusinessRepository.GetEnvironmentVariable_Text("var_nomeDaVariavel");

 

Classe: FormMessage 

Responsável pelas mensagens (alertas) para o usuário

Método Retorno  
Warning(string message) void Apresenta um aviso para o usuário
Mensagem para o usuario: A execução do código abaixo apresentará uma mensagem para o usuário
FormMessage.Warning("Exemplo de mensagem para o usuário");

O código C# se encerrará no exato momento em que for chamado o método para apresentação de mensagem.

 

Retorno da mensagem

Classe: EmailSender

Responsável pelo envio de e-mail 

Método Retorno  
SendToGrupoUsuario(Guid grupoUsuarioId, string subject, string htmlContent, string link_calltoActionEmail = "") void Enviar um e-mail para um determinado Grupo de Usuario
SendEmail(string toEmail, string subject, string htmlContent, string link_calltoActionEmail = "", string texto_calltoActionEmail = "Acessar") void Enviar um e-mail 

 

Enviar e-mail para um Grupo de Usuário

Antes de iniciar, crie um "Grupo de Usuário" no menu "Segurança e Acesso".  Depois de criado, associe os usuários que receberão e-mail ao novo grupo de usuário que você acabou de criar.

Pegue o ID desse novo Grupo de usuário. Você vai precisar dele para enviar o e-mail. 

var grupoUsuarioId = Guid.Parse("af7c9275-0e23-4b64-a433-f238bb457005"); //substitua o ID "af7c9275-0e23-4b64-a433-f238bb457005" pelo Id do grupo de usuario que você deseja enviar o e-mail
var assunto = "Novo E-mail para um Grupo de usuario ";

var link = @"https://www.link-para-redirecionar.com.br/";
var html = "Olá Grupo, <BR><BR> Teste para envio de e-mail para um Grupo de Usuário no AgilityFlow!";

EmailSender.SendToGrupoUsuario(grupoUsuarioId, assunto, html, link);

 

Enviar e-mail 

 

Método principal para utilização da Programação em C# na opção "Regra de Negócio"

A única regra é que o método se chame Execute, não tenho parâmetros de entrada e o retorno seja void.

Exemplo:

public void Execute(){            



  //aqui você pode programar   



}