Oracle PBCS offers a feature called Smart Push that allows you to push data i.e. synchronize data between plan types when a form is saved. For example, you can setup Smart Push so that data from the BSO plan type is pushed to the ASO plan type whenever a form is saved thus ensuring that the ASO reporting plan type is always consistent with the BSO plan type.
Please note that by default only the form context (i.e. member intersection or POV) is set to be copied over but this can be over ridden and member selections can be done to copy over a much larger data set than that covered by the form intersection. The override option (which is what I think makes it Smart) is useful when you have a business rule set to run on save on the form that will manipulate data other than just the intersections on the form and you want this additional data to be pushed over as well.
Set up Reporting Application Mapping
To use Smart Push, you must first set up a mapping using the ‘Map Reporting Application’. To do this, from within the PBCS Workspace, navigate to Administration->Map Reporting Application. Next, Click on ‘+’ sign to create a new map.
Provide a name (e.g. BSOToASOMap) to the mapping and then select the source plan type from the source application. From the Reporting Application section, click and select the target plan type. In this case I have selected an ASO reporting application with plan type ‘RptApp’.
Then click on Next to map the individual dimension members. The default settings are all level zero descendants from the source plan type dimensions are mapped to all level zero descendants of the target plan type dimensions. There are three types of mappings available. Not Linked mapping is where you do not want to map a dimension, Dimension to Dimension is a straight one to one mapping and Smart List to Dimension displays the available Smart Lists. When a Smart List is selected, the account members associated with it are displayed. If there is only one member, it is automatically selected.
Based on your design, there may be an instance where the number of dimensions in the source and target are different. In this example, my source plan type does not have the Employee dimension and hence it is not linked. The next step will allows you to map the data to a member in the target plan type employee dimension. Make changes here based on your synchronizing needs. Then, click on Next.
In the point of view tab, I have put in ‘No Employee’ as the member within the employee dimension where I want to load data from the source plan type. Click on Next.
The ‘Data Options’ tab allows you set copy options for Comments, Attachments and Supporting Detail. The default is ‘Do Not Copy’. Click ‘Finish’ to finish setting the map reporting application.
Add Smart Push to the data form
To set up a form to use Smart Push, edit the data form and go to the Smart Push tab. Click on the ‘+’ sign
You will see a list of all the mappings that you may have created. Select the mapping you want to use and click Ok.
The default view is as shown below with an option to ‘Run on Save’ option. Make a note of a very useful feature to expand the mapping and override the form context with different member selection. This feature is what I find particularly useful or ‘Smart’.
Expand the mapping by clicking on the expand option on the left of the mapping name to reveal a feature to override the form context. In the example below, for Currency dimension, I unchecked the ‘Use Form Context’ option so that I can override it. On my data form, the member from Currency dimension is ‘Local Currency’, however I am doing a currency conversion with a business rule set to run on save and hence I am overriding this to include USD and EUR along with Local Currency. When the form is saved, data for Local Currency, USD and EUR will be copied over to the target application. Click on Finish to finish editing the form.
When a form on which Smart Push is enabled is saved, you will receive a success notification if all goes well. The sequence of activities is Data is saved, Business Rule is executed and then Smart Push is executed.