Es gibt drei allgemeine Metriktypen, die verwendet werden, um die Finanzbedingungen eines Service oder Vertrags zu modellieren. Diese sind:
Berücksichtigen Sie das folgende Beispiel:
Ein neues Unternehmen wird gegründet und benötigt einen E-Mail-Service, der ihm neben der Einrichtung und Verwaltung seiner Postfächer bereitgestellt wird. Mit jedem neuen Mitarbeiter steigt offenkundig auch die Anzahl der Postfächer. Für die Bereitstellung eines E-Mail-Services für einen Vertrag fallen Festpreiskosten von $1 000 an. Darüber hinaus entstehen weitere Kosten für jedes Postfach, die monatlich abgerechnet werden. Diese Kosten pro Postfach berechnen sich nach einem gestuften Preismodell wie folgt:
|
Anzahl von Postfächern |
Kosten pro Postfach |
|
1-1 000 |
$1,00 |
|
1 001 - 5 000 |
$0,80 |
|
5 001+ |
$0,50 |
Je mehr Postfächer hinzugefügt werden, desto niedriger sind die zusätzlichen Kosten. (Zum Beispiel: 1 500 Postfächer kosten (1 000 x $1) + (500 x $0,80) = $1 400.) Bei der Verwendung dieses Modells können zwei Metriken erzeugt werden, um dies im Vertrag zu reflektieren.
Darüber hinaus schätzt das Verwaltungsteam die Anzahl der Mitarbeiter über das Jahr gesehen (2007) wie nachfolgend angezeigt. Der Trend ergibt sich aus dem Anfangswachstum des Unternehmens infolge von steigender Beschäftigung und dann durch die Eröffnung neuer Büros in anderen Regionen:
|
Jan. |
Feb. |
Mär. |
Apr. |
Mai |
Jun. |
Jul. |
Aug. |
Sept. |
Okt. |
Nov. |
Dez. |
|
50 |
100 |
500 |
900 |
1600 |
1700 |
1800 |
2500 |
2600 |
3500 |
3600 |
5800 |
Um diese Metriken zu modellieren, gehen Sie wie folgt vor:
Erstellen Sie die Fixkosten-Metrik (verwenden Sie den Preiselement-Typ) im Vertrag, indem Sie folgende Details verwenden:

Um die Fixkosten für diesen Service im Vertrag festzulegen, implementieren Sie dies als Parameter in der Business-Logik (wo die Fixkosten von der Ergebnisfunktion zurückgegeben werden müssen). Dieser Parameter kann dann über die Zielvorgabe der Metrik, wie unten dargestellt, angezeigt werden:

Die Rückgabe des Parameterwerts für diese Metrik erfolgt einfach über die Rückgabe des Werts der Servicekosten über die Ergebnisfunktion.

Erstellen Sie als Nächstes die variable Preisgestaltungs-Metrik (verwenden Sie erneut den Preiselement-Typ), um die Verbrauchskosten für die Anzahl der verwendeten Postfächer zu bestimmen. Nennen Sie diese Metrik 'Postfach-Verbrauchskosten' und erstellen Sie sie mit den folgenden Details:

In diesem Fall müssen Sie die Verbrauchsparameter in die Metrik-Details eingeben. Diese werden in die Einheitspreis-Tabelle übertragen. Um die obige Tabelle für die Anzahl von Postfächern in Bezug auf die Kosten zu modellieren, erstellen Sie eine Spalte für den oberen Grenzwert für die Postfächer und eine Spalte für die Einheitspreise:

Geben Sie dann die Werte für jede Stufe ein. In diesem Fall bestimmt der obere Grenzwert für die Postfächer die mit ihm verknüpfte Kostenklammer. Da es 3 Stufen gibt, werden sie wie folgt zur Tabelle hinzugefügt:

Implementieren Sie zusätzlich dazu die Prognosefunktion für den Verbrauch von Postfächern. Führen Sie dies aus, indem Sie die Tabelle "Prognose" mit dem voreingestellten monatlichen Layout erstellen.

Diese wird dann mit den Werten der Tabellen gefüllt, die in der Szenariobeschreibung angegeben sind.

