Sunday, 22 December 2013

Advanced HFM Rules


HFM rules drive the business flow of an application. FM uses VB scripts for writing rules.
HFM supports some built in functions. FM comes with a rule editor which validates your code and saves it for future use.
In HFM while writing a rules remember all the 12 dimensions represent a view.

In the course of writing a rule we will need to either retrieve data contained in a cell (HS.GetCell) from the database or save a data in the database (HS.Expression).
HS is an acronym of Hyperion Systems.
A rule in HFM is a clubbing of subroutines. These subroutines are designed to meet a specific purpose.
Sub calculate and sub Dynamic are two expected sub routines in a HFM rule. I will be illustrating how it works.
Let’s have a discussion on the basics of writing a HFM rule.

1.     Comment lines –an apostrophe in front of the chunk of code that needs to be commented out.
2.     The LHS part can only use any member from Account,ICP and custom dimensions and the RHS of any expression can use members from any of the dimensions.
3.     We refer to any dimensional member using the below syntax
Dim annotation # Member Name.
HFM defines annotation names for every dimensions
e.g Accounts A, custom dimensions C1-C4,Entity E, Intercompany Partner I,Period P,View W,Scenario S,Year Y and Period P.

            E.g  HS.Exp “A#NetCapital = A#CurrentAssets – A#CurrentLiabilities”

4.     HFM uses period (.) to connect different dimensions for navigating to a data point.
5.     Underscore ( _) signals the HFM calc manager that the expression will be continued in the next line.
6.     Colon( :) combines two lines in the script.

7.     Variants used in HFM rules can have the below data types.

Data Type
Description
Empty
Value is 0 for numeric variables or a zero-length string ("").
String
A variable-length string that can be up to approximately 2 billion characters in length.
Boolean
True or False.
Byte
Integer in the range 0 to 255.
Integer
Integer in the range -32,768 to 32,767.
Currency
A value from -922,337,203,685,477.5808 to 922,337,203,685,477.5807.
Long
An integer in the range -2,147,483,648 to 2,147,483,647.
Single
A single-precision, floating-point number
Double
A double-precision, floating-point number
Date (Time)
A number that represents a date between January 1, 100 to December 31, 9999.
Object
Contains an object.
Error
Contains an error number.
Null
Variant intentionally contains no valid data.

Examples to define varians for dimensions
var_Entity = HS.Entity.Member    signifies    'current entity
Var_parent = HS.Parent.Member   signifies    'parent of current entity
Var_scenario = HS.Scenario.Member     signifies   'current scenario
Var_value = HS.Value.Member        signifies       'current value
Var_year = HS.Year.Member      signifies            'current year
nbrPov_period = HS.Period.Number       signifies   'This is the number not the name
is_parent_cur = HS.Value.IsTransCur     signifies   'are we at Parent Currency
is_parent_cur_adj = HS.Value.IsTransCurAdj     signifies    'are we at Parent Currency Adjust
is_base_ent = HS.Entity.IsBase("", "")         'is this a base level entity


HFM supports default members for every dimensions designated as None(can be customized)
There are two types of variables fin HFM substitution and Execution varables.
The variables which change value depending upon the view point are termed as execution variables.
Note: While writing rules in calc manager keep the variable in braces {}.
The header section of a HFM rule defines Variants and constants which will be used later.The variants declared within a subroutine have local scope.
STRINGS
HFM uses ampersand operator  & to concatenate two strings.
Mid,Len,Ucase,Lcase,Left,Right are some of the known String functions.

ARRAY
Syntax: Dim V_array(10)
V_array(0) = “Avik”
V_array(1) = “Sandy”

HFM also supports multidimensional arrays.

There are two types of subroutines in HFM
1.     Sub Procedure – May or maynot return a value
2.     Function Procedure – Must return a value
       

If any argument is passed on using call by Ref its value persist even after the control moves out of the Procedure or function but the variant passed using ByVal decays after the control moves out .
Conditional statements control in HFM
If statement executes a set of rules when a condition is met
Syntax:
If x=10 Then
    Var= "A#ACC_010"
End If
Select CASE statement in HFM
Example:
Dim Var
  Var = Hs.Entity.Member("")
  Select Case Var
  Case "India"
        ... Execute statement
  Case "AUS"
        ... Execute statement
  Case "Rus"
        ... Execute statement
  End Select
Looping Statements in HFM:
Types of looping statemennts:
·        For…Next
·        For Each…Next
·        Do…Loop
·        While…Wend
·        Do…Loop
Examples

For x = LBound(Arr) to UBound (Arr)
       some rules
Next
  For Each  var  In  ArrayList
       Codes ...
  Next

 Do Until x=10
  x = x+1
        If x<5 Then
               Exit Do
        End If
Loop
 
Do
  Codes….
Loop Until x=10


Monday, 9 December 2013

Advanced HFM Security

In HFM the security is managed from Hyperion Shared services.Shared service is a component of Hyperion Foundation Services.
There are two main aspects of Shared services
  •           Security
  •           LCM
  •    Task Flow Management


Security:
Users are entangled to shared services using an active directory or a LADP server(OID).

