Power User - Advanced Course

New sections added in March 2022:

  • Settings Service (UX placeholders used in hierarchy context, Nested UX placeholders)
1. Advanced TI integration

As an example for the advanced TI integration module, we will use the "}bedrock.cube.data.export" TI process.

Create a new Dashboard, called TI integration and publish it. Change the widget type from Grid to TI Process.

1.1. Basic TI setup

Click on the settings icon and then select Process Config option:

  • Set Embed in Page to Yes
  • Select UX_Samples from the Instance drop-down list
  • Select }bedrock.cube.data.export from the Process Name drop-down list

This configuration will already show all the parameters of the process in the webform.

1.2. Advanced TI settings

To make the results even friendlier to the users we can add additional code for the parameters.

Inside the "parameters" tag we can add additional config options, in order to set default values and hide specific parameters. Additionally, we can assign check boxes and subsets.

Here is the configuration we can use to make the process easier to us.

Below you can also find, in the attached file, the complete TI setup.

"parameters": {
      "pLogoutput": {
        "hidden": true,
        "value": 0
      },
      "pCube": {
        "label": "Cube Name",
        "type": "subnm",
        "instance": "UX_Samples",
        "dimension": "}Cubes",
        "tm1Mdx": "{ [}Cubes].[}Cubes].Members }",
        "tm1Attribute": ""
      },
      "pView": {
        "hidden": true
      },
      "pFilter": {
        "hidden": true
      },
      "pFilterParallel": {
        "hidden": true
      },
      "pParallelThreads": {
        "hidden": true,
        "value": 0
      },
      "pDimDelim": {
        "label": "Dimension Delimiter",
        "disabled": true,
        "value": "&"
      },
      "pEleStartDelim": {
        "label": "Element Start Delimiter",
        "disabled": true,
        "value": ":"
      },
      "pEleDelim": {
        "label": "Element Delimiter",
        "disabled": true,
        "value": "+"
      },
      "pSuppressZero": {
        "label": "Suppress Zero",
        "type": "checkbox",
        "trueValue": 1,
        "falseValue": 0
      },
      "pSuppressConsol": {
        "label": "Suppress consolidation",
        "type": "checkbox",
        "trueValue": 1,
        "falseValue": 0
      },
      "pSuppressRules": {
        "label": "Suppress rules",
        "type": "checkbox",
        "trueValue": 1,
        "falseValue": 0
      },
      "pZeroSource": {
        "label": "Clear Source Data",
        "type": "checkbox",
        "trueValue": 1,
        "falseValue": 0
      },
      "pCubeLogging": {
        "label": "Cube Logging",
        "type": "checkbox",
        "trueValue": 1,
        "falseValue": 0
      },
      "pTemp": {
        "label": "Use Temp Views",
        "type": "checkbox",
        "trueValue": 1,
        "falseValue": 0
      },
      "pFilePath": {
        "label": "File Path",
        "disabled": true,
        "value": "C:\\"
      },
      "pFileName": {
        "label": "File Name",
        "type": "input"
      },
      "pDelim": {
        "label": "File delimiter",
        "disabled": true,
        "value": ","
      },
      "pQuote": {
        "label": "File quote",
        "disabled": true,
        "value": "\""
      },
      "pTitleRecord": {
        "label": "Title Records",
        "disabled": true,
        "value": "1"
      },
      "pSandbox": {
        "hidden": true
      }
    },
Click to copy

1.2.1. TI Process configuration using new Advanced Options GUI

Parameters configuration is available in the dedicated tab: Process Parameters.

1.2.1.1. Hide specific parameters
1.2.1.2. Add labels
1.2.1.3. Disable parameters
1.2.1.4. Add default value
1.2.1.5. Configure subnm selection
1.2.1.6. Change the parameter type to checkbox

Final result should look like this:

2. Settings Service (new section, March 2022)
2.1. UX placeholders used in hierarchy context

This functionality allows users to dynamically define a dimension hierarchy using a placeholder. After clicking Select button the Hierarchy dropdown list will be changed to text box to enable placeholder input. 

To showcase this example we will create new view:

  • Select Add public... option inside App Templates - Views folder 
  • Do the following configuration inside the popup: 
    • Add view title e.g. Dynamic hierarchy
    • Change the Cube Source by selecting Retail from the dropdown list
    • Click Create button 

Publish the view.

Next, we are going to set up the view: 

  • Open cube settings popup 
  • Drag and drop: 
    • Version, Year, Region to Global filters 
    • Currency and Retail Measure to Global fixed settings 
    • Period to Row Dimensions 
    • Product to Column Dimensions
  •  Configure the Dimensions: 
    • Version, Year, Region: Default subset, Code and Description attribute
    • Currency: Local fixed value 
    • Retail Measure: Sales Amount fixed value 
    • Period: Default subset, Short Description attribute  

