Custom_Alloc

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(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

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