Tópico anterior: Criar módulos de lógica de negócios

Próximo tópico: Implementar destinos dinâmicos

Criar parâmetros

Os parâmetros fornecem aos usuários corporativos uma maneira rápida e intuitiva de exibir e alterar seus valores por meio da interface gráfica de usuário (GUI), sem precisar editar o script de fórmula.

O uso de parâmetros na lógica de negócios permite a criação de fórmulas gerais que podem ter um amplo uso em todo o sistema e otimiza o uso de módulos.

Os parâmetros podem ser definidos em nível de contrato ou de métrica. Os parâmetros em nível de métrica são exibidos e configurados na guia Declaração de objetivo dos Detalhes da métrica. A lógica de negócios tem acesso apenas aos parâmetros em nível de métrica; portanto, para acessar um parâmetro de contrato em uma métrica, um tipo diferente de parâmetro é criado localmente na métrica. É chamado de parâmetro dinâmico e obtém seu valor como uma referência dos parâmetros em nível de contrato. Os valores de referência permitidos no parâmetro dinâmico são apenas aqueles definidos no contrato pai da métrica.

Tipos de parâmetros:

Para acessar os valores do parâmetro no código da fórmula, é necessário usar o objeto de parâmetros e fazer referência ao nome do parâmetro.

Exemplo:

Parameters("Threshold")
(Observe que esse é um método resumido de chamar o valor - normalmente é feito como Parameters.Item("Threshold").)

Ou, para um parâmetro de tipo de tabela:

Parameters("Table")("Word")("Price")

(Onde os valores "Word" e "Price" são os nome de linha e coluna do parâmetro de tabela, respectivamente.)

Os parâmetros de tabela só devem ser usados após uma série de pontos principais:

  1. Definir uma variável global (por exemplo, dim myTableParam).
  2. Na função OnLoad, preencher a variável do objeto de parâmetros (por exemplo, “Set myTableParam = Parameters(“MyParametersTable”)).
  3. Desse ponto em diante, use apenas o objeto criado, myTableParam. O parâmetro em si não deve ser usado fora da função OnLoad, e você só deve fazer referência ao objeto de variável global criado a partir dele.
    (por exemplo, “dim myVal: myVal = myTableParam (“myRow”)(“myColumn”)).

Isso libera memória que o parâmetro utiliza e evita que o mecanismo crie o mapa do parâmetro em cada chamada de parâmetro e para cada "OnXXXEvent", que pode ser chamado milhares de vezes por métrica.

O código a seguir ilustra o uso correto de um parâmetro de tabela:

Option Explicit

Dim sum
Dim myParamTable

Sub OnLoad(TIME)
   Set myParamTable = Parameters("MyTableParam")
End Sub

Sub OnRegistration(dispatcher)
  dispatcher.RegisterByResource" OnEvent", "EventType", "ResourceType"
End Sub

Sub OnPeriodStart(TIME)
   sum = 0
End Sub

Sub OnEvent(eventDetails)
   If Context.IsWithinTimeslot Then
      sum = sum + 1 * myParTimeSlotamTable("firstRow")("secondColumn")
   End If
End Sub

Function Result
   Result = ( sum * myParamTable("secondRow")("thirdColumn")  )
End Function

Os seguintes métodos estão disponíveis para cada objeto de parâmetro criado no código.

Parâmetro

Descrição

IsExist

O parâmetro existe.

IsNumeric

Parâmetro de número.

IsText

Parâmetro de texto.

IsDate

Parâmetro de data.

IsTable

Parâmetro de tabela.

IsEntryExist

Há uma entrada na tabela.

IsEntryNumeric

Entrada numérica na tabela.

IsEntryText

Entrada de texto na tabela.

IsEntryDate

Entrada de data na tabela.

Dump

Retorna uma lista de todos os parâmetros.

Item

Refere-se ao valor do parâmetro.