Skip to Content
Technical Articles

Custom Authorization-SAC Application Designer

Hi Geeks,

I faced the custom situation for Authorization in SAP Analytics Cloud Application designer by stakeholders. Through this blog post, we will discuss how to handle/read table entry in SAc application designer to get authorization yo particular users in the same application.

Scenario :

In application Designer user get a requirement to put link of 3 other dashboard. Out of the 3 links which is hidden behind text box/Button/Shape only 2 links should be accessible to all users of the department. The last link consists of some critical data content dashboard that should be accessible by higher management.

 

User requirement is the 3rd link should visible only to Authenticated user and for remaining user it should not be visible.

 

For Example, the Forecast Accuracy can be accessed by an authorized person only.

Solution : 

Option 1:

Create 2 dashboard. One with the 3rd Link and one without 3rd link. Create two different /Folder/Teams/Roles as per Authorized and other users.

So as per the user role, they will redirect/Access the respective dashboard as both have different security levels.

 

Option 2:

Create an excel file or Hana View with a list of Authorized users. for example, the TableAuth has 3 columns. UserID, Username and User Mail ID.

Create the table in your SAC Application Designer Canvas. and make it hide so it will not be visible to any user.

Write the code on Canvas onInitialization Function().

tableAuth.setVisible(False);

Now we need to work on the 3rd user Link which should be visible only to authorized user.

2.a Get the current user by Dynamic text in a text box(textuser).

var vSelectedKey = textUser.getPlainText(); 

or you can get the same result from

var vSelectedKey =Application.UserID();

Once you get the user we need to match its value with our Authorization table.

// Reading data from Auth Table and Matching Username column with Current login user.

var vMembers = tableAuth.getDataSource().getMembers(“UserName_5w3m5d06b5”);

Now we received an array of all list of Authorizes user name in our variable vMembers.

Create a for Loops to find the value if it match make the 3rd url Visible.

for (var i=0; i<vMembers.length; i++) {
  if (vSelectedKey === vMembers[i].description) {

    console.log( “Success”);
    text box/Button/Shape.setVisible(True);

  } else {
    console.log( “Failed”);

  text box/Button/Shape.setVisible(false);

  }
}

we can read any measure with respect to any dimension in a table or we can read the measured value from the numeric charts  and put it in slider or in tex box.

Hope this will help you. Looking forward to come up with new scenarios.

 

Thanks and Regards,

Sanjay Guha.

Be the first to leave a comment
You must be Logged on to comment or reply to a post.