You are on page 1of 70

Automating Hyperion

Planning Tasks
Tuesday, June 25, 2013
Grand Ballroom E, 2:00-3:00
M. Kyle Goodfriend
Rolta Solutions | In2Hyperion

www.in2Hyperion.com

www.Rolta.com

Appealing?
l
l
l
l
l
l

More time with your family?


More time to hang with friends?
Less Stress?
More opportunity for success?
Higher customer confidence?
How about a Best Buy gift card?

www.in2Hyperion.com

www.Rolta.com

Rules For Today


l
l
l
l

Be interactive, interrupt me! (Really!)


Tweet and share your thoughts #In2Hyperion or
#Kscope
It is OK to text your notes
Stretch stand up if you get tired!
None of us know everything there is to know
please respect other perspectives

www.in2Hyperion.com

www.Rolta.com

Session Objectives
l
l
l
l

Share our collective knowledge


Summarize and review utilities available
Discuss scripting options
Highlight Best Practices Guiding Principles

www.in2Hyperion.com

www.Rolta.com

Something For Everybody


l

Business focus
lShow possibilities

Technology focus
lImplementation ideas
lImplementation strategies

www.in2Hyperion.com

www.Rolta.com

Speaker Background
l

Career

Finance

University Adjunct Faculty

Management

Accounting
Financial Reporting

Education

Financial Systems

Technical

Corporate

www.in2Hyperion.com

Hyperion
SQL
.NET/VB
TheLimited
Bank One /
JPMorgan Chase
Rolta Solutions
www.Rolta.com

Speaker Background
l

Industry Experience
TV/Entertainment
Financial
Retail
Technology/Software Development
Travel/Air
Civil Engineering

www.in2Hyperion.com

www.Rolta.com

Speaker Background
l

In2Hyperion
Free Tools
Creative Ideas
Knowledge Sharing

Published
Wall Street Journal
OAUG Insight

Certification
Hyperion / Microsoft

www.in2Hyperion.com

www.Rolta.com

Automation Ideas
l
l
l
l
l

Automate production tasks


Notify administrators of errors
Communicate status to users
Sync environments
Backup data/metadata

www.in2Hyperion.com

www.Rolta.com

Staff Benefits of Automation


l
l
l
l
l

Fewer Mundane Tasks / More Time To Add


Value Increased Productivity
Decrease Human Error
Improve Customer Satisfaction
Improve System Stability
Improve Job Satisfaction / Career Advancement

www.in2Hyperion.com

www.Rolta.com

Automation Area Summary


l

Hyperion Planning Application Areas of


Importance
1.
2.
3.
4.

EPMA batch utility


Planning command line utilities
Essbase scripting
Shared Services

www.in2Hyperion.com

www.Rolta.com

Guiding Principles
l
l
l
l

Parameter Driven
Strong Error Trapping
Logging
Notification
User
Administrator

l
l

Consistency
Environment Independent

www.in2Hyperion.com

www.Rolta.com

Scripting Options
l

Windows
VB Script
Perl
DOS
PowerShell
Java

Unix
Korn Shell
Perl
Java

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility


Hierarchy and metadata management

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Possibilities

Execute

Import Hierarchies
Dimension
Synchronization
(Shared/Local libraries)
Deploy applications
Redeploy applications
Validation

Copy Apps/Dims
Create/Delete/Update

Applications
Dimensions
Members

www.in2Hyperion.com

Shared
New
Properties
Rename

Manage Dimension
Associations
www.Rolta.com

EPMA Batch Utility Script

Layout

option StopOnError = true; //StopOnError


option EchoComments = true; //EchoComments
option LogCommands = true; //LogCommands
set bpmaserverurl=http://localhost/hyperion-bpma-server;
set workspaceurl=http://ut03317:19000/workspace;
Setup variables
Commands
Exit routine

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Command

Layout

Layout of all commands


Command
Parameters ()
Values ()
;

Example
//Import ADS Hierarchy File
Execute Import
Parameters(importtype, profilename, filename, waitforcompletion)
Values('flatfile', 'Post', 'E:\DATA\hier_Post.ADS', 'true');

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Redeploy

Application

