Esta función asigna un punto de vista (PDV) de origen a un PDV de destino utilizando un PDV de factor como base de asignación, con la opción para contabilizar retroactivamente el importe total asignado a un PDV de eliminación. Esta función está diseñada para asignaciones de dimensiones personalizadas.
Valor de retorno
Sin valor de devolución.
Sintaxis
Custom_Alloc(Destination,Source,Factor,FactorN,FactorD,
Elimination)
Tabla 12-18 Sintaxis de la función Custom_Alloc
Parámetro | Valores válidos |
---|---|
Destination |
Un PDV de destino válido que es una combinación válida de cuenta, miembros ICP y miembros personalizados 1- 4. |
Source |
Un PDV de origen válido que es una combinación válida de miembros de dimensiones. Source es el importe que se va a asignar. |
Factor |
Un PDV de origen válido. Factor es la cuenta utilizada para almacenar el factor de asignación. |
FactorN |
Un PDV de origen válido. FactorN es el factor del numerador utilizado como base para la asignación. |
FactorD |
Un PDV de origen válido. FactorD es el factor del denominador utilizado como base para la asignación. |
Elimination |
Un PDV de origen válido. Elimination puede ser una cadena vacía (""). En este caso este parámetro se ignora. Cuando se define el parámetro Elimination, el importe contabilizado en el PDV de destino se multiplica por -1 y se envía al PDV de eliminación. |
Descripción detallada
Esta función asigna un PDV de origen a un PDV de destino utilizando un PDV de factor como base de asignación, con la opción para contabilizar retroactivamente el importe total asignado a un PDV de eliminación. Esta función está diseñada para asignaciones de dimensiones personalizadas.
El parámetro Factor almacena el resultado del parámetro FactorN dividido por FactorD. Esto es necesario para que el factor pueda hacer referencia a otra entidad distinta a la actual.
Si la entidad en el punto de vista de origen es un padre, ese padre debe consolidarse antes de ejecutar el cálculo en el nivel de hijo. Si la moneda padre es distinta a la moneda hijo, también se deben convertir todas las monedas relevantes antes de ejecutar el cálculo en el nivel de hijo.
Se recomienda que las variables se establezcan en la rutina de llamada y se pasen a la función Custom_Alloc para definir el destino, el origen, el factor, FactorN, FactorD y los puntos de vista de eliminación. Se recomienda también que los nombres de las variables en la rutina de llamada se establezcan igual que en la función Custom_Alloc.
El parámetro Elimination puede ser una cadena vacía (""). En este caso, este parámetro se ignora. Cuando se define el parámetro Elimination, el importe contabilizado en el PDV de destino se multiplica por -1 y se envía al PDV de eliminación.
Ejemplo
La cuenta Telephone se asigna a productos en función de la relación entre ventas de productos y ventas totales. El inverso del importe asignado se contabiliza en la cuenta Allocations.
Tabla 12-19 Ejemplo de la función Custom_Alloc
Cuenta | Ene2014 | 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 |
El resultado que se devuelve de la función Custom_Alloc es el siguiente:
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)"
Script de ejemplo
Este script contiene la siguiente información:
Una sentencia de ejemplo escrita en la rutina de llamada.
Las variables establecidas en la rutina de llamada y pasadas a la función Custom_Alloc.
Los nombres de variable en la rutina de llamada establecidos para que sean iguales que en la función 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