Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Introdução


Índice:

Objetivo:

          Esse documento possui a finalidade de exemplificar a utilização da atividade de fórmula visual Executar Código Fonte para personalizar a execução de processos. Utilizaremos o processo de cópia de perfis neste exemplo.Neste documento estarão explícitas as informações necessárias para realizar edições na atividade Executar Código Fonte em ambientes SmartClient / 3 Camadas.

Aviso
titleImportante

A partir da versão 12.1.31 (e superiores), é possível realizar alterações em códigos-fonte diretamente pelo RM em ambientes SmartClient ou 3 camadas (Client). Para versões anteriores, acesse a documentação: Exportação e Importação de Códigos Fontes, para compreender as limitações e informações importantes.

         Para maiores detalhes da criação e acesso a fórmulas visuais, acesse a documentação Fórmula Visual - RM

Especificação:


     A atividade “Executar Código Fonte” é uma atividade que permite que um código (que varia de Levantar uma Exceção ànecessita de arquivos presentes apenas na camada Server. Por esse motivo, era possível editá-la apenas em ambientes Server, por possuírem esses arquivos, porém, agora, mesmo SmartClient ou camada Client (3 camadas) são capazes de editar código-fonte clicando no botão Editor C#, tal qual demonstrado abaixo:

Image Added


Porém é valido frisar que existem algumas limitações. A compilação do código-fonte só passível de ser feita dentro do ambiente Server então, por exemplo, caso seja acionado o botão Build dentro do editor, é possível que sejam exibidos erros de referência, tal qual demonstrado abaixo:


Image Added


Os erros acima acontecem em ambientes SmartClient por não possuir os arquivos (DLL) necessários para a compilação daquele código-fonte. Dessa forma, para conseguir compilar este código-fonte corretamente, siga as informações abaixo:


A todo momento podemos testar se o código digitado possui erros clicando no botão Build. Clique no botão OK na janela de edição de código fonte. Clique no botão OK na janela de Cadastro de códigos fontes. Clique novamente em OK com o código recém cadastrado selecionado.
Posteriormente, para editar o código fonte associado a atividade clique no botão da propriedade Id. Código fonte.
Image Removed

Salve a fórmula visual. Na visão de fórmulas visuais, selecione a fórmula recém-criada e clique sobre o botão editar da visão. Selecione a aba Gatilhos. Em processos, selecione a opção “Antes da Execução” e clique no botão de adicionar gatilhos. Na tela aberta pesquise por GlbProcCopyPerfil e clique sobre o processo de cópia de perfis. Clique em OK para salvar as alterações.

Image Removed

Informações
iconfalse
Deck of Cards
idExemploFV
Informações
iconfalse
Crie uma nova fórmula visual e edite a mesma. A esquerda, clique na aba Atividades e arraste a atividade de Executar Código Fonte para o fluxo de trabalho da fórmula.
Image Removed

Depois de arrastar a atividade para o fluxo, clique com o botão direito do mouse e acesse a opção “Selecionar código fonte”.

Image Removed

Deck of Cards
idExemploFV
Card
idExemploFV
labelPasso 01
Card
idExemploFV
labelPasso 02

Inclua um novo registro, preencha o campo Nome do código fonte e posteriormente clique no botão Editor C#

Image Removed

Na janela aberta é disponibilizado um NameSpace com uma classe pré criada para personalizarmos a execução do nosso processo. Nessa janela possuímos recursos para executar o Build do código fonte e adicionar referências necessárias para a nossa classe entre outros.

Image Removed

Como vamos personalizar um processo, utilizaremos o método CustomProcess

Image Removed

Para manipular a classe de parâmetros do processo de cópia de perfis, é necessário referenciar a dll que contém a definição da mesma, para isso, acessamos o Project Explorer (no canto direito da janela), selecionamos o item References, clicamos com o botão direito e selecionamos a opção Add Reference...
Image Removed

Na janela aberta, selecionamos a aba Browse, e clicamos no botão Browse

Image Removed

Para acessar as propriedades da classe de parâmetros do processo, é necessário realizar um CAST do objeto genérico processParams.ParamsProc para o tipo da classe de parâmetros do processo que escolhemos (RM.Glb.Processos.GlbParamsProcCopyPerfil). Observe que após realizar o cast, as propriedades da classe de parâmetros do nosso processo estarão disponíveis através do intelisense da atividade.
Image Removed

A partir daí, podemos manipular as informações da forma como desejarmos, e nesse exemplo utilizamos o recurso para:

  • Forçar a criação de um novo perfil;
  • Não permitir a substituição de registros existentes
  • Verificar se todos os campos foram preenchidos e lançar exceções caso contrário
  • Adicionar a string “**Cópia** ” na identificação do perfil resultante do processo de cópia

Método ficou assim:

Card
idExemploFV
labelPasso 03
Card
idExemploFV
labelPasso 04
Bloco de código
languagec#
themeEclipse
  public void CustomProcess(RM.Con.SourceCode.Intf.SrcProcessParams processParams)
   {
     // força que seja criado um novo registro
     ((RM.Glb.Processos.GlbParamsProcCopyPerfil)processParams.ParamsProc).GenerateNewRecord = true;
       
     // impossibilita a substituição de recursos existentes
     if (((RM.Glb.Processos.GlbParamsProcCopyPerfil)processParams.ParamsProc).ReplaceExistingRecords)
       throw new Exception ("Não é permitido sobrescrever perfis existentes");
     
     // verifica se o código do novo perfil foi informado
     if (string.IsNullOrEmpty(((RM.Glb.Processos.GlbParamsProcCopyPerfil)processParams.ParamsProc).NewProfileCode.Trim()))
       throw new Exception("O código do novo perfil deve ser informado!");
     
     // verifica se o identificador do novo perfil foi informado
     if (string.IsNullOrEmpty(((RM.Glb.Processos.GlbParamsProcCopyPerfil)processParams.ParamsProc).NewProfileId.Trim()))
       throw new Exception("O identificador do novo perfil deve ser informado!");
           
     // verifica se o nome do novo perfil foi informado
     if (string.IsNullOrEmpty(((RM.Glb.Processos.GlbParamsProcCopyPerfil)processParams.ParamsProc).NewProfileName.Trim()))
       throw new Exception("O nome do novo perfil deve ser informado!");
           
     // altera o nome do novo perfil para que seja identificado como uma cópia      
     ((RM.Glb.Processos.GlbParamsProcCopyPerfil)processParams.ParamsProc).NewProfileName = "**Cópia** " + ((RM.Glb.Processos.GlbParamsProcCopyPerfil)processParams.ParamsProc).NewProfileName ;
   }
Card
idExemploFV
labelPasso 05
01

Após realizar as implementações desejadas no código-fonte, clique em OK. É possível que o aviso abaixo apareça:

Image Added


Este aviso aparece pelo fato de o Editor C# não ser capaz de sozinho, compilar o código-fonte em questão. Clique em Sim

Para testar a fórmula visual, acesse a visão de Perfis, selecione um registro, clique em processos, Copiar Perfil.
Image Removed

Selecionamos as opções “Novo Perfil” e “Substituir Perfis” e preenchemos os dados solicitados. Observando que, o comportamento definido foi para que não seja substituído nenhum perfil, apenas a criação de um novo como uma cópia do registro selecionado na visão.

Image Removed

Depois de clicar em executar, uma das exceções definidas no código fonte foi lançada.

Image Removed

Se repetirmos a execução preenchendo os mesmos dados e desmarcando a opção de Substituir Perfis, o processo será executado com sucesso e na visão, podemos observar que o valor da coluna Identificação na grid foi alterado conforme definido no código fonte criado.

Image Removed

Card
idExemploFV
labelPasso 06

Parâmetro da Atividade:

     Na atividade de "Executar Código Fonte (conSourceCodeActivity1)" existe a opção de criar parâmetros.

Image Removed

A utilização do parâmetro é utilizada quando é necessário a chamada de outra outra atividade dentro da fórmula visual.
Como exemplo, acrescente a atividade de "Exceção" no fluxo sequencial e aponte o parâmetro criado na atividade "Executar Código Fonte" para a atividade de "Exceção", exemplo demonstrativo abaixo:

Image Removed

Image Removed

Verifique que quando executada a fórmula visual a exceção é levantada.

Image Removed
02

Após seguir os passos para seleção do Código-Fonte, acesse o botão Salvar e Executar na Fórmula Visual:

Image Added

Neste momento, o código-fonte será enviado à camada Server, compilado e executado corretamente, tal qual demonstrado abaixo:

Image Added

Aviso
titleAviso

Os erros referentes aos arquivos DLL já presentes na camada Server do RM são suportados pela compilação tal qual demonstrado acima, porém erros de referência em DLL's terceiras não são cobertas por essa funcionalidade.

Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 12.1.24 31 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: 21 23/1012/20192021

Informações
iconfalse

Autores:

Aline Cristina Braz de Oliveira

Erlon Cesar Lima De Freitas

Gustavo Naves De Castro

Usuário desconhecido (igor.rodrigues)

LUCAS ANDRADE DE OLIVEIRA REIS

Renan Ramos Moura

TIAGO ANDRADE GOMES SILVEIRA

Wesley Avelino De CarvalhoSamuel Rener Santos Silva_

Informações
iconfalse