この関数は、配賦の基本として係数POVを使用し、ソースの視点(POV)を宛先POVに割り当てます。また、消去POVに対する合計配賦額の転記を逆にするオプションもあります。、この関数は、カスタム・ディメンションの配賦用に設計されています。
戻り値
戻り値はありません。
構文
Custom_Alloc(Destination,Source,Factor,FactorN,FactorD,
Elimination)
表12-18 Custom_Alloc関数の構文
パラメータ | 有効な値 |
---|---|
Destination |
勘定科目、ICP、カスタム1から4のメンバーの有効な組合せである有効な宛先POV。 |
Source |
ディメンション・メンバーの有効な組合せである有効なソースPOV。Sourceは配賦される金額です。 |
Factor |
有効なソースPOV。Factorは、配賦係数の格納に使用される勘定科目です。 |
FactorN |
有効なソースPOV。FactorNは、配賦の基準として使用される分子係数です。 |
FactorD |
有効なソースPOV。FactorDは、配賦の基準として使用される分母係数です。 |
Elimination |
有効なソースPOV。Eliminationは空の文字列("")にすることが可能で、その場合、このパラメータは無視されます。Eliminationパラメータが設定されている場合、Destination POVに転記される金額には-1が乗算され、消去POVに転記されます。 |
詳細説明
この関数は、配賦の基本として係数POVを使用し、ソースのPOVを宛先POVに割り当てます。また、消去POVに対する合計配賦額の転記を逆にするオプションもあります。この関数は、カスタム・ディメンションの配賦用に設計されています。
Factorパラメータには、FactorDで除算されたFactorNの結果が格納されます。これは、係数が、現在のエンティティ以外のエンティティを参照できるようにするために必要です。
ソースPOVのエンティティが親である場合、子レベルで計算を実行する前に、その親を連結する必要があります。親の通貨が子の通貨と異なる場合、関連するすべての通貨の換算も、子レベルで計算を開始する前に実行する必要があります。
呼出しルーチンに変数を設定し、Destination、Source、Factor、FactorN、FactorDおよびElimination POVを定義するCustom_Allocに渡すことをお薦めします。また、呼出しルーチンの変数名をCustom_Alloc関数と同一になるように設定することもお薦めします。
Eliminationパラメータは空の文字列("")にすることが可能で、その場合、このパラメータは無視されます。Eliminationパラメータが設定されている場合、宛先POVに転記される金額には-1が乗算され、消去POVに転記されます。
例
Total Salesに対するProducts Salesの比率に基づいて、Telephone勘定科目がProductsに配賦さられます。配賦額の逆数がAllocations勘定科目に転記されます。
表12-19 Custom_Alloc関数の例
勘定科目 | Jan2014 | Feb2014 | Mar2014 |
---|---|---|---|
A#Telephone.C1#[None] |
100 |
300 |
400 |
A#Sales.C1#Product1 |
1000 |
1000 |
1000 |
A#Sales.C1#Product2 |
1000 |
2000 |
3000 |
A#Sales.C1#TotalProducts |
2000 |
3000 |
4000 |
Custom_Alloc |
N/A |
N/A |
N/A |
A#Factor.C1#Product1 |
0.50 |
0.33 |
0.25 |
A#Factor.C1#Product2 |
0.50 |
0.66 |
0.75 |
A#Telephone.C1#Product1 |
50 |
100 |
100 |
A#Telephone.C1#Product2 |
50 |
200 |
300 |
A#ProductAllocations.C1#[None] |
-100 |
-300 |
-400 |
CUSTOM_ALLOC関数から戻される結果は次のとおりです:
HS.EXP "A#Factor = A#Sales / A#Sales.C1#TotalProducts"
HS.EXP "A#Telephone = A#Telephone.C1#[None] * A#Factor"
HS.EXP "A#Allocations.C1#[None] = (A#Telephone.C1#[None] * -1)"
サンプル・スクリプト
このスクリプトには、次の情報が含まれます:
呼出しルーチンで記述されたサンプル文。
呼出しルーチンに設定され、Custom_Alloc関数に渡される変数。
Custom_Alloc関数と同一になるように設定された呼出しルーチンの変数名。
Sub Calculate()
Dim Destination Dim Source Dim Elimination Dim Factor Dim FactorN Dim FactorD Dim C1list Dim C1item
C1list = HS.Custom1.List("Alloc")
For Each C1item in C1list
Source = "A#Telephone.C1#[None]" Destination = "A#Telephone.C1#" & C1item Factor = "A#Factor.C1#" & C1item FactorN = "A#Sales.C1#" & C1item FactorD = "A#Sales.C1#TotalProducts" Elimination = "A#ProductAllocations.C1#" & C1item
Call Custom_Alloc(Destination,Source,Factor,FactorN, FactorD,Elimination)
Next
End Sub
' Beginning of the Custom_Alloc function
Sub Custom_Alloc(Destination,Source,FactorN,FactorD, Elimination)
HS.Clear Factor
HS.Exp Factor & " = " & FactorN & "/" & FactorD
HS.EXP Destination & " = " & Source & " * " & Factor
If Elimination <> "" Then
HS.EXP Elimination & " = " & Source & " * -1 * " & Factor
End If
End Sub