Vorheriges Thema: Erstellen von Business-Logik-Modulen

Nächstes Thema: Implementieren dynamischer Ziele

Erstellen von Parametern

Parameter bieten Geschäftsbenutzern eine schnelle und intuitive Möglichkeit zur Darstellung und Änderung ihrer Werte über die grafische Benutzeroberfläche (GUI), ohne dass dazu das Formelskript bearbeitet werden muss.

Durch die Verwendung von Parametern innerhalb der Business-Logik wird die Erstellung allgemeiner Formeln, die systemübergreifend eine breite Anwendung finden, ermöglicht, und die Nutzung der Module wird optimiert.

Parameter können auf Vertrags- oder Metrik-Ebene definiert werden. Parameter der Metrik-Ebene werden auf der Registerkarte "Zielvorgabe" in den Metrik-Details angezeigt und konfiguriert. Die Business-Logik hat nur Zugriff auf die Parameter auf Metrik-Ebene; um also einen Vertragsparameter aus einer Metrik heraus aufzurufen, wird lokal innerhalb der Metrik ein anderer Parametertyp angelegt. Dieser wird als dynamischer Parameter bezeichnet. Dieser bezieht seinen Wert als Referenz aus den Parametern auf Vertragsebene. Im dynamischen Parameter sind als Referenzwerte nur solche zugelassen, die im übergeordneten Vertrag der Metrik definiert sind.

Parametertypen:

m auf die Parameterwerte des Formelcodes zugreifen zu können, muss das Parameterobjekt verwendet werden, und es muss sich auf den Parameternamen verwiesen werden.

Beispiel:

Parameter ("Threshold")
(Beachten Sie, dass es sich hierbei um eine Abkürzung zum Abrufen des Wertes handelt - normalerweise erfolgt dies mit Parameters.Item("Threshold").)

Oder für einen Tabellentyp-Parameter:

Parameter ("Table")("Word")("Price")

(wobei die Werte "Word" und "Price" jeweils die in der tabellarisierten Zeilen- und Spaltennamen bezeichnen)

Tabellen-Parameter sollten nur nach einer Reihe von Hauptpunkten verwendet werden:

  1. Definieren Sie eine globale Variable (z. B. dim myTableParam)
  2. Geben Sie in der Funktion OnLoad die Variable des Parameterobjekts ein (z. B."Set myTableParam = Parameters("MyParametersTable"))
  3. Verwenden Sie danach nur das erstellte Objekt myTableParam. Der Parameter selbst sollte nicht außerhalb der Funktion "OnLoad" verwendet werden, und Sie sollten nur auf das globale variable Objekt verweisen, das Sie anhand des Parameters erstellt haben.
    (Beispiel: "dim myVal: myVal = myTableParam ("myRow")("myColumn")).

Dies setzt Speicherplatz frei, den der Parameter zuvor belegt hat, und verhindert, dass die Engine die Zuweisung des Parameters für jeden Parameterabruf sowie für jeden "OnXXXEvent" (dieser kann tausende von Malen pro Metrik abgerufen werden) erstellt.

Der folgende Code verdeutlicht die richtige Anwendung eines Tabellenparameters:

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

Die folgenden Methoden sind für jedes, innerhalb des Codes erstelltes Parameterobjekt verfügbar.

Parameter

Beschreibung

IsExist

Der Parameter ist vorhanden.

IsNumeric

Ist ein Parameter vom Typ Zahl.

IsText

Ist ein Parameter vom Typ Text.

IsDate

Ist ein Parameter vom Typ Datum.

IsTable

Ist ein Parameter vom Typ Tabelle.

IsEntryExist

Ist ein vorhandener Eintrag in der Tabelle.

IsEntryNumeric

Ist ein Eintrag in einer Tabelle vom Typ Nummerisch.

IsEntryText

Ist ein Eintrag in einer Tabelle vom Typ Text.

IsEntryDate

Ist ein Eintrag in einer Tabelle vom Typ Datum.

Dump

Gibt eine Liste aller Parameter zurück.

Item

Verweist auf den Parameterwert.