Custom_Alloc

この関数は、配賦の基本として係数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(A#Telephone","A#Telephone.C1#[None]", "A#Factor", A#Sales", "A#Sales.C1#TotalProducts", "A#ProductAllocations.C1#[None])

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