Hyperion 11.1.2 supports OSSO(Oracle Single Sign On).The Oracle Internet Directory is used to provide SSO access to web applications. Oracle Internet Directory is an LDAP directory that uses an Oracle Database for storage.
Active Directory
It’s a repository containing a group of users categorized within a domain having access to windows based computers and servers.
Native Directory
It given authentication to Hyperion products and creates a repository in database where it stores the directory information.
We can configure more than one active directory to a shared service.
How to configure active directory:
STEP 1: Administration à Configure Users directories

   Select the directory type you need to configure LADP or MSAD à Next

In connection pooling allows you to customize the Max number of connections in the connection pool --- default value being set to 100, the Timeout time i.e time to fetch a connection from the connection poll --- default being set to 5 mins.

Then we need to configure MSAD Users and MSAD Groups using auto configure mode or configuring manually. Please note the user filters for OID needs to be manually configured.


User Directory Search order :
Shared services facilitate the Admin to define User Directory Search order to customize the search sequence for Users and Groups. Admin can’t define any provisioning or assign security to User directories which don’t have a defined search order.

To let the active directory users use the Hyperion System we need to restart Shared Services and all EPM System products.

Let’s have a discussion on the security basics security in Shared services:

Users: Users are granted access to the application registered with the shared services. Users inherit the permission of Groups and can have some other permission as well. Users can be provisioned individually or can be placed inside a group.
We can grant filters or Permissions (roles) using Maxl to users.
Example:

grant manager on application Sample to User1;

Groups: New groups are created in shared service and assigned filters and provisioning.

Roles: Available Roles in HFM



Security Classes:

Security classes are the sub groupings of application artifacts like webgrids and webforms .It also categorizes the metadata elements. The shared services admins and provisioning managers can define security class for applications.

Steps to create a new security class in HFM:

STEP 1:
STEP 2:  Search the user name


STEP 3:   Define a security class

STEP 4: Assign access to the user assigned to the newly created security class


Below are the types of access Right choices:
  •   None –No access
  •   Metadata –User can see the dimension member exist but can’t view / edit data.
  •   Promote- User can view data for the dimension member and promote/reject the process control.
  •   Read- User can view data for the dimension member but can’t promote/reject the process control.
  •   All –User can modify the item and promote/reject the process control
I will be discussing LCM and HFM Task Flow Management in my new posts soon.









Thursday, 5 December 2013

Hyperion Financial Management:
Every company needs a smarty financial solution to keep its accountability in track. In today’s  world book keeping is the most important aspect in running a business. The accountants do look for smart reporting for their financial statements.Today they need reliability ,dynamic viewpoints and projections to foresee where the company stands.They want to know more about their business and faster than others.
 Oracle leads the way in helping organizations gain more insight, across more data, and drive better outcomes in every aspect of business. Oracle Enterprise Performance Management Architect(EPMA)
EPMA includes a suite of Business Intelligence applications and a coomon foundation of BI tools and services.
Here I would take the owner of introducing you to the Hyperion Product family which compraises of various EPMA tools:
·         Oracle Hyperion planning
·         Oracle Hyperion Financial management
·         Oracle Hyperion Data Relationship management
·         Oracle Financial Close management
·         Oracle Hyperion Profitability and Cost management
·         Oracle Hyperion provider services                and many more

Here we will be understanding one such interesting tool that has explored a new world of Financial reporting.
HYPERION FINANCIAL MANAGEMENT (HFM)
Product Architecture
It has three tiers client, Application and Database. HFM is based on ROLAP technology.Its based on Oracle's ADF J2EE technology.
HFM can only be installed in windows environment.

HFM a brief insight:
Data in HFM is stored across a number of dimensions.
The tool supports 12 dimensions.
The SIX basic dimensions are :


  1. Scenario
  2. Account
  3. Entity
  4. Period
  5. Year
  6. View
The next five dimensions are

ICP and four custom dimensions
            and the twelfth dimension is consolidation details.

The four custom dimensions are also known as configurable dimensions and for these dimensions Admin can set the size. Any application must have minimum of two custom dimensions. The custom dimension stores source and destination currency rates and these are of large size by default.
The size of a dimension can be categorized as Large (4 bytes), Medium(2 Bytes) and Small(1 byte). The number of dimensions is defined on the basis of total number of bytes used to maintain index for the dimensions.

The system creates two large dimensions each having four bytes and the total for an application must not exceed 40 bytes.


How to create a HFM application

There are two types of HFM applications EPMA and classic.

HFM is well integrated with Essbase.HFM facilitates data movement from HFM to a BSO or ASO cubes using data synchronizer.


Steps to create a classic application:

We can create a fresh HFM application from Hyperion Financial Management Studio
11. Create a new application profile
Creating application profile is the very first step.

We should be very careful in defining a profile. We define the years, periods and available views in the application. The items defined once in application profile can never be changed. The profile needs to be created from a windows client.





     
 
      STEP 2: Select the preferred language

   STEP 3: Define Application Calender
STEP 4:We need to enter the below details for view dimension and hit next
STEP 5: Select the period list
STEP 6: Save the application profile in the below location:

C:\Hyperion\Products\FinancialManagement\Client

Now save the Application Profile.
To crate a new application using the newly created application profile log in to Hyperion Workspace and navigate to  Administer > Classic Application Administration > Consolidation Administration > Create Application

Register the new application

Application created