Jump to content
raphaelluizschettino

Erro em exemplo de fórmula visual totvs.

Recommended Posts

Prezados estou seguindo um exemplo da TDN para criar uma fórmula visual.

Sò que aparece quando clico em destinatário a mensagem seguinte aparece: 'O objeto de tipo 'System.String' não pode ser convertido no tipo 'System.String[]'.'

EStou na figura 12 do link http://tdn.totvs.com/pages/releaseview.action?pageId=75269761

Share this post


Link to post
Share on other sites

Prezado, boa tarde!

Pode indicar como resolveu este problema?

Estou com o mesmo problema. Quando dou duplo click no campo destinatário aparece o erro O objeto de tipo 'System.String' não pode ser convertido no tipo 'System.String[]'.

Grato!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By ChromusMaster
      Tenho a seguinte demanda: Atualmente o sistema não impede de ser feita uma requisição de material com a quantidade de itens no pedido superior ao existente no saldo físico do sistema. Preciso bloquear e alertar o usuário sobre essa questão.
      Alguém teria uma ideia sobre como construir uma fórmula visual ou fórmula RM para conseguir validar isso?
    • By ChromusMaster
      Prezados, esta fórmula visual precisa ser alterada colocando na consulta os CODTMV fixos dos movimentos de notas ficais. Para quem for utilizar na saída pode precisar alterar a lógica da fórmula. Testado nas situações (movimento sem cotação / movimento com cotação ) mas sempre será preciso ter um pedido de compras.
    • By ChromusMaster
      Pessoal bom dia!
      Estamos usando a versão 12.1.22.201 e ao criar uma fórmula visual que na visão inicial de cadastro de aluno buscasse o nome do curso, está trazendo o curso apenas do primeiro aluno e não está trazendo o correto para cada aluno. Já verifiquei o ForEach e o retorno da consulta. Aparentemente está tudo correto. Alguém pode auxiliar? O suporte da TOTVS está me direcionando para consultoria e financeiramente é inviável para nós.
      ExibeNomeCurso.TotvsWF
    • By Jair - Fórmula
      Os sistemas TOTVS RM tem um recurso de Fórmulas muito importante, o qual utiliza funções para buscar dados no próprio sistema, em tabelas, relacionadas a cálculos, e diversas formas de tratar as informações para relatórios, para calcular eventos, impostos, etc. 
      Segue neste tópico todas as funções apresentadas nos sistemas, com exemplos, e juntando todas as diversas páginas em uma única.
       
      Cadastro de Fórmulas 
       
      O Cadastro de Fórmulas nos aplicativos RM terá, basicamente, três principais objetivos, dentre eles:
      Seleção (restrição da aplicabilidade de alguma operação). Definição da forma de cálculo de eventos específicos, inclusive do tipo "base de cálculo", que servem de referência para outros cálculos. Relacionamento de valores entre os eventos. O editor de fórmulas possui um campo de texto para que você monte as estruturas das fórmulas. Usando o editor de fórmulas, as funções e comandos desejados para a criação da fórmula serão movidos para o campo de texto, bastando clicar duas vezes sobre as opções função, comando ou parâmetro.
       
      Observação
      Funções podem ser escritas com letras maiúsculas e/ou minúsculas. Na fórmula só poderão ser incluídas até 50 constantes.
       
      O parâmetro crítica global permite que uma fórmula possa ser usada em uma crítica global dos sistemas, a fim de fazer a validação ou cálculo necessário para o processo que a usar.
       
      Exemplo
      No sistema de Folha de Pagamento esta opção é marcada para indicar que a fórmula deverá ser processada para todos os funcionários selecionados durante o processo de Crítica da Folha (Rotinas | Crítica da Folha). Fórmulas de crítica servem para verificar se determinado evento foi ou não calculado para um funcionário ou grupo de funcionários.
       
      O parâmetro Fórmula de Seleção deverá ser marcada para distinguir todas as fórmulas que são usadas como seleção.
       
      Exemplo
      Nos módulos dos relatórios internos do módulo Automação de Ponto, como relatório do Espelho de Cartão de Ponto, pode-se utilizar uma fórmula para selecionar alguns funcionários. No campo de Fórmula de seleção só serão listadas as fórmulas que estiverem com o parâmetro "Fórmula de seleção" marcado.
       
      Para testar as fórmulas, é preciso definir um “Contexto”, ou seja, Clique no ícone para selecionar o contexto da execução da fórmula, isto é, para qual ou quem a fórmula será executada. Exemplo: Para qual produto (Gestão de Estoque) ou para que funcionário (Folha de Pagamento) a fórmula será executada.
       
      A caixa de diálogo Seleção de Contexto será apresentada. Clique no ícone para testar a fórmula. Caso o contexto ainda não tenha sido selecionado, a caixa de diálogo Seleção de Contexto será apresentada automaticamente.
       
      Gerar LOG para fórmulas

      No módulo Serviços Globais é possível gerar arquivos de LOG de fórmulas, que tem como finalidade registrar em um arquivo informações sobre a execução da fórmula. Para gerar um arquivo de LOG de fórmula é necessário clicar duas vezes sobre um registro de fórmula na tela de visão das fórmulas.

      O parâmetro ‘Acompanhar execução e salvar no arquivo:’ permite exibir o arquivo com os dados da LOG após o término do Resultado da fórmula. Abaixo deste campo o sistema apresenta o campo de texto onde é apresentado o nome e extensão do arquivo onde os dados do LOG serão gravados. Ao acionar o botão Resultado, o sistema executa o cálculo da fórmula e apresenta seu valor.
      Para testar Fórmula Automaticamente ao Salvar, Marque esta opção para que o sistema automaticamente teste a fórmula quando esta for salva. O resultado da fórmula será apresentado no campo resultado.
       
      No cadastro de fórmulas também são exibidas a data e hora da última alteração realizada na fórmula, bem como o Usuário responsável, que exibe o usuário que realizou a última alteração na fórmula.
       
      Observação
      A fórmula não precisa ser gravada para que o teste seja executado. O resultado de uma fórmula será apresentado com N casas decimais, conforme o produto que o usuário estiver utilizando.
       
      Exemplo
      Caso o usuário esteja utilizando o módulo Folha de Pagamento, o resultado será exibido com 4 (quatro) casas decimais.
       
      Aplicação das fórmulas
       
      Uma aplicação para as fórmulas são os campos complementares, onde têm a função de validar um determinado valor, como por exemplo, a utilização de fórmula para validação de pré-requisito de disciplinas, cálculo de insumos.
       
      Para validar o campo complementar basta associar a fórmula desejada ao campo complementar, para que esta valide o conteúdo do campo complementar quando você incluir um valor para ele.
       
      Outra finalidade é o seu uso em consultas SQL e relatórios do sistema. Pelos relatórios você inclui as fórmulas deslocando o componente de fórmulas e associando-o a uma fórmula cadastrada no sistema. Já nas Consultas SQL as fórmulas devem ser incluídas passando um comando específico para informar que você está utilizando uma fórmula do sistema.
       
      Exemplo
      SELECT CHAPA, SALARIO FROM PFUNC
      WHERE CHAPA = :FRM_CHAPA;
       
      Fórmulas em VB.NET
       
       
      No módulo Globais é possível criar e executar fórmulas em VB.Net. Esta funcionalidade tem como objetivo permitir que usuários também utilizem da linguagem VB.net para elaborar e executar fórmulas no RM.exe, além das Fórmulas RM.
       
       
      Na aba administração, selecione a action Fórmulas. Após definir e executar um filtro, selecione agora um Sistema e logo após a opção Novo, para que o a janela para inserção de uma nova Fórmula seja exibida. Preencha os campos Código e Título. No campo Linguagem, selecione a opção VB. NET.
       
       
      Insira no campo destinado a elaboração das fórmulas, uma fórmula válida elaborada na linguagem VB.NET . Acione o botão Contexto, informe um contexto para execução e execute-o.
       
       
      Ao acionar o botão Resultado, o sistema irá exibir o resultado da fórmula inserida na linguagem VB.NET.
       
      Selecione a opção Salvar e o sistema registrará a fórmula em VB.NET, exibindo a mesma na listagem de fórmulas do sistema. 
       
      Fórmulas Globais
        As fórmulas globais são aquelas apresentadas para todos os módulos do sistema, e são passíveis de uso em qualquer um deles.   Conheça as fórmulas globais:   EXECSQL  Executa uma consulta SQL. Caso a execução tenha pelo menos uma linha de resultado, está variável retorna VERDADE. Sua sintaxe é: EXECSQL(‘código da consulta SQL’).   Exemplo: EXECSQL('Codigo_Consulta_SQL')   PROXREGSQL

      Avança um registro na Consulta SQL executada.   Sua sintaxe é: PROXREGSQL('código da consulta sql')   Exemplo: PROXREGSQL('Codigo_Consulta_SQL')   RESULTSQL Esta função lê uma linha do resultado da execução da SQL.  Sua sintaxe é: RESULTSQL('código da consulta sql', 'nome do campo')   Exemplo: RESULTSQL('Codigo_Consulta_SQL', 'SALARIO')      
          Fórmulas específicas para o RM Labore - Gestão de Folha de Pagamento
          A utilização de fórmulas no RMLabore se faz necessário, por exemplo, em situações em que o código de cálculo nos eventos do Labore, em sua forma nativa, não possuem o comportamento desejado perante as regras de negocio da empresa.     Fórmulas / Funções - A 
        Função A = Retorna valor de um acumulador Sintaxe = A (‘CÓD. DO ACUMULADOR) Tipo de Retorno = Valor Exemplo:
      Código da fórmula: AC01 = Retorna valor do acumulador de código 01 (Comissão).
      Texto da fórmula: A(‘01’)
       
      Observação:
      O código do acumulador deve ser informado entre aspas. Os acumuladores são incluídos ou editados no cadastro de tabelas dinâmicas. No cadastro de eventos, você define se valores deste serão guardados em determinado acumulador.
       
      Atenção:
      As variáveis de fórmula que são relativas à movimentação do funcionário, como a A, não devem ser utilizados para fórmula de seleção. Porque no momento da seleção, o sistema ainda não executou a movimentação do funcionário. Desta forma, estas funções/variáveis irão retornar sempre "zero".
       
      Função ABS = Valor Absoluto Sintaxe = ABS (VALOR) Tipo de Retorno = Valor  
      Função ACUMFF = Acumulador de ficha financeira Sintaxe = ACUMFF(MÊS, ANO, 'CÓD. DO ACUMULADOR') Tipo de Retorno = Valor  
      Observação:
      Este acumulador deverá ser criado em TABELAS DINÂMICAS - INT34
       
      Função ADIANT = Retorna percentual de adiantamento Sintaxe = ADIANT Tipo de Retorno = Valor  
      Exemplo:
      ADIANT
      Supondo que o funcionário Antônio tem um percentual de adiantamento de 40%, o retorno da fórmula, para esse funcionário, seria 40.
       
      Função ADMDEM = Retorna admitido ou demitido no mês Sintaxe = ADMDEM Tipo de Retorno = Valor  
      Exemplo:
      ADMDEM
      Supondo que o funcionário Itamar foi admitido ou demitido no mês de competência, o retorno será 1. Se houvesse sido admitido ou demitido em outros meses, retornará 0.
       
      Função ALTEROUCADASTRO = Retorna 1 se houver alteração no cadastro do funcionário e 0 se não houver alteração. Sintaxe = ALTEROUCADASTRO(‘string’) Tipo de Retorno = Valor  
      Observação: Na sintaxe, o campo string deverá ser informado com qual campo do cadastro será validado.
       
      Exemplo:
      ALTEROUCADASTRO ('FUNCAO')
      ALTEROUCADASTRO ('SECAO')
      Esta função está contemplando se houve alteração no cadastro dos campos: FUNCAO e SECAO.
       
      Dica:
      Esta função poderá ser utilizada no campo Fórmula para Criticar o Cadastro de Funcionários no parametrizador em Folha de Pagamento | Funcionário | Restrições Cadastrais.
       
      Função ANO = Retorna ano de competência. Sintaxe = ANO Tipo de Retorno = Valor  
       
      Função ANOCX = Retorna ano-caixa. Sintaxe = ANOCX Tipo de Retorno = Valor  
      Função ANODT = Retorna ano de uma data. Sintaxe = ANODT (‘DATA’) Tipo de Retorno = Valor  
      Exemplo:
      ANODT(‘23/01/1997’)
      Retorna: 1997
      ANODT (DNASCIM)
      Supondo que a data de nascimento de um funcionário seja 10/09/1961, retorna 1961.
       
      Dica: No parâmetro DATA da sintaxe pode ser uma função que retorna data no lugar da data específica.
       
      Função ARRED = Arredonda um valor sem casas decimais. Sintaxe = ARRED (VALOR) Tipo de Retorno = Valor Função ARREDONDA = Arredonda um valor com casas decimais. Sintaxe = ARREDONDA (VALOR, VALOR) Tipo de Retorno = Valor Exemplo:
      Quando há várias casas decimais e o arredondamento será apenas para duas casas decimais:
      ARREDONDA(777.7784,2) = 777,78
       
      Função ARREDVALOR = Arredonda um valor com casas decimais. Sintaxe = ARRED (VALOR, VALOR) Tipo de Retorno = Valor  
      Função ASCII = Retorna o código ASCII de um caractere. Sintaxe = ASCII (‘STRING’) Tipo de Retorno = Valor  
      Função ATRIBUI = Atribui valor a uma memória. Sintaxe = ATRIBUI(NÚMERO DA MEMÓRIA, INDEFINIDO) Tipo de Retorno = De acordo com o que for atribuído à memória  
      Exemplo:
      ATRIBUI (1, RC)
      Memória de nº 1 guardará valor do salário nominal.
       
       
    • By rteles
      Bom Dia Pessoal!
      Alguém consegue me ajudar no fluxo da fórmula visual para que na atividade "Enviar Email" seja agrupado os dados conforme o destinatário do e-mail.
      Explicando:
      Estou desenvolvendo uma fórmula com os dados construídos a partir de um select. Porém no resultado do meu select tenho uma coluna "Email do Gestor" essa coluna é variável e gostaria que fosse enviado 1 único e-mail para o destinatário da coluna "Email do Gestor" com todos os registros dos funcionários.
      No exemplo anexo consigo agrupar os dados da maneira que eu queiro mas no caso do meu select deixei com 2 emails para gestores diferentes mas estou recebendo somente 1 e-mail com todos os registros retornados da consulta.
      Não sei se a solução será incluir a atividade Enviar e-mail no loop, mas não estou conseguindo resolver.
       
      Alguém têm alguma dica?
      Obrigado.
      19022018-ExemploFV.zip
    • By jeanqueres
      Bom dia!
      Alguém já conseguiu colocar um texto default no e-mail de um movimento de Ordem de Compra?
      Até então eu consegui colocar o texto default para Pedido de Orçamento lá em [ Núcleus >> Parâmetros >> Gestão Compras >> Cotação >> E-mail ]. Nesse lugar existem duas caixa de texto 'Texto do corpo do e-mail no Pedido do Orçamento' e 'Texto do corpo do e-mail para Ordem de Compra'. O primeiro funcionou normalmente, mas o segundo não está puxando o texto. Se tiverem alguma ideia, eu agradeço.
      Abraço.
    • By gpereira
      Pessoal, bom dia!
      Estou trabalhando em um processo que consiste em enviar informações financeiras para um WebService externo.
      Via Visual Studio, em um projeto do tipo Aplicativo de Console, o projeto é compilado e as informações são enviadas para esse WebService com sucesso.
      Quando crio o projeto do tipo Biblioteca de Classes e sigo o processo para criar uma atividade extra para formula visual conforme TDN http://tdn.totvs.com/display/public/rm/Criando+uma+nova+atividade;jsessionid=9A074DD08FA7C5325237988A3C513333, a Fórmula Visual é executada com sucesso  mas as informações, que estão fixas no fonte, não são envidas para o WebService. 
      No meu projeto utilizei algumas referências que creio eu, podem estar impactando na correta execução da FV, como o System.Net.Http e System.Net.Http.Headers por exemplo. Teria que copiar essa DLL para a pasta RM.NET?


    • By Cleber Brito
      Olá a todos,
      Gostaria do apoio de vocês para resolver um problema. Estou criando uma fórmula visual onde um campo em um determinado movimento deverá ser preenchido toda vez que for salvo.
      Abaixo segue o SQL com o update
      UPDATE TITMMOV
      SET  IDCLASSIFENERGIACOMUNIC = '101'
      ,RECMODIFIEDON = GETDATE()
      FROM TITMMOV
      WHERE IDMOV = :IDMOV  
      Quando tento salvar o movimento ele me envia uma mensagem dizendo que:
      Erro na execução da Atividade: 'SQL_UPDATE'
      Erro: O comando não inclui a coluna de controle RECMODIFIEDBY. Essa coluna é obrigatória e deve ser preenchida.
      Eu já achei o campo, mas não sei como colocar o usuário corrente através do set.
      Quem puder me ajudar, ficarei agradecido.
    • By raphaelluizschettino
      PRezados estou tentando utilizar uma fórmula visual com a seguinte condição.
      this.Tables["TITMMOV"]["CODUND"].OriginalValue == "MIL"
      Na tela de ordem de compra no rm nucleos, só que nada ocorre.
      Eu coloquei um gerador de exceção abaixo do if com a mensagem de erro "Você está utilizando um produto com unidade  MIL.".
      Só que ao colocar um produto (que tem a unidade mil ) numa ordem de compra nada ocorre, mesmo eu tendo colocado no gatilho de antes de salvar o registro.
      Minha fórmula está errada? Vi na tela e o campo relamente é codund, e a tabela do item é a titmmov.
  • Recent

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.