Operadores matemáticos

Estão disponíveis os seguintes operadores: plus, minus, timespan, times, divide, abs, div, mod, squareroot e round.

Adição

Marca XML:

plus

Operandos:

pelo menos dois valores

Resumo:

<plus>
<value 1>
<value 2>
<value n>
</plus>

Operandos:

Tipos de dados numéricos (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Resultado:

Valor

Tipo de resultado:

Tipo de dados do operando com tipo de dados idêntico.
DOUBLE para tipos de dados numéricos mistos que, neste caso, são automaticamente convertidos para DOUBLE.

Descrição:

Adiciona os valores especificados no elemento XML

Cálculo (PPM3)

Resultado

Soma de todos os operandos

Erro

Se pelo menos um operando for igual a NULL ou de um tipo de dados não numérico

Cálculo (PPM4)

Resultado

NULL se pelo menos um operando for igual a NULL, caso contrário, a soma de todos os operandos.

Erro

Apenas se o tipo de dados for não numérico

Exemplo:

-

Subtração

Marca XML:

minus

Operandos:

exatamente dois valores

Resumo:

<minus>
<value 1>
<value 2>
</minus>

Operandos:

Tipos de dados numéricos (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Resultado:

Valor (diferença)

Tipo de resultado:

Tipo de dados do operando com tipo de dados idêntico.
DOUBLE para tipos de dados numéricos mistos que, neste caso, são automaticamente convertidos para DOUBLE.

Descrição:

Subtrai o valor 2 do valor 1

Cálculo (PPM3)

Resultado

Resultado da subtração do operando 2 do operando 1

Erro

Se pelo menos um operando for igual a NULL ou de um tipo de dados não numérico

Cálculo (PPM4)

Resultado

NULL se pelo menos um operando for igual a NULL, caso contrário, o resultado da subtração do operando 2 do operando 1

Erro

Apenas se o tipo de dados for não numérico

Exemplo:

-

Intervalo de tempo

Marca XML:

timespan

Operandos:

Exatamente dois valores (pontos no tempo)

Resumo:

<timespan>
<time 1>
<time 2>
</timespan>

Operandos:

TIME (TIMESTAMP, DATE)

Resultado:

Valor (intervalo de tempo)

Tipo de resultado:

TIMESPAN ou
FACTORYTIMESPAN quando usar um calendário de fábrica

Descrição:

Calcula a diferença de tempo entre o tempo 1 e o tempo 2. Se a diferença for negativa, o valor 0 é retornado.
Para usar o calendário de fábrica para calcular a diferença de horário, atribua ao elemento XML opcional type o valor FACTORYCALENDAR.
Valor padrão: NORMAL

 

Cálculo (PPM3)

Resultado

Intervalo de tempo entre o operando 1 e o operando 2 (operando 1 menos operando 2)

Erro

Se pelo menos um operando for igual a NULL ou pelo menos um de um tipo de dados inválido

Cálculo (PPM4)

Resultado

NULL se pelo menos um operando for igual a NULL, caso contrário, o intervalo de tempo entre o operando 1 e o operando 2 (operando 1 menos operando 2)

Erro

Apenas se o tipo de dados for inválido

Exemplo:

<timespan type="FACTORYCALENDAR"
directoryname="custom/client/factorycal"
attributename="AT_FC_XYZ">
<max>
<attribute name="AT_GOODS_RECEIPT_DATE"
nodetype="OT_FUNC"
objectname="SAP.MM_WE_ANLEG"/>
</max>
<min>
<attribute name="AT_END_TIME"
nodetype="OT_FUNC"
objectname="SAP.MM_BANF_ANLEG"/>
</min>
</timespan>

Se estiver usando um calendário de fábrica, também poderá calcular intervalos de tempo negativos especificando o atributo XML opcional negfactorytimespan="TRUE".
Valor padrão: FALSE

Também pode executar cálculos de intervalo de tempo com base em calendários externos de fábrica, especificando um arquivo XML de calendário de fábrica. No atributo XML opcional directoryname, especifique o diretório contendo o calendário de fábrica a ser usado. O atributo attributename é usado para especificar o nome do tipo de atributo contendo o nome do arquivo de calendário de fábrica a ser usado. O tipo de atributo tem de ser especificado para o objeto ou instância de processo correspondente. Os dois atributos XML têm sempre de ser especificados em conjunto.

Multiplicação

Marca XML:

times

Operandos:

pelo menos dois valores

Resumo:

<times>
<value 1>
<value 2>
<value n>
</times>

Operandos:

Tipos de dados numéricos (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Resultado:

Valor (produto)

Tipo de resultado:

Tipo de dados do operando com tipo de dados idêntico.
DOUBLE para tipos de dados numéricos mistos que, neste caso, são automaticamente convertidos para DOUBLE.

Descrição:

Multiplica os valores especificados no elemento XML.

Cálculo (PPM3)

Resultado

Resultado da multiplicação dos operandos 1 por n

Erro

Se pelo menos um operando for igual a NULL ou de um tipo de dados não numérico

Cálculo (PPM4)

Resultado

NULL se pelo menos um operando for igual a NULL, caso contrário, o resultado da multiplicação de todos os operandos

Erro

Apenas se o tipo de dados for não numérico

Exemplo:

-

Divisão

Marca XML:

divide

Operandos:

exatamente dois valores

Resumo:

<divide>
<value 1>
<value 2>
</divide>

Operandos:

Tipos de dados numéricos (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Resultado:

Valor (quociente)

Tipo de resultado:

Sempre DOUBLE

Descrição:

Divide o valor 1 pelo valor 2.

Cálculo (PPM3)

Resultado

Resultado da divisão do operando 1 pelo operando 2

Erro

Se pelo menos um operando for igual a NULL ou pelo menos um operando de um tipo de dados inválido ou operando 2 = 0

Cálculo (PPM4)

Resultado

NULL se pelo menos um operando for igual a NULL, caso contrário, o resultado da divisão do operando 1 pelo operando 2

Erro

Se pelo menos um operando for de um tipo de dados inválido ou operando 2 = 0

Exemplo:

-

Quantidade

Marca XML:

abs

Operandos:

exatamente um valor

Resumo:

<abs>
<value 1>
</abs>

Operandos:

Tipos de dados numéricos (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE)

Resultado:

Valor (valor absoluto)

Tipo de resultado:

Tipo de dados do operando

Descrição:

Retorna a quantidade de um valor.

Cálculo (PPM3)

Resultado

Valor absoluto do operando

Erro

Se pelo menos um operando for igual a NULL ou de um tipo de dados não numérico

Cálculo (PPM4)

Resultado

NULL se o operando for igual a NULL, caso contrário o valor absoluto do operando

Erro

Apenas se o tipo de dados for não numérico

Exemplo:

-

Divisão de inteiro

Marca XML:

div

Operandos:

exatamente dois valores inteiros

Resumo:

<div>
<value 1>
<value 2>
</div>

Operandos:

LONG

Resultado:

Valor inteiro da divisão

Tipo de resultado:

LONG

Descrição:

Retorna o valor inteiro das vezes em que o valor 2 está contido no valor 1. O restante é ignorado. Para frações adequadas, é retornado 0.

Cálculo (PPM4 apenas)

Resultado

NULL se pelo menos um operando for igual a NULL, caso contrário, o resultado inteiro da divisão do operando 1 pelo operando 2

Erro

Se pelo menos um operando for de um tipo de dados inválido (não LONG) ou operando 2 = 0

Exemplo:

<div>
<max>
<attribute name="AT_COST"
nodetype="FUNCTION"/>
</max>
<constant>
<dataitem>
5
<datatype name="LONG">
Long
</datatype>
</dataitem>
</constant>
</div>

Módulo

Marca XML:

mod

Operandos:

exatamente dois valores inteiros

Resumo:

<mod>
<value 1>
<value 2>
</mod>

Operandos:

LONG

Resultado:

Restante de inteiro

Tipo de resultado:

LONG

Descrição:

Retorna o restante de uma divisão de inteiro do valor 1 pelo valor 2. Para frações adequadas, é retornado o valor do primeiro operando. Se o valor 1 = valor 2, 0 é retornado.

Cálculo (PPM4 apenas)

Resultado

NULL se pelo menos um operando for igual a NULL, caso contrário, o restante da divisão inteira do operando 1 pelo operando 2

Erro

Se pelo menos um operando for de um tipo de dados inválido (não LONG) ou operando 2 = 0

Exemplo:

<mod>
<filteredattribute name="AT_COST"
nodetype="FUNCTION"/>
<constant>
<dataitem>
3
<datatype name="LONG">Long</datatype>
</dataitem>
</constant>
</mod>

Raiz quadrada

Marca XML:

squareroot

Operandos:

exatamente um valor

Resumo:

<squareroot>
<value 1>
</squareroot >

Operandos:

Tipos de dados numéricos (LONG, DOUBLE, TIMESPAN, FACTORYTIMESPAN, FREQUENCY, PERCENTAGE, e tipos de dados definidos pelo usuário, por exemplo, COST)

Resultado:

Raiz quadrada

Tipo de resultado:

Tipo de dados DOUBLE

Descrição:

Calcula a raiz quadrada do valor inserido.

Cálculo (PPM4 apenas)

Resultado

NULL se o operando for igual a NULL, caso contrário, a raiz quadrada do operando numérico

Erro

Se o operando for de um tipo de dados inválido (não numérico) ou se o valor do operando for inferior a 0

Exemplo:

-

Arredondar

Marca XML:

round

Operandos:

Um valor único do tipo TIMESPAN

Resumo:

<round>
<value>
</round>

Operandos:

TIMESPAN

Resultado:

Valor de intervalo de tempo arredondado

Tipo de resultado:

TIMESPAN

Atributos XML

scale (MINUTE|HOUR|DAY|WEEK|MONTH|YEAR)

roundingkind (ROUND|FLOOR|CEIL) "ROUND"

Descrição:

Retorna o valor arredondado dos intervalos de tempo. Apenas os valores do tipo de dados TIMESPAN podem ser arredondados. Tem de ser especificada a escala a ser usada para o arredondamento.

Existem os seguintes métodos de arredondamento:

ROUND (casas decimais <5 arredondadas para baixo,> = 5 arredondadas para cima)
CEIL (arredondado para o número inteiro seguinte, independentemente do valor da casa decimal)
FLOOR (arredondado para baixo para o número inteiro atual, independentemente do valor da casa decimal)
O valor padrão é ROUND.

Cálculo (PPM4 apenas)

Resultado

O valor arredondado na escala especificada.

Erro

Se o operando for de um tipo de dados inválido ou um número inválido de operandos.

Exemplo:

<round scale="MINUTE" roundingkind="CEIL">
<constant>
<dataitem value="4284.0">
1,19
<datatype name="TIMESPAN">
Time span
</datatype>
<scale name="HOUR" factor="3600.0">
Hours
</scale>
</dataitem>
</constant>
</round>

O valor do intervalo de tempo de 1,19 horas é convertido para 71,4 minutos, conforme especificado pela escala, e é arredondado para 72 minutos (valor de retorno), de acordo com o método de arredondamento especificado.

Valor Null

Marca XML:

nullvalue

Operandos:

exatamente dois valores

Resumo:

<nullvalue>
<value 1>
<value 2>
</nullvalue>

Operandos:

Qualquer tipo de dados, ambos os operandos têm de ser do mesmo tipo de dados.

Resultado:

Valor do primeiro operando se não for nulo, caso contrário, o valor do segundo operando

Tipo de resultado:

Tipo de dados do operando

Descrição:

Substitui o valor eventualmente ausente do primeiro operador (valor nulo) pelo valor do segundo operador. Se o primeiro operando fornecer um valor, esse valor será retornado, caso contrário, o valor do segundo operando será retornado.
Se ambos os operadores não fornecerem nenhum valor, null será retornado como um valor. Isso significa que o segundo operador deve sempre fornecer um valor.

Cálculo (PPM4 apenas)

Resultado

Valor do primeiro operando se não for nulo, caso contrário, o valor do segundo operando.

Erro

Quando os operandos têm tipos de dados diferentes

Exemplo:

<nullvalue>

<subtext beginindex="3">

<filteredattribute name="AT_XYZ"Quebra de linha
nodetype="PROCESS"/>

</subtext>

<constant>

<dataitem>

ABC

<datatype name="TEXT">Text</datatype>

</dataitem>

</constant>

</nullvalue>

Se o operador subtext não retornar nenhum valor, é retornada a cadeia de caracteres da constante ABC.