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 exemploNeste 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 |
---|
|
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
Aviso |
---|
|
Lembre-se: O código-fonte só é gerado ao clicar no botão Editor C#. Caso salve sem clicar em Editor C#, e tente exportar o código-fonte, o arquivo virá vazio, pois não houve a geração de código-fonte automaticamente. |
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:
Informações |
---|
|
|
Informações |
---|
|
Deck of Cards |
---|
| Card |
---|
| 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 RemovedDepois 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 Card |
---|
| 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 |
Card |
---|
| 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 RemovedNa janela aberta, selecionamos a aba Browse, e clicamos no botão Browse Image Removed Card |
---|
| 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 RemovedA 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: Bloco de código |
---|
| 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 |
---|
id | ExemploFV |
---|
label | Passo 0501 |
---|
| 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 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 RemovedSalve 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 |
Card |
---|
| Para testar a fórmula visual, acesse a visão de Perfis, selecione um registro, clique em processos, Copiar Perfil. Image RemovedSelecionamos 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 RemovedSe 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
|
|
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
| 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 |
---|
|
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. |