Tempo aproximado para leitura: 00:04:00 min
Dúvida
Como é a Sintaxe de regras e Fórmulas do Configurador de Produtos?
Ambiente
TOTVS Manufatura - TOTVS Manufatura (Linha Datasul) - Configurador de Produtos (MCF) - Versão 12
Solução
A API de interpretação de fórmulas permite a utilização de fórmulas complexas, selecionando a expressão matemática associada a uma regra com valor verdadeiro, realizando então o processamento dessa expressão e retornando o seu valor correspondente.
Para a definição de uma fórmula, utiliza-se a seguinte sintaxe:
[Regra 1] Expressão 1 [Regra 2] Expressão 2 [Regra 3] Expressão 3 ...
As regras sempre estarão entre colchetes. Sempre deverá haver uma expressão matemática associada a uma regra. Quando uma regra verdadeira for encontrada, a expressão associada a essa regra é processada e o seu valor é retornado. Caso existam mais de uma regra com resultado verdadeiro, será sempre retornado o valor correspondente à primeira expressão associada a uma regra verdadeira, sendo as demais descartadas.
Não é obrigatória a utilização de regras, caso a fórmula possua apenas um resultado. Neste caso, basta utilizar a própria expressão matemática na fórmula, sem nenhuma regra entre colchetes.
Exemplos de fórmulas
[Cor = Azul e Tamanho > (Limite * 3)] Limite * 3
[Cor = Verde ou Modelo = 1] Modelo * 9
int(substring(var1 1 2)) * 10
Para a inserção das regras e das fórmulas, o interpretador de fórmulas permite os seguintes recursos:
- Múltiplos níveis de parênteses
- Utilização das 4 operações aritméticas básicas +, -, *, /
- Utilização de prioridade entre as operações, multiplicação e divisão são executadas antes de soma e subtração
- Utilização de potenciação ^
- Utilização de divisão inteira \
- Utilização de resto de divisão MOD
- Utilização dos operadores lógicos E -> AND, OU -> OR e NÃO -> NOT
- Utilização dos operadores relacionais =, <>, >=, <=, > e <
Além disso, as seguintes funções também podem ser utilizadas, tanto nas regras quanto nas expressões:
- INT - Parâmetro – Converte um número decimal ou uma sequência de caracteres em um número inteiro.
- DEC - Parâmetro – Converte uma sequência de caracteres em um número decimal.
- STR - Parâmetro – Converte um número inteiro ou decimal em uma sequência de caracteres.
- ABS - Parâmetro – Retorna o valor absoluto de um número, sem sinal.
- SQR - Parâmetro – Retorna a raiz quadrada do número passado como parâmetro.
- UCASE - Parâmetro – Retorna uma sequência de caracteres com todo o seu conteúdo convertido para letras maiúsculas.
- LCASE - Parâmetro – Retorna uma sequência de caracteres com todo o seu conteúdo convertido para letras minúsculas.
- LEN - Parâmetro – Retorna o número de caracteres de uma sequência.
- SUBSTRING - Sequência Pos_Inicial - Posição inicial tamanho – Retorna uma parte da sequência de caracteres, começando por Pos_Inicial, com o Tamanho determinado.
- SEARCH - Sequência Busca Pos_Inicial – Retorna um número indicando a posição onde a sequência de caracteres Busca é encontrada na sequência original, iniciando por Pos_Inicial. A busca sempre é realizada a partir da esquerda.
- REPLACE - Sequência Seq_Origem - Sequencia origem e Nova_Seq - Nova sequencia – Retorna a sequência de caracteres original, com todas as ocorrências de Seq_Origem substituídas por Nova_Seq.
- ROUND - Parâmetro Casas_Decimais - Casas decimais– Retorna o número passado como parâmetro, arredondado com o número de casas decimais informado.
- TRUNC - Parâmetro Casas_Decimais – Retorna o número passado como parâmetro, truncado com o número de casas decimais informado.
- FAT - Parâmetro – Retorna o fatorial de um número.
- PI – Retorna o valor padrão de PI = 3,14159...
- ANG - Parâmetro – Converte um ângulo passado em radianos para graus.
- RAD - Parâmetro – Converte um ângulo passado em graus para radianos.
- SIN - Parâmetro – Retorna o seno natural de um ângulo, passado em radianos.
- COS - Parâmetro – Retorna o cosseno natural de um ângulo, passado em radianos.
- TAN - Parâmetro – Retorna a tangente natural de um ângulo, passado em radianos.
- SEC - Parâmetro – Retorna a secante natural de um ângulo, passado em radianos.
- COSSEC - Parâmetro – Retorna a cossecante natural de um ângulo, passado em radianos
- COTAN - Parâmetro – Retorna a cotangente natural de um ângulo, passado em radianos.
Importante
No caso das funções SUBSTRING, SEARCH, REPLACE, ROUND e TRUNC, os parâmetros devem ser separados por espaços e não por vírgulas ou ponto e vírgulas. Caso algum parâmetro seja composto, ou seja, possuir uma operação que deva ser executada antes da passagem do parâmetro para a função, ele deve ser colocado entre parênteses.
Exemplo
SUBSTRING(Cor (Posição + 5) Tamanho)
0 Comentários