Cette fonction attribue un point de vue (PDV) Source à un PDV Destination en utilisant un PDV Factor comme base d'allocation, avec la possibilité d'inverser l'imputation du montant total alloué à un PDV Elimination. Cette fonction est conçue pour les allocations de dimension libre.
Valeur renvoyée
Aucune valeur renvoyée.
Syntaxe
Custom_Alloc(Destination,Source,Factor,FactorN,FactorD,
Elimination)
Tableau 12-18 Syntaxe de la fonction Custom_Alloc
Paramètre | Valeurs valides |
---|---|
Destination |
Un PDV de destination valide qui est une combinaison valide de membres Account, ICP et Custom 1-4. |
Source |
Un PDV source valide qui est une combinaison valide de membres de dimension. Source correspond au montant à allouer. |
Factor |
Un PDV source valide. Factor est le compte utilisé pour stocker le facteur d'allocation. |
FactorN |
Un PDV source valide. FactorN est le facteur numérateur utilisé comme base pour l'allocation. |
FactorD |
Un PDV source valide. FactorD est le facteur dénominateur utilisé comme base pour l'allocation. |
Elimination |
Un PDV source valide. Elimination peut être une chaîne vide (""), auquel cas ce paramètre n'est pas pris en compte. Si le paramètre Elimination est défini, le montant imputé au PDV Destination est multiplié par -1 et imputé au PDV Elimination. |
Description détaillée
Cette fonction attribue un PDV Source à un PDV Destination en utilisant un PDV Factor comme base d'allocation, avec la possibilité d'inverser l'imputation du montant total alloué à un PDV Elimination. Cette fonction est conçue pour les allocations de dimension libre.
Le paramètre Factor stocke le résultat de FactorN divisé par FactorD. Cela est nécessaire pour autoriser le facteur à référencer des entités autres que l'entité en cours.
Si l'entité dans le PDV Source est un parent, ce parent doit être consolidé avant l'exécution du calcul au niveau des enfants. Si la devise parent est différente de la devise enfant, la conversion de toutes les devises pertinentes doit également être effectuée avant d'exécuter le calcul au niveau des enfants.
; il est recommandé de définir les variables dans la routine appelante et de les transmettre à la fonction Custom_Alloc, qui définit les PDV Destination, Source, Factor, FactorN, FactorD et Elimination. Il est également conseillé de définir les mêmes noms de variables dans la routine appelante que dans la fonction Custom_Alloc.
Le paramètre Elimination peut être une chaîne vide (""), auquel cas ce paramètre n'est pas pris en compte. Si le paramètre Elimination est défini, le montant imputé au PDV Destination est multiplié par -1 et imputé au PDV Elimination.
Exemple
Le compte Telephone est alloué au compte Products selon un ratio Ventes du produit sur Total des ventes. L'inverse du montant alloué est imputé au compte Allocation.
Tableau 12-19 Exemple de fonction Custom_Alloc
Compte | Jan2014 | Feb2014 | Mar2014 |
---|---|---|---|
A#Telephone.C1#[None] |
100 |
300 |
400 |
A#Sales.C1#Product1 |
1 000 |
1 000 |
1 000 |
A#Sales.C1#Product2 |
1 000 |
2 000 |
3 000 |
A#Sales.C1#TotalProducts |
2 000 |
3 000 |
4 000 |
Custom_Alloc |
Sans objet |
Sans objet |
Sans objet |
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 |
Le résultat renvoyé par la fonction CUSTOM_ALLOC se présente comme suit :
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)"
Exemple de script
Ce script contient les informations suivantes :
Un exemple d'instruction écrit dans la routine appelante.
Des variables définies dans la routine appelante et transmises à la fonction Custom_Alloc.
Des noms de variables définis de manière identique dans la routine appelante et dans la fonction 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