For most cases, when designing planning applications, the end users would not have access to make changes to metadata/hierarchies. The system admin will take care of all the metadata maintenance activities. However, for certain cases, customers actually request to add their own members to the system during the budgeting and forecasting cycle.
Giving planners the ability to add members in real time is definitely doable. But I used to usually against this idea back to the on-prem Hyperion Planning, Essbase world. The reasons are obvious. Planners may add members without following a standard naming convention rule; planning admins may lose metadata control; a parent member may have a large number of children, which ends up having performance issues. Plus, there are perfect places to manage metadata, Data Relationship Management (DRM) and Enterprise Data Management (EDMCS).
Well, as Groovy coming to the planning and budgeting solutions, things are changed. With Groovy business rules, we are able to control the naming conventions when planners adding their own members, and control number of members have been added, etc. It really provides system admin confidence in giving planners’ control. In the meantime, if you have chances to work with the EPBCS pre-built frameworks, such as Financials, Workforce, Projects, and Capital, you will notice these frameworks allow planners to process member creation. Being said, if you are using these frameworks, you will have to allow planners to add new projects, new TBHs, etc. on the fly.
With Groovy validation rules, I believe letting planners add members on the fly is not a bad idea. In fact, they can even delete a member or move a member. This post, I will walk you through how we would let planners add members in real time. Then you can add your custom Groovy validation rules later.
Giving planners the ability to add/delete members is using dynamic member functionality. Dynamic members allow planners to create them when working with business rules. Groovy rules are included, of course. Dynamic members are on the fly members.
1.Enable for Dynamic Children
Pick a parent member, and check the Enable for Dynamic Children box. Then give a number of possible dynamic children. Refresh the database to create the required placeholders in Essbase behind the scenes. Well, EPBCS/PBCS does not come with EAS Console. But similar to on-prem Hyperion Planning, we are able to see the members created in Essbase outline but not in EPMA.
After planners adding members, the subsequent database refreshes will rename used dynamic children to the names specified by the planners and recreate the required placeholders in Essbase. If all placeholders are used, subsequently added children are added as normal members and cannot be used until the database is refreshed.
By the way, I would suggest only do this for sparse dimensions. Otherwise, adding members to a dense dimension may cause challenges when refreshing the application because it might trigger an application restructure.
In this case, we use Project sparse dimension as an example Update Other Projects properties. Planners will have the ability to add a new project later.
Then add a few projects for testing purpose. Also, don’t forget to refresh the database to create placeholders in Essbase.
2.Create a Calculation Variable
Now, we will need to go to the calculation manager to create a variable for adding a project member. Create an “Add_Project” variable, and add an RTP text.
3.Create a Business Rule
Create a simple business rule and add the variable to it. Check the Create dynamic members box on the bottom right. You can add more Groovy flavor to this rule to process on the fly validation. We will talk about this in future posts.
4.Create an Action Menu
Once the rule is ready, create a right-click action menu, and add the business rule to this menu.
5.Add the Menu to a Data Form
Add the menu to the form which allows planners to add a new project.
6.Add a New Project
Now it is the time for us to test adding new project members functionality. Open the data form, and we see there are five projects.
Simply right-click the form and click Add Project.
Type in any project we would like to add, for example, Services, and then launch the rule.
Now we see the new project Services has been added to the data form.
7.Double Check Metadata
Last but not least, check the Project hierarchy. We notice the new project Services has been added under Other Projects.
Hope this post gives you some ideas on adding members on the fly. Thanks to Groovy which really resolves my initial concerns. See you next time.