0% found this document useful (0 votes)
68 views319 pages

2023 Q2 Release Notes

The 2023 Q2 Release Notes document outlines enhancements made to the o9 Platform during February, March, and April 2023, including updates to the Web UI, KPI widgets, and user management features. Key improvements include the introduction of new functionalities for the Interactive Gantt Chart, Pivot/Grid enhancements, and various performance optimizations across the platform. The document is intended for o9 Platform users and details both general updates and specific feature changes, including deprecated features and new capabilities.

Uploaded by

ppg77077
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views319 pages

2023 Q2 Release Notes

The 2023 Q2 Release Notes document outlines enhancements made to the o9 Platform during February, March, and April 2023, including updates to the Web UI, KPI widgets, and user management features. Key improvements include the introduction of new functionalities for the Interactive Gantt Chart, Pivot/Grid enhancements, and various performance optimizations across the platform. The document is intended for o9 Platform users and details both general updates and specific feature changes, including deprecated features and new capabilities.

Uploaded by

ppg77077
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 319

Digital Transformation Platform

Release Notes
2023 Q2 Release Notes

www.o9solutions.com
Table of Contents
About the Document 6
Intended Audience 6
About the o9 Platform 7
Enhancements to the o9 Platform 7
General 8
Deprecation (Features Removed in 2023 Q2 Release) 8
Web UI 9
Interactive Gantt Chart 9
Favorites 9
Select Time View 10
Pivot/Grid 12
Column Filter for MDP & Measures When Subtotal is Enabled 12
Multi Criteria for Pre-filter in Scenario Comparison 17
Filter & Measure Control from Action Button 20
Hyperlink in Pivot Table 25
Filter Selection Retained in Grid View of Scope Filters 35
Download Pivot Datetime Data in Local Time Zone 39
Client Side Pivot Download 42
Range Selection for Time Attributes Using the Calendar Date Picker 65
Member Search Enhancement in Scope Filter 72
Reorder View Filter & Display Exact Order 76
Custom Sort Enhanced 79
Clear Filter Functionality 83
KPI Widget: Navigation Links 86
Shipment Tracker Widget 91
Heat Map Widget 104
Deployment Workspace 110
Create Backup Dialog Box UX Revamped 110
Block Delete/Restore Action When Backup is in Progress 111
Use the Delete Data and Uninstall Option & Delete Data Folder 112
Factored Restore 113
Last Action Status Tab Appears in Manage Collab & Manage Backups View 115
Last Action Status Tab Auto Refresh 117
Confirmation Box Appears Before Tenant Data Deletion Activity 119
Active Queries Tab Introduced 131
User Management Workspace 132
Download Column Filtered Data 132
Add & Remove User Roles in UI 134

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
2
Tenant Workspace: Color Changed to Black (#111111) 138
Mass Config 139
Copy Reports 139
Delete Reports 141
Favorites Including Factory Setting Must Include Newly Added Members 142
PDF Frequency Restriction 148
Block Certain User Actions from Designer for System Entities 149
Rearrange Workflows 151
Memory Manager UI Changes 154
Last Login Details Available 156
Config 2.0 157
UI Preferences 157
Named Node 162
Git Support for DDL 168
Measure Alias 169
Use o9Git Org for C2 Development 171
Web Layout & Dimension Merge and Edit 172
Block Dependency - Explicit 174
Recreate Release Branch from Main 176
Data Management for Config2 177
WebAPI 179
Uptime Report 179
Download Audit Trail Data in Local Time Zone 181
Create New Tenant with Default Template as o9EmptyTemplate 182
View Starting/Stopped Status of GraphCube Server with the Message Log 184
Platform Actions Blocked When Starting/Stopped Action of GraphCube Server is in
Progress 186
Platform Error Codes Redirects to the Platform Wiki 188
Auto Retry for Infrastructural Components of Backup & Restore Action 190
Prepare Phase, Automatic & Manual Retry Option for Backup 193
Users Receive Notifications Whenever Solver is Running 197
Hide ETL Records from Audit Trail 202
Organization Based Favorite Sharing 205
Upload Data Security Rules Using File 207
Action Button Name Incorporated in Platform Logs 208
Users Receiving Bulk Emails - MicroService 210
Forward Compatibility Checks for Tenant Config 212
Prepare Phase for Restore Action 215
Retry Option Available for Partially Completed or Failed Restore 218
Delete/Restore Action of InProgress Backup Blocked 220
UserManagementAdmin User Roles Modifying Data Security Rules 222

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
3
Clear Corrupt or Stuck Backup/Restore Activities 224
Conflicting Platform Actions are Blocked 227
GraphCube 233
Discard Partial File Uploads 233
Alternate Hierarchy Performance Improvement 234
Installagent Logs in UI 235
FilterbyUpdates Performance Improvement 236
Data Admin vs Non Data Admin Improvement in Block Scope 237
External Measure Group Disk optimisation 238
Disabled Hierarchy 240
Performance Improvement 242
Leadoffset 242
Soft Delete 243
Memory Monitoring LS Commands 244
Integration 247
Support of Avro File Format in Kafka Inbound API 247
Integration 3.0 249
Platform Health Monitoring Report - NiFi 253
Advanced Analytics 255
Python Upgrade Optimization 255
Python Plugin Status Notification 256
o9 Predict.ai Enhancements 257
Platform Resiliency: Lack of Cluster Resources 258
Python Platform Error Resolution 260
SCS 262
Co-Product/Bi-Product Pegging 262
Planned Order WIP Support in Incremental Plan 267
Supportability for SS Build Ahead in Case of Min-Max Type of Safety Stock Policy
272
Actionable RCA 275
Mandatory Pre Build Offset Extended support (Hard Quarantine, BOM Offset,
Delivery Plan Offset) 279
Pegging to Support Delivery Flow Plans 287
Max Lot Size 290
Where Used Report 296
LPS 299
Group Level Campaign Planning 299
Multiple Supplier Multiple Item Proportional Sourcing 301
Activity Mandatory Pre build Offset 305
Time Varying Activity Lead Time 310
Cutting Stock Solver 314

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
4
About the Document
The 2023 Q2 Release Notes document describes the platform enhancements done in February,
March and April, 2023.

Intended Audience
The target audience of this document are the o9 Platform users.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
5
About the o9 Platform
The o9 Platform is an AI-powered cloud platform which is built ground up for integrated planning
and operations in the digital age. All core planning processes are integrated in one Platform.

Enhancements to the o9 Platform


This section provides information on the Platform enhancements done in February, March and
April, 2023.

● General
● Web UI
● Config 2.0
● WebAPI
● GraphCube
● Integration
● Advanced Analytics
● SCS
● LPS

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
6
General
Deprecation (Features Removed in 2023 Q2 Release)
The Classic theme option in the Theme Picker dialog box (Tenants workspace -> Manage
Tenants View -> Theme -> Theme Picker dialog box) will no longer be supported from 2023
Q2 Release onwards.
Only the New theme option in the Theme Picker dialog box will be supported going forward.
Hence, users are requested to move to these new themes.

Please let the UI PMs know in case of any issues.

Also, the OpenSans option in the Font list (Tenants workspace -> Manage Tenants View ->
Theme -> Theme Picker dialog box) will be removed and the Roboto option will be used by
default.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
7
Web UI
Interactive Gantt Chart

Favorites
Business Need
In the Interactive Gantt chart, schedulers can do a lot of things, such as changing the Views,
zooming, changing the color attributes and scrolling. Hence, there was a need to save these
changes as a favorite so that the changes are available all the time for the scheduler.

Functionality Description
The current enhancement enables the schedulers to save their changes, such as changing the
Views, changing the color attributes, zooming, scrolling, and positions, as favorites.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
8
Select Time View

Business Need
There was a need to select the default time buckets in the weekly, monthly, or yearly levels
based on which the gantt data gets updated.

Functionality Description
The View list is provided so that the users can view the data in the following levels:
● Day
● Week
● Month
● Year
Day View

Week View

Month View

Year View

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
9
The user zoom in or zoom out reset icon gets selected only after selecting a View.

Default View Post View Selection Zoom In/Out

The Reset icon is selected.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
10
Pivot/Grid

Column Filter for MDP & Measures When Subtotal is Enabled


Business Need
Previously, when subtotals were enabled, users were not able to use the column filters on
measures and Multi Dimensional Properties (MDP) in pivots. However, users require to use
both column filters and subtotals, simultaneously.
With this enhancement, users will be able to filter the intersections matching the selected values
of the multi dimensional property/measures and also view the subtotals for the filtered
intersections.

Functionality Description
1. Login to any tenant with the relevant credentials.
2. Go to the relevant workspace/View.
3. Open a report with multi dimensional properties and measures. In this example, there
are 2 multi dimensional properties: stringpicklist_sum and inttest1 and few measures.

4. Enable the subtotals from the layout.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
11
5. Observe that the column filters are retained on the multi dimensional properties and all
measures.

6. Click the column filter icon next to StringPicklist_Sum (one of the multi
dimensional properties). The column filter menu is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
12
7. Select the checkbox next to the relevant values. In this example, the apple checkbox
and the orange checkbox have been selected.

8. Click OK. The report is filtered with all the intersections where the value is Orange or
Apple for the Stringpicklist_sum MDP. Also, the subtotal rows are re-calculated (based
on the aggregation defined for the measure or multi dimensional property) for the rows
which match the selected values and are displayed. There are 8 rows of data returned.

Similar to the multi dimensional property, users can also filter measures, provided all the
grains of the measure are present in the row of the report and On Columns is selected
in the Data Position list in the Options tabbed area of the Layout dialog box.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
13
In the above example, all the measures in the report are grained at Item, Customer
Group and Month, On Columns is selected in the Data Position list and subtotal is
already enabled.

9. Click the column filter icon next to the Number_agg_suml measure. The column
filter menu is displayed.
10. Select the checkbox next to the relevant values. In this example, the 2999 checkbox and
the 3454 checkbox have been selected.

11. Click OK. The report will be filtered by the leaf intersections which have the measure
value as 2999 or 3454 for the Number_agg_sum measure and the Stringpicklist_sum
with values Orange or Apple. (Since we have already filtered by the MDP
stringpicklist_sum in the above steps). The report has 5 rows of data and the subtotal
rows are recalculated for the filtered intersections and are also displayed.

● When the subtotal is enabled, all the grains of the measure must be
present in the row of the report for the column filter option to be available
on the measures.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
14
● All the report level attributes must be present in the row and the measures
must be on columns. Measure groups on columns are supported. Any
other layout will not support column filtering of measures with subtotals.
● The column filters on measures with subtotals are applied as pre filters in
the liveserver to include the subtotal rows in the result data.
● The selected values in the column filter are always applied at the leaf level
intersections and the subtotals returned are based on the filtered rows.
● If there are any post filters on the report, the post filter will be applied after
the column filters and hence the subtotal rows might not be returned if the
subtotal values do not satisfy the post filter conditions.
● The column filters with subtotals are supported only for Integer, Number,
Boolean, String, Datetime and Picklist data types.
● The column filters applied on multi dimensional properties or measures
along with subtotals will be retained as part of favorites.
● If measures of different granularity are present in the report, then the
column filter can be applied to only 1 measure at a time when subtotal is
enabled.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
15
Multi Criteria for Pre-filter in Scenario Comparison

Business Need
Previously in the scenario comparison pivot grid:
● Delta values even if they are Blanks, EQUAL, 0 (Day), 0, 0.00, etc. were displayed
● Users were not able to pre-filter blanks/nulls values
● Existing pre filter could only provide two conditions and not more
There was a need to see only those rows in the scenario comparison pivot grid, where all the
delta values are different (not equal to Blanks, EQUAL, 0 (Day), 0, 0.00, etc).

Functionality Description
1. Login to a tenant with the relevant credentials.
2. Go to a workspace with scenario comparison pivot grid.

3. Click the Column Filter icon next to the Delta column.

4. Custom filter the Delta column.


5. Go to the Custom Filter dialog box. The four new operators are displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
16
● "is blank" - All the delta columns in a row should be blank.
● "is not blank" - At least one delta column in a row should be not blank.
● "is blank or zero" - All the delta columns in a row should be either blank or zero.
● "is not blank or zero" - At least one delta column in a row should not be blank or zero.

If you apply the is not blank operator, the following results are displayed.

If you apply the is blank or zero operator, the following results are displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
17
If you apply the is not blank or zero operator, the following results are displayed.

The four new operators are provided in the custom filter of the Designer as well.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
18
Filter & Measure Control from Action Button

Business Need
Previously, if a user wanted to include/exclude multiple measures in a pivot, they would have to
individually select/deselect each measure. This meant that there were multiple clicks required
by the user to view the required measure data.
In the current enhancement, configurators will have the ability to group measures into sets. A
measure could be part of multiple measure sets created by the configurators. End users can
select/deselect measure sets based on their needs.

This is applicable only for pivots.

Functionality Description
1. Click the Add Measure Set icon to add a measure set to the pivot report.

Configurators are presented with the following screen:

2. Click to create a new measure set for the pivot and input the required fields:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
19
a. Measure Set Name
b. Display Name
c. Measures

3. Update the measure sets as required.

4. Click to delete/remove any measure set(s) from the pivot if required.

5. Click to save the measure set(s) for the pivot.

Runtime
1. Go to the relevant view where the pivot has the measure set configured.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
20
2. Hover over any measure column header.
3. Click to view the measure sets associated with the pivot.

4. Select/Deselect the required measure set.

5. Click OK. Only the measures associated with the selected measure set are displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
21
If there are common measures between the selected measure sets, the measures will
continue to remain in the selected state as long as there are measure sets selected
which have the common measure.
For example: Measure Set 1 has measures ‘Revised Budget’ and ‘Budget’ associated
with it. While Measure Set 2 has measures ‘Revised Budget’, ‘Total Spend’ and
‘Incremental Ask for Gap Closure’.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
22
If Measure Set 1 and Measure Set 2 are selected:

If Measure Set 1 is unselected, the measure ‘Revised Budget’ continues to remain


selected as it is associated with Measure Set 2.

‘Select All’ controls only the ‘Measures’ and not the ‘Measure Sets’.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
23
Hyperlink in Pivot Table

Business Need
Hyperlinks are generally used to navigate between pages and websites. There was a need to
support hyperlinks in pivot reports, (as attribute properties or measures) which can be used to
navigate to other pages or websites from the platform. For example: if a user wants to track the
shipment from a logistic service provider they would need to add these tracker links in the report
against items that are being tracked.

Functionality Description

Without Render Settings Configured


1. Log in to a tenant with the relevant credentials.
2. Navigate to a View containing a pivot report.

3. Add a measure of “Hyperlink” data type to the pivot report from the designer settings.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
24
● Hyperlink data type is a new data type for attribute properties and measures
● Hyperlink measures can accept string values, subject to the below condition
● Only hyperlinks with ” https:// “ will be considered as valid URLs in the
platform.
● Aggregation types supported for string type measures are also supported for
Hyperlink measures viz. sum, min, max, avg etc.

4. Save the report.


5. Navigate to the View containing the pivot report to view the added hyperlink measure.

6. Click any hyperlink displayed to navigate to the configured URL. A message is


displayed: This link takes you to an external page (or) source outside the o9
Platform. Are you sure you want to continue?

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
25
The unvisited links are displayed in Blue and the visited links are displayed in Purple
to provide differentiation to users.

With Render Settings Configured

A. Static Name configuration

1. Log in to a tenant with the relevant credentials.


2. Go to a View containing a pivot report having a hyperlink measure.

3. Go to the Design layout.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
26
4. Click . The options are displayed.

5. Click Edit report.


6. Click on the gear icon for the hyperlink measure to open the measure settings

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
27
In the measure settings toward the bottom of the pane render settings options will be
visible.

The Render Settings area is available only for measures of data type Hyperlink.

A Static name field is visible in the Render Settings area.

7. Input any string value which will be used to display in the pivot report in the hyperlink
measure column.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
28
8. Click save for the measure settings and save the report to view the pivot report. In the
pivot report, the hyperlink measure column’s hyperlinks will be displayed with the
configured static name.

The static name is only for displaying a uniform text to the user. If you click the
hyperlink, it will still navigate to the configured URL.

B. Display Measure configuration


1. Log in to a tenant with the relevant credentials.
2. Navigate to a View containing a pivot report having a hyperlink measure.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
29
3. Go to the Design layout.

4. Click . The options are displayed.


5. Click Edit report.

6. Click the gear icon for the hyperlink measure. The measure settings are displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
30
In the measure settings toward the bottom of the pane render settings options will be
visible.

A Display measure list is displayed in the Render Settings area.

If you click the Display measure list, all the non-hyperlink measures configured in the
pivot report are displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
31
7. Select one measure to be rendered as a hyperlink in the report.

8. Click save for the measure settings and save the report to view the pivot report.
In the pivot report, the hyperlink measure column will no longer be displayed. The
configured display measure will be displayed in a hyperlink format in the pivot report.

● If both the static name and display measure are configured for the hyperlink
measure, the display measure will take precedence over the static name.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
32
● Hyperlink measures with render configurations will not be editable in the
pivot report.
● Hyperlinks can also be added as a member attribute property and will be
rendered as full URLs.
● The hyperlink measure will be rendered as a string in case of Downloaded
Excel/CSV on the platform, and not as a hyperlink.
● The hyperlink data type is not supported for ‘open in o9 Excel’ and for ‘Excel
Add-In’.
● The hyperlink data type will not be applicable for picklist measures.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
33
Filter Selection Retained in Grid View of Scope Filters

Business Need
After a user makes a filter selection on the grid View of the scope filter, the selection details are
not retained when the user comes back to see it. Thus, subsequently if the user comes back to
the grid View, the user has to reselect the members/properties. This leads to more time
consumed in the process.

Functionality Description
This feature retains the selection made on the grid View of the scope filter, so that the user can
refer to their selections.
1. Login to any tenant with relevant credentials.
2. Go to the Tenant System Settings View in the Deployment workspace.
3. Set CacheOnGridFilters to True.

4. Navigate to a relevant workspace.


5. Open the scope filters. In this example, the grid view of the attribute ‘Location’ is used.

6. Click the column filter icon for any level attribute.


7. Select a few members. Here, ‘Plant’ is selected from the ‘Location Type’ attribute.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
34
Users can also subsequently select members of any other attribute as shown below.

8. Click Apply after selecting the required members.

The pivot will show data according to the filters selected.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
35
9. Go back to the same View and the grid View of filters, and the selections will be
retained.

Limitations
1. The member selections are retained only under the following cases:
a. The user is in grid view, applies the column filter, clicks the ‘apply’ button, and
opens the view filter.
b. The user is in grid view, applies the column filter and navigates to some other
level attribute of the same dimension and again comes back to view the given
selection.
2. The member selections are not retained under the following cases:
a. Clicking on cancel
b. If the user navigates to level attribute of different dimension
c. If there is interdependent filters and user switches between level attributes of
different dimensions
d. If there is NarrowSelectionby filters and user switches between level attributes of
different dimensions
e. User toggles between tile and grid view

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
36
f. User navigates to another view/page/page group/workspace
g. User applies a favorite or does a browser refresh

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
37
Download Pivot Datetime Data in Local Time Zone

Business Need
Presently, in a pivot, users can see a datetime measure in the local timezone. But when they
download, the time is shown only in UTC. This creates a difference in data between UI and
downloaded file. The need is to offer flexibility to view data between UI and downloaded file.

Functionality Description
The following feature enables the user to download date time measures in the local time zone.
1. Login to any tenant with relevant credentials.
2. Navigate to a pivot which has measures with datetime data type. In this example,
Inventory Inputs is the pivot and W WOS Upper Threshold is the measure with datetime
data type.

3. Click the Download button. (Ensure that the download option in config is set to system
setting or show). In the Download dialog box, a new checkbox called the Download in
UTC checkbox is displayed.

4. Select the Download in UTC checkbox. The downloaded file will display the data in the
UTC timezone as shown below.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
38
If the user requires to download the data in the local timezone, clear the Download in
UTC checkbox as shown below.

The downloaded file will display the data in local timezone as shown below

At the time of documentation, the system timezone was set to UTC+11:00

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
39
Limitations
1. The feature is applicable only for pivot grid download.
2. For Auto execute download action button:
a. If all the measures are in UTC, then the downloaded data will be in UTC time.
b. If all the measures are in local time, then the downloaded data will be in local
time.
c. If few measures are in UTC and few are in local time, then the downloaded data
will only be in UTC time
3. The feature is available for the download action button and not for ‘Enable Export Pivot’.
4. Header information will not reflect in the downloaded file when downloaded in UTC.
5. When the user wants to upload the downloaded file (with or without making changes to
the datetime value), no option will be available for the user to select the time zone while
uploading. The platform will read the timezone offset information directly from the
uploaded file.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
40
Client Side Pivot Download

Business Need
Currently, a user cannot download a pivot grid displaying the sorting/filter/formatting conditions
given in the web UI. The need is to allow a download which reflects some of these conditions.

Functionality Description
Downloading using the download action button is being managed by the Live Server and takes
the data directly from Live Server. The following feature enables the user to download the pivot
grid on the client side, similar to how it is seen in the Web UI.
1. Login to any tenant with relevant credentials.
2. Go to a pivot grid. In this example, it is ‘Inventory Inputs’.
3. Click the in-line designer.
4. Go to the widget properties.

5. Click Show in the Export Pivot list. A new button Export Pivot is displayed during the
run-time.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
41
Any existing download action button will be shown as per the configuration and will
exhibit existing behavior.

6. Provide a couple of supported filter, sorting and data layout selections.


7. Click the Export Pivot button.

The downloaded file will reflect the selections made in the run-time UI.

Given below is a list of key supported functionalities for this feature:


a. Attribute/attribute property position
b. Data (measure) position
c. Subtotals
d. MDP
e. Measure property
f. Pivot sort
g. Pivot filter - column filter, custom filter, value filter

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
42
h. Conditional formatting
i. Calculated measures

LIST OF SUPPORTED PIVOT FEATURES


The following list displays the selection/action made by the user in pivot web UI and how it
reflects in the downloaded excel file.
1. Column Header Interactions
a. Attribute Sort: The user clicks the header of the ‘Location Type’ column to sort
them in ascending/descending order
Web UI:

Downloaded Excel:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
43
b. Attribute & Attribute Properties Menu Selection: In this example, Location
Type is an attribute and Longitude is an attribute property
Web UI:

Downloaded Excel:

c. Measure Sort
Web UI:

Downloaded Excel:

d. Column Filter
i. Attribute Sort: Here, the sort button is clicked to sort the data in
ascending/descending order.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
44
Web UI:

Downloaded Excel:

ii. Attribute Custom Sort


Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
45
Download Excel:

iii. Attribute Column Filter Checkbox Selection: The members are


selected individually by clicking on the checkbox next to them
Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
46
Downloaded Excel:

iv. Attribute Column Filter Search Bar: The members are searched by typing
in the search bar.
Web UI:

Downloaded Excel:

v. Attribute Custom Filter


Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
47
Downloaded Excel:

2. Layout Selections
a. Row & Column Selections: In this example, the ‘Week’ attribute is moved to
Rows
Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
48
Downloaded Excel:

b. Attribute Property Selection: In this example, the property ‘Longitude’ of


Location is unselected.
Web UI:

Downloaded Excel:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
49
c. Attribute Position (Rows): The position of the attributes ‘Item’ and ‘Product Line’
are swapped
Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
50
Downloaded Excel:

d. Attribute Subtotals: In this example, subtotal is enabled for ‘Item Type’ attribute
Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
51
Downloaded excel:

e. Measure & Measure Property (data) Selections: In this example, the measures
‘Target Periods of Cover’, Target Inventory and the measure property ‘Limit’ are
deselected.
Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
52
Downloaded Excel:

f. Measure Position: Target Periods of Cover is moved next to Target Inventory


(and locale specific format).
Web UI:

Downloaded Excel:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
53
g. Cumulative Measure Value
Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
54
Downloaded Excel:

h. Calculated Measure
Web UI:

Downloaded Excel:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
55
i. Data Position: On Column
Web UI:

Downloaded Excel:

j. Data Position: Above Columns


Web UI:

Downloaded Excel:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
56
k. Data Position: On rows before members
Web UI:

Downloaded Excel:

l. Subtotals
Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
57
Downloaded excel:

m. Attribute Subtotals: In this example, subtotal is enabled for ‘Item Type’ attribute
Web UI:

Downloaded Excel:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
58
n. Repeat Row Labels
Web UI:

Downloaded Excel:

o. Repeat Row Labels with Subtotals (data on rows)


Web UI:

Downloaded Excel:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
59
p. Column Labels (data on rows)
Web UI:

Downloaded Excel:

q. Row Sort: Nested (data on rows)


Web UI:

Downloaded Excel:

r. Row Sort - Nested (data on columns)


Web UI:

Downloaded Excel:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
60
3. Value Filter
Web UI:

Downloaded Excel:

4. Top K & Bottom L Values


Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
61
Downloaded Excel:

5. Multi Dimension Property


Web UI:

Downloaded Excel:

6. Conditional Formatting
Web UI:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
62
Downloaded Excel:

Limitations
1. This feature is applicable only for pivot grid excel download.
2. The following features are not supported for Export Pivot:
a. Locked cell indicator
b. Measure group
c. Measure nesting
d. Tornado gradient
e. Negative tornado
f. Render type trend
g. Text alignment in cell
h. Column header formatting (color, bold, italics etc)
i. Subtotal styling
j. Current time bucket highlight
k. Collapse/expand button
l. Member image
m. Cell comment indicator
n. Editable cell highlight
3. The export pivot works based on the data rendered on the pivot. Any data limitations
(such as Max Cells Per Excel Sheet etc.) will apply on export pivot.
4. The file downloaded via export pivot cannot be uploaded back.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
63
Range Selection for Time Attributes Using the Calendar Date Picker

Business Need
For attributes belonging to the time dimension (particularly for attributes such as day or week or
month), the number of members associated with these attributes could be large and the
selection and deselection of these from the scope filters can be rather time consuming. To
address this pain point a calendar date picker is being provided for time member selection.

Functionality Description
1. Log in to a tenant with the relevant credentials.
2. Navigate to a View containing a report with time dimension attributes in the scope filter.

3. Go to the Design Layout.

4. Click next to the report name to modify the report.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
64
5. Click the setting for any of the time attributes from the filter section in the report
configuration.

The Calendar Selection checkbox is displayed in the Setting dialog box.

● Either calendar selection or range selection is possible for attributes of the


dimension.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
65
● When the calendar selection option is chosen ‘Single Select’, ‘Default Value
Expression’, ‘Override Favorite Selection’, and ‘Narrow Selections By’ are
not available.

6. Click save for the settings.


7. Click save the report to view the report in runtime.
8. Click the time attribute in the scope filter. A selection box appears.

Enabling calendar selection for any one time dimension attribute will result in it
being enabled for all attributes of the time dimension.

9. Click the calendar icon. The ‘From” & ‘To’ date pickers are displayed simultaneously for
selecting the relevant configured members.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
66
● Calendar dates that have the same value as modeled time member keys will
be available for selection within the calendar.
● The time component of keys is ignored for the above purpose (of identifying
available dates for calendar date selection).

10. Navigate between years by clicking on the month and year provided below ‘From’ and
‘To’ in the calendar.

11. Select From and To Dates on the date picker as required. The selections made using
the date picker will be reflected in the member selection area in real time.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
67
When calendar selection is enabled, only the leaf (or lowest) level attribute in the report will be
available for selection in the scope filter. In the example below, only week is available for
selection although Year, Quarter, Month are also configured as filters in the report.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
68
Only calendar dates that have the same value as configured member keys will be
available for selection in the calendar date picker option. Dates for which there are no
members configured will be disabled within the calendar date picker selection. Here, for
e.g. W01-2015 has a key of 2015/01/04 and hence, 4th January 2015 is available for
selection on the date picker.

The calendar date picker might be appropriate for selections at date/week levels
where the number of members are larger.

12. Click outside the calendar to see the selected members highlighted among all the
available members after the selection is made using the date picker.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
69
13. Click Apply to make the selection.

● The filter grid View will not be available with the date picker selection.
● The ‘To’ calendar will allow for selection only for dates later to the the
selection made in ‘From’ calendar. Hence, for dates preceding existing
selection, From date has to be chosen first.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
70
Member Search Enhancement in Scope Filter

Business Need
Earlier, when a user typed in the search box of the scope filter to search a member (or a range
of members), the previously selected members (if any) were not visible to the user. Since the
users were not informed about the member selection status, it was difficult to use.
The current feature helps distinguish the current selections from the previous member
selections.

Functionality Description
1. Login to any tenant with the relevant credentials.
2. Go to a pivot grid. In this example, Inventory Inputs have been selected.

3. Open the scope filter.


4. Click the Item attribute. The members are displayed.

5. Clear all the members if all are selected.


6. Select a few members.

The following are the current behavior of the platform:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
71
● The counter above the search bar reflects the number of members
selected from the total members available.
● The selected members are also displayed as chips to the left of the
counter.

7. Type the full name or part of a member’s name in the search bar. In this example, a part
of the name P_18 has been typed. The relevant members are displayed.

8. Select a few members from the search result. The counter is displayed below the search
bar, reflecting the number of members selected from the search result.

If you do not select a member, a message is displayed: No members are selected in


the search results.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
72
9. Click Add to current selection. The members selected from the search result are
added to the original member selection and the counter shifts back to its original
position, reflecting the members selected out of the total available members.
The feature is also available for the grid View of the scope filter. When on the tile View,
click the grid icon next to the Search box.

The grid type View of the members are displayed.

10. Search the required members to be filtered and displayed on the grid.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
73
11. Select the required members from the filtered members. The counter is displayed,
reflecting only the members selected from the search result.

If you do not select any member, the same message as seen on the tile View is
displayed: No members are selected in the search results.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
74
Reorder View Filter & Display Exact Order

Business Need
The grid type View filter displays the data structure along with the hierarchy information in case
it is the lowest level attribute. The lowest level attribute is displayed on the left by default and the
hierarchical data is displayed on the right. The users are familiar with seeing data from left to
right along with the hierarchy. Also, the order of columns can be changed using the drag-and-
drop operation, but cannot be saved so that it doesn't remain the same as the user changed.
Currently, there’s a customer request to display data in a hierarchical order from left to right
(higher to lowest). Hence, this enhancement allows the user to reorder the entire View filter in
the Designer and to display the exact order in the View.

Functionality description
Currently, the Designer also supports the attribute property to be added to the list of columns
that are ordered using the Narrow Selections By checkbox, which eventually shows up in the
grid type view filters.
1. Login to any tenant with the relevant credentials.
2. Go to a pivot grid.

3. Go to the Design layout.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
75
4. Click the Edit option. In this example, Edit - RatnaOct2022 has been clicked. The report
configuration is displayed.

5. Select the required filter.


6. Select the Narrow Selections By checkbox.
7. Reorder the column as required.

Currently, the attribute property is available for sorting. Hence, you can use it too
for sorting.

8. Save the configuration.


9. Save the report.
10. Exit the Design layout.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
76
11. Open the grid View of the required attribute property. The latest sorted order is
displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
77
Custom Sort Enhanced

Business Need
The current enhancement allows you to sort a maximum of 10 columns in the Custom Sort
dialog box of the pivot grid after you selected the Tabular option in the Row Sort: list, whereas
earlier you could sort a maximum of only 3 columns.

Functionality Description
1. Login to a tenant with the relevant credentials.
2. Go to a pivot grid.
3. Go to the Layout dialog box.
4. Go to the Options tabbed area.
5. Click Tabular in the Row Sort: list.

6. Click Save.

7. Click the Column Filter icon at the upper-right of the relevant column. You will be
able to view the Custom Sort button .

8. Click the Custom Sort button . The Custom Sort dialog box is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
78
Initially, you can view options for three columns that need to be sorted.

9. Click Add Row. Another row is added at the end, where you can add one more column
name for sorting.

10. Click Add Row again to add more rows.

You can add a maximum of 10 rows for sorting.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
79
In case you need to remove a specific row, click the delete icon at the end of each row. For
example, if you delete the Item row, it will look like below.

You can keep deleting rows till the number of rows reduces to 3 as shown below.

You can apply the sort on columns and the pivot data will be displayed accordingly.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
80
This enhancement works well with column reordering and favorites as well.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
81
Clear Filter Functionality

Business Need
Currently in a pivot grid where the Subtotal option is enabled, when an attribute is selected via
the Column Filter Search box, you cannot see the unselected members after clicking the Clear

Filter icon . You have to use the Clear Filter button at the bottom which you might not
know. This enhancement informs you about the Clear Filter functionality.

Functionality Description
1. Login to any tenant with the relevant credentials.
2. Navigate to a pivot grid. In this example, InventoryInputs - Copy is the pivot grid.

3. Go to the Layout dialog box.


4. Go to the Options tabbed area.

5. Click Subtotals. The Subtotals option is enabled.


6. Click Save.

7. Click the Column Filter icon at the upper-right of the column of the relevant
attribute. In this example, Item has been selected.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
82
8. Type a member in the Column Filter Search box.
9. Select that same member. In this example, the members P_4000_1 and P_4000_2 are
selected.

10. Click OK. The filtered data is displayed in the grid.

11. Click the Column Filter icon of the same attribute Item again.

12. Click the Clear Filter icon on the right corner of the Column Filter Search box. The
text in the Search box disappears and a notification is displayed - Subtotal is enabled.
Unselected members are not displayed.

13. Hover over the notification. Additional information is displayed - Showing 3 of 3


selected members. Click ‘clear filter’ to see all the members.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
83
The feature is available only when subtotals are enabled in the pivot layout.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
84
KPI Widget: Navigation Links
Business Need
Navigation links are used in the Platform to provide quick navigation to Views to provide more
detailed information. KPI widgets are configured with measures and can provide only a high
level understanding of the measures configured. Users need the ability to drill down further into
these measures to have a more detailed or granular level of information from the measures.
This enhancement is being done to provide the ability for users to configure navigation to other
Views in the Platform from the KPI widget.

Functionality Description
1. Log in to a tenant with the relevant credentials.
2. Navigate to one View with a KPI widget configured.

3. Go to the Design Layout.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
85
The design layout is displayed for the View with the configured reports.

4. Click next to the report name.

The options are displayed.

5. Click Set navigation links. The Set Navigation links dialog box is displayed with the
Data navigation links list.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
86
Only Data Navigation Links are supported for KPI widget.

6. Click the Data navigation links list. The measures configured in the KPI widget are
displayed.

The measures can be configured with single or multiple View navigations under the
Views options.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
87
7. Once the views for navigation are configured

8. Click the Save icon on the set navigation pane.


9. Exit the Design layout.
If you hover over the measures for which you have configured the navigation, the
measures are displayed in blue with an underline.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
88
For the measures with multiple navigations configured, if you click the measures, all the
Views that are configured are displayed as a list.

For measure with a single navigation configured, if you click the measure, the configured
view is displayed.

● Navigation links from the KPI widget can be configured for primary
measures, secondary measures and transient measures
● This feature is available only where KPI is configured as a standalone
report/widget (not supported for Geomap, Member Info popup, Page
Navigation KPI, etc)

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
89
Shipment Tracker Widget
Business Need
This is a new widget that allows visual tracking of an object (shipment or container). This widget
emphasizes the current state and displays the milestones associated with a given
shipment/container/event, along with the status at each node.

Functionality Description
1. Login to a tenant with relevant credentials.
2. Go to the Designer workspace.

3. Click Shipment Tracker. A new shipment tracker report is displayed in the Designer
mode.

The widget is auto populated with measure groups under which relevant measures need
to be added.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
90
4. Add the relevant filter attributes in the Filter ( ) area.

The Version Name is single-select by default and this cannot be modified.

5. Add a relevant attribute (shipment or any attribute for which the logical status needs to
be displayed in the widget) in the shipment attribute area.

Only 1 attribute is allowed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
91
6. Add a relevant attribute in the location attribute area.

Only 1 attribute is allowed.

In the Measures pane, Estimated Time of Arrival is indicated as a mandatory MG.


7. Drag and Drop the relevant measure (from the MG tab) under the Estimated Time of
Arrival measure group. The measure added under this measure group will be the
primary measure on which the widget is rendered and hence it is mandatory.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
92
Actual time of arrival measure can be added under the Actual Time of Arrival MG. Actual
time of arrival Measure value will be displayed on the widget for locations where the
shipment has arrived.

Both Estimated time of Arrival and Actual Time of Arrival measures must be grained at
the level of the attributes added in the shipment and location section. Only a single
measure can be added to these measure groups and should be of data type DateTime.

We can add other relevant measures under each of the other measure groups.
(Estimated Time of Departure, Actual TIme of Departure, Planned Time of Arrival and
Planned Time of Departure). These are optional and are displayed only in the tooltip.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
93
Other relevant measures of different data types can be added separately outside of
these measure groups by dropping them in the Measures pane. These will be displayed
only on the tooltip as well
8. Click the preview icon.

The widget will display the message filter attribute which is the same as the
shipment attribute should be of type single select. This is because the widget can be
rendered for only one shipment attribute member at a time.

9. Click the filter setting of the EquipmentID attribute (which is the same attribute that is
added in the shipment attribute section in our example) in the filter section.
10. Select the single select option.

11. Click the Save icon .

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
94
12. Select one of the members from the shipment attribute (EquipmentID) filter.
13. Click Apply.

14. Click the Preview icon The widget is displayed with all the location attribute
members for the selected shipment attribute member. The locations for which the Actual
Time of Arrival is available, Actual Time of Arrival is displayed below the location name.
For other locations, Estimated Time of Arrival is displayed. The locations where the
shipment has arrived will be represented by the theme colored circles on the widget.
Locations which have no Estimated time of arrival or Actual time of arrival will not be
displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
95
15. Hover over the relevant circle to view the tooltip which will display information on all the
measure values that are configured.

Different Views and Orientation


There are 2 icons on the right side of the pane. These are available both in designer and
run time.

● The first one from the left, is used to switch between summary and
expanded view.

● The second icon is used for switching the orientation.(horizontal/vertical).


The default view is an expanded view which shows all the locations.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
96
By default, the widget loads in an expanded view.

1. Click to switch to summary view. In this view, the user will be able to see the first,
current and last location of the shipment.

All other locations are represented as dots, which when hovered over, will display the
location name and other information on the measures configured.

The widget is displayed horizontally by default.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
97
2. Click the highlighted icon below to switch the orientation. The widget will be displayed in
a vertical view. This icon can be used to toggle between horizontal and vertical view of
the widget.

Widget Properties
1. Click the widget properties.

In the widget properties, the configurator can select the option that has to be displayed
by default in the run time under the orientation option.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
98
The Show in Local Time Zone checkbox can be enabled to display all the measure
values under each of the auto generated measure groups in the local time zone. By
default, the datetime measure values will be displayed in GMT.

Measure Settings
The widget specific format of a measure value can be set in the measure setting of
individual measures as well. There is also an option to show/hide the measure value in
the tooltip.

Data Properties
Click the Data properties icon The measure values can be filtered by applying relevant
measure filter expressions available in the Data properties

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
99
Link Filter Functionality
Users can link Shipment Tracker Widget (child) to other widgets (parent) through link filter
functionality. This ensures that the members selected from the anchor/parent widget controls
the scope of data for the linked Shipment tracker Widget . But for this, the Shipment Tracker
Widget needs to be the non-anchored widget.

1. Login to the o9 Web UI with the relevant credentials.


2. Go to a View that has a Pivot and a Shipment Tracker Widget with the common filters.

3. Go to the Design layout.


4. Click Show View Report Action for the Shipment Tracker widget.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
100
5. Click Link filters. The Filters Scope Setting dialog box is displayed.

6. Select the relevant anchored report name (STPivot) in the EquipmentID(shared filter)
list.

7. Click . The changes are saved.

8. Click to exit the Design layout. A link icon is displayed in the Actions column of
the pivot report.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
101
9. Click the relevant row in the pivot report. The data in the linked shipment tracker widget
changes in sync.

● Other widgets cannot be linked to Shipment tracker Widget.Hence We


cannot use shipment tracker as a primary anchor widget in views where
there is more than 1 widget.
● Shipment Tracker can be used as a child widget linked to another widget
or in a dashboard view or as an anchored widget in a view with only one
Shipment tracker widget.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
102
Heat Map Widget
Business Need
This enhancement will enable users to create heat maps and visualize the magnitude of a
measure across two dimensions.

Functionality Description
1. Go to the Designer workspace.

2. Click Heat Map.


3. Use the drag-and-drop operation to move the respective attributes to the X and Y axis as
required.

4. Add filters for the heat map as required.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
103
5. Add measure as needed.

6. Enter the report name.


7. Save the report.

Configuration Features
1. Sorting of level attributes:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
104
To sort the level attributes on the X and Y axis use the ‘Sort By’ and ‘Sort Order’
settings under the respective attribute settings. By default, the level attributes are
sorted on key.

2. Limiting number of members on heatmap:

To set the limit of number of members on the X and Y axis use the ‘Limit’ setting
in the respective row/column properties. There can be a maximum of 20 members
on each axis.

3. Formatting the heatmap tile:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
105
Using the measure settings, configurators can:
A. Set the primary color for the heatmap using the color picker from the ‘Color’ setting. By
default this is selected from the theme color.
B. Set the format of the measure using the ‘Format String’ setting. For example:0.00
C. Enable/disable the hover functionality on the heatmap tile so that the dimension and
measure details are shown using the ‘Show Point Label’ setting. choose to
enable/disable the ability to view details on hover of a heatmap tile using the ‘Show Point
Label’ setting:
i. If ‘Show Point Label’ setting is enabled:

ii. If ‘Show Point Label’ setting is not enabled:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
106
4. Measure and Value filter:
Measure and Value filters can be added using the ‘Data Properties’ option.

Enter the required input and save.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
107
Features
Heat Map to Grid Binding:
● The heatmap widget can be binded to a pivot using the ‘Link Filters’ functionality:

● On selection of multiple heatmap tiles (using Ctrl + click on the tile), the selected values
in the binding context are passed to the pivot.

● Users can configure only one measure at a time for the heatmap.
● Users can configure only one attribute dimension per axis at a time for the
heatmap.
● Users can only add a numeric measure for the heatmap.
● Heatmap will support a maximum of 20 members in each axis.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
108
Deployment Workspace

Create Backup Dialog Box UX Revamped


Business Need
Previously, the content of the Create Backup dialog box was not well organized and the related
options were not grouped properly. There was a need to provide a better user experience for
creating a backup by organizing the content logically.

Functionality Description
1. Login to a tenant with the relevant credentials.
2. Go to the Deployment workspace.
3. Got to the Manage Backups View.
4. Click +Backup. The Create Backup dialog box with the latest UX is displayed.

You can see the following UX changes:


● The contents are more organized and displayed into two columns.
● The Obfuscate checkbox is displayed separately.
● The related options are organized logically. For example: the Background Save
checkbox is displayed under the LiveServer checkbox.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
109
Block Delete/Restore Action When Backup is in Progress

Business Need
Previously, while a backup was in progress, the Platform did not block the delete action or the
restore action. There was a need to avoid such conflicting actions while a backup is in progress.

Functionality Description
1. Login to the tenant with the relevant credentials.
2. Create a backup.
3. Click Delete to trigger deletion of the backup while the backup is in progress. The
following message is displayed: Backup is in progress and cannot be deleted at this
time.

4. Create a backup.
5. Click Restore to restore the in-progress backup. The following message is displayed:
Your request could not be executed because a Backup is in progress. Please try again
after some time.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
110
Use the Delete Data and Uninstall Option & Delete Data Folder

Business Need
Previously, if you uninstalled the tenant, it did not delete the data folder associated with it.
There was a need to delete the unused tenants and save some space on the environment.

Functionality Description
In the current enhancement, the Uninstall option is renamed as Delete Data and Uninstall.
This option will help you to delete the data folder as well.
1. Login to a tenant with the relevant credentials.
2. Go to the Deployment workspace. The Live Servers View is displayed.

3. Click Delete Data and Uninstall.


4. Click Update. The data folders are deleted.

● The data folder holds all the dimension and fact data of the tenant.
● The Delete Data and Uninstall option is available only when the tenant is in
the Stopped state.
● This action is non-reversible and should be used with due-caution.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
111
Factored Restore
Business Need
The current enhancement allows you to restore only selective components unlike before where
if you wanted to restore only tenant config and LiveServer, there was no option to do that.

Functionality Description
1. Login to the tenant with the relevant credentials.
2. Go to the Deployment workspace.
3. Go to the Manage Backups View.
4. Click Restore Backup for the relevant option. The Restore Tenant dialog box is
displayed.

5. Select the relevant components to restore.


6. Click Restore. The Restore Tenant dialog box is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
112
7. Enter the relevant details.
8. Click Restore.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
113
Last Action Status Tab Appears in Manage Collab & Manage Backups
View
Business Need
In the current enhancement, the Last Action Status tab is displayed for all these Views:
● Live Servers View
● Manage Collab View
● Manage Backups View

● Earlier, the Last Action Status tab was displayed only for the Live
Servers View of the Deployment workspace.
● If you need to perform actions, such as restore or backup etc, the last
action status is displayed in the same tabbed area. This will help you to
know if the platform actions that you performed will go through or will be
blocked.

Functionality Description
1. Login to the tenant with the relevant credentials.
2. Go to the Deployment workspace.
3. Check the Last Action Status tabbed area in the following View:
Live Servers View

Manage Collab View

Manage Backups View

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
114
o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
115
Last Action Status Tab Auto Refresh

Business Need
In the current enhancement, the Last Action Status tab is refreshed every 30 seconds and if
there are any changes in the column data, it gets updated.

Earlier, the Last Action Status tab of the Deployment workspace was refreshed
only if you manually clicked the Refresh icon.

Functionality Description
1. Login to the tenant with the relevant credentials.
2. Go to the Deployment workspace.
3. Check the Last Action Status tabbed area is refreshed every 30 seconds in the
following View:
Live Servers View

Manage Collab View

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
116
Manage Backups View

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
117
Confirmation Box Appears Before Tenant Data Deletion Activity

Business Need
Previously, there were instances where user’s were deleting tenant data accidentally. This was
due to the lack of platform intervention or asking the users to confirm if they wanted to go ahead
with the action.
In the current enhancement, a confirmation box is displayed before a tenant data deletion
activity so that the user can confirm if the deletion activity can be performed.

Functionality Description

Deployment Workspace
1. Login to a tenant with the relevant credentials.
2. Go to the Deployment workspace. The Live Servers View is displayed by default.

Option 1
3. Click Delete Redo and Restart in the Tenant Status list.
4. Click Update.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
118
The Delete Redo and Start confirmation box is displayed with this message: This
action will permanently delete all unsaved transactions and graph cube will go
back to the last saved point. Are you sure you want to continue?

5. Click Yes.The system goes ahead with the selected action.

Option 2
3. Click Delete Data and Start in the Tenant Status list.
4. Click Update.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
119
The Delete Data and Start confirmation box is displayed with this message: This action
will permanently delete data associated with the tenant and is irreversible. Are you
sure you want to continue?

5. Click Yes. The system goes ahead with the selected action.

Option 3
3. Click Uninstall in the Tenant Status list.
4. Click Update.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
120
The Uninstall confirmation box is displayed with this message: This action will remove
the installation files associated with this version of the tenant on reinstall. Are you
sure you want to continue?

5. Click Yes. The system goes ahead with the selected action.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
121
Tenants Workspace
1. Login to a tenant with the relevant credentials.
2. Go to the Tenants workspace. The Manage Tenants View is displayed by default.

3. Click next to the relevant tenant name. The relevant details are displayed.

Option 1
4. Click Delete in the USERS tabbed area. The Delete confirmation box is displayed with
this message: Are you sure you want to delete this item?

5. Click Yes. The system goes ahead with the selected action.

Option 2
4. Click Delete in the AUTHORIZATION GROUPS > UI tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
122
5. Click Yes. The system goes ahead with the selected action.

Option 3
4. Click Delete in the AUTHORIZATION GROUPS > DATA tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

5. Click Yes. The system goes ahead with the selected action.

Option 4
4. Click Delete in the AUTHORIZATION GROUPS > COLLAB tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
123
5. Click Yes. The system goes ahead with the selected action.

Users Workspace
1. Login to a tenant with the relevant credentials.
2. Go to the Users workspace.
3. Go to the USERS tabbed area.

Option 1
4. Click Delete in the USERS tabbed area. The Delete confirmation box is displayed with
this message: This action will delete the selected user. Are you sure you want to
continue?

5. Click Yes. The system goes ahead with the selected action.

Option 2

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
124
4. Click Delete in the AUTHORIZATION GROUPS > UI tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

5. Click Yes. The system goes ahead with the selected action.

Option 3
4. Click Delete in the AUTHORIZATION GROUPS > DATA tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

5. Click Yes. The system goes ahead with the selected action.

Option 4
4. Click Delete in the AUTHORIZATION GROUPS > COLLAB tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
125
5. Click Yes. The system goes ahead with the selected action.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
126
User Management Workspace
1. Login to a tenant with the relevant credentials.
2. Go to the User Management workspace.
3. Go to the USERS tabbed area.

Option 1
4. Click Delete in the USERS tabbed area. The Delete confirmation box is displayed with
this message: This action will delete the selected user. Are you sure you want to
continue?

5. Click Yes. The system goes ahead with the selected action.

Option 2
4. Click Delete in the AUTHORIZATION GROUPS > UI tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
127
5. Click Yes. The system goes ahead with the selected action.

Option 3
4. Click Delete in the AUTHORIZATION GROUPS > DATA tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

5. Click Yes. The system goes ahead with the selected action.

Option 4
4. Click Delete in the AUTHORIZATION GROUPS > COLLAB tabbed area. The Delete
confirmation box is displayed with this message: This action will delete the selected
authorization group. Are you sure you want to continue?

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
128
5. Click Yes. The system goes ahead with the selected action.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
129
Active Queries Tab Introduced

Business Need
In the current enhancement, a new tab Active Queries is introduced in the Last Action Status
grid of the Deployment workspace so that you can view all the existing active queries.

Functionality Description
1. Login to a tenant with the relevant credentials.
2. Go to the Deployment workspace.
3. Click the Active Queries tab. The existing active queries are displayed.

To refresh the status, click the Active Queries tab.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
130
User Management Workspace

Download Column Filtered Data


Business Need
Previously, when a user clicked the Download Users option in the USERS View of the User
Management workspace, a CSV file of users was downloaded. In the CSV file, all the users in
the tenant were downloaded but it did not have the feature to download the column filtered data.
There was a need to download the column filtered data to add one or more additional roles to
those users who already have a certain specific role in the User Management workspace in the
tenant.

Functionality Description
1. Login to a tenant with the relevant credentials.
2. Go to the User Management workspace. The USERS View is displayed.

3. Apply column filter on users table as required.

4. Click the Download Users list. The options are displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
131
5. Click Download Filtered Data. The CSV file is downloaded with only the filtered data.

● New roles can be added to this csv file and do an incremental append of
users back to the tenant.
● The Download Filtered Data option is available in the Tenants workspace,
USERS workspace as well.
● The Download Users option downloads all the users as before.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
132
Add & Remove User Roles in UI

Business Need
The current enhancement allows you to add and remove multiple user roles assigned to any
authorization groups of multiple users from the UI.

Functionality Description
1. Login to a tenant with the relevant credentials.
2. Go to the User Management workspace. The USERS View is displayed.

3. Click the column filter to filter the relevant users table as required.

4. Click the Edit the roles list. The options are displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
133
5. Click Add a role(s). The Add a role(s) dialog box is displayed.

6. Add a role in the text box that needs to be added.


7. Click Add. A new role is added to the filtered rows.

8. Click Remove a role(s). The Remove a role(s) dialog box is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
134
9. Add a role in the text box that needs to be removed.

10. Click Remove. The selected role(s) are removed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
135
● You cannot remove user roles, such as Admin, Dataadmin, System
Architect, using the Remove a role(s) option.
● User(s) cannot remove the user roles that are assigned to themselves.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
136
Tenant Workspace: Color Changed to Black (#111111)
Business Need
Earlier, the black theme color under the Theme Picker had a shade of #212121. This did not
meet UI standards for clients and therefore didn’t ensure a consistent platform experience. To
solve for this, we have updated the shade of black in the Theme Picker to #111111.

Functionality Description
1. Login to a tenant with the relevant credentials.
2. Go to the Tenants workspace.
3. Go to the Manage Tenants View.
4. Click Edit.
5. Click the Theme list. The Theme Picker dialog box is displayed.

6. Click Black in the Color list.


7. Click Save. The theme with black color #111111 is applied.

This enhancement is applicable to the existing and the new tenants.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
137
Mass Config

Copy Reports
Business Need
There are use cases where model configurations of reports need to be changed slightly and a
user needs to copy the reports en masse. Hence, a new button Copy Reports is introduced in
the current enhancement so that users can copy the report all together.

Functionality Description
1. Select the relevant reports to copy en masse.

2. Click Copy Reports to copy all the selected reports. The Copy Reports dialog box is
displayed.

3. Enter the relevant details.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
138
To prefix or suffix a user defined name, click the relevant option for the Copy
report format field.

4. Click Copy. All the relevant reports are copied en masse.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
139
Delete Reports

Business Need
There are use cases where users want to delete existing reports and need to delete the reports
en masse. Hence, a new button Delete Reports is introduced in the current enhancement so
that users can delete the report all together.

Functionality Description
1. Select the relevant reports to delete en masse.

2. Click Delete Reports to delete all the selected reports. The Delete Reports dialog box
is displayed.

3. Click Delete. A message is displayed: Are you sure you want to delete 14 reports?
4. Click OK. All the relevant reports are deleted en masse.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
140
Favorites Including Factory Setting Must Include Newly Added
Members
Business Need
Previously, o9 Platform was not supporting auto selection of newly added members in filters
with alternate hierarchies or interdependent filters in case of favorites. This new enhancement
allows users to not have to update the favorites by selecting the newly added members in a
hierarchy filter. In any view, where there is hierarchy in scope filters, the favorites (including
factory/designer settings) will auto select the newly added members, provided all the members
in the level (where a new member is added) were selected and saved as favorites.

Functionality Description
1. Login to any tenant with relevant credentials.
2. Go to any workspace/View which has a report with alternate hierarchy in the scope filter.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
141
3. Go to a hierarchy tab in the dimension with alternate hierarchy. In this case, Market
Product hierarchy under MarketProductCategory. The hierarchy in the Market Product
tab is Market Product Category Group -> Market Product Category -> Market Product.
Market Product is the leaf level attribute in this hierarchy.

4. Select attribute members as required. Here, we will be selecting Cameras in the Market
Product Category Group.

5. Select MPL_20 in the Market Product Category tabbed area.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
142
6. Select the Select All checkbox under Market Product.

7. Click Apply.

8. Click to save a favorite.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
143
9. Type the name for the favorite in the Name field. In this example, AllMPL20 has been
typed.
10. Click Save.
11. Add a new Market Product under MPL20 Market Product Category Group either by
uploading the dimension file or by using the action button. Here, we are using an action
button (CreateNewMarketProduct) to add a new market product member.
12. Click the action button.

13. Enter the relevant details for each of the attribute fields.
14. Enter a new market product (for eg, MP20Pdct_Demo1). This product should be added
under “MPL20” in the Market product category which is under “Cameras” in the Market
product category group.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
144
15. Click Submit.
16. Go back to the View.
17. Perform a browser refresh (reload the page) after you receive the notification that the
action button has been executed successfully.
18. Load the favorite (AllMPL20) created in the above steps.

19. Go to the View filter by clicking on one of the filter chips.


We can see that under MarketProduct, the newly created member (MP20Pdct_Demo1)
is already selected and the underlying pivot will also show relevant data for the newly
added Market Product member. This is because we have selected all members under
MPL20 and saved it as a favorite before adding a new member belonging to the Market
product category group MPL20.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
145
● This enhancement is applicable only if there is hierarchy in the filter i.e.,
the attribute of a newly added member MUST have a higher level attribute
in the scope filter and only if all lower level members of the higher level
parent are selected and the dependent/related member(s) in the alternate
hierarchies are selected and saved as favorite, newly added members will
get autoselected in the favorite or factory setting
● Already created favorites will not automatically show the newly added
member. They have to be manually updated once. But all newly created
favorites after this release (2023Q2) will support autoselection of newly
added members provided a higher level attribute member is selected with
all lower level members( in the level where the newly added member will
be added).
● Interdependent filters are supported.
● Browser has to be refreshed once to view the autoselection of newly
added members in favorites.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
146
PDF Frequency Restriction
Business Need
The PDF queue was causing RMQ crash since the default frequency was set at minutes and
users were selecting it. This change makes hour as the default option and restricts users from
selecting minutes.

Functionality Description
Earlier, the default frequency was 1 minute if the user tried to set up a PDF alert with a
scheduled trigger type. When users selected this as the frequency for their alert, it caused RMQ
to crash. Hence, 1 hour is set as the default frequency.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
147
Block Certain User Actions from Designer for System Entities
Business Need
Few actions on system entities were found as a reason for data and start-up issues. Hence, the
current enhancement is blocking them.

Functionality Description

Actions Blocked
1. Dimension: RootCause, LPObjective, Personnel, Version, GraphCubeDim_Sequence,
Algorithm, DimPlugin, RcaTime

Fields User Modifications

Name Block

Description Allow

Dimension Type Block

2. Attribute: RootCause.[Problem Type], LPObjective.[Objective Type], Personnel.[Email],


Version.[Version Name], Version.[Version Type],
GraphCubeDim_Sequence.[GraphCubeAttr_Sequence]

Fields User Modifications

Name block

Description Allow

Orderby Allow

Leaf Check Block

Key Column Datatype Block

Key Generation Block

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
148
Disabled Fields

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
149
Rearrange Workflows
Business Need
Workflows are used in the o9 platform to group some Favorites together and to create quick
access to views that are frequently used/needed. When there are multiple workflows created by
a user, the order of workflows displayed is based on the time at which the workflows are
created. However, users want to arrange workflows as per their preference, to easily access the
ones most frequently used, or based on their day to day needs.

Functionality Description
Users can rearrange workflows within the ‘Manage Workflows’ pane.
1. Log in to a tenant with the relevant credentials.
2. Click the Manage Workflows action button from the global header.

The Workflows area is displayed.

3. Hover over the workflows.


4. Click and drag the workflow to move it to any required position.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
150
If the workflow is in the expanded mode, the workflow will collapse when user does a
drag and drop.

The order of workflows as rearranged in the Workflows area is also displayed in the My
Workspace -> All Workflows View.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
151
● Rearranging workflows can only be done through the Workflows area.
● Rearrangement of workflows will be enabled only for users with the “UI
Designer - Private”, “UI Designer - Public” and “System Architect” user
roles.
● The order of rearrangement will be user specific and rearrangement can be
done for user created & shared workflows.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
152
Memory Manager UI Changes
Business Need
The current enhancement allows you to receive the server memory constraints details in the UI
unlike before where there was no information if your actions were causing query cancellation
due to the memory pressure in a tenant and the message was displayed in the LS logs.

Functionality Description
The images below display the server memory constraints in the UI.
Pivot

Action Button

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
153
Line Chart

Network Widget

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
154
Last Login Details Available
Business Need
The current enhancement allows you to view your last login details. This also helps to comply
with the security policy requirements for the customers.

Functionality Description
1. Login to a tenant with the relevant credentials.

2. Click the My Profile icon on the upper-right corner of the Platform header. The My Profile
area is displayed.

3. View your last login details.

The multi language translation support is provided based on the user’s browser
locale.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
155
Config 2.0
UI Preferences
Business Need
This feature enables users to create partial reports of any widget type where one (or many) level
attribute(s) is/are used in the configuration.

Functionality Description
A UI preference will contain a set of level attributes. The set of attributes can have a filter
definition or a presentation definition. Here is a list of widget types for which the UI preference
can be created:
● Bubble Chart (o9.bubblechart)
● Calendar (o9.calendar)
● Chart (o9.linechart)
● Geo Map (o9.geomap)
● Horizontal Bar Chart (o9.horizontalBarChart)
● Indented Grid (o9.indentedGrid)
● Master Data
● Pie (o9.pieChart)
● Pivot (o9.pivot)
● Scenario Manager (o9.scenarioManager)
● Thumbnail (o9.thumbnail)
● Waterfall Chart (o9.waterfallChart)
● Where Used (o9.whereUsed)
In addition to the above, a new widget type called Filter (o9.filter) is introduced. When a user
selects the option to create a new UI Preference, a list of widget types is displayed. If a user
selects Filter (o9.filter), Designer is displayed with only the filter pane, hiding all other panes like
rows, columns, measures, and preview area. In this, the user can design his filters by using the
drag-and-drop operation to move various level attributes and configure various properties like
single select, narrow selections etc. When the user selects for example, o9.pivot, only Row and
Column panes are displayed and the rest of the panes are hidden.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
156
Example: Report - Demand Summary

Filters

Version Year Quarter Month Brand Category Region

On Row

Brand Sub brand Category SKU Region Location

On Column

Month Week

UI preference that can be considered:


1. Filters
a. Time Filter 1
b. Product Filter 1
2. By report type
a. Pivot
i. Pivot Time Attributes 1
ii. Pivot Product Attributes 1

User Interface

Create UI Preference on Report & Filters


1. Go to the Designer workspace.
2. Click the UI Prefs tab on the upper-right of the screen.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
157
The options are displayed.

3. Select the UI preference type as required. In this example, Pivot has been selected.

4. Use the drag-and-drop operation and move the required attributes to the desired
relevant areas.

5. Click the Save icon .

Use UI Preference in a Report (on Report & Filters)


You can use a UI Preference in the same way in which you use any attribute using the drag-
and-drop operation in a report

Update UI Preference
1. Go to the Designer workspace.

2. Click next to the relevant UI preference. The following options are displayed:
● Open
● Delete

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
158
You can also double-click the relevant UI preference.

3. Click Open. The selected UI preference configuration is displayed.

4. Add or delete the attribute from the relevant area.

5. Click the Save icon

View UI Preference Info

1. Hover over the relevant UI preference. The Info icon is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
159
2. Click the Info icon . The configuration of the selected UI preference is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
160
Named Node
Business Need
The o9 platform implementations typically use reference products as the starting point. The
reference products are designed with certain assumptions which may not align with the
customer’s expectations. For example, DP reference product has a set of measure groups at
the Month level in the Time dimensions. If a customer needs the same process to be executed
at the Week level, the configuration then needs to be changed. In this particular case, there may
be tons of measure groups, rules, reports etc. that are built at the Month level. All of this needs
to be changed to Week. This is a tedious process. The named nodes and the regrain
enhancements aim to make this process easier. They act as the placeholders for the Dimension
attributes. For example, consider a named node defined as follows:
● $DPTimeGrain = Time.[Month]
This will allow the user to define other entities using it.
● A measure group that’s at the following granularity:
Granularity: Item.Item * Location.Location * Time.[Month]
can now be defined as -
Granularity: Item.Item * Location.Location * $DPTimeGrain

Functionality Description
If an attribute can be defined into configuration at one place and can be referred to at multiple
places, it can be considered as an alias to a dimension attribute. Currently, one particular
named node can point to one dimension attribute. The named node can be referred to the
following LS entities:
● Measure Group
● Graph
● Scope Active Rule
● Plugin Active Rule
● Regular Procedure
● Parameterized Procedure
● Named Set
● Plugin
● Data Security
● MG Partition
Example:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
161
● $$DPTimeGrain = Time.[Month] //Named node is defined into configuration
● A measure group that’s at the following granularity -
Granularity: Item.Item * Location.Location * Time.[Month]
can now be defined as -
Granularity: Item.Item * Location.Location * $$\

User Interface

Create a Named Node


The Named Nodes are displayed at the top of the Dimension list.
1. Click next to the Named Nodes.

The Add Named Node dialog box is displayed.

2. Enter the relevant details, as required.

3. Click the Save icon . The Named Node is created.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
162
4. Use the drag-and-drop operation to add an attribute to the Named Node.

5. Click the Save icon

Update a Named Node

1. Click the Edit Named Node icon .

The Edit Named Node dialog box is displayed

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
163
2. Modify the relevant details. For example, you can add an attribute to it, or modify the
name and description.

3. Click the Save icon .

Use a Named Node in Measure Group & Graph Granularity


You can use a Named Node in a Measure Group and in a Graph Granularity in a similar manner
in which you use any other attribute i.e., you can use the drag-&-drop operation to the relevant
area.

Use a Named Node in Active Rules & Procedures


You can use a Named Node in the Active Rules and in the Procedures in a similar manner in
which you use any other attribute.

Use a Named Node in Action Button


1. Go to the Report workspace. The Report Designer area is displayed.

2. Click Action Buttons. The Action Buttons report is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
164
3. Click the Add new action Button icon . The Options tabbed area is displayed.

4. Enter the details, as required.


5. Click the FieldBindings tab. The FieldBindings tabbed area is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
165
6. Click namedNode in the list next to FieldBindings.
7. Click Save.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
166
Git Support for DDL
Business Need
The changes done through DDL query execution needs to be considered for Git changes and
also needs to be displayed in the changed entities.

Functionality Description
The CRUD operations done through DDL queries result in the Git file changes in the
subsequent block’s repo.

User Interface
DDL Changes Done:
ddl { "Action": "Create", "ModelType": "Dimension", "Payload": { "DimensionName":
"testDmA", "DimensionType": "Regular", "DimensionDescription": "testDm",
"ConfigJson": { "Position": 20 }, "DimensionId": "00000000-0000-0000-0000-
000000000000", "ApiName": null, "ApiEnabled": false, "ModuleId": "86860c81-9f92-4fcd-
8a56-d6c775b17893", "Repartition": false, "Unpartition": false, "CrudAction": 0 } };

The changes are displayed in the Changed Entities area.

Measure Alias
Business Need
o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
167
The measure alias is an LS concept which allows users to define the following using the
Designer UI and hence a corresponding IBPL/DDL.
When a measure is defined as an alias, the LHS is called alias/secondary measure and RHS is
henceforth referred to as the primary measure. It essentially means that the data in the LHS
measure does not exist on its own but it has to be taken from the RHS measure.

Functionality Description
While creating an alias measure, other than the name and description, everything else will be
picked up by the source measure. For instance, an alias cannot have a different data type as
compared to the source measure.
It is understood that, without any alias definition, a measure can be treated as a normal
measure. So till the time a measure is converted to alias, an entry will be present in the
measures table.
There is also this second scenario where a measure can already be an alias but still behaves as
a normal measure i.e., when the module of the primary measure is not loaded.
So a measure can be an alias or not depending on the modules that are loaded. To ensure
measures are filtered in the correct manner, there is a need for a way to tag a measure as an
alias or not. Without any alias definition where the measure is participating it would be treated
as a normal measure.

User Interface
While creating or editing a measure, check measure alias and select the primary measure

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
168
o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
169
Use o9Git Org for C2 Development
Business Need
The current enhancement allows the PMM team to use the existing o9git org by mapping the
platform orgs to the o9git org and setting up the PAT based on the required access level.

Functionality Description
● Allow tenants in GCPPMM env to access o9Git ADO org
● Safeguard CoreDev and other necessary projects from C2 code
● Show only valid C2 solutions from the selected project in the list of solutions
● Show only valid C2 blocks from the selected project in the list of config blocks

User Interface
1. Create a Platform org with the required git org name.

2. Create a PAT with that platform org and add to the cloud table (Ops activity).
3. Try accessing the project/solutions with the tenant created with a new platform org
(ensure that tenant is config 2.0 enabled).

While opening the config block, you should also be able to open the Designer.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
170
Web Layout & Dimension Merge and Edit
Business Need
The Ref teams will work in silos and after a point, the work will be merged to build an entire Ref
product. So, a situation will arise where parent entities will bear the same name. In some cases,
the child entities will be merged whereas in others, the parent entities will be renamed. This
functionality is basically developed to deal with such situations.

Functionality Description
These are the use cases for the entity merge:
● The SP Ref product team owns the block called Network which is used by other
products that are dependent on the network data.
● The MEIO Ref product consists of two blocks: MEIO Foundation and OIO.
● The Foundation block is what most implementations will typically use. The Foundation
block depends on the Network block.
● Some implementations may also adopt OIO which is a more advanced capability. OIO
depends on the Foundation block.
● Each of the blocks contain pages that belong to the same workspace named MEIO.
● There are two solutions: MEIO and SP with the blocks contained in them (see the image
below).

Each team works on their respective solutions for development.

As seen here, both the following cases exist:


● Two blocks developed independently in separate solutions can contribute pages to a
workspace: Network and Foundation/OIO

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
171
● Two blocks developed simultaneously in the same solution can contribute pages to a
workspace: Foundation and OIO

This same case may occur for Views under a page that will need to be merged.

This functionality basically ensures that the web layout entities are merged based on the last
write and wins if they have the same name. Otherwise, it just adds up the child entities.
Since this case can cause some data loss, the renaming of these entities was a much needed
feature. Hence, this too has been taken care of, so that before adding two such blocks where
entity names might match, users can rename the required entities.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
172
Block Dependency - Explicit
Business Need
The current enhancement will help in case there is a dependency between the two entities from
the different blocks in future. It will create the block dependency and save in the solution context
explicitly.

Functionality Description
For the current release, we are only providing functionality to save block dependencies explicitly
for future uses.

The blocks that are loaded earlier to the active block can only be added.

Next time when the user loads this block, the user will see the blocks defined under the
dependency to be loaded as well.

User Interface
1. Go to the Designer workspace.

2. Open the relevant config block.


3. Click Manage Block Dependency.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
173
4. Add the relevant blocks.
5. Click Save. The changes are displayed in the changed entities list.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
174
Recreate Release Branch from Main
Business Need
The current enhancement provides the option for users to reset the release branch using the
main and archive current release branch.

Functionality Description
Before the solution load, the branch selection option should allow the user to reset the release
branch if required. The flow should be as follows:
1. Click Load another Branch or Tag option for the Branch field.

2. Click the Release Branch option for the Source field. The Reset using Main checkbox
is displayed.
3. Select the Reset using Main checkbox, the Archive current Release branch checkbox
is displayed.
4. Select the Archive current Release branch checkbox, the Branch Name field is
displayed.
5. Type a name for the archive branch in the Branch Name field.
6. Click to clear the Recreate from main option in the Other Actions list of the config
block tile at the loaded state.

This is applicable to both solution and config blocks.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
175
Data Management for Config2
Business Need
When a set of modules are loaded to a tenant, the user would need to load data to the tenant
LS before performing any meaningful config activity. This enhancement aims to support that use
case.

Functionality Description
This is basically data zip upload but for blocks. So that the data is stored in the Git repo of the
block.
1. Load a solution.

2. Click Manage Modules Data. The Manage Modules Data area is displayed.

3. Select the block for which you want to upload the zip.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
176
4. Click Load Data.
Users can also click Manage data files for branch in the list and download/upload data.

Since these are uploaded to the respective branches, users need to promote the
changes to get in the required branches.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
177
WebAPI
Uptime Report

Business Need
Currently, we are using a third party tool, which reports if the GraphCube service is down. This
is irrespective of whether it is scheduled or not, which can lead to a report of false positives due
to network issues, or in case the tenant is in the maintenance mode. Hence, there must be a
way to report the actual downtime for the GraphCube service i.e., the overall downtime -
planned maintenance mode time for a particular time period.

Functionality Description

Inputs Output

Overall Downtime Data ● Uptime Report is available as a


ELK watchers capture this, running in a fixed separate View in the Debugging
interval. These watchers basically record the workspace.
status of the GraphCube service along with the ● When an uptime report is requested,
other windows services. we read both the indexes and
formulate the actual downtime.
Maintenance Mode Data
● ((Interval - (UnPlanned downtime-
When a tenant is stopped/started through Kibo,
planned downtime))/Interval)*100
this data is captured in another ELK Index.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
178
User Interface

Prerequisites to View the Uptime Report

You need to take help from the DevOps team to configure the steps mentioned
below.

● The deployment is exactly the same as the other microservice for the newly created
uptime rest service.
● Ensure that the ELK Indexes are rightly configured for both the Ops ELK and the
Platform Monitoring ELK.
● All users can view the same uptime report.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
179
Download Audit Trail Data in Local Time Zone
Business Need
Audit trail is the platform functionality to track measure changes and other transactions over a
period of time. The user can download the transactions to further aid the audit processes.
This new enhancement will allow the user to choose if the downloaded data needs to be in the
UTC time zone or the local time zone. This will enable the projects to create accurate and
relatable audit reports.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Debugging workspace.
3. Go to the Audit Trail View.
4. Search for the relevant timestamp and update type.
5. Click next to Download in UTC. The options are displayed.

6. Click the relevant option to download the data in the required format.

Example of the data downloaded in the UTC

Example of the data downloaded in the local time zone (IST)

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
180
Create New Tenant with Default Template as o9EmptyTemplate
Business Need
The Platform users faced frequent errors while trying to start a new tenant. This led to a bad
customer experience with a lot of tickets for the DevOps team.
With this enhancement, the default template is assigned as o9EmptyTemplate for all the newly
created tenants. This configures the newly created tenant with the minimum required
configurations to start and run immediately without any additional configurations. Hence, the
failures are reduced.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Tenants workspace. The Manage Tenants View is displayed.

3. Click +Add new record.


4. Enter the relevant details which do not require a tenant template name.

5. Click Update. A new tenant is created with the default configuration of


o9EmptyTemplate.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
181
o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
182
View Starting/Stopped Status of GraphCube Server with the Message
Log
Business Need
The Platform users encountered situations where they weren’t communicated about the
Starting/Stopped status of the GraphCube server along with the Message Log. This used to
create confusion and ambiguity.
With this new enhancement, the Action Status and the Message Log column is implemented
so that there is a clear communication about the Starting/Stopped status of the GraphCube
server. This will help users to understand the current status of the GraphCube clearly and in
case of any failure, the Message Log will display the error.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment workspace. The Live Servers View is displayed.

3. Click Edit. The Tenant Status list is enabled.


4. Click Start in the Tenant Status list. The status of the GraphCube server is displayed in
the Message Log column of the Last Action Status tabbed area.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
183
In case of failure, the Action Status and the Message Log column would reflect it.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
184
Platform Actions Blocked When Starting/Stopped Action of
GraphCube Server is in Progress
Business Need
The Platform users frequently received failures when trying to perform a platform action while
the Starting/Stopped action of the GraphCube server was already in progress.
This new enhancement has made all the platform activity exclusive and have reduced the
process failures. Users are not allowed to perform any platform action while the
Starting/Stopped action of the GraphCube Server is already in progress. An error message is
displayed which would help users understand why they are not allowed to perform the platform
action.

Functionality Description
To take a backup when the Start action of the GraphCube server is in progress:
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment workspace. The Live Servers View is displayed.

3. Click Edit. The Tenant Status list is enabled.


4. Click Start in the Tenant Status list to start the GraphCube server.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
185
5. Go to the Manage Backups View.
6. Start a backup.The Create Backup dialog box is displayed with an error message: Your
request cannot be executed because a GraphCube Server Start is in progress.
Please try again after some time.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
186
Platform Error Codes Redirects to the Platform Wiki
Business Need
The Platform users encountered situations, where errors occurred and a simple text message
was displayed with no explanation and resolution, which created ambiguity.
The new enhancement has reduced this ambiguity. It has implemented error codes with the
capability to redirect to the Platform wiki with all the details pertaining to the error encountered.
The UI will display a message and mask the widget so that the user cannot interact. The error
message has a Refresh button, which will refresh the app but not the widget. Also, the child
widgets will be in sync and the refresh will take the app to the pre-edit state.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to any report which consumes high memory. The errors from the memory manager
along with the error code are displayed.

3. Click the error code. The Platform wiki page with the respective error code details is
displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
187
For more information, click GraphCube Service Errors

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
188
Auto Retry for Infrastructural Components of Backup & Restore
Action
Business Need
The Platform users faced frequent errors during a backup or restore action. This led to a bad
customer experience with a lot of tickets for the DevOps team.
The new enhancement has reduced failures. It has implemented the auto retry capability for all
the infrastructural components involved for a restore and a backup action. The automatic retry
will help users for the below components:
● Backup/Restore Workflow Status
● Upload/Download of files to and from the cloud
● SQL DataBase queries using EF context
● MongoDB connectivity

For configuring the auto retry, the users have the two app settings as below:
● AutoRetryMaxRetryCount (default 5): the max number of retries
● AutoRetryMaxDelay (default 30 sec): the longest delay between retries
○ The delay between retries gets longer exponentially with each
failure until it reaches AutoRetryMaxDelay
○ Exponential delay example - 0sec, 1sec, 3sec, 7sec, 15 sec, 30sec

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment workspace.
3. Got to the Manage Backups View.

4. Click +Backup. The Create Backup dialog box is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
189
5. Select the relevant components for backup.
6. Click Backup. The backup activity is started.
7. Click Show Details of the Last Action grid. The BackupPrepareActivity is displayed.

In case of temporary failure, the auto retry will come in action and the overall status will
remain the same.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
190
In case of partial or complete failure, the Failed status with the error message is
displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
191
Prepare Phase, Automatic & Manual Retry Option for Backup
Business Need
The Platform users faced frequent errors while trying to take a backup. This led to a bad
customer experience with a lot of tickets for the DevOps team.
The current enhancement has reduced the failures by checking if the tenant is prepared to
successfully start and complete the backup activity. The users will be allowed to take a backup
of any component when the system is prepared and capable of taking a backup else the user
will not be allowed and will get an error message stating the gap(s) which would help users
understand why they are not allowed to perform the action.

Functionality Description
1. Prepare Phase is done for the below components:
● DataBase connectivity
● If backup files exist in the cloud
● GraphCube server connectivity
● Hbase connectivity
2. Automatic Retry help users for the below components:
● Backup Workflow Status
● Upload of backup files to the cloud
● SQL DataBase queries using EF context
● MongoDB connectivity

For configuring Auto Retry users will have 2 App Settings as below:
● AutoRetryMaxRetryCount (default 5): the max number of retries, and
● AutoRetryMaxDelay (default 30 sec): the longest delay between retries.
○ The delay between retries gets longer exponentially with each
failure until it reaches AutoRetryMaxDelay
○ Exponential delay example - 0sec, 1sec, 3sec, 7sec, 15 sec, 30sec

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
192
3. Manual Retry helps users to retry the backup actions which are partially completed or
failed.
● Partially Completed state is a case when any one backup step has
“COMPLETED”. Hence, the Retry button is visible.
● Failed state is a case when all the backup steps have “FAILED”. Hence, the
Retry button is visible.
● The Retry button is not visible for the case when all the backup steps have
“COMPLETED”.

1. Login to the o9 Web UI with the relevant credentials.


2. Go to the Deployment workspace.
3. Got to the Manage Backups View.

4. Click +Backup. The Create Backup dialog box is displayed.

5. Select the relevant components for backup.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
193
6. Click Backup. The backup activity is started.
7. Click Show Details of the Last Action grid. The BackupPrepareActivity is displayed.

In case of temporary failure, the auto retry will come in action and the overall status will
remain the same.

In case of failure, the Failed status with error message is displayed.

To proceed with the manual retry, click the Retry button in the Last Action Status
tabbed area, where Failed is displayed in the Action Status for the backup.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
194
Retry will again restart the same failed backup activity.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
195
Users Receive Notifications Whenever Solver is Running
Business Need
A solver is an action button of type “asynchronous” that runs from time to time on a tenant. With
this new enhancement, whenever a solver is running, the active users of the tenant will receive
a notification about when the solver (Action button) started and ended. This feature provides a
new type of notification, whenever an action button is linked with scenario(s).
The audience of this new type of notification depends on the scenario being private or public.

Functionality Description

How to configure a solver?


Configure the following settings in an action button for the enhancement to work properly:
● Action Button Type: Rule/Widget
● Async Activated
● Notify All Activated
● Linking the Action Button to a Scenario

1. Go to the Designer workspace.


2. Click Action Buttons.
3. Click the Add new Action Button icon .

4. Enter the relevant details.


5. Select the Notify All checkbox and the Is Async checkbox.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
196
6. Go to the FieldBindings tabbed area.

7. Select filter from the list next to FieldBindings.

8. Click next to FieldBindings.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
197
9. Create a filter type Fieldbinding and link it to the version.

10. Ensure that you enter the FieldBinding’s name in the VersionOrScenarioField box.

11. Click Save.

How to trigger a solver?


1. Go to the Design layout mode.

2. Click to go to the settings of the View. The options are displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
198
3. Click Set action buttons. The Action button bindings dialog box is displayed.

4. Click next to Action button bindings. The Action button bindings area is
displayed.

5. Type the name of the action button in the ActionButtonName field.

6. Click to save the changes.

7. Exit the Design layout mode.

● Trigger a solver inside a View so that a scenario can be linked with the
same.
● Do not trigger it globally.

Notification Format

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
199
A new notification is being introduced where whenever a scenario linked Async type button is
triggered, it will display a notification like:
<ABName - ScenarioName - Message >

Different views for different end users

Case 1: Single scenario captured: Public


A normal notification is seen by the active users of the tenant

Case 2: Single scenario captured: Private


A modified notification (i.e. ABName - ScenarioName : Message) will be sent to all the active
users who have access to the private scenario

Case 3: Multiple scenarios captures: All Public


A normal notification is seen by the active users of the tenant

Case 4: Multiple scenarios captures: All Private


A modified notification (i.e. ABName - ScenarioName : Message) will be sent to union all the
active users who have access to the private scenario

Case 5: Multiple scenarios captures: Public + Private


A modified notification (i.e. ABName - ScenarioName : Message) will be sent to union all the
active users who have access to the private scenario

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
200
Hide ETL Records from Audit Trail
Business Need
This enhancement is introduced so that the transactions of the ETL Users can be hidden in the
Contextual View. A new flag SkipContextualAuditUsers is introduced, where the end user can
send an array of email IDs that are to be excluded from the Contextual Audit Trail.

Functionality Description
Enable the Flag
1. Go to O9Solutions tenant.
2. Go to the Deployment workspace.

3. Go to the Default System Settings View.

4. Click Edit next to SkipContextualAuditUsers. The Overridable checkbox is enabled.

5. Select the Overridable checkbox to set the flag as True.


6. Click Update. The changes are saved.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
201
Add Users to the Flag
1. Login to the relevant tenant.
2. Go to the Deployment workspace.

3. Go to the Tenant System Settings View.

4. Click Edit next to SkipContextualAuditUsers. The Value field is enabled.

5. Enter the email address of the ETL users (without any space).

The email address of the ETL users should be separated by a comma but there
should not be any space between them.

6. Click Update.

Access the Contextual Audit Trail


1. Right-click any editable field. The cell options are displayed.

2. Click Show Audit Trail. The Audit Trail dialog box is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
202
● You need to ensure that the email IDs entered are without any commas.
● The users with the admin user rights can modify the Tenant System
Setting - SkipContextualAuditUsers.
● After the modification, the GraphCube needs to be restarted (i.e., save
and restart the tenant).

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
203
Organization Based Favorite Sharing
Business Need
In a multiple supplier environment, it is crucial to ensure that vendors or suppliers are unable to
view any personal information of other supplier organizations. Hence, in the current
enhancement, the concept of closed and open organization is introduced along with just saving
and sharing the favorite.

Functionality Description
A new column - IsOpen is added to the Manage Organization View of the Tenants workspace.
The default value for the IsOpen column is True. The organization can either be Open or
Closed.

IsOpen What it Means

If the Value is True Open Organization can view users of all organizations, for example, a
(Default) manufacturer who is getting supplies from multiple suppliers, or
o9solution which is an admin user.
In other words, autosuggest will display all the roles and users.

If the Value is Closed Organizations like suppliers can view users from only their
False organization.
Limitation:
● The closed org folks should not have admin, or system architect,
or data admin user roles.
● The role-based autosuggest is disabled for Closed Organization.

Favorite
Favorite Creation/Edit/Share/Delete/Factory Settings and Filter Template: How does it change
with closed and open organization?

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
204
Open Organization Closed Organization

There is no major change. The Closed Organization users can


The Open Organization users can share Create/edit/delete and share favorites with only
favorites with both open and closed their organization users.
organization users.

Points to Note: Points to Note:


● Do not use role-based sharing. You ● The role-based sharing is not allowed.
need to control it at the config level so ● The Closed Organization users cannot
that the same user role is not available update favorite settings.
for two closed organizations. ● All user sharing is not supported.
● Do not share the same favorite with
two closed organization users.

Configuration
● You need to complete the reseed or download all the users and upload.
● Organizations and the corresponding Open/Closed status should be added or updated.
● The existing users download the same, update the organization, and reupload.
● New users with the correct organization should be added.

Limitation
Once a user is associated with an organization and a favorite is created, the movement of the
organization is not recommended.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
205
Upload Data Security Rules Using File
Business Need
The current enhancement allows you to upload Data Security Rules (DSRs) using a file. This
will also provide you with the flexibility in modifying or replacing DSRs in Plans, Dimensions,
and Measures.

Functionality Description
The earlier methods to upload DSRs are through Javascript or C# using SSIS, with the limitation
of not being able to delete and modify the rules. Hence, the current enhancement introduces a
new way to upload DSRs using a file in the CSV format with the following functionalities:
● Upsert: A functionality to modify some of the DSRs.
● Bulk Replace: Full file replace/update functionality, which helps in replacing the large
set of DSRs.
The table structure in the file is very similar to the table created while executing the
ACCESSCONTROLRULESINFO; command.
To safeguard against the unwanted changes, the upload is enabled through the SSIS upload
task. The additional Delete column detects whether the particular row is to be updated or not.
The default value is False.

● The GraphCube restart is required to read the concerned changes from


the DB.
● The DSR Rule Name column is the unique identifier.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
206
Action Button Name Incorporated in Platform Logs
Business Need
In some cases, when an action button is triggered, a notification is sent which redirects the
users to the My Action Buttons page, but at times the action buttons do not send a notification.
Hence, the information is lost.
In the current enhancement, the action button’s name is incorporated in the Platform logs so
that the records are duly maintained and can be traced back, if required.

Functionality Description

To create an action button:


1. Go to the required tenant of the relevant environment.
2. Go to the Designer workspace.
3. Click Action Buttons.
4. Click the Add new Action Button icon .

The Options tabbed area is displayed.

5. Enter the relevant details.


6. Click Save. The given configuration is saved and the action button is created.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
207
To trigger the action button:
1. Go to the relevant View.
2. Trigger the relevant action button.

To check the Platform logs:


1. Go to the Debugging workspace. The Logs View is displayed by default.
2. Click Filters on the upper-right of the screen next to Reset.

3. Filter the relevant time range.


4. Click Apply. The logs are displayed with the name of the action button and when the
execution had started and ended.

The captured name in the logs here is “ActionButton Name” not “Action Button
Display Name”.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
208
Users Receiving Bulk Emails - MicroService
Business Need
The feature of user verification serves as a supplementary measure to ensure security and
confidentiality. Additionally, there is a feature to send bulk verification emails to all the tenants.
The current verification emails are sent from the WebAPI monolith, but with this new
enhancement the email services will be displayed in the EmailServices tabbed area of the
Debugging workspace.

Functionality Description
To trigger the bulk email verification:
1. Login to an environment with your credentials.
2. Go to the Users workspace.

3. Click next to the relevant user. The relevant details are displayed.

4. Click Send Verification Mails. The Send Verification Emails confirmation box is
displayed with this message: Are you sure you want to send verification emails to all
the 1 non-verified users?

5. Click OK.
6. Go to the Logs View of the Debugging workspace.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
209
7. Select the relevant time range.
8. Click Apply. An additional tab called EmailService is displayed.

9. Click the EmailService tab. The actions specific to email services are displayed.

The following email is received by the unverified user:

Forward Compatibility Checks for Tenant Config


Business Need

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
210
The current enhancement verifies if the tenant configuration being restored is forward
compatible (backup taken on later platform versions can be restored in the older platform
version) with the target platform or not. This not only reduces the frequent failures while
performing the tenant config restore action, but also provides a better customer experience and
reduces a lot of tickets for the DevOps team.
Users are allowed to restore tenant config only when the tenant Config is forward compatible,
else the user is prohibited and receives an error message stating the compatibility gap. This
message helps users to understand why they are not able to perform an action.

● The compatibility check will be done for the following cases:


○ Removal of few tables/parameters
○ On change of the type of parameters
○ If the value is NULL for the required field
○ If the valid values are not included in a set of known values
○ If the string data is longer than the max allowed value
● For example, here are the properties with various validations:
○ Tenant Name - required, max length of 256
○ Tenant Contact Email - required, max length of 256
○ Picklist Name - required, max length of 200
○ Picklist Value Color - max length 50

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Tenants Workspace. The Manage Tenants View is displayed by default.

3. Click Restore. The Tenant Restore dialog box is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
211
4. Click Upload backup zip file to upload the relevant file.
5. Click Submit. A message is displayed in the Notifications area stating the failure of the
tenant config restoration.

6. Click View More. The My Jobs View of the My Views workspace is displayed.

7. Check the error.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
212
8. Click the relevant status of the restore request. The compatibility issue is displayed.

You can even try restoring tenant config using the FTB pop-up, the same
compatibility check will be done.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
213
Prepare Phase for Restore Action
Business Need
The current enhancement verifies if the target tenant is prepared to successfully start and
complete the restore activity of any backup. This not only reduces the frequent failures while
performing the restore action, but also provides a better customer experience and reduces a lot
of tickets for the DevOps team.
Users are allowed to restore only when the system is prepared and capable of restoring a
backup, else the user is prohibited and receives an error message stating the gap(s). This
message helps users to understand why they are not able to perform an action.

● The prepare phase will be done for the following cases:


○ DataBase connectivity
○ If backup files exist in the cloud
○ If the GraphCube server has enough free disk space to complete
the restore
○ If tenant config backup is forward compatible.
● Auto retry will be done for the following cases:
○ Download of backup files from the cloud
○ Restore workflow status
○ SQL database queries using EF context
○ MongoDB connectivity
● There are 2 settings:
○ AutoRetryMaxRetryCount (default 5): Maximum number of retries
○ AutoRetryMaxDelay (default 30 sec): Longest delay between
retries
● The delay between retries gets longer exponentially with each failure until
it reaches AutoRetryMaxDelay. The example for the exponential delay:
0sec, 1sec, 3sec, 7sec, 15 sec, 30sec.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment workspace. The Live Servers View is displayed by default.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
214
3. Go to the Manage Backups View.

4. Click Restore Backup next to the relevant backup. The Restore Tenant dialog box is
displayed.

5. Select the relevant tenant in the Restore To Tenant list.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
215
6. Click Restore. The RestorePrepareActivity in the BACKUPS > RESTORE STATUS
tabbed area is displayed.

In case of failure, the failed status is displayed with the error message.

Retry Option Available for Partially Completed or Failed Restore


Business Need

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
216
The current enhancement allows you to retry the restore action with a partially completed or a
failed status. This not only reduces the frequent failures while performing the restore action, but
also provides a better customer experience and reduces a lot of tickets for the DevOps team.
● Partially Completed Status: is a case when any one restore step is completed. Hence,
the Retry button is visible.
● Failed Status: is a case when all the restore steps are failed. Hence, the Retry button is
visible.
● Retry Button: This is hidden when all the restore steps are completed.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment Workspace. The Live Servers View is displayed by default.
3. Click Show Details next to the restore that displays a FAILED status.

4. Click Retry. The Retry Backup Restore confirmation box is displayed with this
message: This action will restart the restore from the failed step for the tenant. Do
you want to continue with the retry?

5. Click OK. The failed restore activity is started again.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
217
o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
218
Delete/Restore Action of InProgress Backup Blocked
Business Need
In the current enhancement the delete or restore action of an InProgress backup is blocked.
This not only reduces the frequent errors that were faced while deleting or restoring any
InProgress backup, but also provides a better customer experience and reduces a lot of tickets
for the DevOps team.
A backup is only deleted or restored when the workflow reaches a meaningful state i.e.,
Completed or Failed.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment Workspace. The Live Servers View is displayed by default.
3. Go to the Manage Backups View.
4. Restore Operation in progress backup. An error message is displayed: Your request
could not be executed because a Backup is in progress. Please try again after
some time.

When the backup reaches a meaningful state (completed/failed), a confirmation box is


displayed with this message:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
219
There is no error message when the backup reaches a meaningful state
(completed/failed).

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
220
UserManagementAdmin User Roles Modifying Data Security Rules
Business Need
The platform users had to face multiple process gaps and had to follow-up with the users who
had the System Architect user roles to write the Data Security Rules.
With this enhancement, users who are assigned the UserManagementAdmin user role can write
the Data Security Rules using the Run User Security Rule action button in the B-U
Association workspace, which will call a JS that writes the Data Security Rules. In this way, the
process gaps and the follow-ups are reduced. Therefore, the customer experience is improved
and the support tickets related to the Data Security Rules issues are reduced.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the B-U Association workspace.
3. Select the user for which you need to add the Data Security Rule.

4. Click the Run User Security Rule action button. The Run User Security Rule dialog
box is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
221
5. Click Submit to write the Data Security Rule for the same user.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
222
Clear Corrupt or Stuck Backup/Restore Activities
Business Need
Earlier in case of removing any corrupt or stuck backup/restore from the system, the platform
users had to follow up with the DevOps team and had to face multiple process gaps if they
required any other platform activity.
With this enhancement, the users who are assigned the Admin user role and the Tenant Admin
user role can clear the status in the Last Action Status tabbed area of the Deployment
workspace. They can use the Clear button and remove the corrupt or stuck backup/restore
activity from the system. Hence, allowing requests for other platform activities.
In this way, the process gaps and the follow-ups are reduced. Therefore, the customer
experience is improved and the support tickets related to the corrupt or stuck backup/restore
issues are reduced.

● Admin user role: The users who are assigned this user role can access
the Clear button at any point of time.
● Tenant Admin user role: The users who are assigned this user role can
access the Clear button only post 120 mins after the corrupt or stuck
action started.
● The Last Action Status tabbed area will display STARTED or
SCHEDULED in the Status column when any Backup/Restore gets
corrupt or stuck but these status do not necessarily indicate that the
process is corrupt or stuck.

Functionality Description
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment Workspace. A Backup/Restore is displayed in the Action column
of the Last Action Status tabbed area, which will also display STARTED or
SCHEDULED in the Status column when they get corrupted or stuck.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
223
3. Click the Clear button to remove the corrupted or stuck activity from the system. A
message is displayed: Going ahead will abort this process and users can initiate a
new action. Are you sure you want to continue?

4. Click OK. A success notification is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
224
5. Click OK. The previous action - Live Server Save is displayed in the Last Action
Status tabbed area.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
225
Conflicting Platform Actions are Blocked
Business Need
Earlier, while the Reseed Tags, Save, Background Save, Import of Model Lib Pkg, Collab
Backup/Restore, Config Backup/Restore were in progress and at the same time a user tried
performing a platform action, the actions failed.
With this new enhancement, all the platform activity has become exclusive and the process
failures are reduced. Users are not allowed to perform any platform action while Reseed Tags,
Save, Background Save, Import of Model Lib Pkg, Collab Backup/Restore, Config
Backup/Restore are in progress. Users will also receive an error message which would help to
understand why they are not allowed to perform the platform action.
Therefore, the customer experience is improved and the support tickets are reduced for the
DevOps team.
The platform actions will be blocked as per the matrix below:
Import
of
Backgr Model Collab Collab Config Config
Activity in Backu Restor Delete Resee ound library Backu Restor Backu Restor
progress p e Tenant d Stop Save Save pkg p e p e Start
Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't
Reseed allow allow allow allow allow allow allow allow allow allow allow allow allow
Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't
Save allow allow allow allow allow allow allow allow allow allow allow allow allow
Background Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't
Save allow allow allow allow allow allow allow allow allow allow allow allow allow
Import of
Model library Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't
pkg allow allow allow allow allow allow allow allow allow allow allow allow allow
Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't
Collab Backup allow allow allow allow allow allow allow allow allow allow allow allow allow
Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't
Collab Restore allow allow allow allow allow allow allow allow allow allow allow allow allow
Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't
Config Backup allow allow allow allow allow allow allow allow allow allow allow allow allow
Config Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't Don't
Restore allow allow allow allow allow allow allow allow allow allow allow allow allow

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
226
Functionality Description

For Backup Action While Save is in Progress:


1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment Workspace. The Live Servers View is displayed by default.

3. Click Edit. The Status list is enabled.

4. Click Save in the Status list.


5. Click Update.
6. Go to the Manage Backups View.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
227
7. Click +Backup. The Edit dialog box is displayed.

8. Click Update to start the backup. An error message is displayed: Your request could
not be executed because a Live Server Save is in progress. Please try again after
some time

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
228
For Restore Action While Save is in Progress:
1. Login to the o9 Web UI with the relevant credentials.
2. Go to the Deployment Workspace. The Live Servers View is displayed by default.

3. Click Edit. The Status list is enabled.

4. Click Save in the Status list.


5. Click Update.
6. Go to the Manage Backups View.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
229
7. Click Restore Backup to restore a completed backup. The Restore Tenant dialog box
is displayed.

8. Click Restore to start the restoration. An error message is displayed: Your request
could not be executed because a Live Server Save is in progress. Please try again
after some time

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
230
The same behavior is visible for other combinations as well based upon the
matrix.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
231
GraphCube
Discard Partial File Uploads

Business Need
Users need an option to let the file upload go through or fail, whenever there are bad records in
the file i.e., file upload is partial.

Functionality Description
A new checkbox Allow partial upload is introduced in the file upload functionality. This will
allow users to have the flexibility of letting the partial uploads go through or not.

Syntax:
UPLOADDATAFILE(<path>,
<isClouldFile>,<fileType>,<overrideWithNulls>,<delimiter>,<denypartialupload>);

● This is applicable only for Fact uploads and not Dimension.


● If multiple files are part of the same upload command, the parameter is
ignored.
● If Excel containing multiple tabs is uploaded, all the sheets are rejected if
the flag is set to True.
● If uploads are done in non auto commit mode, the flag value is ignored.
● The deployment supports columns with standard names.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
232
Alternate Hierarchy Performance Improvement
Business Need
When there are attributes from multiple unrelated hierarchies of the same dimension in a report,
the performance becomes slower due to the amount of table scanning involved across the
hierarchies.

Functionality Description
The enhancement is made in 2 different areas:
1. For write operations, the server scans only once, comprehends the level of spreading
required and doesn’t scan multiple times, making the performance faster by skipping
some of the unnecessary scan steps.
2. The way hierarchical lookup is done is improved where the server’s intersecting of
multiple attributes across hierarchies are scanned for leaf level intersections is now
optimized by server’s lookup across hierarchies separately thereby cutting down on the
number of joins and still keeping the table scan intact.
Improvements (in computation times depends on the number of hierarchies, number of leaf level
members in the report along with the usual factors that determine performance server specs,
concurrency, table size etc.) have been seen from 10-15% in read & write operations when
there are > 3 hierarchies of the same dimension involved in a particular report.

Installagent Logs in UI
Business Need

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
233
Installagent is a part of the LS process and is involved during FTB, FTBR, Tenant Restart, etc.
Currently, the Installagent logs are available in the UI and you can access them from the same.

Functionality Description
1. Go to the Debugging Workspace. The Logs View is displayed.
2. Filter Installagent in server.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
234
FilterbyUpdates Performance Improvement
Business Need
When a user updates cells in a pivot grid, it both does the updates and reloads the report with
the updated values. This reloading select query gets fired as part of the update query with
filterbyupdates clause. It is observed that select query with filterbyupdates takes longer than
the usual select query due to the amount of table scan involved. This is only seen in datasets
with a large number of members.

Functionality Description
During filterbyupdates, earlier the server used to create full scope for filtering of the updated
values. Right now, the server will only look at the filters applied already in the updated scope
and recreate the scope for filtering updated values. If there are no filters, only then the server
uses full scope. This improves performance wherever filterbyupdates clause is used, with more
pronounced improvement wherever large dimensions are used.

Select Query Time Select Part of the Update Previous Time Select Part of the Update Current Time Taken

13 sec 50 sec 13 sec

Limitation
This enhancement shows significant results for where large membersets are involved and the
performance might not be as pronounced for measure groups with attributes with small
membersets as part of their granularity.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
235
Data Admin vs Non Data Admin Improvement in Block Scope
Business Need
This is a performance improvement made on block statements involving a high number of
measures and a large memberset filters for users with the non-data admin rights.

Functionality Description
● For users with the data admin user rights, no permission checks are scanned as they
have access to the full data.
● For users with the non-data admin user rights, previously the server would traverse the
full memberset filter for each of the measures, which took a long time for the server to
execute the block scope statements given that the traversal of the full memberset filter
for every measure separately.
This improvement is made for the server to comprehend the memberset filters and store them
during the traversal. Thereby, improving performance and computational efficiency for non-data
admin users.
The sample numbers* for the block scope statement post optimization:

Table Size #Measures #Memberset Invocations/ Time Taken Time Taken


in Filters Executions (Before) (After)

25 Million 64 500k 11696 7.8 sec 1.5 sec

Limitations
This is valid for data admin vs non-data admin performance in block scope. The performance
improvement will be more pronounced when there will be a large member set and a large
number of measures.

* Improvement in computation times depends on the memberset, number of


measures involved in the computation along with the usual factors that determine
performance (server specs, concurrency, table size etc).

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
236
External Measure Group Disk optimisation
Business Need
The measure groups deployed to hive consume a lot of disk space in case the measure groups
are never synced to Hive. Hence, in the current enhancement an option is provided for the
projects to optimize the disk space without cleaning up regularly.

Functionality Description
If measure groups are deployed to hive, then the GraphCube tracks all the changes to the SSD
storage drive from the point of last sync done to Hive so that the sync external would be faster.
However, certain measure groups are never synced to Hive. Hence, the disk utilization keeps
on increasing.
A new setting Persist Transaction Delta is introduced in measure group settings which allows
the configurators to decide whether the tracking is required or not.
1. Go to the Designer workspace.
2. Open the external measure group setting for the measure group deployed on hive.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
237
The Persist Transaction Delta checkbox is already selected.

3. Clear the Persist Transaction Delta checkbox. This will stop tracking the edits made to
the measure group.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
238
Disabled Hierarchy
Business Need
Currently, the Ops team gets a lot of tickets where the tenant does not start due to the config
mismatch. The tenants won't start if the config and the data are not in sync. This can happen if
you create hierarchies in different tenants and load the config in a different tenant, where data is
not compatible with the incoming config.
The sample error below indicates the same:
Error creating hierarchy for member [[Item].[L1].[NO AVAILABLE]] (key: 1). No ancestor
member found for at least one level - possibly for attribute
[GBE]o9.GraphCube.util.GraphCubeException: Error creating hierarchy for member
[[Item].[L1].[NO AVAILABLE]] (key: 1).

Functionality Description
● The tenants will start even if config & data are not in sync.
● After the tenant starts, if GraphCube finds any child member whose ancestor is not
found, it collects the level information of both the child and the non-existent ancestor. At
the end, the hierarchy is marked as disabled.
● Users can correct the config or re-upload the problematic dim file with the correct data.
● After the config and data are in sync, the user can enable the hierarchy from the UI.
● Disabling a hierarchy has the same effect on the overall tenant usability as if the
hierarchy never existed. In cases where users start using the tenant without correcting
the data:
○ All the user actions not referencing problematic dimensions work as usual.
○ The flow depending on the problematic hierarchy fails.
● What needs to be done in case a hierarchy is disabled?
○ Option1: Re-upload the dimension data to bring the config and the data in sync.
○ Option 2: If you are not able to bring the config-data in sync after uploading the
dimension data, then delete the disabled hierarchy and create a new hierarchy to
bring the config-data in sync.
○ Option3: If both the options mentioned above fail, restore the last good backup.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
239
1. Go to the Designer workspace.
2. Open the Dimension for which a hierarchy is disabled. The disabled hierarchy is without
any color (Example: ProductHierarchy).
3. Click the Hand icon . An error message is displayed.

Once the config and the data are in sync, you can select the Is Enabled checkbox to
enable a disabled hierarchy.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
240
Performance Improvement

Leadoffset
Business Need
The Leadoffset() function that is used to copy values from an older time duration can take time if
the table size is large.

Functionality Description
The way joins are made in the database for leadoffset() are currently optimized to offer
improvements in copying values from either the same measure or a measure from the same
measure group, and when there is only one measure group in the rule with leadoffset() function.

More optimizations on this will be available in future releases.

● The enhancement is governed by the flag - UseLeadOffsetOptimization.


● The default value is set to TRUE which will use the optimized behavior.

Sample Performance Improvement

MG Size Computations Timing in Sec Improvement % Timing in Sec Improvement %


(Invocations /
Executions)
Leadoffset Leadoffset
(-104) (-52)

Before After Before After

36 Million 118548 / 93669 2.6 1.71 34.09% 2.4 1.78 25.97%

36 Million 119865 / 95266 2.8 2.08 25.64% 2.7 1.97 26.92%

36 Million 120590 / 95789 2.4 1.65 31.17% 2.5 2.01 19.74%

36 Million 121089 / 95399 2.6 2.10 19.23% 2.8 2.21 21.05%

Limitations
This enhancement is only valid for leadoffset function with LHS & RHS measures in the same
measure group.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
241
Soft Delete

Business Need
Previously, when members were soft deleted, they were marked as inactive, got deleted, and
the delete transactions were persisted to base delta. This meant both slow soft delete
operations and also slow save given the size of base delta.

Functionality Description
The current enhancement is made to mark soft deleted members as inactive and separate them
out from base delta. Their actual deletion of these separated out entities will happen during
save.
Save will also be faster because the base delta that gets merged to disk during save is also not
bloated due to the soft deleted members residing in it.
The enhancement is governed by the DeleteFactDataOnSoftDelete flag. The default value is
set to FALSE which will use the optimized behavior.

Sample Performance Improvement

Operation Time Taken Before Time Taken After

Soft Delete File Upload 90 mins 1.5 mins

Save 360 mins 23 mins

Limitations
● This enhancement will not immediately free up disk space but post save when the soft
deleted members are flushed out.
● This enhancement is only valid for soft deletion of members.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
242
Memory Monitoring LS Commands
Business Need
The performance monitoring is one of the important aspects of understanding tenant health
status. It also helps to take corrective action by understanding the memory consumption by the
tenant. Few commands have been created to do the monitoring in a more efficient manner.

Functionality Description
GetTenantStats

The GetTenantStats command provides the information on total memory consumption and disk
usage just before the last save. You can gather the top 10 measure group name and related
information including the disk usage by running this command. This command does not provide
the memory usage for MG.
● //Command to get tenant stats from debugger
● EXECSERVICECOMMAND [GetTenantStats];
Sample Output:

MemoryUsage

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
243
This is the command to get total RAM memory usage for the tenant from the debugger. Users
can use this command to find the top MG contributing to memory.
● EXECSERVICECOMMAND [MemoryUsage] ARGUMENTS {"Command": "ENABLE",
"Value": "True"};
Sample Result
"Result": "[Memory before garbage collection is : 15203 MB,\nMemory after garbage collection
is : 8842 MB,\n
Name:[FactOPDemandTimeGranularity] Version:[0] Table:[58]MB Delta:[0]MB,\n
Name:[FactOPDeliveryPlan] Version:[0] Table:[45]MB Delta:[0]MB,
Total Estimate :[269] MB]",

Result Interpretation
● The sample result displays the tenants currently use heap RAM memory of 8842 MB.
● FactOPDemandTimeGranularity Mg uses 58 MB in memory.
● FactOPDemandTimeGranularity, FactOPDeliveryPlan are top 2 MG taking memory.

LogMemoryUsage
This is the command to print RAM Memory usage one time and periodically. This command
helps to understand the impact of the running procedure, rule, or any other command on the
RAM memory. For disk memory, refer save stat and GetTenantStat command.
//Command to enable memory usage and print once
1. EXECSERVICECOMMAND [LogMemoryUsage] ARGUMENTS {"Command":
"ENABLE", "Value": "True"}; //Command to print memory usage at time interval
2. EXECSERVICECOMMAND [LogMemoryUsage] ARGUMENTS {"Command":
"ENABLE", "Value":"True","IntervalSecs":"60"}; //Command to disable memory usage
3. EXECSERVICECOMMAND [LogMemoryUsage] ARGUMENTS {"Command":
"ENABLE", "Value":"False"};
Sample Result in Log
Total-Memory after full collection: 15580 MB, Heap-Size: 8873 MB
Result Interpretation
● For this tenant, the current total RAM memory is 15580 MB.
● Currently, total heap memory is 8873 MB.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
244
Save Stat

There is no command for save stat. It is printed as part of all save commands in the log.
Save stat prints statistics for save. Users can find total time including its breakup taken by save
process. Identifying which sub-component of save took higher time is important to take
corrective action.
For example, if savemergedatatowip took significantly higher time than last save, then it is an
indication that the user has created a high amount of data on the tenant. Similarly, the
copydatatotarget indicates that the user has created possibly multiple new scenarios or versions
which is resulting in high data copy time.
Save stat also prints the top 10 measure groups which contribute to total save time. It includes
the count of total row that is merged and total count row on the base table. The periodic
monitoring of the top 10 measure group can help identify MG where a very high intersection is
created by user mistake.
Save stat also prints the number of scenarios created and deleted. It is important to understand
that the scenario deletion and then scenario creation with the save name is equivalent to 2 new
scenario creations to save time.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
245
Integration
Support of Avro File Format in Kafka Inbound API
Business Need
The business need here is to provide the option in the Kafka inbound staging APIs to consume
the avro file format messages.

Functionality Description
Kafka Inbound staging APIs were supporting only JSON messages, but currently, 3 new
parameters are introduced to support the AVRO messages.
1. File Format (JSON, AVRO)
2. Schema Access Strategy (Embedded Avro Schema, Confluent Encoded)
3. Confluent Schema Registry (Separate template to provide an option to provide schema
registry URLs)

Configuring the Resource


1. Go to the Designer workspace.
2. Go to the API tabbed area.
3. Select the Kafka API to create a resource.
4. Provide Kafka broker, Topic Name, Authentication Details.
5. Select Avro in the File Format list if the incoming messages are in the Avro format.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
246
6. Select embedded-avro-schema in the Schema Access Strategy list if the incoming
Avro messages have the schema embedded in the message itself.

Confluent Schema Registry


In some cases, the schema for the incoming Avro message is confluent schema encoded. In
that case, specify the schema registry URLs to access the schema registry and consume the
Avro messages.

1. Create a Confluent Schema Registry resource (Client shares the schema registry URLs
and the authentication details).
2. Enter the confluent schema registry resource name in the Kafka Inbound APIs.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
247
Integration 3.0
Business Need
Integration 3.0 is the o9 in-house ETL solution to provide seamless data integration between
external systems and the o9 ecosystem. With Integration 3.0 data engineers can execute data
pipelines in a low code environment with massive parallel processing in a handful of design
patterns by using the dynamic nature of its pipeline generation.
Integration 3.0 can collect diverse data faster, build business logic in a visual environment, and
eliminate most of the hand-coding to ingress and egress data.

Functionality Description
● Unified UI to create, publish, and execute data pipelines
● In-built integration of orchestrator tool airflow in the backend
● Use massive parallel processing by executing pipelines via Spark
● Use cloud data lake and support all top cloud data lakes (s3 , GCS and ADLS)
● Parameterization of data pipelines to reduce development time
● API reference for all operations of 3.0
● Seamless integration to GraphCube from different data sources for both ingress and
egress use cases
● Inter tenant pipelines dependencies across multiple tenants
● Multi tenant canvas to obtain a lineage of artifacts across multiple tenants
● Packaging of inter tenant pipelines to export/import across tenants

Features

Data Flow View through Data Lake

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
248
Here is a generic data lake implementation usually follows in S3 but based on the project need
and the different cloud vendors, this might change.
1. Create S3 Bucket: The first step is to create an S3 bucket to store the data. You can do
this using the AWS Management Console or by using the AWS Command Line Interface
(CLI).
2. Define Raw Layer: The raw layer is where you will store all of your data in its original
format. You can create a folder in your S3 bucket called "raw" and then start uploading
your data to this folder. It is important to keep the data in its raw format so that you can
easily process and transform it later on.
3. Define Stage Layer: The stage layer is where you will store data that has been
processed, but not yet cleaned or transformed. You can create a folder in your S3
bucket called "stage" and then move the data that has been processed to this folder. It is
important to keep the stage layer separate from the raw layer so that you can easily
track changes and avoid confusion.
4. Define Curate Layer: The curate layer is where you will store data that has been
cleaned, transformed, and curated for analysis. You can create a folder in your S3
bucket called "curate" and then move the data that has been cleaned and transformed to
this folder. It is important to keep the curate layer separate from the raw and stage layers
so that you can easily track changes and avoid confusion.
5. Use Parquet File Format: The Parquet file format is a columnar storage format that is
optimized for large-scale data processing. It is highly recommended for data lakes
because it allows for efficient processing of large datasets. To use the Parquet file
format, you can convert your data to Parquet using a tool like Apache Spark

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
249
6. Store Parquet Files in Each Layer: Once you have your Parquet files, you can store
them in stages and curate layers of your data lake.For the stage layer, you can store the
Parquet files in the "stage" folder. And for the curate layer, you can store the Parquet
files in the "curate" folder.
By following these steps, you can create a data lake on Amazon S3 with raw, stage, and
curate layers, and use the Parquet file format for efficient processing of large datasets.

Inter Tenant Integration


Tenants could be peers or we could have a parent and multiple child tenants. Tenants can
connect with each other in a way where they can perform Platform data sync between two
tenants i.e., send data between identical measure-groups/dimensions etc.

Pipeline Schedules
Integration 3.0 pipelines support triggering and execution in multiple ways including:
1. On Demand
2. Scheduled (Predefined schedule to run at a particular time)
3. Event Based (Start or Completion of another Pipeline)
Airflow DAGs have built in support for specifying DAG executions in multiple ways including via
manual triggering and cron-like schedules.

Integration 3.0 Config Backup/Restore


In the Integration workspace, the users can take the backup of the Integration 3.0 components
from one tenant and restore it to any tenant. Users also need to ensure that the LS is running in
both the source and target tenant.

Parametrization
Parameters are simple substitution variables which are used to minimize hard-coding in ETL.
Thereby, increasing flexibility, reusability, readability and avoiding rework by changing the
values in the flow. It provides us with the flexibility to change parameter and variable values
every time we run a session or workflow without touching the pipelines. Parameters feature will
help to make the pipelines dynamic in nature and will help in reducing redundant creation of
datanodes or pipelines. Parameters can be used to substitute variables in the datanodes and
transformers.

Sharing of the Datanode/Datastore Across Tenants

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
250
The purpose of this attribute is to expose a subset of a tenant’s Integration workspace
components in other tenants workspaces to build inter-tenant Integration workflows.
IsShared value is added to every datanode/datastore and possible values are “False” (default),
“True” and “Inherit”.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
251
Platform Health Monitoring Report - NiFi
Business Need
Platform Health Monitoring Service involves monitoring different components of the Platform
and reporting their configuration and health data in a GUI. A NiFi component is added to the
Platform Health check monitoring report.

Functionality Description

● A NiFi Reporting task is created for this implementation to push the health check details
of NiFi to RabbitMQ.

● During startup of NiFi/HealthCheckReportingTask, the RegisterAllChecks() method will


be called to register the components to check.

● As part of this registration, the NiFi Reporting task will start a timer (based on an interval
specified in config). Every time the timer goes off, it will try to call an implementation of
PlatformReportBuilder.buildReport().

● The components specified in the config will have implementations of their respective
health checks.

● The data will be pushed to RabbitMQ, which in turn can be visualized in Kibo.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
252
o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
253
In kibo, in the Health Check View, the config details and the NiFi health is displayed.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
254
Advanced Analytics
Python Upgrade Optimization
Business Need
Python upgrades start only after the other components (LS, WebAPI, etc.) are upgraded. This
renders the Python environments to be not completely usable, even when the tenants are up
and running because of background upgrades.
In the current enhancement, the Python upgrades can run independently of LS/WebAPI and will
bring the Python environment downtime considerably.

Functionality Description
Python platform pushes the upgrade messages to WebAPI through a message broker
RabbitMQ. Previously, the Python upgrades had limitations with RabbitMQ messaging, where
the messages were volatile and would vanish whenever RabbitMQ was restarted. This limitation
has been resolved and the Python upgrades can happen in parallel with the other components
in the subsequent releases.

This is not applicable for the April release as WebAPI changes are needed first to
parse the updated Python upgrade messages.

This will significantly bring down the downtime for Python environments after the tenant is made
usable.
In addition to this, the upgrade process has also been optimized where going forward only o9
packages (pypluginhelpers, o9common, o9flow, etc.) will be updated if there are no changes in
the standard packages list in the Conda environment. This upgrade will be much faster as it will
do away with the time-taking package dependencies resolution process by Conda.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
255
Python Plugin Status Notification
Business Need
The python plugin runs on a dedicated cluster in the sliced/unsliced mode. This cluster is
usually shared across multiple tenants in an environment. Sometimes, the python plugins may
go into a queue waiting for the cluster’s resources to become available as it is a shared
resource.
This enhancement shows the plugin’s position in the queue as a notification in case the plugin is
stuck in the starting state. The notification is only displayed if the plugin is triggered through an
action button.

Functionality Description
In such cases, a plugin will wait until the resources that it has requested for are available on the
cluster. It is depicted by a repetitive message in the logs in the following form:
Got script execution state [starting] from Spark for <>
If the plugin is triggered through an action button and is in the waiting state, then the user who
has triggered the plugin will see a notification in the concerned tenant. The notification displays
that the plugin is stuck in the starting state and the queue position of the plugin.

The other details regarding the cluster’s available resources are displayed in the
Logs View of the Debugging workspace.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
256
o9 Predict.ai Enhancements
Business Need
Improving accuracy of forecast is a key requirement for Demand planning applications that
o9Predict.ai is addressing. As part of this ongoing objective, two new enhancements to
o9predict.ai plugins are introduced.

Functionality Description
1. New algorithms are available as UseBeta Models which can be used by passing
the correct dynamic arg as follows:

Stat Algorithms - ([Param.stat_beta_models], "O9TESModelBuilder,


O9SMAModelBuilder")

● TES - triple exponential smoothing


● SMA - Simple moving average

Neural Net Algorithm - ([Param.tf_beta_models],


"O9MultimodalAttentionModelBuilderV1, O9SimplifiedTFTModelBuilder")

● MutliModalAttention
● Simplified Temporal Fusion Transformer

2. Users are free to select algorithms at the higher levels in a stacked recipe.
Stacked recipe algorithm selection which was fixed (prophet, attention) will be
configurable to the user now using a dynamic argument.

Implementation - ([Param.hl_model_builders], "O9NeuralBasisModelBuilder")

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
257
Platform Resiliency: Lack of Cluster Resources
Business Need
Python plugins run on a dedicated cluster in the sliced/unsliced modes. This cluster is usually
shared across multiple tenants in an environment. Since this is a shared resource, python
plugins may sometimes go into a queue, waiting for the cluster’s resources to become available.
The current enhancement provides the plugin’s position in the queue if it’s in the waiting state
and the cluster’s current memory snapshot.

Functionality Description
ERR-AA-M01: Lack of Cluster Resources
Python plugins run on a cluster in the sliced/unsliced modes. Since this cluster is usually shared
across multiple tenants in an environment, a plugin can go into waiting (starting) state if enough
resources that the plugin has requested for are not available on the cluster.
This is depicted by a repetitive message in the logs in the following form:
Got script execution state [starting] from Spark for <>
In such cases, a plugin will wait until the resources that it has requested for are available on the
cluster. The users will now get more information about the current state of the plugin and the
resources available on the cluster.

Message:
{"queuePosition":2,"queueLevelResources":{"resourcesUsed":{"memory":"83968","vCore
s":"8"},"maxCapacity":{"memory":"89210","vCores":"23"}},"nodeLevelResources":{"availa
bleMemory":{"min":"1072","max":"4084"},"availableVCores":{"min":"3","max":"10"}}}

queuePosition: This denotes the current position of the plugin in the queue. In this case, the
plugin’s position is #2 in the queue i.e., it will be the second job to be picked up once the
cluster’s resources are available.

maxCapacity(memory/vCores): This represents the maximum capacity available on the


cluster for the plugins to execute for memory.

resourcesUsed (memory/vCores): This displays the current snapshot of the cluster for
memory/vCores. In this case, the memory available on the cluster is 89210-83968 = ~5.2 GB
nodeLevelResources: Each cluster has multiple nodes. This information displays the minimum
and maximum resources available on each node. For example, in this case, the minimum
available memory on all the nodes (nodeLevelResources.availableMemory.min) is 1072 MB,

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
258
whereas the maximum available memory on all the nodes
(nodeLevelResources.availableMemory.max) is 4084 MB. This means that a user cannot
request for an executor with memory more than ~4GB even though the cluster has ~5GB of
memory available.

These numbers are dynamic and can change depending on the cluster’s
resource usage. Also, the actual capacity available for use can be less than the
available capacity as some memory might be used for other overhead
operations.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
259
Python Platform Error Resolution
Business Need
Python platform errors are usually embedded deeper inside the Kibo logs and it’s hard for a
tenant user to understand the error and the resolution. With this enhancement, some common
python errors will now be prefixed with an error code. This will highlight the error, the error type,
and the description of the error along with the possible resolution.

For more information, click Python Plugin Errors

Functionality Description

ERR-AA-C01: Invalid or Missing Conda Environment


All python plugins require a Conda environment to execute. If this error is displayed, then it
means that the Conda environment doesn’t exist for this tenant and you need to create one. To
create a Conda environment, you need to go to the Python Environment View of the
Deployment workspace.

For more information on the steps to create a Conda environment , click Tenant
with Conda Environment and Python Packages

After you create a Conda environment, you will view a UI like the one below:

If the Conda environment exists but the error is still displayed, check if the user is using
(PythonPath,””) dynamic argument in the plugin’s execute command.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
260
● If yes, then the path doesn’t exist. Execute plugins without the PythonPath argument.
● If not, then raise a ticket with the Support team.
The error could be because of the following reasons:
● The Conda environment doesn’t exist on all the nodes (possibly a mount issue).
● The Conda directory doesn’t have the necessary permissions.

ERR-AA-U01: User Script Error


This is a user’s script error. The user needs to modify the plugin to resolve the error. The details
regarding the error, the error type, and the line where this error occurs are displayed in the
Logs View of the Debugging Workspace along with the error code.
A common user error is ModuleNotFoundError/ImportError. Check if the package exists in
the Conda Environment (Deployment workspace -> Python Environment View).

ERR-AA-M02: Memory Error: Plugin Ran Out of Memory


The plugin failed because it exceeded the memory limit. The user will need to request for more
memory to complete the job. The following resources can be used for the same:
● Auto Resource Memory Allocation (BasicDryRun): This will provide a rough estimate
of the resources required by the plugin to complete.
● SparkProfileConfig (4.xii): The python code execution requires Memory Overhead/
Worker Memory. This can be configured in the SparkProfileConfig setting. Users can set
the overheads received from Auto Resource Allocation or set it as per their need.
SparkProfileConfig Profile can then be added in the exec command as a dynamic
argument ( ("SparkProfileConfig", "<profile_name>"))
● Python Plugin Memory Variables: This provides the explanation for the different
memory variables.

SparkProfileConfig is a tenant setting. If you make any changes to this setting,


then you need to restart the tenant.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
261
SCS
Co-Product/Bi-Product Pegging

Business Need
Some manufacturing processes/activities lead to production of more than one product. While
the demand can be for the main product, other co-products are also produced.
Currently, the pegging supplies are pegged proportionately to the number of products produced
at the demand node. In some businesses, it is not required to peg supplies to Bi-Products.
Hence, there was a need to modify the current pegging behavior and to provide flexibility to the
business on pegging of Co-Products or Bi-Products.

In the above example along with FG_1, three other co-products are produced by BOM Activity.
While there would be flow plans on edge producing all four(4) products, T&E are really not main
products. So while pegging supplies to demand, it is not required in some business cases to
peg to all produced Items.

Functionality Description
Consider the supply chain below:

● Demand: FG_1 at DC_1 for 10 units @ W10

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
262
● BOH: RM_1, RM_2, 10 Units each @W1
● BOH: T&E1 & T&E2 , 10 units each @W1
● Planning Horizon: W1 to W52, LT of all activities one(1) week
● T&E1 and T&E2 are co-products/bi-products along with production of FG_1 at DC_1
● Output: Demand would be met on W10

Consumption Flow Plans

Activity Item Location Week Consumption


Quantity

Sub-Assembly for FG_1 - RM_1 RM_1 Plant_1 W07 10


converted to INT_11

Sub-Assembly for FG_1 - RM_1 T&E1 Plant_1 W07 10


converted to INT_11

Sub-Assembly for FG_1 - RM_2 RM_2 Plant_1 W07 10


converted to INT_21

Sub-Assembly for FG_1 - RM_2 T&E1 Plant_1 W07 10


converted to INT_21

Final-Assembly for FG_1 at INT_11 Plant_1 W08 10


Plant_1

Final-Assembly for FG_1 at INT_21 Plant_1 W08 10


Plant_1

FG_1 - Shipment via Air from FG_1 Plant_1 W09 10


Plant_1 to DC_1

Production Flow Plans

Activity Item Location Week Consumption


Quantity

Sub-Assembly for FG_1 - RM_1 INT_11 Plant_1 W08 10


converted to INT_11

Sub-Assembly for FG_1 - RM_2 INT_21 Plant_1 W08 10


converted to INT_21

Final Assembly for FG_1 at FG_1 Plant_1 W09 10


Plant_1

FG_1 - Shipment via Air from FG_1 DC_1 W10 10


Plant_1 to DC_1

FG_1 - Shipment via Air from T&E_1 DC_1 W10 10

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
263
Plant_1 to DC_1

FG_1 - Shipment via Air from T&E_2 DC_1 W10 10


Plant_1 to DC_1

Since Co-Products/Bi-products are produced with FG_1 by Shipment Activity, Consumption


Pegging currently would look like: Consumption Pegging at FG_1, at Plant_1

From[ From[Act] From[Item] From[Loc] To[Item] To[Loc] To[Order] To[Time] Consumption


Time] Pegged Quantity

W09 FG_1 - FG_1 Plant_1 FG_1 DC_1 Order_1 W10 3.33


Shipment
via Air from
Plant_1 to
DC_1

W09 FG_1 - FG_1 Plant_1 T&E_1 DC_1 Inv W52 3.33


Shipment Demand
via Air from
Plant_1 to
DC_1

W09 FG_1 - FG_1 Plant_1 T&E_2 DC_1 Inv W52 3.33


Shipment Demand
via Air from
Plant_1 to
DC_1

Production Pegging at FG_1, at Plant_1


From[ From[Act] From[Item] From[Loc] To[Item] To[Loc] To[Order] To[Time] Production Pegged
Time] Quantity

W09 Final- FG_1 Plant_1 FG_1 DC_1 Order_1 W10 3.33


Assembly
for FG_1 at
Plant_1

W09 Final- FG_1 Plant_1 T&E_1 DC_1 Inv W52 3.33


Assembly Demand
for FG_1 at
Plant_1

W09 Final- FG_1 Plant_1 T&E_2 DC_1 Inv W52 3.33


Assembly Demand
for FG_1 at
Plant_1

In Both Consumption & Production Pegging, Flow plans are pegged proportionately to Bi-
Products also.

In Some Cases, business does not require supplies to be pegged to Bi-Products.

Configuration
Users will have to create a measure with grain as mentioned below and populate the necessary
intersections to see the expected behavior.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
264
Parameter: No additional parameter is required.

Measure Grain/Datatype Where to change What it means

Is [Item].[Item] Is Producing It determines whether supplies


Producing [Location].[Location] Byproduct Measure should be pegged to Co-
Byproduct [Activity].[Activity] Name in the Activity Product/Bi-Products
Measure [Version].[Version tab of SCS UI config 0/Null: Default - It implies
Name Name] producing edge is not Bi-
product and supplies would be
Data Type: Boolean pegged.
1: It implies producing edge is
Bi-product and supplies would
not be pegged

Assumption
There would be no demand for Bi-Products.
Limitation
CoProduct/Bi-Product does not work with Incremental Planning.

With Bi-Product flag as True:1, for Activity & Material Node: flow plans would not change (refer
earlier flow plans). However, these would be excluded from pegging outputs.

For same supply chain referred earlier:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
265
1. FG_1 - Shipment via Air from Plant_1 to DC_1 & T&E1,DC_1 - Is Producing ByProduct -
True
2. FG_1 - Shipment via Air from Plant_1 to DC_1 & T&E2,DC_1 - Is Producing ByProduct -
True

Consumption Pegging at FG_1, at Plant_1


From[Time] From[Act] From[Item] From[Loc] To[Item] To[Loc] To[Order] To[Time] Consumption
Pegged Quantity

W09 FG_1 - Shipment FG_1 Plant_1 FG_1 DC_1 Order_1 W10 10


via Air from
Plant_1 to DC_1

Production Pegging at FG_1, at Plant_1


From[Time] From[Act] From[Item] From[Loc] To[Item] To[Loc] To[Order] To[Time] Production
Pegged Quantity

W09 Final Assembly FG_1 Plant_1 FG_1 DC_1 Order_1 W10 10


for FG_1 at
Plant_1

By Default, all would be considered as Co-Products (which can be a valid case) for pegging. If
pegging is not required for Co-Products/Bi-Products, users would have to define measure to
True at production edge.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
266
Planned Order WIP Support in Incremental Plan
Business Need
Businesses model planned order WIPs with just produced item, produced location and
produced date and no activity grain when BOM or routing information is not known beforehand.
When running an incremental plan, it is required that the planned orders inputs be considered
for the incremental planning. Also, planners should be able to make modifications to the
planned orders. Thus, it is required that the incremental plan be capable of considering the
planned orders.

Functionality Description
Previously, when planned orders were defined in a network and incremental plan was run, the
solver could not handle the planned orders data as part of the inputs for the incremental plan.
Since this support was not available, the planners could not define the planned orders in the
network where the incremental plan was to be run.
The solver has been enhanced to provide compatibility between incremental plan and Planned
Orders. It is now possible to specify Planned Orders in the network which will be part of the
incremental planning workflow and Solver will consider the Planned Orders while doing the
incremental plan run and generate the outputs accordingly. The enhancement also allows
planners to now modify the Planned Orders and mark them for incremental planning via the WIP
override table used for making WIP changes during incremental plan. Therefore, Solver is now
capable of handling Planned Orders during the incremental plan.

Configuration
There is no dedicated configuration introduced as part of this enhancement and it is purely
additional support provided in the incremental planning workflow.

Examples
Let’s consider the supply chain as depicted below.

Example 1: Demand Changes


Lead Times

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
267
Activity Lead Time

Sub-Assembly for FG_1 - RM_1 converted to INT_11 at Plant_1 1 Week

Sub-Assembly for FG_1 - RM_2 converted to INT_21 at Plant_1 1 Week

Final Assembly for FG_1 at Plant_1 1 Week

FG_1 - Shipment via Water from - Plant_1 to DC_1 2 Weeks

Production Planned Order WIP

WIP Lot ID Node Activity Bucket WIP Qty WIP Infeasibility


Resolution

WIP_0 FG_1, Plant_1 Plan Order Activity W15 200 SHORT

Demands

Order ID Bucket Demand Node Demand Qty Demand Priority

Order_1 W22 FG_1, DC_1 100 2

Order_2 W23 FG_1, DC_1 200 3

Order_3 W24 FG_1, DC_1 200 4

Order_4 W25 FG_1, DC_1 200 5

Material Supply

Item Location Bucket BOH

RM_1 Plant_1 W01 700

RM_2 Plant_1 W01 700

Capacity Availability
Capacity is unconstrained.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
268
Delivery Plan after Full Plan

Order ID Bucket Met on Time Qty Late Qty Short Qty

Order_1 W22 100

Order_2 W23 200

Order_3 W24 200

Order_4 W25 200

Material Production Pegging for Planned Order WIP after Full Plan

WIP LotID Bucket Order ID Bucket Pegged Qty

WIP_0 W15 Order_1 W22 100

WIP_0 W15 Order_2 W23 100

Incremental Plan Changes

Order ID Bucket Demand Demand Qty Demand Demand


Node Priority Changed

Order_5 W21 FG_1, DC_1 300 1 TRUE

Order_1 W22 FG_1, DC_1 100 2 TRUE

Order_2 W23 FG_1, DC_1 200 3 TRUE

Delivery Plan after Incremental Plan

Order ID Bucket Met on Time Qty Late Qty Short Qty Participated in Inc Plan

Order_5 W21 300 TRUE

Order_1 W22 100 TRUE

Order_2 W23 200 TRUE

Order_3 W24 200 FALSE

Order_4 W25 200 FALSE

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
269
Material Production Pegging for Planned Order WIP after Incremental Plan

WIP LotID Bucket Order ID Bucket Pegged Qty

WIP_0 W15 Order_5 W21 200

Example 2: Planned Order Changes


Lead Times

Activity Lead Time

Sub-Assembly for FG_1 - RM_1 converted to INT_11 at Plant_1 1 Week

Sub-Assembly for FG_1 - RM_2 converted to INT_21 at Plant_1 1 Week

Final Assembly for FG_1 at Plant_1 1 Week

FG_1 - Shipment via Water from - Plant_1 to DC_1 2 Weeks

Production WIP

WIP Lot ID Node Activity Bucket WIP Qty WIP Infeasibility Resolution

WIP_0 FG_1, Plan Order W15 200 SHORT


Plant_1 Activity

Demand

Order ID Bucket Demand Node Demand Qty

Order_1 W22 FG_1, DC_1 500

Material Supply

Item Location Bucket BOH

RM_1 Plant_1 W01 200

RM_2 Plant_1 W01 200

Capacity Availability
Capacity is unconstrained.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
270
Delivery Plan after Full Plan

Order ID Bucket Met on Time Qty Late Qty Short Qty

Order_1 W22 200 300

Material Production Pegging for Planned Order WIP after Full Plan

WIP LotID Bucket Order ID Bucket Pegged Qty

WIP_0 W15 Order_1 W22 200

Incremental Plan Changes

WIP Lot Node Activity Bucket WIP Qty WIP Infeasibility


ID Override Resolution Override

WIP_0 FG_1, Plant_1 Plan Order Activity W15 300 OVERRIDE

Order ID Bucket Demand Node Demand Qty Demand Changed

Order_1 W22 FG_1, DC_1 500 TRUE

Delivery Plan after Incremental Plan

Order ID Bucket Met on Time Qty Late Qty Short Qty Participated in Inc Plan

Order_1 W22 300 200 TRUE

Material Production Pegging for Planned Order WIP after Incremental Plan

WIP LotID Bucket Order ID Bucket Pegged Qty

WIP_0 W15 Order_1 W22 300

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
271
Supportability for SS Build Ahead in Case of Min-Max Type of Safety
Stock Policy
Business Need
The safety stock refers to the extra materials that are maintained to cater to the unplanned
demand and thus avoid any cases of stockouts. There are cases where safety stock cannot be
planned for the item on a given day due to capacity constraints. In such cases, the supply chain
solver tries to build them in earlier time buckets based on the capacity available.

Functionality Description
The SS BAL feature was previously unavailable for the new min-max type of SS policy. This
was done in order to maintain the policy behavior:
1. The EOH on any time bucket must lie between the predefined minimum and maximum
stock limits.
2. The safety stock plan gets triggered when:
a. EOH value goes below the reorder point (min value), or
b. there is any production in a bucket and EOH is above the Reorder Point, then SS
planning is triggered with gap (Target-EOH) to meet the target
With this enhancement, the restriction of inventory levels floating between min and max value is
relaxed and if SS BAL is defined, SCS can produce extra materials in earlier time buckets. In
such cases, the EOH might go above the predefined max stock value.

Configuration
There are no changes to be made in the SCS instance while configuring the safety stock related
parameters. However, while running the SCS plugin, the parameters blow are mandatory to see
this behavior:
● ([Inventory Plan Policy], "MIN_MAX")
● ([Inventory Plan Policy Min_Max Legacy], "False")

Example
Consider this supply chain network:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
272
● BOH = 500 at RM, Plant on W01
● Lead time for manufacturing activity = 1 week
● Lead time for shipment = 2 weeks
● Capacity for R1:
● W04 = 300 units
● W05 = 100 units
● Expected receipt = 50 at FG, Plant on W04
Demand Values

Order Name Location Item Fiscal Week Demand Priority Demand Quantity

Order_1 RDC FG W10-2015 1 150

Order_2 RDC FG W09-2015 2 100

Safety Stock Inputs

Location Item Fiscal Week Min Max

Plant FG W05-2015 50 100

Plant FG W06-2015 50 100

Solver is run with material and capacity constraint, ([Inventory Plan Policy], "MIN_MAX"),
([Inventory Plan Policy Min_Max Legacy], "False"), ([SS Build Ahead Limit], 1)
Post demand planning, the inventory plan output at FG, plant would looks as below:

W4 W5 W6 W7

BOH 0 50 50 0

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
273
Production Qty 50 100 100 0

Consumption Qty 0 100 150 0

EOH 50 50 0 0

During safety stock planning, the solver will move-in 50 units from W06 to W05 in order to meet
the SS target on W05.
Next while planning the SS for W06, solver can only produce 50 units of fresh quantity on W06
due to the capacity constraint. Remaining 50 units are produced on W05 since BAL is defined.
This will lead to EOH going above the max target value defined at that material node.
The final inventory plan output after demand and SS planning would looks as below:

W4 W5 W6 W7

BOH 0 50 150 100

Production Qty 50 200 100 0

Consumption Qty 0 100 150 0

EOH 50 150 100 100

max 100 100

min 50 50

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
274
Actionable RCA
Business Need
As per the existing solver design, the RCA is reported along the primary path and on the JIT
bucket only. This is (sometimes), not actionable from an end user perspective.
Consider an example wherein there is a lead time constraint reported against a demand. This
means that the solver was not able to traverse upstream for that demand because of an
aggressive due date. It does not provide any insight into material or capacity constraints
upstream. This is one example of how the existing RCA can be extended/modified to provide
insights into actual requirements.

Existing Design Issues


1. RCA is global additive in nature and solver is expected to solve ALL demands incident
on the downstream node, which are met late or short. This means that the solver
accounts for all demands not met on time or in full, and this impacts the RCA
computation for other demands.
Consider an example where there are four demands (D1, D2, D3 and D4) and these are
due on buckets W10, W15, W20, and W25, respectively. The end user knows that due
to some extraneous circumstances, D3 will be late by at most 3 buckets and does not
require any RCA for this demand. Consequently, D3 is met on W22.
Currently, in additive RCA, there is no way to leave one or more demands out of the
RCA pass, and this results in D3 getting unplanned and (possibly), its supply getting
allocated to some other demand during the RCA phase.
2. All demands to be met in the JIT bucket (barring cases of BLL and BAL). As mentioned
previously, solver tries to strictly adhere to the meeting demand in JIT bucket construct
and does not allow for any delays without that demand being considered late.
Reusing the above example, say that the end user wants to consider any supplies post
JIT+3 against D3 as late and the ones between JIT and JIT+3 to be considered met on
time. The current solver design is unable to accommodate this and all supplies post JIT
are considered late during the RCA phase.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
275
Functionality Description

Actionable RCA Features


The following network is used to explain the multiple features of Actionable RCA.

1. Exclude Demands from RCA Phase


This feature addresses one of the two issues which were listed as part of the earlier
problem statement. By default ALL late and short demands are considered by solver
during the RCA pass. And any material or capacity constraints are listed. This flag
enables the user to apriori exclude some demands from the RCA pass. These could be
demands the end user knows are going to be met late on account of some external
factors which are not modeled into the solver.
Consider an example where there are four demands (D1, D2, D3 and D4) and these are
due on buckets W10, W15, W20 and W25 respectively. Now, the end user knows that
due to some extraneous circumstances, D3 will be late and does not require any RCA
for this demand. Currently, in additive RCA, there is no way to leave one or more
demands out of the RCA pass, and this results in D3 getting unplanned and (possibly),
its supply getting allocated to some other demand during the RCA phase.

User can use the following flag to exclude the demand from RCA pass:
Disable RCA Demand Measure Name

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
276
Grain - Demand Node Components

● This is a Boolean flag and setting it to True ensures that D3 is not part of the RCA pass,
and only D1, D2 and D4 (if met late or short) will have an RCA associated with them.
● D3 will also not be part of either OBO and Additive RCA as well as RCA peggings (in
case of pegging type = short and late demands only)

2. Provide RCA for Part of Demand Late by x Buckets


This feature addresses the other issues mentioned above. In case of multiple deliveries
against a demand (Fulfillment policy is multiple), the user needs to see an RCA for the
delivery/deliveries beyond a certain bucket after the JIT bucket. Effectively, this adds a
build late limit to the RCA and reports the same depending on the value of the fence.
Consider the example shown above. There is only one demand, say D1, which is of qty
100 and is incident on FG@DC on W20. There is a capacity constraint of 25 units per
week which prevents the entire demand from being met on the JIT bucket. Instead it is
met in multiple deliveries of 25 units each on W20, W21, W22 and W23 (assume here
that there is a build late limit of 4).
Let’s say the RCA fence value is 2 for this demand. In this case the value of 2 is added
to the JIT bucket and any deliveries in the interval (JIT, JIT+2) are considered NOT late.
Consequently, the RCA qty in this case will be 25.

This does not impact the calculations of measures like Met on time, Met short
etc. In the above case, the met on time will be 25, and met late will be 75.

User can use the following measure name to add a fence to the demand:
RCA Fence Demand Measure Name
Grain- Demand node components

This is of datatype Integer and enables users to add a fence to the JIT bucket and report
RCA on the late part (JIT+fence) of demand.

3. RCA Ask by Date

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
277
This feature is similar to the RCA fence, but allows the end user to shift the demand due
date by some time buckets to provide RCA on demands which have run into Lead time
constraints.
In the example shown above, let’s say there is a single demand D1 which is due at DC
on W2. Since this demand runs into a Lead Time before Plan current issue as per the
current design. The ask by date enables the user to add some time buckets to the
demand due bucket, so that any Lead time issues are circumvented and the solver gives
the actual material and capacity requirements.

Configuration

Measure Granularity Measure Group Description Where to change

Disable RCA Item, location, Demand qty Boolean flag at SCS config UI
demand fiscal week, demand level. If
Measure name order name, set to TRUE,
customer name demand will not
be part of RCA

RCA fence Item, location, Demand qty Integer type SCS config UI
Demand fiscal week, measure.
measure name order name, Includes all
customer name deliveries within
the fence as on
time

RCA Due Date Item, location, Demand qty Integer type SCS config UI
Offset Demand fiscal week, measure. Shifts
Measure Name order name, the demand due
customer name date by x
buckets

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
278
Mandatory Pre Build Offset Extended support (Hard Quarantine, BOM
Offset, Delivery Plan Offset)
Business Need
There are certain businesses like CPG, Pharmaceuticals that need a quarantine period (quality
inspection) before shipping the products to customers. The manufactured products need to be
held till the quarantine period is over, and only then be delivered to the customer. This is
sometimes referred to as hard quarantine.
Some other businesses require to model a Goods Receipt Lead Time (GR LT). This is
essentially the time taken in handling/moving the goods to the store shelf after they have been
dropped to the store inbound area from DC. Hence, at the delivery node,
Total Lead Time = Activity Lead Time (ALT) + Goods Receipt Lead Time (GR LT)
A Goods Receipt operation then takes place after the material is produced and only post GR LT
the supply should be consumed for fulfillment of the demand.
There can be analogous use cases for businesses that might require similar behavior to be
modeled in terms of consumption.

Functionality Description
As per the existing SCS behavior, supplies are consumed on JIT or offset from the JIT bucket
by lead time of the activity. The hard quarantine enhancement would require the supplies to
respect a quarantine period before being consumed for demand fulfillment. The quarantine
period would be defined at a material node level.
The requirement for Hard Quarantine is that the produced item has to spend a specified period
of time at a location. It cannot be moved out of this location without spending the minimum
specified time at that location. This produced quantity should not reflect in the EOH quantity
during this time but should consume the storage (if defined).
The Consumption Edge Offset is mainly applicable in case of a BOM network structure. The
fundamental requirement here is to consume a given raw material a specified number of
buckets earlier than the production bucket. In a BOM component network that produces a single
Finished Goods item, the requirement is to be able to specify a unique offset value for each of
the BOM components being consumed. Furthermore, if a component is being consumed by two
different BOM activities, it should be feasible to define unique offset values for the same
component along the two different BOMs.
Configuration
The following measure needs to be configured:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
279
For Production Edge Offset:

Measure Granularity Measure Group Description Where to change

Prod Graph <Material Node> Material This input Prod Graph


Mandatory <Activity Node> Production measure is used Mandatory
Prebuild Offset <Version> Graph (The to specify the Prebuild Offset
Measure same measure Mandatory Measure Name in
Name group where PreBuild Offset the Activity tabbed
production graph at a production area of the SCS
Type: Number association edge. config UI
measure is
defined)

For Consumption Edge Offset:

Measure Granularity Measure Group Description Where to change

Component <Material Material This input Component


Mandatory Node> Consumption measure is Mandatory
Prebuild Offset <Activity Node> Graph (The same used to specify Prebuild Offset
Measure Name <Version> measure group the Mandatory Measure Name in
where Prebuild Offset the Activity tab of
Type: Number consumption at a SCS config UI
graph association consumption
measure is edge.
defined)

In the config UI, these properties can be found under the Activity tabbed area:

Two additional measures as detailed below have been introduced to export the offset inventory
profile as part of the Inventory Plan output:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
280
Measure Granularity Measure Group Description Where to change

Offset BOH <Material Node> Inventory Plan This output Offset BOH
Measure <Time> (Must be measure exports Measure Name in
Name <Version> configured in the the Beginning the Inventory tab
same measure on Hand offset of SCS config UI
Type: Number group where inventory profile
inventory plan at a material
output measures node.
are defined)

Offset EOH <Material Node> Inventory Plan This output Offset EOH
Measure <Time> (Must be measure exports Measure Name in
Name <Version> configured in the the Ending on the Inventory tab
same measure Hand offset of SCS config UI
Type: Number group where inventory profile
inventory plan at a material
output measures node.
are defined)

In the config UI, these properties can be found under the Inventory tabbed area:

Examples
Example 1: Production Edge MPBO
Let’s consider the supply chain as depicted below.

Lead Times

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
281
Activity Lead Time

Sub-Assembly for FG_1 - RM_1 converted to INT_11 at Plant_1 1 Week

Sub-Assembly for FG_1 - RM_2 converted to INT_21 at Plant_1 1 Week

Final Assembly for FG_1 at Plant_1 2 Weeks

FG_1 - Shipment via Water from - Plant_1 to DC_1 2 Weeks

Demands

Order ID Bucket Demand Node Demand Qty

Order_1 W10 FG_1, DC_1 100

SS Target

Bucket SS Target Node SS WOS Target

W07 FG_1, Plant_1 1 Week

Production Edge MPBO

Material Node Activity Production Edge MPBO

FG_1, Plant_1 Final Assembly for FG_1 at Plant_1 2 Weeks

Material Supply

Item Location Bucket BOH

RM_1 Plant_1 W01 100

RM_2 Plant_1 W01 100

Capacity Availability
Capacity is unconstrained.
Flow Plans at (FG_1, Plant_1)

Bucket Beginning on Hand Material Material Consumption Ending on Hand


Qty Production Qty

W01 0 0 0 0

W02 0 0 0 0

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
282
W03 0 0 0 0

W04 0 0 0 0

W05 0 100 0 100

W06 100 0 0 100

W07 100 0 0 100

W08 100 0 100 0

W09 0 0 0 0

W10 0 0 0 0

For Demand Planning, consumption is required on the W08 bucket. Considering the Production
Edge Offset of 2 weeks, production must happen on W06 bucket and should be carried as
Quarantine stock for W06 and W07.
During Safety Stock Planning, to fulfill the WOS target, EOH on W07 bucket must be 100.
Considering the Production Edge Offset of 2 weeks, production flow plan on W06 must be
moved-in to W05 so that the quantity is carried as Quarantine stock for W05 and W06 before it
contributes to fulfillment of the WOS target.

Example 2: Consumption Edge MPBO


Let’s consider the supply chain as depicted below.

Lead Times

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
283
Activity Lead Time

RM_1_Procurement 0 Weeks

RM_2_Procurement 0 Weeks

RM_3_Procurement 0 Weeks

Final Assembly for FG_1 at Plant_1 0 Weeks

Final Assembly for FG_1 at Plant_1 Prime 0 Weeks

Demands

Order ID Bucket Demand Node Demand Qty

Order_1 W05 FG_1, Plant_1 100

Order_2 W05 FG_2, Plant_1 150

Consumption Edge MPBO

Material Node Activity Production Edge MPBO

RM_1, Plant_1 Final Assembly for FG_1 at Plant_1 2 Weeks

RM_2, Plant_1 Final Assembly for FG_1 at Plant_1 3 Weeks

RM_2, Plant_1 Final Assembly for FG_1 at Plant_1 Prime 2 Weeks

RM_3, Plant_1 Final Assembly for FG_1 at Plant_1 Prime 1 Week

Material Supply

Item Location Bucket BOH

Vendor_RM_1 Plant_1 W01 250

Vendor_RM_2 Plant_1 W01 250

Vendor_RM_3 Plant_1 W01 250

Capacity Availability

Resource Bucket Capacity

Capacity for Final Assembly at Plant_1 W01 - W10 200 per Week

Capacity for Final Assembly at Plant_1 Prime W01 - W10 200 per Week

Flow Plans at (RM_1, Plant_1)

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
284
Bucket Beginning on Hand Material Material Consumption Ending on Hand Qty
Qty Production

W01 0 0 0 0

W02 0 0 0 0

W03 0 0 100 100

W04 100 0 0 100

W05 100 0 100 0

Flow Plans at (RM_2, Plant_1)

Bucket Beginning on Hand Material Material Consumption Ending on Hand Qty


Qty Production

W01 0 0 0 0

W02 0 100 0 100

W03 100 150 0 250

W04 250 0 0 250

W05 250 0 250 0

Flow Plans at (RM_3, Plant_1)

Bucket Beginning on Hand Material Material Consumption Ending on Hand Qty


Qty Production

W01 0 0 0 0

W02 0 0 0 0

W03 0 0 0 0

W04 0 150 0 150

W05 150 0 150 0

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
285
Pegging to Support Delivery Flow Plans
Business Need
The solver pegging outputs (Production Pegging, Consumption Pegging, RCA Pegging) as on
date, do not provide a time grain which displays the actual delivery date against a supply.
Consider a scenario wherein there are multiple deliveries against an order (fulfillment policy is
MULTIPLE). These deliveries are incident on the demand node on different time buckets on
account of build late limit. There is no “To” time grain at delivery level which helps determine the
time bucket on which the delivery was incident.
In order to provide this additional information to the planner, a time grain has been added to the
deliveries, which helps ascertain the date on which the in-part delivery was incident on
downstream demand node.

Functionality Description
Consider the following network and the corresponding demand information:

● Demand qty = 100@W3 at DC


● Build late limit = 4
● Capacity = 25 per week from W1 to W52
● BOH = 100
The solver will create four flow plans on W3, W4, W5 and W6 of 25 each. Each of these split
deliveries will have a pegged delivery date in the To grain of the corresponding graph
(Production, Consumption or RCA peggings).
The production pegging will look like this:

From.Item From.Loc Activity From.Week Delivery week To.Item To.Loc Pegged qty

FG Plant Shipment W2 W3 FG DC 25

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
286
from Plant
to DC

FG Plant Shipment W3 W4 FG DC 25
from Plant
to DC

FG Plant Shipment W4 W5 FG DC 25
from Plant
to DC

FG Plant Shipment W5 W6 FG DC 25
from Plant
to DC

Consider the following network, where there is an alternate route for Production of FG, but the
Demand in this case has a negative priority for one of the paths. This is an example of attribute
based routing:

● Plant_1 has a negative priority associated wrt Demand 1


● Demand qty = 100 @W3 at DC
● Build late limit = 4
● Capacity = 25 per week from W1 to W52 for both R1 and R2
● BOH = 100 units each at Plant_1 and Plant_2
In this case, if the hard pegging algorithm is plan and peg, the production pegging will look as
follows:

From.Item From.Loc Activity From.Week Delivery Week To.Item To.Lo Pegged qty
c

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
287
FG Plant_2 Shipment W2 W3 FG DC 25
from
Plant_2 to
DC

FG Plant_2 Shipment W3 W3 FG DC 25
from
Plant_2 to
DC

FG Plant_2 Shipment W4 W3 FG DC 25
from
Plant_2 to
DC

FG Plant_2 Shipment W5 W3 FG DC 25
from
Plant_2 to
DC

This is because the hard pegging happens immediately after the demand gets planned, and the
deliveries inherit the due date of the demand.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
288
Max Lot Size
Business Need
Manufacturing processes are bound by certain constraints and hence need to undergo periodic
quality inspections. To ease these inspection activities, some restrictions are imposed on the
manufacturing process so that production happens in fixed batches. The size of these batches
is determined by a batch size constraint or a max lot size. This does not restrict the total
production in a given time period however, the individual production batches need to respect the
max lot size. Therefore, instead of releasing one huge production to the shop floor, there can be
multiple production batches based on the max lot size.

Functionality Description
The existing implementation of lot size in SCS comprises two measures which govern the
definition of the lot size – the min lot size and the lot size multiple. These two measures are
used to specify the minimum quantity to be produced in every production bucket and the
multiple in which subsequent productions above the min lot size need to be produced.
As part of this enhancement, a third measure has been introduced to control the lot size
definition along with the min and multiple lot size measures, which is the max lot size measure.
The max lot size specifies the maximum quantity that can be produced in a production batch. It
does not limit the production in a particular time bucket and simply acts as a batch size
constraint. Therefore, the SCS output can create one consolidated large flow plan in a given
time bucket that respects the max, min and multiple lot sizes.
The max lot size behavior follows the below principles:
● In case of production quantities greater than the max lot size, Solver can produce one
consolidated large flow plan that respects the max lot size.
● If quantity to be produced > max lot size,
Produced Qty = Max + Min + (Mult of mult)
● If min lot size < quantity to be produced < max lot size,
Produced Qty = Min + (Mult of mult)
● If quantity to be produced < min lot size,
Produced Qty = Min
Configuration
The following measure needs to be configured:
For Production Edge Max Lot Size

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
289
Measure Granularity Measure Description Where to
Group change

Prod Graph Max <Material Node> Material This input Prod Graph
Lot Qty Measure <Activity Node> Production measure is used Max Lot Qty
Name <Version> Graph (The to specify the Max Measure Name
same Lot Size at a in the Activity
Type: Number measure production edge. tabbed area of
group where the SCS config
production UI
graph min and
multi lot size
measures are
defined)

For Activity Max Lot Size

Measure Granularity Measure Description Where to


Group change

Activity Max Lot <Activity Node> Activity Node This input Activity Max
size Measure <Version> Parameters measure is used Lot size
Name (The same to specify the Max Measure Name
measure Lot Size for an in the Activity
Type: Number group where activity. tabbed area of
activity min the SCS config
and multi lot UI
size measures
are defined)

In the config UI, these properties can be found in the Activity tabbed area:

Examples
Let’s consider the supply chain as depicted below.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
290
Example 1: Demand Planning
Lead Times

Activity Lead Time

Sub-Assembly for FG_1 - RM_1 converted to INT_11 at Plant_1 1 Week

Sub-Assembly for FG_1 - RM_2 converted to INT_21 at Plant_1 1 Week

Final Assembly for FG_1 at Plant_1 1 Week

FG_1 - Shipment via Water from - Plant_1 to DC_1 2 Weeks

Demands

Order ID Bucket Demand Node Demand Qty

Order_1 W09 FG_1, DC_1 210

Order_2 W09 FG_1, DC_1 101

Material Supply
(RM_1, Plant_1) and (RM_2, Plant_1) are set as Infinite Inventory nodes

Capacity Availability
Capacity is unconstrained.

Lot Size
● Min Lot Size = 45, Mult Lot Size = 5, Max Lot Size = 100
● Defined on Activity: FG_1 - Shipment via Water from - Plant_1 to DC_1

Material Production Plan

Item Location Bucket Activity Material


Production

INT_11 Plant_1 W06 Sub-Assembly for FG_1 - RM_1 converted to 345


INT_11 at Plant_1

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
291
INT_21 Plant_1 W06 Sub-Assembly for FG_1 - RM_2 converted to 345
INT_21 at Plant_1

FG_1 Plant_1 W07 Final Assembly for FG_1 at Plant_1 345

FG_1 DC_1 W09 FG_1 - Shipment via Water from - Plant_1 to 345
DC_1

Example 2: WIP Planning

Lead Times

Activity Lead Time

Sub-Assembly for FG_1 - RM_1 converted to INT_11 at Plant_1 1 Week

Sub-Assembly for FG_1 - RM_2 converted to INT_21 at Plant_1 1 Week

Final Assembly for FG_1 at Plant_1 1 Week

FG_1 - Shipment via Water from - Plant_1 to DC_1 2 Weeks

Production WIP

WIP Lot ID Node Activity Bucket WIP Qty WIP Infeasibility


Resolution

WIP_0 FG_1, Plant_1 Final Assembly for W09 210 SHORT


FG_1 at Plant_1

Demand

Order ID Bucket Demand Node Demand Qty

Order_1 W11 FG_1, DC_1 100

Material Supply
(RM_1, Plant_1) and (RM_2, Plant_1) are set as Infinite Inventory nodes

Capacity Availability
Capacity is unconstrained.

Lot Size
● Min Lot Size = 15, Mult Lot Size = 5, Max Lot Size = 100

● Defined on Production Edge: Final Assembly for FG_1 at Plant_1 → (FG_1, Plant_1)

Respect lot size in WIP = TRUE

Material Production Plan

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
292
Item Location Bucket Activity Material
Production

INT_11 Plant_1 W08 Sub-Assembly for FG_1 - RM_1 converted 215


to INT_11 at Plant_1

INT_21 Plant_1 W08 Sub-Assembly for FG_1 - RM_2 converted 215


to INT_21 at Plant_1

FG_1 Plant_1 W09 Final Assembly for FG_1 at Plant_1 215

FG_1 DC_1 W11 FG_1 - Shipment via Water from - Plant_1 100
to DC_1

Example 3: Inventory Planning

Lead Times

Activity Lead Time

Sub-Assembly for FG_1 - RM_1 converted to INT_11 at Plant_1 1 Week

Sub-Assembly for FG_1 - RM_2 converted to INT_21 at Plant_1 1 Week

Final Assembly for FG_1 at Plant_1 1 Week

FG_1 - Shipment via Water from - Plant_1 to DC_1 2 Weeks

Demand

Order ID Bucket Demand Node Demand Qty

Order_1 W09 FG_1, DC_1 53

Order_2 W07 FG_1, DC_1 49

SS Target

Bucket SS Target Node SS Target Qty

W07 FG_1, DC_1 100

Material Supply

Item Location Bucket BOH

RM_1 Plant_1 W01 105

RM_2 Plant_1 W01 105

Capacity Availability

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
293
Capacity is unconstrained.
Lot Size
● Min Lot Size = 15, Mult Lot Size = 5, Max Lot Size = 100

● Defined on Production Edge: FG_1 - Shipment via Water from - Plant_1 to DC_1 →

(FG_1, DC_1)

Material Production Plan (After Demand Planning)

Item Location Bucket Activity Material Production

FG_1 DC_1 W07 FG_1 - Shipment via Water from - 50


Plant_1 to DC_1

FG_1 DC_1 W09 FG_1 - Shipment via Water from - 55


Plant_1 to DC_1

Material Production Plan (After SS Planning)

Item Location Bucket Activity Material Production

FG_1 DC_1 W06 FG_1 - Shipment via Water from - 15


Plant_1 to DC_1

FG_1 DC_1 W07 FG_1 - Shipment via Water from - 90


Plant_1 to DC_1

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
294
Where Used Report
Business Need
The Where Used report provides an overview to the end user of the relative placement of the
two material nodes within the supply chain network.
Consider a multi-tiered supply chain with many levels, with primary and alternate paths. In this
complicated setting, it becomes cumbersome to understand the relationship between the two
material nodes, or a smaller subset of the supply chain. The Where Used report addresses this
issue and provides the relationship between the two material nodes so that the user has a better
understanding of this in the supply chain.

Functionality Description
Consider the following network configuration:

Let’s say the user wants to understand the relationship between (FG_1,DC_1) which is the
downstream node, on which demands are incident and (INT_11,Plant_1) which is an
intermediary node. What the user is looking for is to understand if these two nodes are lying on
a path, and if so what are the activities which lead to conversion of the from node into the to
node.
The solver does a traversal from the to node upstream towards the from node, lists down the
activities, and corresponding lead time of those activities to give and output like the one below:

● Cumulative Lead Time: Provides the summation of lead time of all activities incident
between the two material nodes.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
295
The solver considers the consumption edge of the From Node and the
Production edge of the To Node to calculate the Cumulative lead time.

● Cumulative Yield: Provides the overall yield between the two nodes
For example, there are two activities between the two nodes, each having a yield of 0.8.
Then the cumulative yield from the consumption edge of From Node and the Production
edge of To Node will be 0.64
● Level: Provides the number of activities between the two nodes
In the example above, the value of level will be 2.

Configuration
The following solver configuration needs to be enabled in order to allow it to create the where
used report:
Input Measure
Boolean flag grained at material node (Item * Location) in order to provide input to the solver if
the node is required for Where Used report. All the paths to this node are explored and all the
materials which are consumed to make this material node are reported. When this flag is set for
a material node, it is considered that all the nodes upstream of this, also have this flag set.
Output Graphs
1. PathID Map:
a. Contains the full path trail between the two nodes, similar to multipath RCA
2. Where used material graph name:
a. From grain - Material node attributes, Activity node attributes
b. To grain - Material node attributes, Activity node attributes, Path attributes
c. Attribute names - Cumulative lead time, cumulative yield, where used level
3. Where Used Path ID Map Graph Name:
a. From grain - Material node attributes, Path attributes
b. To grain - Activity node attributes, Material node attributes
c. Attribute names - Where Used Path Id Map Property
4. Parameters:
a. Path attribute name - PathID
Examples
Consider the following subnetwork:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
296
User wants to understand the relationship between (INT_21,Plant_1) and (FG_1,DC_1) in terms
of activities, combined lead time. The Where Used report will provide an output as follows:

User wants to understand the relationship between (INT_21,Plant_1) and (FG_1,Plant_1) in


terms of activities, combined lead time. The Where Used report will provide an output as
follows:

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
297
LPS
Group Level Campaign Planning

Business Need
LP Solver so far has supported activity level campaign planning but it has not scaled well on
many production sized datasets. This is due to the complex nature of MIP Problems and very
large number of boolean variables which is beyond the capabilities of solvers that are currently
available in the market.
So as a simplification procedure, the formation of activity groups based on some similarities
between activities and planning campaigns and transitions over groups is highly recommended
for both operational convenience and ease of computation. Also, many business units group
their SKUs based on some business logic and prefer doing campaigns based on their grouping
procedures.

Functionality Description
Consider the supply chain below:

Grou
p1

Grou
p2

● Act1, Act11 are a part of the same campaign Group(Group1)


● Act2, Act22 are a part of the same campaign Group(Group2)

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
298
The intended behavior is as follows:
● Activities which are a part of Group1 must be scheduled before switching over to
Activities which are a part of Group2.
● The solver doesn’t try to create any specific sequence within a particular Group.
● Changeovers are subject to available capacity and downstream demand and other
supply chain constraints.

Configuration
1. Campaign Groups to be Created and Group Associations to be Made
a. Measure: Campaign Activity Group Association Measure Name
b. In Campaign Activity Association Measure Group’
c. Boolean Input “TRUE” indicates that the Activity is a part of Group, “FALSE”
indicates that the Activity is not a part of the Group
d. Granularity: [GroupID] * ActivityNode * [ResourceNode]
2. Graph for Group Transition Inputs
a. Graph.GroupCampaignTransitionLoss)
b. Edge as ‘Group Transition Capacity Loss Property’
c. Value should be in same units as Available Capacity
d. Granularity: from.[GroupID] * to.[GroupID]*from.[Resource]

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
299
Multiple Supplier Multiple Item Proportional Sourcing
Business Need
Manufacturers usually have long term contracts with suppliers, where they commit to source a
percentage of their total supplies from them. Planners may also want to control or disperse
production across multiple plants/locations based on some ratio.
Currently, the LPS can support one item from multiple vendors only in proportional sourcing.
However, there is a growing need in the market, where 1 vendor can supply multiple items and
we have multiple suppliers and the proportion need not be maintained at an item level rather it
needs to be balanced over a pool of items.

Functionality Description

Traditional Proportional Sourcing


Consider a supply chain with 2 alternates:

DC1

RDC Cust1

DC2

● DC1 and DC2 are alternates supplying to RDC


● Assuming there are 2 demands, D1 and D2 at W5 and W10 with 100 units demand each
● If user gives Activity Proportion of 0.4 and 0.6 at RDC
● Then, 200 units of request from RDC will be sourced by splitting 80:120 from DC1:DC2

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
300
Multi Vendor Multi Item Proportional Sourcing
Consider the supply chain below:

Sup
R
ply
M
1
Gro
R
up M
1 Recei
1
R ving
M Grou F
2 G
Sup
R p1 1
M
ply
1 R
Gro M
up 2
2
R
M
2

If the consolidated demand for RM1 and RM2 at Receiving Group1 is 200 and the Proportion of
Supply Group1 : Supply Group 2 is 0.6: 0.4, the expected output is as follows:
● Outflow of (RM1_Supply Group1+RM2_Supply Group1)=120
● Outflow of (RM1_Supply Group2+RM2_Supply Group2)=80

In a real world scenario we might face the following (they will be supported by the solver):
● One Material Node is a Part of Multiple Supply Groups
● One Material Node is a Part of Multiple Receiving Groups
● One Material Node is a part of a Receiving Group and a Corresponding Upstream
Supply Group
● One Material Node is a part of 2 supply groups supplying to the same receiving Group

Configuration
1. Groups to be Created and Group Associations to be Made
a. Measure: Group Sourcing MN Association
b. In Group Sourcing MN Association Measure Group’
c. Boolean Input “TRUE” indicates that the Material Node is a part of Group,
“FALSE” indicates that the Material Node is not a part of the Group
d. Granularity: [GroupID] * [Item] * [Location]

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
301
2. Graph for Group Sourcing Proportion Inputs
a. Graph.GroupSourcingProportionInputs
b. Edge as ‘GroupSourcingProportion’
c. Value should be in Proportion
d. Granularity: from.[Time] * from.[GroupID] * to.[GroupID]

3. Minimize Group Proportional Sourcing Violation


a. Unit Based Optimization Objective
b. Addition to LPObjective.[Objective Type] dimension attribute

4. Group Proportional Sourcing Priority Measure Name


a. Dependent measure of the above objective
b. Numeric type measure
c. In the measure group - Sourcing Group Parameters
d. Granularity: GroupID * Version
e. For Unit Based Objective
f. Users can input priorities of Proportional Sourcing, i.e. if LPS has to violate a
Group Prop sourcing input in order to fulfill the other, which Prop sourcing split
has a higher prioritization
g. If this measure is not configured then, all priorities will be treated as 1

5. Minimize Group Proportional Sourcing Violation Cost


a. Cost Based Optimization Objective
b. Addition to LPObjective.[Objective Type] dimension attribute

6. Group Proportional Sourcing Penalty Measure Name


a. Dependent measure of the above objective
b. Numeric type measure
c. In the measure group - Sourcing Group Parameters
d. Granularity: GroupID * Version
e. For Cost Based Objective
f. Users can input penalties per unit quantity of violating Group Proportional
Sourcing at a GroupID level. For example:
i. Required sourcing between G1:G2:G3 is 50%:30%:20%
ii. Penalty is 2$ per unit qty
iii. Demand is 100 units

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
302
iv. Now, If achieved split is 60%:10%:30%
v. Actual Flow is only 80 units
vi. Then, Penalty incurred = (60%-50%)*80*2$ + (30%-10%)*80*2$ + (30%-
20%)*80*2$
vii. Note that deviation is Absolute, all Groups G1, G2 & G3 will be penalized
with Group Proportional Sourcing penalty cost, whether it is positive
deviation or negative deviation

Group proportion can be entered like:


From.Group,To.Group, Time, Version, Group Sourcing Proportion
Supplier1, RGroup1, W01-2015, CWV, 0.4
Supplier2, RGroup1, W01-2015, CWV, 0.6
Supplier1, RGroup1, W04-2015, CWV, 0.3
Supplier2, RGroup1, W04-2015, CWV, 0.3
Supplier1, RGroup1, W06-2015, CWV, 0
Supplier2, RGroup1, W06-2015, CWV, 0.3

In this data, it would mean split should be applied like:


● W01 - 0.4,0.6
● W02 - 0.4,0.6
● W03 - 0.4,0.6
● W04 - 0.5,0.5 (from W04 new ratio is applied, and 0.3:0.3 is normalized to 0.5:0.5)
● W05 - 0.5,0.5
● W06 - 0,1 (from W06 new ratio is applied, and 0:0.3 is normalized to 0:1)
● W06 - 0,1
● and so on... till end of horizon

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
303
Activity Mandatory Pre build Offset
Business Need
The mandatory offset requirement arises out of the bucketed nature of master planning.
Considering the network given below, let’s assume that the actual shipping schedule for the ship
operation out of FG@Plant is such that trucks only depart on the first day of every week.
Generally, the planned inflows from the Make operation to FG@Plant material node are only
guaranteed to be completed by the end of every bucket. Therefore, it may be generally
infeasible to release such plans for execution. To ensure that the complete feasibility of the
outflow plan in any bucket, the inflows must be guaranteed to arrive in the previous bucket.

Functionality Description
While most cases will suffice with a mandatory offset of 1 week (i.e., the inflow plans need to
arrive one week earlier than normally planned), a generalized parameter to allow any mandatory
offset is required for other possibilities (e.g. a mandatory holding period that is not modeled) i.e.,
instead of 1 week, one could specify a 2 week mandatory offset.
Some of the specific use cases could be:
Case1: There are cases that the plan needs to consider a kind of postponement of the shipment
as a hard constraint even if the manufacturing is done. The biggest reason is that sometimes
the mobile phone should be tested or checked in the outside yard before shipping.
Case2: When the shipping schedule is twice per month. There is a case where the shipment
from the plant to DC only happens twice a month which means that inventory should stay for
some time in the Plant location depending on the situation.
In both the cases the inventory is held for some duration. These can be some kind of not so
important processes. For example, testing/quality checks which are not modeled exclusively in
the network.
Case3 WIP Mandatory Prebuild Offset Measure (MPBO) Override: Let us assume that the
existing shipping plan is fixed along with the existing production plan and considered as input
during the MP Plan. There are cases where the shipping plan requires to be expedited or
delayed as well as the prod date since those are decided by the real status in the execution
level. Therefore, an activity offset (MPBO) override capability is provided in order to ignore the
offset value defined at the particular activity by each WIP ID level so that it can keep the
consistency of fixed shipping and production plan in the MP planning and its sync up with the
execution level in terms of the end-to-end process.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
304
Configuration
For any given activity, users have a choice to define the number of time buckets that needs to
be offset in order for the items to be available in advance.
Measure Grain/Datatype Where to change? What does it mean?

Activity [Activity].[Activity] Activity Mandatory No. of time buckets by


Mandatory [Version].[Version Prebuild Offset Measure which the specified
Prebuild Offset Name] Name in the Activity downstream activity is
Measure Integer tabbed area of the SCS UI delayed
Name config

However, in case of WIP planning, users will have an additional option to override the
Mandatory Prebuild Offset Measure aka MPBO measure to match their planning timeline. When
both WIP MPBO override and activity MPBO measures are defined for the same activity, then
WIP MPBO override will take precedence over MPBO during planning the particular WIP. For
instance, if the user defines the WIP MPBO override measure value as 2 weeks, and MPBO is
set to 3 weeks, then the WIP planning will override the MPBO condition and will be made
available 2 weeks in advance before it is consumed downstream.
Measure Grain/Datatype Where to change? What does it mean?
Prod WIP [Item].[Item] Prod WIP MPBO Override No. of time buckets by
MPBO Override [Location].[Location] Measure Name in the which the specified WIP
Measure Name [Time].[Fiscal Week] Activity tabbed area of the is made available in
[Lot].[Lot Id] SCS UI config. advance
[Activity].[Activity]
[Version].[Version
Name]
Integer

Consumption [Item].[Item] Consumption WIP MPBO No. of time buckets by


WIP MPBO [Location].[Location] Override Measure Name which the specified WIP
Override [Time].[Fiscal Week] in the Activity tabbed area is made available in
Measure Name [Lot].[Lot Id] of the SCS UI config. advance
[Activity].[Activity]
[Version].[Version
Name]

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
305
Integer

Capacity WIP [Resource].[Resource] Capacity WIP MPBO No. of time buckets by


MPBO Override [Time].[Fiscal Week] Override Measure Name which the specified WIP
Measure Name [Lot].[Lot Id] in the Activity tabbed area is made available in
[Activity].[Activity] of the SCS UI config. advance
[Version].[Version
Name]
Integer

Example
Consider the supply chain network given below:

● Demand = 100 at RDC on W10


● All activities have a lead time of 1 week
● BOH = 200 at RM on W01
Case1
● Expected receipt = 60 for FG, DC on W09
● Mandatory offset for activity “Shipment DC - RDC” = 2 weeks

Flow Plan Output


Here the ER will not be used to plan the demand though it is available in the JIT bucket. Since
there is a prebuild offset of 2 weeks defined for activity “Shipment DC - RDC for the ER to be
considered, it must be made available on or before W07.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
306
Item Location Activity Week Production Quantity Consumption Quantity
RM Plant Assembly W05 100
RM Plant Assembly W06 100
FG Plant Shipment Plant - DC W06 100
FG DC Shipment Plant - DC W07 100
FG DC Expected receipt W09 60
FG DC Shipment DC- RDC W09 100
FG RDC Shipment DC- RDC W10 100

Case2
● Expected receipt = 60 for FG, DC on W07
● Mandatory offset for activity “Shipment DC - RDC” = 2 weeks
Flow Plan Output
Here the ER will be considered to plan the demand since it is available as per the prebuild offset
condition.
Item Location Activity Week Production Quantity Consumption Quantity
RM Plant Assembly W05 40
RM Plant Assembly W06 40
FG Plant Shipment Plant - DC W06 40
FG DC Shipment Plant - DC W07 40
FG DC Expected receipt W07 60
FG DC Shipment DC- RDC W09 100
FG RDC Shipment DC- RDC W10 100

Case3
● Production WIP = 60 for FG, DC on W09; Activity: Shipment Plant - DC
● Mandatory offset for activity “Shipment Plant - DC” = 1 week
● Prod WIP MPBO Override for “Shipment Plant - DC” = 2 weeks

Flow Plan Output


Since there is MPBO of 1 week defined for activity “Shipment Plant - DC” as well as the Prod
WIP MPBO Override of 2 weeks defined for same activity, WIP planning will happen 2 weeks in
advance and the normal planning will happen 1 week in advance as compared to the JIT plan.
Item Location Activity Week Production Quantity Consumption Quantity
RM Plant Assembly W05 60
RM Plant Assembly W06 40

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
307
FG Plant Assembly W06 60
FG Plant Assembly W07 40
FG Plant Shipment Plant W08 60
- DC (WIP)
FG Plant Shipment Plant W08 40
- DC
FG DC Shipment Plant W09 60
- DC (WIP)
FG DC Shipment Plant W09 40
- DC
FG DC Shipment DC W09 100
- RDC
FG RDC Shipment DC W10 100
- RDC

Interaction with Inventory Constraints


● The inventory at the offset location during the offset period will be shown as part of
Ending On Hand in the inventory plan output.
● However, the inventory will not be considered while planning for Safety Stock or Max
Stock (as the inventory during the offset period is considered locked at the offset
location, it cannot be used for any other purposes, including SS/MS or Target Stock).
● In case of Safety Stock or Max Stock WOS, the offset period will be used to shift the
WOS move-in period.

Time Varying Activity Lead Time


Business Need
The semiconductor industry typically has a ‘process lead time improvement plan’ from the
process engineering, which has to be applied in the weekly or daily supply planning. This means
that the lead time of a process or operation can change over time. Currently, the LPS doesn't
support the time varying activity lead time. The requirement is to support the time varying
activity lead time in the LPS.

Functionality Description

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
308
Currently, LPS supports the time varying activity lead time. Both increasing and decreasing
trend of lead time that changes over the time buckets is supported.

Configuration
The following measure needs to be configured to input the time varying activity lead time.
Measure Measure Group Values Granularity Change Default Measure Name
Activity Time Activity Node Number <Activity Node>, If the user wants to use any other
Varying Lead Time Parameters <VersionName>, name apart from the default
Time <Time> measure name, then use the
Measure Activity Time Varying Lead Time
Name Measure Name field in the Activity
tab of LPS UI Config.

Example
Assume the following scenario in a capacity unconstrained run:
● There is a following demand at DC_1 for FG_1
Order Id Bucket Demand Qty
Order_1 W10-2015 100

● Material Supply
Item Location Bucket BOH ER
FG_1 Plant_1 W05-2015 200

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
309
● Activity Lead Time
Activity LeadTime
FG_1 - Shipment via Water from - Plant_1 to DC_1 2

● Time Varying Activity Lead Time


Activity Bucket LeadTime
FG_1 - Shipment via Water from - Plant_1 to DC_1 W01-2015 1
FG_1 - Shipment via Water from - Plant_1 to DC_1 W02-2015 1
FG_1 - Shipment via Water from - Plant_1 to DC_1 W03-2015 1
FG_1 - Shipment via Water from - Plant_1 to DC_1 W07-2015 3
FG_1 - Shipment via Water from - Plant_1 to DC_1 W08-2015 3
FG_1 - Shipment via Water from - Plant_1 to DC_1 W09-2015 3
FG_1 - Shipment via Water from - Plant_1 to DC_1 W10-2015 3
FG_1 - Shipment via Water from - Plant_1 to DC_1 W11-2015 3

● If an activity has a static lead time defined in the Activity Parameters and also
varying Lead Time defined in Time Varying Activity Parameters but only for
certain buckets of the planning horizon and not all buckets in which the activity is
active, then for all buckets where the dynamic/time varying lead time is not
defined, the static LT given would be considered for these buckets.
For example: in the above table, the time varying activity lead time is not defined
for time buckets W04 to W06. Hence, for this period, LT of 2 (static LT) will be
considered.
● Users have to be careful while mixing static & time varying lead times in the
planning horizon. For example: if in the above example, if there’s no static LT
provided by the user, then for W04 to W06, LT of NULL gets converted to zero
LT. However, for W08, since the Time Varying LT provided is 3, leapfrogging
happens (from LT of 0 to LT of 3). Hence, it becomes a data error, thereby
ignoring the Time Varying LT.

● Planning
The demand is planned by consuming the ER supply on JIT. The lead time of distribution
activity is used as 3.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
310
Producing Flow Plans
Activity Material Node Bucket Produced Quantity
FG_1 - Shipment via Water from - FG_1@DC_1 W10-2015 100
Plant_1 to DC_1

Consuming Flow Plans


Activity Material Node Bucket Consumed Quantity
FG_1 - Shipment via Water from - FG_1@Plant_1 W07-2015 100
Plant_1 to DC_1

Limitations
1. Leapfrogging in Increasing Lead Time
Example: Basically any change in activity lead time (ALT) has to be one bucket change.
Bucke 0 1 2 3 4 5 6 7 7 8 9 10 11 12 13 14 15 16 17
t
ALT 0 0 1 1 1 1 2 2 2 3 3 3 3 4 5 5 5 6 6

Bucke 0 1 2 3 4 5 6 7 7 8 9 10 11 12 13 14 15 16 17
t
ALT 7 7 7 6 6 6 6 6 5 5 5 5 5 4 3 3 2 2 1

Bucke 0 1 2 3 4 5 6 7 7 8 9 10 11 12 13 14 15 16 17
t
ALT 0 0 1 1 1 1 2 2 2 3 3 3 2 2 2 1 1 1 0

Invalid Case
Bucke 0 1 2 3 4 5 6 7 7 8 9 10 11 12 13 14 15 16 17
t
LT 0 0 1 1 1 1 3 3 3 3 3 3 4 4 4 4 4 4 4

2. As Time varying lead time Activity is modeled internally by defining multiple activities
with different lead times & start and end dates, the solver does not support move in
across these logical activities i.e., move in can not happen from a zone where lead time
is 4 to a zone where lead time is 3. Also move-in is not supported across zones with the
same lead time but disjoint start & end times.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
311
Example: for an activity with Lead Time 3 start at bucket 4, end bucket 10 and with Lead
Time 3 again start at bucket 20 and end bucket 28, at present move-in is not supported
from 25th to 5th bucket.
3. Time Varying Activity is currently not supported with Telescopic Buckets, i.e., while one
can use this functionality for an activity in a scenario where Telescopic Buckets are
included, one cannot define varying Lead Times for this activity while in the coarser
Telescopic Buckets.

Interaction with WIPs


1. Material/Capacity Consumption WIPs: For consumption WIPs, the lead time
corresponding to the time bucket at which the consumption WIP is defined will be
considered.
2. Production WIPs: For production WIPs, since there’s a one to many relationship
between producing buckets and consumption buckets (multiple consumption buckets
producing into the same production bucket for the same activity), there is a confusion as
to which consumption arc (Lead Time) should be selected. To avoid this confusion, it
has been designed in LPS to always choose the maximum/longest lead time
consumption arc for any Prod WIP for activities with Time Varying Lead Time.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
312
Cutting Stock Solver
Business Need
The cutting-stock problem is the problem of cutting standard-sized pieces of stock material,
such as paper rolls or sheet metal, into pieces of specified sizes while minimizing material
wasted. Industrial applications of cutting-stock problems for high production volumes arise
especially when basic material is produced in large rolls that are further cut into smaller units.
For example:
● In paper and plastic industries
● Production of flat metals like steel or brass
Cutting-stock problems can be classified in several ways. One way is the dimensionality of the
cutting:
● Applications of 1D occur when cutting pipes, cables, and steel bars, paper rolls, cutting
along the width.

● Two-dimensional (2D) problems are encountered in furniture, clothing, and glass


production. When either the master item or the required parts are irregular-shaped (a
situation often encountered in the leather, textile, metals industries). This is referred to
as the nesting problem.

Some of the goals that the customers can have while cutting stock are as follows:
● Loss in material must be minimized while cutting stock, particularly while minimizing
handling high value materials
● Machine capacities need to be utilized handling challenges like changeovers and width

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
313
constraints
● Profitability of demands is important so that we don’t pick orders which are less
profitable when capacities are constrained
● Sometimes the customers are not aware what are optimal sizes of Mother Coils/Jumbo
Rolls that they need for producing with less loss of material

Functionality Description
There are many variants to cutting stock problems and additional constraints arising from
special production constraints due to machinery and process limits.
In current shape and form, the solver caters to a few variants of 1D cutting stock problems and
a few 2D cutting scenarios.
● The Cutting Stock Solver is a new GraphCube plugin.
● A new instance of the solver can be created in the following path:
Workspace>Designer>Rule>Plugin>o9GraphCubePlugins>CuttingStockSolver
● It is written in python and follows an architecture very similar to Linear Programming
Solver.
● It also needs a 3rd party solver like Gurobi at the backend.

● Cost based and unit based optimization flavors are present in the solver. However, both
can’t be used simultaneously.
● It is triggered by Exec Plugin Command just like LPSolver:
exec plugin instance CuttingstockTest1 for Measures {[Demand Quantity]} using scope
([Version].[Version Name].[CurrentWorkingView]) arguments {([Current Time Bucket
Name], "W01-2015"), ([Start Time Bucket Name], "W01-2015"), ([End Time Bucket
Name], "W45-2015"),([LP Solver Name],"GurobiSolver")};

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
314
Configuration

Objectives: There are three objectives visible on the UI. The user can select the objective as
required for their business case. It is recommended to select only one objective.
Cost based Objective

Profit Maximization is a cost based objective, whereas Raw Material Requirement


Minimization and Raw Material Waste Minimization are unit based objectives.
Raw Material Requirement Minimization enables users to make better decisions in RM
procurement and it can be very helpful to determine the optimal qualities of RM.

Data Inputs
The grains of different node components are to be filled out as per the image below:

The following input files have to be uploaded for running the Cutting Stock Solver:
● Demand Inputs (Demand Quantity, Sales Price, Lateness Cost)
● Item Quality Association (Associates an RM or FG with Qualities like Grade, GSM etc)
● Item Node Parameters (Item Properties like width, Surface density,RM Association)
● Inventory (BoH, ER, Inventory Holding Cost)
● Resource Parameters (Machine Constraints like Min Trim, Max Trim, Max Width etc)
● Capacity Availability
The demand properties have granularity as follows:
Item.[Item]*[GraphCube_Attr_Sequence]*[CustomerId]*[OrderID]*[Time]*[Version]

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
315
The measures below are a part of the demand properties:

Measure Type Where to Change on the UI? What does it Mean?

Demand Quantity* Number Demand Qty Measure Name Demand Quantity

Demand BLL Number Demand Build Late Limit Maximum Lateness with
(Default: 0) Measure Name which Demand can be
Satisfied

Sales Price Number Sales Price Measure Name Selling Price/Unit for the
(Default: Demand
NULL)

Late Delivery Number Late Delivery Penalty Cost Later Delivery


Penalty Cost (Default: Measure Name Penalty/Unit/Time Bucket
NULL)

The Quality Node Components are key for the solver.


● For a Paper Industry, it can be MaterialGrade*MaterialGSM.
● For a Metal Industry, it can be Material Grade*Material Thickness.
● Elsewhere, it can be just Material Grade.

ItemQualityAssociation has granularity as follows:


QualityNodeComponents*Item*[GraphCubeAttr_Sequence]*Version

Measure Type Where to Change on the UI? What does it Mean?

ItemQualityAssociation* Boolean Item Quality Association It maps the item to the


(Default:0 Measure Name qualities.
)

ItemNodeParameters are also mandatory inputs for the solver: They have a grain of
Item*GraphCubeAttr_Sequence*Version

Measure Type Where to Change on the UI? What does it Mean?

RMAssociation* Boolean RM Association It tells if a given item is an RM, else


(Default:0) it is considered a FG provided it

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
316
has demand, else it is excluded
from scope of the problem

Item Width* Number Item Width Width of the item

Machine parameters too need to be input for solving the problem.


They have a Grain of:
Version. [Version Name]*QualityNodeParamters*Resource. [MachineID]

The measures in this group are as follows:

Measure Type Where to Change on the UI? What does it Mean?

Resource Consumption Qty Number Capacity Consumption Qty Capacity consumed


Per Per Measure Name for unit output

Min Trim Number Min Trim Measure Name Minimum width of RM


(Default lost while using the
:0) machine

Max Trim Number Max Trim Measure Name Maximum permissible


(Default loss of RM width while
:NULL) using the machine

Min RM Width Number Min RM Width Measure Name Minimum RM width


(Default allowed on the
: NULL) machine

Max RM Width Number Max RM Width Measure Name Maximum RM width


(Default allowed on the
: NULL) machine

Machine capacities need to be input to the solver.


They have a Grain of: Version. [Version Name]*Resource. [MachineID]*[Time]
The capacity measure is as follows:

Measure Type Where to Change on the UI? What does it Mean?

Capacity Availability* Number Time Dep Aval Cap Measure Capacity available in the
(Default: Name given time bucket
NULL)

Inventory inputs, such as BOH and ER are optional inputs (they function very similar to our
existing supply planning solvers).

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
317
The grain for the inputs are as follows: Item*GraphCubeAttr_Sequence*Time

Output Data
After running the Cutting Stock Solver, the following outputs are generated:

Output Measure Group Granularity Included Measures

Demand Fulfillment Report from.[Time]*to.Item.[Item]*[GraphC ● Demand Fulfillment


(Graph) ubeAttr_Sequence]*to.[Customer Quantity
Name]*to.Order.[Order
Name]*to.[Time]*.[Version Name]

Delivery Plan Item.[Item]*Sequence.[Sequence]* ● Total Met on Time


Customer.[Customer ● Total Short Qty
Name]*Order.[Order ● Total Late Quantity
Name]*Time*Version.[Version ● Weighted Late Qty
Name] ● Max Lateness Buckets

Inventory Plan Item.[Item]*Sequence.[Sequence]* ● Beginning oh Hand


Time*Version.[Version Name] ● Ending on Hand

Material Production Plan Item.[Item]*Sequence.[Sequence]* ● Material Production Plan


Time*Pattern.[PatternID]

Material Consumption Plan Item.[Item]*Sequence.[Sequence]* ● Material Consumption


Time*Pattern.[PatternID] Plan

Capacity Consumption Plan Resource.[MachineID]*Time*Patter ● Capacity Consumption


n.[PatternID] Plan

Output Patterns(Graph) Version.[Version ● Output RM Width


Name]*from.Item.[Item]*from.Seque ● FG Width
nce.[Sequence]*to.Item.[Item] ● FG Output Production
to.Sequence.[Sequence]*to. Qty Per Trim Loss
Pattern.[PatternID]

Output Patterns is a new type of output not present in any of our current solvers. All other plans
are part of SCS and LPS too just that the granularities of Cutting Stock solver are slightly
different owing to the uniqueness of the business case.
Output Patterns are indicative of different parameters in a cutting pattern. It has the following
measures (sample output table is shown below) :
● Output RM Width: Since a pattern is done for a specific RM width, for every pattern the
RM mapping has to be specified.
● FG Width: Indicates the width of the FG which is cut by the pattern. One pattern can

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
318
have multiple FGs.
● FG Output Production Qty Per: Indicates the number of pieces of FG cut along the
width of the RM.
● Trim Loss: Indicates the width of the RM wasted for cutting the pattern.

o9 Solutions, Inc. Confidential & Proprietary. Your use of these materials is governed by the terms of your written agreement with o9 Solutions.
All unauthorized use and reproduction or distribution is prohibited.
319

You might also like