Hero Backgroud Elements 2
Reading Time: 10 Min

SAP Analytics Cloud Analytics Designer: Build a Robotic Smart Analytic App

April 8, 2020

Blog
Author
Jason Yang Jason Yang
Jason Yang is the Product Owner in the SAP Analytics Designer development team with over 10+ years of experience in Business Analytics.

Normally, people think that an analytic app can only run at the frontend. However, this is not the case. In this blog, I am going to showcase an example regarding an application that was built by SAP Analytics Cloud Designer and runs as a scheduled job at the backend. This application runs as a robot for 7×24 hours to monitor the business, trigger alerts based upon exceptions, generate actionable proposals, and automatically execute transactions when the criteria of the business rules are met. My hope is that this example inspires you when you have similar use cases.

To begin, let's first look at the demo:

Demo Summary:

In this demo, the SAP Analytics Cloud Designer application is scheduled to run at the backend. The application monitors the prices of raw materials for a small bakery, which has 4 products and 6 variations of raw materials. The application will send out an alert when the rise of material price severely impacts the margin. Automatically, the SAP Analytics Cloud Designer will generate two proposals to maximize the margin and stay within the production capability (4900 minutes) constraint:

  1. To change the vendors for raw materials
  2. To change the production plan and adjust the number of product pieces

In the demo, I wrote a simplified algorithm: proposal 1 picks the materials vendors that offer lowest prices, proposal 2 keeps vendors stable because you may have long contracts with them but adjust the production plan to gain biggest margin. In a real-world scenario, surely you need to consider more factors affecting a business and you can rely on experiences, smart predict features, and machine learning to create the best strategy.

In the meantime, two separate SAP Analytics Cloud Planning versions for production plan and purchase plan are automatically created for each proposal. The business user can either decide to:

  • Set a business rule for the robot to select one proposal and run it automatically
  • Manually pick one of the proposals
  • Perform a what-if simulation by adding new business constrains.

Regardless of which approach the user selects, the production and purchase plan will be updated.

Although it is not shown in the demo, in a real-world scenario, the purchase order can be directly created via an OData connection to the transactional system. This is an automatic, closed-looped business scenario.

New Features

1. Schedule Publication for an Analytic Application 

You can schedule a publication for publishing and distributing analytic application views via email in a PDF format at a predefined time or frequency.

Click on this link to learn how to schedule a publication for an analytic application.

2. Notification API

The new notification API delivered in release 2020.07 will help. In 2020.07 release, this API can only be called while the application is running as a scheduled task. It sends notifications to the application consumers in Notifications Panel and through emails as well. While the scheduled job runs, you want to be notified once a certain business rule is met, like the quantity sold of a particular product is below 50M.

Notification Panel

 

Information can also be sent to your email.

The Notification Panel includes:

  • Title
  • Body content (support common HTML format like i/b/u, a, br, hyperlink)
  • Action button to open the Application

The application developer can also configure:

  • Recipients (with the support of value helper)
  • View mode of the application at run time
  • URL parameters in key-value pairs
  • Send email or not

The API is defined as below:

enum ApplicationMode {

    Present,

    Embed,

    View

}


NotificationOptions {

    title: string,

    ?content: string,

    ?receivers: string[],            // default: current application user

    ?mode: ApplicationMode,          // default: Present

    ?parameters: UrlParameter[],     // array, no optional single URL parameter

    ?isSendEmail: Boolean            // default: false

}


Application.sendNotification(notification : NotificationOptions): boolean

 

Sample use case:

/*

Example: Will send both notification and email to user (Jack).

Notification title is 'notification title'. Notification content is "notification content".

*/

if (Quantity Sold < 50,000,000) {

    var param1 = UrlParameter.create("bookmarkId", "17889112-4619-4801-8954-637818290511");

    Application.sendNotification({

       "title": "notification title",

       "content": "notification content",

       "receivers": ["Jack"],

       "mode": ApplicationMode.Present,

       "parameters": [param1],

   "isSendEmail": true});

}

Schedule Publication for an Analytic Application (Beta)

Summary

Once an Analytic application is able to run as a scheduled job at the backend for 7×24 hours, you would be able to achieve many interesting use cases that were not possible prior.

Enjoy your exploration with Analytics Designer!

For more information about SAP Analytics Designer, click here.