Há três tipos gerais de métricas financeiras usadas para criar as condições financeiras de um serviço ou contrato. São elas:
Veja o seguinte exemplo:
Uma nova empresa é aberta e requer que um serviço de email seja fornecido juntamente com a configuração e manutenção de suas caixas de correio. Como a nova equipe foi contratada, o número de caixas de correio certamente é aumenta. O fornecimento de um serviço de email para um contrato incorre um custo de preço fixo de $1000, e há um custo adicional por caixa de correio a ser cobrado por mês. Esse custo por caixa de correio é um modelo de preços com vários níveis, como segue:
|
Número de caixas de correio |
Custo por caixa de correio |
|
1-1.000 |
$1,00 |
|
1,001 - 5,000 |
$0,80 |
|
5,001+ |
$0,50 |
Desse modo, quanto mais caixas de correio forem adicionadas, menor será o custo adicional. (Por exemplo: 1500 caixas de correio custarão (1000 x $1) + (500 x $0.80) = $1400. Usando este modelo, duas métricas podem ser produzidas para refletir isso no contrato.
Além disso, há uma estimativa feita pela equipe de gerenciamento do número de integrantes da equipe em todo o ano (2007), conforme indicado a seguir. A tendência se deve ao crescimento inicial da organização em razão da contratação de funcionários e de novos escritórios abertos em outras regiões:
|
Jan |
Fev |
Mar |
Abr |
Maio |
Jun |
Jul |
Ago |
Set |
Out |
Nov |
Dez |
|
50 |
100 |
500 |
900 |
1600 |
1700 |
1800 |
2500 |
2600 |
3500 |
3600 |
5800 |
Para criar essas métricas, faça o seguinte:
Crie a métrica de custo fixo (use o tipo de item de preço) no contrato, usando os seguintes detalhes:

Para especificar o custo fixo para o contrato de serviço, implemente essa opção como um parâmetro para a lógica de negócios (em que o custo fixo deve ser retornado da função de resultados). Este parâmetro pode ser exibido por meio da declaração de objetivo da métrica, como mostrado a seguir:

Retornar o valor do parâmetro para essa métrica é simplesmente um caso de retornar o valor do custo de serviço por meio da função de resultados.

Em seguida, crie a métrica de preço variável (novamente use o tipo de item de preço) para determinar os custos de consumo das caixas de correio usadas. Nomeie essa métrica como Custo de consumo da caixa de correio e crie-a com os seguintes detalhes:

Nesse caso, é necessário digitar os parâmetros de consumo nos detalhes da métrica. Eles vão para a tabela Preço por unidade. Para criar a tabela acima de número de caixas de correio em relação ao custo, crie uma coluna para o limite máximo de caixas de correio e uma para os preços por unidade.

Em seguida, digite os valores para cada nível. Nesse caso, o limite máximo de caixas de correio determina o custo de suporte associado a ele. Como não há 3 camadas, elas são adicionadas à tabela desta maneira:

Além disso, implemente a função de previsão no consumo de caixas de correio. Faça isso criando a tabela Previsão com o layout mensal predefinido.

Ele é preenchido com os valores de tabelas fornecidos na descrição do cenário.

Agora é possível adicionar a declaração do objetivo para a métrica. Nesse caso, não há valores de parâmetro necessários, pois eles são derivados das tabelas Preço por Unidade e Previsão.

Por fim, complete a lógica de negócios, como a seguir:
Option Explicit
Dim PPUmap1, PPUmap2, PPUmap3, PPUkey, FCmap, periodFC, TierPPU
Dim currentMonth, TotalMailboxes, MailboxesThisPeriod, TotalPrice
Sub OnRegistration(dispatcher)
registro de amostras apenas
dispatcher.RegisterByMetric "OnMailboxAddedEvent", "NewMailboxEventType", _
"MailboxResource", "MONTH", "MetricName", "MetricContract", _
"MetricContractParty"
End Sub
Sub OnLoad(TIME)
Inicie os mapas de níveis de preço e os mapas de previsão
Set PPUmap1 = Context.Field ("Price Per Unit")(1)
Set PPUmap2 = Context.Field ("Price Per Unit")(2)
Set PPUmap3 = Context.Field ("Price Per Unit")(3)
Set FCmap = Context.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)
Calcule o preço atual de todas as caixas de correio usando o modelo de preços
em vários níveis
Isto usa uma abordagem cumulativa, pois passa por cada nível para
determinar o custo total.
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
Função de previsão
Forecast = getMailboxCost (periodFC)
End Function
Objetivo da função
Target = Null
End Function
Function Result
result = TotalPrice
End Function
Function getforecastvalue(q)
getforecastvalue = FCmap (q)
End Function
Function getmonth(time)
esta função recupera o mês
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)
A função calcula o custo das caixas de correio usando o modelo de preços em vários níveis
Dim returnValue
If num_boxes <= PPUmap1 ("Mailboxes") Then
Primeiro nível
returnValue = num_boxes * PPUmap1 ("UnitCost")
'Out.Log "Tier1: " & num_boxes
Else If num_boxes > PPUmap1 ("Mailboxes") And num_boxes <= PPUmap2 ("Mailboxes") Then
'segundo nível apenas
returnValue = (PPUmap1 ("Mailboxes") * PPUmap1 ("UnitCost")) + _
((num_boxes - PPUmap1 ("Mailboxes")) * PPUmap2 ("UnitCost"))
'Out.Log "Tier2: " & num_boxes
Else If num_boxes > PPUmap2 ("Mailboxes") Then
'terceiro nível
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
Observação: o script de lógica de negócios trata tanto o cálculo de previsão (usando a tabela Previsão) quanto os resultados do custo de consumo financeiro. Ambos usam a mesma fórmula getMailboxCost(), que calcula o preço com base em vários níveis de acordo com a tabela Preço por Unidade definida para essa métrica.
| Copyright © 2012 CA. Todos os direitos reservados. | Enviar email à CA Technologies sobre este tópico |