Image ModifiedObjetivo
Este documento visa demonstrar como implementar uma fórmula visual no RM Gestão Fiscal para copiar/alterar dados cadastrais do Contador [1] das Filiais (o mesmo procedimento serve para os dados do Representante. Também podendo ser utilizado para outras necessidades).
Image ModifiedNecessidade
Quando um Representante ou um Contador precisam ter seus dados incluídos/alterados em uma ou mais Filiais, o procedimento é realizado Filial por Filial, tornando-se um processo lento e passível de erros.
Image ModifiedSolução
Foi criada uma Fórmula Visual buscando facilitar o processo citado, de forma que a manipulação dos dados possa ser realizada em massa e minimizando os erros. A Fórmula Visual irá copiar os dados de uma Filial selecionada para outras filiais/coligadas selecionadas pelo usuário durante o processo.
Passo-a-passo de como criar a Fórmula Visual
Observação: Caso a fórmula visual não seja criada exatamente igual ao passo-a-passo (seguindo inclusive a mesma sequencia) o nome das atividades podem alterar e consequentemente será necessário ajustar os vários parâmetros da fórmula visual para os novos nomes.
...
Informações |
---|
|
Deck of Cards |
---|
| Card |
---|
| Para se criar uma Fórmula Visual basta acessar o módulo de Serviços Globais - aba Gestão | Ferramentas de Análise | Fórmula Visual | Fórmula Visual Expandir |
---|
|
|
Uma aba se abrirá. Clique em Incluir. Expandir |
---|
|
|
Escolha um nome e a categoria da Fórmula, marque-a como Ativo, e se quiser coloque uma descrição e clique em OK. Expandir |
---|
|
|
|
Card |
---|
| Dê um duplo clique na Fórmula criada para abrir sua edição. Expandir |
---|
|
|
A seguinte aba irá se abrir, e é aqui que iremos iniciar o desenho de nossa fórmula. Expandir |
---|
|
|
|
Card |
---|
| A Fórmula Visual tem por objetivo copiar os dados de uma Filial selecionada para as demais filiais informadas no processo. Para isto, será necessário adicionar uma validação para que o processo somente execute caso tenha apenas uma filial selecionada. Adicionando a validação para que não permita executar o processo caso possua mais de uma filial selecionada.
Selecione uma nova atividade de "Se/Senão". Expandir |
---|
|
|
Arraste para o Fluxo da Fórmula Visual. Expandir |
---|
|
|
Clique com o botão direito do mouse em um dos lados da atividade "Se/Senão" e selecione a opção Excluir. Expandir |
---|
|
|
Selecione no lado que ficou da atividade, nas propriedades em Condition seleciona a opção "Condição de Regra Declarativa". Expandir |
---|
|
|
Expanda a Condition e no campo ConditionName clica nos três pontinhos (...). Expandir |
---|
|
|
Adicione uma nova Condition com a informação abaixo. Após isto, salve o registro e selecione a condition. Informação da Condição: this.Tables[0].DataTable.Rows.Count > 1 Expandir |
---|
|
|
Selecione uma nova atividade de Exceção e arraste para dentro da condição adicionada anteriormente. Expandir |
---|
|
|
Selecione a atividade de Exceção adicionada no Fluxo, na aba Propriedades adicione a mensagem que será exibida para o usuário. Obs: A mensagem pode ser customizada conforme a necessidade da empresa. Expandir |
---|
|
|
|
Card |
---|
| Adicionando a consulta SQL que irá selecionar os dados de da Filial de Origem a serem copiados para a(s) filial(is) de destino.
Selecione uma nova atividade de Consulta SQL e arraste para o Fluxo da Fórmula Visual (Abaixo da atividade Se/Senão adicionada anteriormente). Expandir |
---|
|
|
Clique com o botão direito do mouse em cima da atividade de Consulta SQL e selecione a opção "Selecionar Consulta SQL". Expandir |
---|
|
|
Clique no ícone para incluir uma nova consulta e adicione uma consulta SQL que retorne os campos que deseja copiar. Exemplo:
SELECT * FROM DFILIAL (NOLOCK) WHERE CODCOLIGADA = :CODCOLIGADA AND CODFILIAL = :CODFILIAL
Importante: O SQL deve possuir a coligada e filial como parâmetro no WHERE conforme exemplo acima para conseguir pegar os dados da Filial selecionada. Expandir |
---|
|
|
Selecione a consulta SQL criada anteriormente. Expandir |
---|
|
|
Selecione a Atividade de Consulta SQL adicionada e preencha os parâmetros nas Propriedades. CODCOLIGADA: Activity=RMSWorkflow, Path=Tables[0].Item["CODCOLIGADA"].AsShort CODFILIAL: Activity=RMSWorkflow, Path=Tables[0].Item["CODFILIAL"].AsShort Expandir |
---|
|
|
|
Card |
---|
| No processo o usuário precisará selecionar a(s) filial(is) de destino para onde os dados serão copiados. Neste passo será criado os parâmetros do processo para o usuário preencher.
Clicar em Fluxo de Trabalho Sequencial e acessar a aba de Propriedades (Essas são as propriedades da Fórmula Visual). Expandir |
---|
|
|
Na parte de Parâmetros em Definição dos Parâmetros clicar nos três pontinhos (...). Expandir |
---|
|
|
Clicar no ícone para adicionar uma nova tabela de parâmetros e colocar o nome da tabela = PARAMETROS e clicar em Ok. Expandir |
---|
|
|
Selecionar a tabela de parâmetros criada na lateral esquerda e preencher os campos conforme abaixo: CODCOLIGADA - Código da Coligada - Opcional desmarcado - Visível marcado - Tipo System.Int16 CODFILIALINICIAL - Código da Filial de Destino Inicial - Opcional desmarcado - Visível marcado - Tipo System.Int16 CODFILIALFINAL - Código da Filial de Destino Final - Opcional desmarcado - Visível marcado - Tipo System.Int16
Expandir |
---|
|
|
|
Card |
---|
| Adicionando a consulta SQL para retornar os dados da(s) filial(is) de destino que foram selecionadas nos parâmetros.
Selecione uma nova atividade de Consulta SQL e arraste para o Fluxo da Fórmula Visual (Abaixo da outra atividade de Consulta SQL adicionada anteriormente). Expandir |
---|
|
|
Clique com o botão direito do mouse em cima da atividade de Consulta SQL adicionada no passo anterior e selecione a opção "Selecionar Consulta SQL". Expandir |
---|
|
|
Clique no ícone para incluir uma nova consulta e adicione uma consulta SQL que retorne os dados da(s) filial(is) de destino. Exemplo:
SELECT CODCOLIGADA, CODFILIAL FROM DFILIAL (NOLOCK) WHERE CODCOLIGADA = :CODCOLIGADA AND CODFILIAL >= :CODFILIALINICIAL AND CODFILIAL <= :CODFILIALFINAL
Importante: O SQL deve possuir a coligada, filial inicial e filial final como parâmetro no WHERE conforme exemplo acima para conseguir pegar os dados preenchidos nos parâmetros do processo.
Expandir |
---|
|
|
Selecione a consulta SQL criada anteriormente. Expandir |
---|
|
|
Selecione a Atividade de Consulta SQL adicionada e preencha os parâmetros nas Propriedades. CODCOLIGADA: Activity=RMSWorkflow, Path=ParameterTables["PARAMETROS"].Item["CODCOLIGADA"].AsShort CODFILIALFINAL: Activity=RMSWorkflow, Path=ParameterTables["PARAMETROS"].Item["CODFILIALFINAL"].AsShort CODFILIALINICIAL: Activity=RMSWorkflow, Path=ParameterTables["PARAMETROS"].Item["CODFILIALINICIAL"].AsShort
Expandir |
---|
|
|
|
Card |
---|
| Será necessário validar se os filtros informados pelo usuário no processo encontrou pelo menos uma filial de destino.
Selecione uma nova atividade de Se/Senão e arraste para o Fluxo da Fórmula Visual (Abaixo da segunda atividade de Consulta SQL adicionada no passo anterior). Expandir |
---|
|
|
Clique com o botão direito do mouse em um dos lados da atividade "Se/Senão" adicionada anteriormente e selecione a opção Excluir. Expandir |
---|
|
|
Selecione no lado que ficou da atividade, nas propriedades em Condition seleciona a opção "Condição de Regra Declarativa". Expandir |
---|
|
|
Expanda a Condition e no campo ConditionName clica nos três pontinhos (...). Expandir |
---|
|
|
Adicione uma nova Condition com a informação abaixo. Após isto, salve o registro e selecione a condition que acabou de ser criada. this.rmsConsSQLActivity2.Tables[0].DataTable.Rows.Count == 0 Expandir |
---|
|
|
Selecione uma nova atividade de Exceção e arraste para dentro da condição adicionada anteriormente. Expandir |
---|
|
|
Selecione a atividade de Exceção adicionada anteriormente, na aba Propriedades adicione a mensagem que será exibida para o usuário. Obs: A mensagem pode ser customizada conforme a necessidade da empresa. Expandir |
---|
|
|
|
Card |
---|
| Como pode encontrar várias filiais de destino, será necessário percorre-las para executar a copia em cada filial.
Selecione uma nova atividade de ForEach e arraste para o Fluxo da Fórmula Visual (Abaixo da segunda atividade de Se/Senão adicionada no passo anterior). Expandir |
---|
|
|
Selecione a atividade de ForEach adicionada, acesse a aba Propriedades e clique no ícone Ligações. Expandir |
---|
|
|
No campo Lisa Lista de Items, apague a informação (nenhum) e preencha o campo com o valor abaixo: Activity=rmsConsSQLActivity2, Path=Tables[0].Rows Expandir |
---|
|
|
Selecione uma nova atividade de Sequência e arraste para dentro do ForEach adicionada anteriormente. Expandir |
---|
|
|
|
Card |
---|
| Abrindo o DataSet da(s) Filial(is) de Destino para poder copiar as informações.
Selecione uma nova atividade de Ler Registro e arraste para dentro da atividade de Sequencia adicionada no passo anterior. Expandir |
---|
|
|
Selecione a atividade de Ler Registro adicionada, na aba Propriedades preencha o Nome do DataServer = FisFilialFiscalData e aperte Tab no teclado. Expandir |
---|
|
|
Preencha os campos abaixo com as seguintes informações: Código da Coligada: Activity=rmsForEachActivity1, Path=Fields["CODCOLIGADA"].AsShort Código da Filial: Activity=rmsForEachActivity1, Path=Fields["CODFILIAL"].AsShort Expandir |
---|
|
|
|
Card |
---|
| Copiando as informações para a(s) filial(is) de destino.
IMPORTANTE: No exemplo informamos apenas o Nome e o Bairro do Contador. Pode adicionar mais campos conforme a necessidade da empresa. O mesmo processo é utilizado para as informações do Contador e Representante. Então, caso queira preencher outros campos, basta adicionar uma Expressão para cada campo desejado e informar o nome do campo na base de dados. Abaixo exemplo dos dois campos.
Selecione uma nova atividade de Expressão e arraste para dentro da atividade de Sequencia, abaixo da atividade de Ler Registro. Expandir |
---|
|
|
Selecione a atividade de Expressão adicionada, na aba Propriedades preencha os campos abaixo: Expressões: Valor Original (Ex: rmsConsSQLActivity1.NOMECONTADOR) Valor Calculado: Campo de Destino (Ex: Activity=rmsReadRecordActivity1, Path=Fields["NOMECONTADOR"].AsString) Obs: Para os demais campos desejados, basta mudar o nome do campo nos parâmetros acima. Este exemplo é do campo NOMECONTADOR. Expandir |
---|
|
|
Exemplo de uma nova Expressão adicionada para o Bairro do Contador. Expressões: rmsConsSQLActivity1.BAIRROCONTADOR Valor Calculado: Activity=rmsReadRecordActivity1, Path=Fields["BAIRROCONTADOR"].AsString Expandir |
---|
|
|
Observação: Pode-se adicionar quantas expressões forem necessárias. Uma para cada campo que deseja copiar, com as suas origens e destinos preenchidos corretamente conforme demonstrado acima. |
Card |
---|
| Fechando o DataSet da(s) Filial(is) de Destino após copiar as informações.
Selecione uma nova atividade de Salvar Registro e arraste para dentro da atividade de Sequencia adicionada no passo anterior (Abaixo das Expressões). Expandir |
---|
|
|
Selecione a atividade de Salvar Registro adicionada, na aba Propriedades preencha o campo Atividade Ler Registro com a atividade adicionada no Passo 9. Expandir |
---|
|
|
|
Card |
---|
| Salvando a Fórmula Visual.
Clique no ícone Salvar para que a fórmula visual criada seja salva. Expandir |
---|
|
|
|
|
|
Passo-a-passo para associar a Fórmula Visual como um Processo no cadastro de Filiais
A fórmula visual será associada na tela de cadastro de Filiais como um "Processo" onde os usuários poderão executa-la quando necessário.
...
Informações |
---|
|
Deck of Cards |
---|
| Card |
---|
| Após criado/importado a Fórmula Visual devemos acessar Gestão Fiscal | Cadastros | Globais | Filiais | Processos | Fórmula Visual | Gerenciar Expandir |
---|
|
|
|
Card |
---|
| A seguinte janela de Gerenciamento de Fórmula Visual se abrirá. Basta selecionar a aba Processos de Fórmula Visual e clicar no ícone de Processos - Adicionar Fórmula Visual (destacado em vermelho) Expandir |
---|
|
|
|
Card |
---|
| A janela de Fórmula Visual se abrirá. Expandir |
---|
|
|
Basta selecionar a fórmula desejada, clicar em OK. O registro ficará da seguinte forma: Expandir |
---|
|
|
|
|
|
Executando o processo disponível no cadastro de Filiais
Exemplo de utilização do processo disponibilizado para os usuários de Copia Cópia das Informações para as Filiais. O processo será exibido para os usuários no cadastro de Filiais e poderá ser executado quando necessário.
...
Informações |
---|
title | Dados Contador e Representante |
---|
|
Âncora |
---|
| DadosContador |
---|
| DadosContador |
---|
|
[1] Os dados de Contador e Representante podem ser encontrados no módulo Gestão Fiscal | Cadastros | Globais | Filiais | Anexos | Dados Fiscais: Expandir |
---|
|
|
|
...