Execute ReDeploy
Parameters(ApplicationName, InstanceName, datasourceName,
ApplicationServer, HubProject, ClearAll, CheckIntegrity,
waitforcompletion, purgeTransactions,
deployOption,escapeValidateRules, RefreshOutline,
CreateSecurityFilters, CreateOutline, SharedMembersSecurityFilters,
ValidateSecurityFilterLimit)
Values('FinPln, 'Default, plan1, 'Default, 'Planning', 'false, 'false,
'true, 'false,'AppView, 'true, 'true, 'true, 'false, 'true, 'true');

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Member

Management

// Exclude member 60780000 from application


Exclude Member
Properties(ApplicationName, DimensionName, ParentName,
MemberName)
Values('FinPln, 'Account, '60010000', '60780000');
// Make Member 10010000 NOT Valid For Plan2
Update Member
Properties(ApplicationName, DimensionName, ParentName,
MemberName, MemberValidForPlan2)
Values('FinPln, 'Account, '10000000', '10010000', 'False');
www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Member

Management

// Delete member 10000 from application


Delete Member
Properties(ApplicationName, DimensionName , ParentName
,
MemberName , RemoveChildren)
Values('#Shared, 'Department, 'All_Departments' ,'10000, 'true');

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Using

Variables

var DataSource = 'PlanApp3';


var AppName = FinPlan';
Execute ReDeploy
Parameters(ApplicationName, InstanceName, datasourceName, ApplicationServer,
HubProject, ClearAll, CheckIntegrity, waitforcompletion, purgeTransactions,
deployOption,escapeValidateRules, RefreshOutline, CreateSecurityFilters,
CreateOutline, SharedMembersSecurityFilters, ValidateSecurityFilterLimit)

Values($AppName,'Default,'$DataSource','Default','Planning','false','f
alse','true','false','AppView','true','true','true','false','true','true');

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Batch


l

Client

Location
EPM_ORACLE_INSTANCE\products\Foundation\BPMA\EPMABatchClient\

Batch Client
epma-batch-client.bat

Command Line Options

-C [Specifies the name of the script file to execute]


-R [Specifies the name of the file to write the results to on your machine]
-L [Specifies if commands are logged. The default value is 0]
-S [Stops execution of the script if a command fails]
-U [Specifies the user name]
-P [Specifies the password]

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Batch

Client

set today=%date:~-4%_%date:~4,2%_%date:~7,2%
call path\epma-batch-client.bat
-C"E:/DATA/hier_StaffPln.txt"
-R"E:/DATA/Logs/hier_StaffPln_err_%today%.txt"
exit %errorlevel%

*Actual scripts should not be on multiple lines

www.in2Hyperion.com

www.Rolta.com

EPMA Batch Utility Logs

www.in2Hyperion.com

www.Rolta.com

Planning Utilities
Hyperion Planning Tasks

www.in2Hyperion.com

www.Rolta.com

Planning Batch Utilities


l
l
l
l
l
l
l

Export/Import Security
Export/Import Forms
Execute business rules and rulesets
Create encrypted password files
Export/Import Tasks
HspUnlockApp
Classic Planning Management

Hierarchy Management
Sort Members
Import Metadata
Migrate Security
Cube Refresh

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import


l

Security Load File

All Planning specific security can be loaded


Dimensional security
Web form security
Business rule security
Task list security

Required
Named SecFile.txt
Located in the same directory as the batch utility

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import


l

Security Load File

Formatted in a 5 column delimited text file


User/group
Artifact name
Access permissions
Access flag
Artifact type (required for web forms, rules and task
lists)

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import


l

Security Load File

Artifact
Dimensional member
Folder or artifact for non dimensional security

Access permissions
NONE
READWRITE
READ

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import


l

Security Load File

Access flag
@CHILDREN
@ICHILDREN
@DESCENDANTS
@IDESCENDANTS
MEMBER

*Identifying a level 0 member with anything other than MEMBER


produces mixed results

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import


l

Security Load File

Artifact type
SL_FORM - for data forms
SL_COMPOSITE - for composite data forms
SL_TASKLIST - for task lists
SL_CALCRULE - for Calculation Manager business
rules

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import

Security Load File

User1,Account1,READ,@CHILDREN
Group2,DataForm08,READWRITE,MEMBER,SL_FORM
User3,TaskList09,READWRITE,MEMBER,SL_TASKLIST
NorthAmericaGroup,Sales,READWRITE,@IDESCENDANTS,SL_FORMFOLDER

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import


l
l

Security Batch Client

The ImportSecurity utility is located in the


Planning directory on the Planning server
Parameters
Required

Application name
User executing the process

Optional

RUN_SILENT [default is 0, meaning no progress messages


displayed]
SL_CLEARALL [clears all security prior to importing]
-f:passwordFile

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import


l

Security Batch Client

Example using default delimiter

ImportSecurity WrkForce,admin
l

Example using default delimiter and password


file

ImportSecurity -f:EncryptedPassword.txt WrkForce,admin

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Export


l
l
l

Security Batch Client

Located in the Planning directory on the


Planning server
ExportSecurity
Parameters
-f:encrypted password file
/A=application
/U=username
/TO_FILE=path

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Export

Security Sample

DATE=`date '+_%m-%d-%y_%H.%M.%S'`
ExportSecurity.sh -f:PassFile.txt
/A=FinPln, /U=admin,
/TO_FILE=
c:\backup\dimSec_FinPln${DATE}.sec

*Actual scripts should not be on multiple lines

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import/Export


l

Forms

Export and Import web forms


Quick backup during development
Easily make bulk changes

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import/Export


l
l

Forms

Located in the Planning directory on the


Planning server
All forms are exported to the Planning directory

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import/Export


l

Forms

FormDefUtil parameters
import|export
filename|formname|-all
Server name
User name
Password
Application

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Import/Export

Forms Sample

DATE=`date '+_%m-%d-%y_%H.%M.%S'`
FormDefUtil.sh -f:PassFile.txt export -all localhost
planadmin "FinPln
zip /usr/appl/fpf/home/ftpfpf/Outbound/
exp_FinPln_Forms${DATE}.zip *.xml

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Business


l
l

Rules Batch Client

CalcMgrCmdLineLauncher located in the


planning directory
Parameters
-f:passwordFile
/A:appname
/U:username
/D:database
/R:business rule name OR |/S:business ruleset
name
/F:runtime prompts file

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Batch

Client Example

CalcMgrCmdLineLauncher -f:c:\passfile.txt
/A:WrkForce /U:admin /D:Wrkforce
/R:agg_all /F:agg_all_prompts.xml

*Actual scripts should not be on multiple lines

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Business


l

Rule Parameter File

Every prompt must be identified

Prompt Name::Prompt Value

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Encrypt


l
l
l

Passwords

Allows for hidden passwords


Promotes environment independence in scripts
PasswordEncryption.bat(sh) is located in a
number of areas depending on the components
installed

www.in2Hyperion.com

www.Rolta.com

Planning Utilities Encrypt


l

Passwords

Parameters
passwordFile the file to hold the encrypted
password

Prompts
Password to encrypt

www.in2Hyperion.com

www.Rolta.com

Life Cycle Management


Repository Management

www.in2Hyperion.com

www.Rolta.com

Life Cycle Management Overview


l
l

Migration between environments


Backup & restore
Hierarchies (Shared/Local libraries)
Planning application settings and overrides
Shared Services security
Essbase objects

www.in2Hyperion.com

www.Rolta.com

Life Cycle Management Parameter


l

XML File

Creating XML
Can be created manually
Is created when an export is performed from Shared
Services

Password will be added when the batch client is


executed the first time

www.in2Hyperion.com

www.Rolta.com

Life Cycle Management Parameter

www.in2Hyperion.com

XML File

www.Rolta.com

Life Cycle Management Batch


l

Client

Located in
MIDDLEWARE_HOME/user_projects/epmsystem1/bin

Parameters
Xml file definition
[-estimate]: Estimates the Number of Artifacts in a
Migration
[-b]: Specifies the Base Path for the exports
[-ls]: Lists EPM System Contents

www.in2Hyperion.com

www.Rolta.com

Life Cycle Management Batch


l

Client Example

Utility Back_SS.xml b c:\backups\SS\

www.in2Hyperion.com

www.Rolta.com

Essbase
Data Management

www.in2Hyperion.com

www.Rolta.com

Essbase
l
l
l

MaxL
EssCmd (precursor to MaxL)
API (C, VB, Java)

www.in2Hyperion.com

www.Rolta.com

MaxL
Hyperion Essbase Scripting

www.in2Hyperion.com

www.Rolta.com

MaxL Possibilities

Create/Delete/Edit

Apps/DBs
Calculations
Security
Location Aliases
Partitions

Execute

Display
Export

Data
Dimensions to XML
Security File

Import

Data
Dimensions

Calculations
Aggregations

www.in2Hyperion.com

www.Rolta.com

MaxL Railroad

www.in2Hyperion.com

Diagrams

www.Rolta.com

MaxL Script
l
l
l
l
l
l

Layout

Set general variables


Set logging
Set script level variables
Login
Execute processes
Run exit routine

www.in2Hyperion.com

www.Rolta.com

MaxL Script
l

Concepts (Logging)

Spooling
spool stdout on to "$(logPath)$(1)$(2).txt";
spool stderr on to "$(errorPath)$(1)$(2).txt;

www.in2Hyperion.com

www.Rolta.com

MaxL Script
l

Concepts (Includes)

Compartmentalize reusable scripts


Login
Set global variables
Processes used in many scripts

Example Login (login.msh)


login $key ABC $key XYZ on "$(svrName)";
iferror 'errHandler';

Include the login script


msh login.msh;

www.in2Hyperion.com

www.Rolta.com

MaxL Script
l

Concepts (Error Handling)

Error handling
iferror 'errHandler'; (call after every command)

define label 'errHandler'; (define label)


spool off;
logout;
exit 1;

www.in2Hyperion.com

www.Rolta.com

MaxL Script
l

Concepts (Variables)

Commonly used strings set in one place


set logPath = "/usr/appl/fpf/home/ftpfpf/Logs/";
set appName = "StaffPln";
set dbName = "StaffPln";

Reference variables
spool stdout on to "$(logPath)errors.txt;
execute calculation
"$(appName)".$(dbName)"."pAgg";

www.in2Hyperion.com

www.Rolta.com

MaxL Script
l

Concepts (Parameters)

Use command line parameters when applicable


set procName = $(1);
set procDate = $(2);

Reference command line parameters


spool stdout on to $(1)$(2).txt;

Example
essmsh script.msh processXYZ 2013_06_20
Param

www.in2Hyperion.com

space

Param
www.Rolta.com

MaxL Import

Data

import database $(appName).$(dbName) data


from local text data_file "$(dataPath)$(dataFile)" using
server rules_file "$(ruleFile)"
on error write to
"$(rejectPath)$(procName)_$(dataFile)$(procDate).err";
iferror 'errHandler';

www.in2Hyperion.com

www.Rolta.com

MaxL Execute

Calculation

execute calculation
"$(appName1)"."$(dbName1)"."GLActCvn";
iferror 'errHandler';

www.in2Hyperion.com

www.Rolta.com

MaxL Batch
l

Client Parameters

Execution
Essmsh
startMaxl (sets environment variables)

Parameters
Maxl script filename
-u [username] (not required when using filename)
-p [password] (not required when using filename)
-s [message level] (not required when using
filename)

www.in2Hyperion.com

www.Rolta.com

MaxL Batch

Client Example

Essmsh c:\scripts\aggscript.msh appname dbname


Startmaxl c:\scripts\aggscript.msh appname dbname

www.in2Hyperion.com

www.Rolta.com

Maxl Editors
l
l

MaxL is a text file and can be written in any text editor


Help getting started
EAS MaxL editor (File/New/Scripts/MaxL)

Auto complete
Quick to build templates
Verification

Editors with user built addins

Notepad++
UltraEdit

www.in2Hyperion.com

www.Rolta.com

Stay In Touch
l

Email
In2Hyperion@gmail.com
Kyle.Goodfriend@Rolta.com

In2Hyperion

Sign up for email updates at www.In2Hyperion.com


Follow us via Twitter (@In2Hyperion)
Like us on Facebook
Join the In2Hyperion LinkedIn group
More than 2,000 people follow In2Hyperion through social
media
More than 3,000 people visit In2hyperion daily
www.in2Hyperion.com

www.Rolta.com

Other Collateral
l

Collaborate 2011 Business Presentation


Download Presentation

Kscope12 Unlimited Custom Spreads


Download Presentation

OAUG Insight - Summer 2012 issue


Download Article at ODTUG.com
Request a copy by emailing me at
in2hyperion@gmail.com

www.in2Hyperion.com

www.Rolta.com

Questions?

www.in2Hyperion.com

www.Rolta.com

You might also like