Now we will set up Product dimension to dynamically change  based on the hierarchy selected:

  • Click Add Dimension (+ icon) button in Global Settings section 
  • Choose Product from the list 
  • Click Add Dimension button 
  • Click Add button again 
  • Set Control objects option to Yes 
  • Choose }Hierarchies_Product from the list 
  • Click Add Dimension button
  • Select }Hierarchies_Product dimension 
    • Open Subset Editor 
    • Click All button
    • Select Product:Color and Product:Size
    • Click Apply 
  • Select Product global filter dimension
    • Click Select button visible above Hierarchy dropdown list 
    • In the editable text box input UX Placeholder: $<<UX_Demo.}Hierarchies_Product.}Hierarchies_Product>>
    • Change the list type to MDX  
  • Select Product dimension added in columns
    • Add the same placeholder in the Hierarchy text box
    • Change the list type to MDX  
  • Close the cube settings popup 
  • Change }Hierarchies_Product filter to Product:Size and back to Product:Color

Notice how Product dimension hierarchy dynamically updated in global filter as well as in columns. Save the changes. 

This configuration will work for global filters as well as for dimensions selected in rows or columns.  

2.2. Nested UX placeholders

We will use the view configured in the previous exercise to practice how can we add nested UX placeholders. 

In this example the selection will be even more dynamic, both filters are configurated the same way as in previous case, but the MDX changes were made for the Product dimension added in columns.

We need to do only one change in the view configuration:

  • Open cube settings 
  • Select Product dimension added in columns
    • Change the MDX query to:
{[Product].[$<<UX_Demo.}Hierarchies_Product.}Hierarchies_Product>>].[$<<UX_Demo.Product.$<<UX_Demo.}Hierarchies_Product.}Hierarchies_Product>>>>]}
Click to copy
  • Close the cube settings popup 
  • Select element from Product global filter and notice how the column element dynamically updated
  • Change }Hierarchies_Product filter to Product:Size and select different Product element
  • Save the changes 

Above example shows that by nesting two UX placeholder statements within each other users can not only define dynamic element selection based on filters, but also dimension hierarchy.  

MDX details:

{[Product].

  • product dimension

[$<<UX_Demo.}Hierarchies_Product.}Hierarchies_Product>>].

  • dynamic hierarchy based on the global filter selection

[$<<UX_Demo.Product.$<<UX_Demo.}Hierarchies_Product.}Hierarchies_Product>>>>]} 

  • nested UX placeholder enabling to select element from Product dimension even when its hierarchy is changing dynamically
3. Advanced MDX

Advanced MDX techniques can be used everywhere in the Apliqo UX tool.

In the following example, we are going to check a few of the most common MDX queries that can be used to improve the functionality and the user experience of the Apliqo UX applications.

3.2. Filtering displayed elements

The next example will allow us to see only filtered Region elements on the columns based on their value in the selected cube. 

To showcase this, we will create a new view, called "MDX - Filtering displayed elements". Select the "General Ledger_C3UX" as the source cube for this view.

Setup the dimensions as shown in the following picture: 

  • For Department dimension select Element List Type, Code and Description Attribute and Corporate Element 
  • For Region dimension select MDX List Type and Code and Description Attribute

Select Region dimension and in the MDX text box paste following query: 

{
  Filter( 
    { TM1SubsetAll ( [Region] ) }
    , [General Ledger_C3UX].(
          [Version].[$<<UX_Demo.Version.Version>>],
          [T Year-Month].[2012],
          [Currency].[Local],
          [Region].CurrentMember,
          [Department].[Corporate],
          [Account].[$<<UX_Demo.Account.Account>>],
          [General Ledger Measure].[Amount]
        )
        > 1000000 ) 
}
Click to copy
3.2.1. Additional information about used MDX
  • Filter all the elements from the Region dimension: 

Filter( { TM1SubsetAll ( [Region] ) }

  • Filter all elements based on their value in General Ledger_C3UX cube: 

[General Ledger_C3UX].([Version].[$<<UX_Demo.Version.Version>>],[T Year-Month].[2012],[Currency].[Local],[Region].CurrentMember, [Department].[Corporate],[Account].[$<<UX_Demo.Account.Account>>],[General Ledger Measure].[Amount])

UX Placeholders ($<<Insatnce.Dimension.Hierarchy>>) were added to enable the dynamic change of selected elements.

  • Filter values bigger that 1,000,000: 

> 1000000 )

Close the cube setting and change the Version & Account global filter and observe how the displayed elements change based on their value: 

4. Advanced Chart options

The High-Charts API provides the flexibility to customize the charts in many ways.

Here are a few examples of how to customize the Apliqo UX charts in an advanced way (picture and code attached).

Here you can find more info about the High-Charts API

4.1. Horizontal Waterfall
4.2. Advanced Line chart options
4.3. Gauge charts
4.4. Pie chart customization

0 Comments

Add your comment

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.