Financial Management Blogs by SAP
Get financial management insights from blog posts by SAP experts. Find and share tips on how to increase efficiency, reduce risk, and optimize working capital.
cancel
Showing results for 
Search instead for 
Did you mean: 

Hi Everyone! You might have heard the news already that SAP Profitability and Performance Management is also now available in Cloud. This new solution has been released last May 31, 2021 and to know more about this new exciting solution, you may check the blog post “SAP Profitability and Performance Management reached the Cloud!


One of the main screens you can access in  Profitability and Performance Management Cloud is the Report Management Screen which allows you to create and consume reports as well as execute simulations if the underlying process template or process instance is set to process type “Simulation”. In this blog post, I will be discussing one of the key features in Report Management: The Client-Side Simulation.


Client-side simulation can be triggered by using the Simulate button in Report Management Header Tools. This is based on the maintained simulation script in code editor and after the calculation of the simulation script is finished, the system updates the report elements accordingly.


From the business perspective, simulation is very useful to asses the current performance or standing of a business as well as predict the future. By creating different scenarios and outcomes, it will be easier to know or have an idea of what might happen if an action is taken. This allows the businesses to test out new ideas or scenarios before they make complex business decisions. Below I will show you a simple example of how client side simulation works in Report Management so you can test different scenarios before you make your next steps.


Let me first show you the preconfiguration in Modeling and Process Management before you can proceed to Report Management to perform client side simulation.


Preconfiguration Steps:




  1. In Modeling Environment, a simple Query that consumes a Model Table was created.



Data in the Model Table is below:





  1. 2. The query function was then added as an Input/Output Activity to a process template. The activity will later on be used as a report element that will be used for simulation in Report Management.





  1. 3. Parameters were also added in the process template which will later on be used in the simulation process.



4. After configuration of the function/s needed in Modeling Screen is done, next step is to create a process instance in Process Management. In here we have to ensure that Process type is set to Simulation in order to perform or execute simulation in Report Management.



5. You can now go to Report Management screen once process instance has been created.



Report Management Client Side Simulation


In Report Management Screen add the report element that will be used for simulation as well as the simulation script.



In the first scenario, the script below was used.





var adjustAUTO = function (output, param) 

{ for (var outputRow of output) 

    { outputRow.KF_AMT =  outputRow.KF_AMT*((100 + param) / 100);

      outputRow.KF_QTY =  outputRow.KF_QTY*((100 + param) / 100); } }

if (scope.PKF_PER != 0.0) 

{ adjustAUTO(scope.RMA01, scope.PKF_PER); }




In here, the parameter used has no default value defined in Modeling or is equals to 0. The script simply means that if parameter is not equals to zero, the defined fields in the function declared in the script will adjust according to the formula used.




  • RMA01 is the function ID of the Query function

  • PKF_PER is the parameter field ID

  • KF_AMT and KF_QTY are the fields wherein we expect to see changes after simulation. To simplify the formula, it will just multiple the current value of the fields to (100 + parameter that will be added in process parameters section) / 100


Below is the current value of KF_QTY and KF_AMT



If parameter is changed to 50, the new value of KF_QTY will be 75 and then KF_AMT will be 187.50 after Simulation. Simplified formula is:


KF_QTY = 50 * 1.50


KF_AMT = 125 * 1.50







Now let's try the second scenario wherein the parameter that we will be using has a defined default value in Modeling. For parameter PKF_PER2, 10 was the defined default value. In Client Side Simuation or Code editor, we will just simply change the parameter to PKF_PER2 to use it in the next simulation.



var adjustAUTO = function (output, param) 

{ for (var outputRow of output) 

    { outputRow.KF_AMT =  outputRow.KF_AMT*((100 + param) / 100);

      outputRow.KF_QTY =  outputRow.KF_QTY*((100 + param) / 100); } }



if (scope.PKF_PER2 != 0.0) 

{ adjustAUTO(scope.RMA01, scope.PKF_PER2); }


You will notice that the value defined in Modeling already appears once you expand PKF_PER2 parameter in Process Parameters section of the Properties Panel. You can already choose simulation button and the expectation is it will use the value 10 in the calculation.



The only difference that you will notice when there is a default value is that in Parameter section, if you change the value of the parameter, the percentage also updates according to how much the parameter have increased or decreased. In the example below, the parameter was changed from 10 to 50 which means that the increase of 40 from the default value is 400% or ((50-10)/10) * 100). But for the calculation, the value that will still be used is 50 and not the percentage that you is shown in Parameters section. Since in this scenario the parameter used is also 50, the same result from scenario 1 is expected.



That's it for the client simulation blog post. Hope that even if the script I used is very simple (as I am not really an expert when it comes to js scripts), it somehow helped you understand how Client Side simulation works in Report Management. You can use as many functions/report elements and parameters as you want as long as you define them in the script that you will be using.


Please note also that this Client Side Simulation feature is working exactly the same  in Visual Modeler that we have in the On Premise version of SAP Profitability and Performance Management. The only difference is that since in the On Premise version, Modeling and Processing Screens are still read only, you have to create the preconfiguration functions and the process instance in the expert UI side before you can fully use them in Report Management Visual Modeler. And based from experience, configuring or modeling functions is made easier in the Cloud version. 😊

3 Comments