Posts

Showing posts with the label saveMember

Groovy Series 3: Managing attributes via forms

Image
Attribute dimensions are a boon when it comes to tabbed reporting or running member specific calculations or filtering data based on attributes but their management is bigger pain. In case these attributes require a regular update or association to newly created member on the fly, the only option is to go into dimensions and update them. Sometimes these could be challenge when users are new to Planning and taking baby steps in administering the whole application. All they could expect is a webform where all members and their associated attributes are listed to review and update, if required. Today’s post is going to talk about how metadata management could be made easy for new to Planning (PBCS) administrators by leveraging groovy. In this example, we have a project dimension with hierarchies for existing and new projects. Each project is grouped into domestic or international project tracked by an attribute dimension – Project Category and to determine whether project should be consid...

Groovy Series 2: Privileged Methods

Image
“With great power comes great responsibility” is what Oracle wants to remind us by assigning certain methods in Groovy classes as privileged methods. Privileged methods restrict executing these methods in groovy rules unless user has administrator privileges. Privileged Methods: delete: Delete method in the Member Class. This method deletes the member and all its descendants from Planning outline saveMember: saveMember method in the Dimension Class. This method returns the member that was created based on the properties map defined for the member execute: execute method in DataMap Class. This method executes the already defined data map in the application So what happens if a user with non admin privileges attempt to execute any groovy rule using any of these three functions? Here’s an example where a non admin user tries to execute a rule with data map and receives following error. It’s obvious that these three functionalities should be controlled and hand...