Custom_Alloc

Essa função aloca um ponto de vista (PDV) de Origem para um PDV de Destino usando um PDV de Fator como a base da Alocação, com a opção de fazer um lançamento de estorno do valor total alocado para um PDV de Eliminação. Essa função é projetada para alocações de dimensão personalizada.

Valor de Retorno

Nenhum valor de retorno.

Sintaxe

Custom_Alloc(Destination,Source,Factor,FactorN,FactorD,
Elimination)

Tabela 12-18 Sintaxe de Função Custom_Alloc

Parâmetro Valores Válidos

Destination

Um PDV de destino válido que seja uma combinação válida de 1-4 membros Conta, ICP e Personalizado.

Source

Um PDV de origem válido que seja uma combinação de membros de dimensão. Origem é a quantidade que está para ser alocada.

Factor

Um PDV de origem válido. Fator é a Conta usada para armazenar o fator de alocação.

FactorN

Um PDV de origem válido. FactorN é o fator numerador usado como base para a alocação.

FactorD

Um PDV de origem válido. FactorD é o fator denominador usado como base para a alocação.

Elimination

Um PDV de origem válido. Eliminação pode ser uma string vazia (""), o que significa que nesse caso o parâmetro será ignorado. Se o parâmetro Elimination estiver definido, o valor contabilizado no PDV de Destino será multiplicado por -1 e contabilizado no PDV de Eliminação.

Descrição Detalhada

Essa função aloca um PDV de Origem para um PDV de Destino usando um PDV de Fator como a base da alocação, com a opção de fazer um lançamento de estorno do valor total alocado para um PDV de Eliminação. Essa função é projetada para alocações de dimensão personalizada.

O parâmetro Factor armazena o resultado de FactorN dividido por FactorD. Isso é exigido para habilitar o fator para consultar entidade que não sejam a entidade atual.

Se a entidade no PDV de Origem for um pai, o pai deverá ser consolidado antes de executar o cálculo no nível filho. Se a moeda pai for diferente da moeda filha, a conversão de todas as moedas relevantes deverá ser executada também antes do cálculo no nível filho.

É recomendado que as variáveis sejam definidas na rotina de chamada e informadas para a função Custom_Alloc, que define os PDVs de Destino, Origem, Fator, FactorN, FactorD e Eliminação. Também é recomendado que os nomes da variáveis na rotina de chamada sejam definidos como sendo iguais aos da função Custom_Alloc.

O parâmetro Eliminação pode ser uma string vazia (""), o que significa que nesse caso o parâmetro será ignorado. Se o parâmetro Eliminação for definido, o valor postado no PDV de Destino será multiplicado por -1 e postado no PDV de Eliminação.

Exemplo

A conta Telefone será alocada em Produtos com base em uma razão de Vendas de Produtos para Total de Vendas. O inverso do valor alocado será postado na conta Alocações.

Tabela 12-19 Exemplo de Função Custom_Alloc

Conta 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/D

N/D

N/D

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

O resultado retornado da função CUSTOM_ALLOC está exibido a seguir:

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 Amostra

Este script contém as informações a seguir:

  • Um exemplo de instrução gravado na rotina de chamada.

  • Variáveis definidas na rotina de chamada e informadas para a função Custom_Alloc.

  • Nomes de variável na rotina de chamada foram definidos como sendo iguais aos da função 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