Master Data Management via Business Data Cloud (BDC): Datasphere (DSP) & Seamless Planning in combination 

SAP Datasphere (DSP) and SAP Analytics Cloud (SAC) Seamless Planning will play an increasingly important role in the future. Since Seamless Planning is still a relatively young product, its current interaction capabilities with SAP Datasphere are limited. Nevertheless, this example demonstrates how master data from SAP Datasphere can already be enriched and managed using Seamless Planning.

 

Setup SAP Datasphere (DSP)

Let us assume that we have two tables in SAP Datasphere: 

  • Customer Table
    • CustomerNumber
    • CustomerName
    • Country
    • RegionCode

  • Region Table
    • RegionCode
    • Description

Our goal is to assign regions to customers via Seamless Planning and maintain the description of the regions. 

To achieve this, we create local tables for both dimensions and expose them through fact view and analytical model for SAC consumption. (For the fact view, we simply added a row counter as a key figure.) 

  1. Customer Table
  2. Customer Fact View
  3. Customer Analytical Model

SAC Data Preview: 

And like this for the Region Model 

  1. Customer Table
  2. Customer Fact View
  3. Customer Analytical Model

SAC Data Preview 

SAC Data Preview of the region model table showing available region codes (APAC, DACH, EMEA, LATAM, NA) with descriptive texts explaining each region’s geographic coverage.

Setup SAP Analytics Cloud (SAC)

In SAC we also create two dimensions, one for Customer Region Assignment and one for the Region. We then expose both to SAP Datasphere. 

The dimension for the Customer Region Assignment looks like this in SAC: 

It also has a property with region: 

The Dimension for Region looks like this: 

We then also create a Dummy Planning Model which will hold our dimension and Dummy Keyfigure as it is required. This one is also exposed to SAP Datasphere. 

Setup Planning Application in SAP Analytics Cloud 

We then build a story in SAC, including: 

  • The two analytical models (Customer and Region) 
  • The dummy planning model 

Tables with the data can be displayed (or hidden in a real application). 

Customer Region Assignment 

In the Customer Region Assignment tab, we add two dropdowns, one for the Customer Selection and one for the Region it should be assigned. On the initialization we fill the dropdowns with the following script:

var customers = Customer.getDataSource().getMembers("CustomerNumber"); 

var customerName = Customer.getDataSource().getMembers("CustomerName"); 

console.log(customers); 

for (var i = 0; i<customers.length;i++){ 

CustomerDropdown.addItem(customers[i].displayId, customerName[i].displayId); 



var regions = Region.getDataSource().getMembers("RegionCode"); 

console.log(regions); 

for (var j = 0; j<regions.length;j++){ 

RegionDropdown.addItem(regions[j].displayId); 

}

This way the dropdown gets filled with our Data from the Analytical Models and the dimension values from SAP Datasphere. 

An Assignment could then be done by selecting the Customer and the Region.  

When the Save button is pressed the script performs the following actions and updates the dimension: 

var region = RegionDropdown.getSelectedKey(); 

var customer = CustomerDropdown.getSelectedKey(); 

var customerText = CustomerDropdown.getSelectedText(); 

console.log(region); 

console.log(customer); 

CustomerInput=({id:customer, description:customerText ,properties:{Region:region}}); 

console.log(CustomerInput); 

DummyModel.updateMembers("CustomerRegionAssignment",CustomerInput);

As the dimension is stored in Datasphere we can now see the values in the Seamless planning table. 

We now add this table in a Transformation flow as Source and add this information to our original Datasphere table which holds the Customer Information. 

Region Text Maintenance 

In this tab we do something very similar. We add one Dropdown to select for which region you want to maintain the text and one text input to maintain it. The dropdown is again filled upon initialization of the page with the following script: 

var regions = RegionText.getDataSource().getMembers("RegionCode"); 

var regionsText = RegionText.getDataSource().getMembers("Description"); 

for (var j = 0; j<regions.length;j++){ 

RegionTextDropdown.addItem(regions[j].displayId, regionsText[j].displayId); 

}

And that based on the selection the text input is filled: 

var sel = RegionTextDropdown.getSelectedText(); 

console.log(sel); 

RegionTextMaint.setValue(sel)

In the application this looks like: 

User interface snippet where a region description (Germany, Austria, Switzerland) is displayed. A button is available for confirming or processing the selection, typically used for region text maintenance.

Upon the Button execution the dimension is updated: 

var region = RegionTextDropdown.getSelectedKey(); 

var regionText = RegionTextMaint.getValue(); 

console.log(region); 

console.log(regionText); 

RegionTextInput=({id:region, description:regionText}); 

console.log(CustomerInput); 

DummyModel.updateMembers("Region",RegionTextInput);

Identical to the example above the value is then stored in SAP Datasphere and a Transformation Flow writes the value into its original table: 

Conclusion and Outlook 

In practice, transformation flows could be triggered through a task chain, initiated by a multi-action in SAC. This will become easier once SAP provides an API to trigger task chains, or by using our solution to wrap the task chain CLI (Link ZPARTNER; Link SAP Community). 

Looking ahead, the goal is for transformation flows to become unnecessary—enabling direct master data management in Seamless Planning, similar to the functionality available in SAP BW/4HANA. 

Even though Seamless Planning is still a young functionality, with some creativity and ideation, it already offers ways to enrich SAP Datasphere data and design new planning processes using SAP’s latest cloud technology stack. 

Related Blogs


Christian has been working as a Business Intelligence Consultant at ZPARTNER since 2020. He is specialized in advanced SAP BW/4HANA, HANA native modeling and SAP Datasphere solutions. Christian has a strong technical background in ABAP programming, AMDP transformations, Python-based data processing. He has worked in projects in various industries and developed solutions for complex data extraction, integration and modeling.

×