Definição de Atributos de Cálculo

Os atributos de cálculo permitem adicionar funções lógicas e matemáticas a fim de derivar valores de atributos. Eles podem ser incorporados em outros atributos calculados para produzir funções complexas. Os atributos calculados são somente leitura. Eles só podem ser avaliados em relação a Programações.

Programações: Você pode adicionar qualquer Cálculo, e ele será avaliado, independentemente de ter sido atribuído ou não explicitamente à tarefa.

Modelos: Não é possível adicionar um atributo personalizado que tenha a opção Cálculo selecionada como uma coluna ou um atributo que pode ser filtrado.

Quando os administradores adicionam atributos às seções Atributos nas caixas de diálogo Ações, esses atributos ficam visíveis para os usuários do workflow. Os administradores podem restringir o acesso a certas funções definindo o acesso como Não Exibir. Por exemplo, para o atributo calculado XYZ, o administrador poderá definir o acesso como Visualizador: Não Exibir, a fim de que o atributo XYZ não seja exibido para os usuários que têm somente a função Visualizador.

Qualquer função de usuário pode adicionar atributos calculados como colunas em exibições e portlets. Eles também podem ser adicionados como atributos que podem ser filtrados no Painel Filtro.

Para definir um atributo de cálculo:

  1. Na página Inicial, clique em Aplicativo e, em seguida, em Task Manager.
  2. Clique na guia Atributos à esquerda.
  3. Clique em Novo e na guia Propriedades insira um Nome para o atributo, e depois selecione um Tipo de atributo.
  4. Selecione a opção Cálculo.
  5. Na guia Cálculo, selecione um Script de Cálculo.

Você pode selecionar um dos tipos de cálculo a seguir. Os tipos disponíveis são determinados pelo Tipo de atributo (Texto, Inteiro, e assim por diante).

  • Atribuir Valor à Lista: Atribui valores personalizados a um atributo de tipo Lista

  • Atribuir Lista a Valor: Atribui valores de lista personalizados aos valores de um atributo diferente. Somente disponível para atributos do tipo Lista.

  • Condicional: Um cálculo condicional (If – Then – Else)

  • Com Script: Um cálculo de script de formato livre. Somente disponível para atributos do tipo Inteiro, Texto com Várias Linhas, Número ou Texto.

A tabela a seguir lista os tipos de cálculo disponíveis para cada tipo de atributo.

Tipo de Atributo Atribuir Valor à Lista Condicional Com Script Atribuir Lista ao Valor
Data        
Data/Hora        
Inteiro X X X  
Lista   X   X
Texto com Várias Linhas X X X  
Número X X X  
Texto X X X  
Verdadeiro/Falso   X    
Usuário        
Sim/Não   X    

Definição de Cálculo

O tipo de Cálculo Com Script permite inserir uma equação de cálculo de formato livre. Você pode usar Adicionar Atributo e Adicionar Função:

  • Adicionar Atributo: Selecione um atributo e insira o atributo na caixa Definição de Cálculo no local do cursor. Se o cursor estiver no meio de uma palavra ou atributo, a palavra/atributo será substituída na definição. O formato de script adiciona colchetes {} antes e depois do nome do novo atributo.

    Os únicos atributos disponíveis são os de Programação.

  • Adicionar Função: Selecione uma função e adicione-a à Definição de Cálculo. A Função é adicionada com espaços reservados para cada parâmetro.

Por exemplo: Insira a função DATE_DIFF na definição de cálculo:

DATE_DIFF(<Date1>, <Date2>, <Type>)

Depois substitua os espaços reservados por atributos:

DATE_DIFF( {Start Date}, {End Date}, 'DAYS')