Jetzt können Sie die Zielvorgabe für die Metrik hinzufügen. In diesem Fall werden keine Parameterwerte benötigt, da sie von den Einheitspreis- und Prognose-Tabellen abgeleitet werden.

Beenden Sie schließlich die Business-Logik folgendermaßen:
Option Explicit
Dim PPUmap1, PPUmap2, PPUmap3, PPUkey, FCmap, periodFC, TierPPU
Dim currentMonth, TotalMailboxes, MailboxesThisPeriod, TotalPrice
Sub OnRegistration(dispatcher)
'sample registration only
dispatcher.RegisterByMetric "OnMailboxAddedEvent", "NewMailboxEventType", _
"MailboxResource", "MONTH", "MetricName", "MetricContract", _
"MetricContractParty"
End Sub
Sub OnLoad(TIME)
'Initialise the price tier maps and forecast maps
Set PPUmap1 = Kontext.Field ("Price Per Unit")(1)
Set PPUmap2 = Kontext.Field ("Price Per Unit")(2)
Set PPUmap3 = Kontext.Field ("Price Per Unit")(3)
Set FCmap = Kontext.Field ("Forecast")(1)
End Sub
Sub OnPeriodStart(TIME)
'TODO: ADD code here TO handle period START event
currentMonth = GetMonth (time)
If Context.IsInForecast Then
periodFC = getForecastValue (currentMonth)
End If
MailboxesThisPeriod = 0
TotalPrice = 0
End Sub
Sub OnPeriodEnd(TIME, isComplete)
' Calculate the current price of all the mailboxes using the tiered
' pricing model
' This uses a cumulative approach as it goes through each tier to
' determine total cost.
TotalPrice = getMailboxCost (TotalMailboxes)
End Sub
Sub OnTimeslotEnter(TIME)
End Sub
Sub OnTimeslotExit(TIME)
End Sub
Sub OnMailboxAddedEvent(eventDetails)
MailboxesThisPeriod = MailboxesThisPeriod + 1
TotalMailboxes = TotalMailBoxes + 1
End Sub
Function Forecast
Forecast = getMailboxCost (periodFC)
End Function
Function Target
Target = Null
End Function
Function Result
result = TotalPrice
End Function
Function getforecastvalue(q)
getforecastvalue = FCmap (q)
End Function
Function getmonth(time)
'this function retrieves the month
Dim lTime
lTime = Tools.GetLocaleTime(time)
getmonth = monthname (datepart ("m", lTime), True) & _
"-0" & datepart ("d", lTime) & "-" & datepart ("yyyy", lTime)
End Function
Function getMailboxCost(num_boxes)
'Function calculates the cost of the mailboxes using the tiered pricing model
Dim returnValue
If num_boxes <= PPUmap1 ("Mailboxes") Then
'First tier
returnValue = num_boxes * PPUmap1 ("UnitCost")
'Out.Log "Tier1: " & num_boxes
Else If num_boxes > PPUmap1 ("Mailboxes") And num_boxes <= PPUmap2 ("Mailboxes") Then
'second tier only
returnValue = (PPUmap1 ("Mailboxes") * PPUmap1 ("UnitCost")) + _
((num_boxes - PPUmap1 ("Mailboxes")) * PPUmap2 ("UnitCost"))
'Out.Log "Tier2: " & num_boxes
Else If num_boxes > PPUmap2 ("Mailboxes") Then
'third tier
returnValue = (PPUmap1 ("Mailboxes") * PPUmap1 ("UnitCost")) + _
((PPUmap2 ("Mailboxes") - PPUmap1 ("Mailboxes")) * PPUmap2 ("UnitCost")) + _
((num_boxes - PPUmap2 ("Mailboxes")) * PPUmap3 ("UnitCost"))
'Out.Log "Tier3: " & num_boxes
End If
getMailboxCost = returnValue
'Out.Log "Cost is: " & returnValue
End Function
Hinweis: Dieses Business-Logik-Skript handhabt sowohl die Prognoseberechnung (mithilfe der "Prognose"-Tabelle) als auch die Ergebnisse für die Finanz-Verbrauchskosten. Für beides wird dieselbe Formel getMailboxCost() verwendet. Die Formel berechnet die gestuften Preise basierend auf der "Einheitspreis"-Tabelle, die für diese Metrik festgelegt wurde.
|
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|