Funções Numéricas e de Data

  • Valor Absoluto: Retorna o valor absoluto de um número específico. Se o número for menor que zero, o valor positivo do número é retornado. Se o número especificado for igual ou maior que zero, o número especificado é retornado.

    ABS(<Number>)

  • Adicionar Mês: Retorna um deslocamento de data; um número especificado de meses a contar da data inicial. A data sempre incorrerá no deslocamento do mês especificado. Se a data inicial tiver um valor de dia além do que está no mês de deslocamento, será usado o último dia do mês de deslocamento. Por exemplo, EDate (31 de janeiro de 2017) retornará (28 de fevereiro de 2017). Em Meses, informe o número de meses antes ou depois das data de início. Um valor positivo para meses produz uma data futura. Um valor negativo produz uma data passada.

    ADD_MONTH(<Start Date>, <Months>, <Length>)

    Exemplo: ADD_MONTH(DATE(2017, 2, 15) 3)

  • Data: Retorna um valor de data com base nos valores de inteiro especificados para ano, mês e dia.

    DATE(<Ano>, <Mês>, <Dia>)

  • Diferença de Data: Retorna a diferença em anos, meses, dias, horas, minutos ou segundos entre duas datas. Para DATA 1 e DATA 2, é possível usar os valores TODAY e NOW, que denotam a data atual (sem componente de horário) e a data/horário, respectivamente.

    DATE_DIFF(<Date1>, <Date2>, <Type>)

    Exemplo: DATE_DIFF( {Start Date}, 'TODAY', 'DAYS')

  • Dia: Retorna o valor de dia de uma data como um número inteiro

    DIA(<DATA>)

  • Extrair Texto: Retorna a substring contida no valor, com base nas posições especificadas.

    SUBSTRING(<Value>, <Location>, <Length>)

    Exemplo: SUBSTRING( {Nome}, 4, 10)

  • If Then Else: Permite inserir um cálculo condicional no cálculo com script. Os cálculos IF_THEN_ELSE também podem ser aninhados para suportar cálculos do tipo ELSE IF.

    IF_THEN_ELSE(<Condition>, <Value1>, <Value2>)

    Exemplo: IF_THEN_ELSE( ( {Priority} = 'Low'), 1,IF_THEN_ELSE( ( {Priority} = 'Medium'), 2, IF_THEN_ELSE( ( {Priority} = 'High'), 3, 0)))

    Exemplo: IF_THEN_ELSE( ( {Priority} = 'Low'), 'Good' IF_THEN_ELSE( ( {Priority} = 'Medium'), 'Better'. 'Best') )

  • String Interna: Retorna o índice da substring dentro do valor.

    INSTRING(<Value1>, <Value to Search>)

    Exemplo: INSTRING({Nome}, 'a')

  • Comprimento: assume um valor de texto como parâmetro e retorna um número inteiro que consiste no número de caracteres no texto. Se o valor estiver vazio ou for nulo, o cálculo retornará 0.

    Comprimento ({<atributo>})

    Exemplo: LENGTH("Value") retornaria 5 e LENGTH({Name}) retornaria o número de caracteres no nome do objeto.

    Use o cálculo com SUBSTRING para extrair os quatro últimos caracteres de um valor de texto.

    SUBSTRING( {MyString}, LENGTH ({MyString}) - 4

  • Minúscula: Retorna o valor em letra minúscula

    LOWERCASE(<Value>)

    Exemplo: LOWERCASE ({Código da Tarefa})

  • Máximo: Retorna o valor máximo de uma lista de atributos. Pode haver um número qualquer de parâmetros.

    MAX <Value1>, <Value2>, <ValueN>)

    Exemplo: MAX( {Scripted Substring Loc a}, {Scripted Substring Loc s}, {Scripted Substring Loc t} )

  • Mínimo: Retorna o valor mínimo de uma lista de atributos. Pode haver um número qualquer de parâmetros.

    MIN (<Value1>, <Value2>, <ValueN>)

    Exemplo: MIN( {Scripted Substring Loc a}, {Scripted Substring Loc s}, {Scripted Substring Loc t} )

  • Mês: Retorna o valor de mês de uma data como um número inteiro (1-12)

    MES (<DATA>)

  • Potência: Eleva um número para a potência exponencial de outro.

    POWER(x,y) em que x=NÚMERO BASE e y=EXPOENTE, e x e y podem ser atributos ou cálculos, desde que sejam numéricos.

    Exemplo: POWER(3,4)=81

    Nota:

    Valores fracionais reduzirão o número para a respectiva raiz. Por exemplo, POWER(27, 1/3) = 3 a raiz cúbica.

    Os valores negativos executarão uma inversão do cálculo exponencial. Por exemplo, POWER(2, -2) = 1 / (2^2) = 1 / 4 = 0,25.

  • Arredondar: Retorna o valor arredondado para as casas decimais especificadas

    ROUND <Attribute>, <Decimal Places>)

    Exemplo: ROUND( ({Scripted Substring Loc t} / 7), '4')

  • Local do Texto: Retorna o índice da substring dentro do valor, começando em 1 como a primeira posição.

    INSTRING(<Value>, <Value To Search>)

    Exemplo: INSTRING( UPPERCASE( {Name} ), 'TAX' )

  • Maiúscula: Retorna o valor em letra maiúscula.

    UPPERCASE(<Valor>)

    Exemplo: UPPERCASE( {Nome} )

  • Ano: Retorna o valor de ano de uma data como um número inteiro.

    ANO (<DATA>)

Validação do Cálculo

As seguintes verificações de validação são realizadas quando você salva o Cálculo:

  • A sintaxe do Cálculo está correta.

  • Os Atributos e Funções especificados no Cálculo existem.

  • Parâmetros a Funções estão corretos.

  • Não existem Loops Circulares.