Skip to main content

Celonis Product Documentation

KM - Custom Objects / Custom Attributes

Introduction to Custom Objects

If the above-mentioned KM objects are not enough there is the possibility to define custom objects. Currently, this can only be done in YAML. Custom objects can only be used when the View components know how to read them. Anything else defined inside custom objects is limited to the KM and cannot be accessed by any other external asset.

Custom Objects make use of customAttributes which can hold arbitrary information. As mentioned above, this information can only be accessed if external components know how to read them.

Here is a list of custom objects which are supported and can be read from external components like views.

Display Rules

Display Rules are a shared component that can be used inside View components to create visual styling for the content. Display Rules are defined in the Knowledge Model as a Custom Object and can be called by components of a View.

Components that can apply Display Rules are:

  • KPI List.

  • KPI Bowler.

  • Table.

  • Attibute.

Example

customObjects: 
  - id: DISPLAY_RULE
    displayName: Display rule
    customAttributes:
    # comparator is used to compare value from ``DISPLAY_RULE.customAttributes.value`` to the value from PQL
    - comparator: GREATER_THAN_OR_EQUAL
      # value to compare
      value: 1000 #In case you use the comparator BETWEEN you would define the value as following 'value: [ 8, 15 ]'
      # styles to change cell appearance
      style:
        textColor: red # CSS color or HEX code
        backgroundColor: black
        fontSize: 16px
        fontItalic: true
        fontWeight: bold

See supported color examples here.

Dropdown Item Component and Breakdown Components

Dropdown Item Components can be used to define breakdown items for your dropdown.

More info can be found here.

Example

customObjects: 
  - id: TIME_DROPDOWN
    displayName: Time Dropdown
    customAttributes:
      list:
        - name: DAY
        - name: WEEK
        - name: MONTH

Breakdown Components define dimensions that are displayed above the table in a KPI Bowler. The user can then toggle between the different attributes defined in the custom attribute.

Example

customObjects: 
  - id: DIMENSIONS
    displayName: Dimensions
    customAttributes:
      columns:
        - id: TOTAL_NUMBER_OF_INVOICES
        - id: TOTAL_NUMBER_OF_INVOICES_2
        - id: COUNT_ACTIVITIES
        - id: COUNT_USERS
Priority Switcher

The tool Priority Switcher allows to set a Priority KPI as a company or department goal and pass it over as input for other components, e.g. to sort tasks and actions. As an example, task lists can be sorted according to the main objective to optimize towards. This objective is defined in form of a KPI that should change over time to a certain direction.

If the Priority Switcher is implemented in a View, it is displayed next to the Title of the View.

In the priorities section of your record, add one or arbitrary priorities. Make sure that you are connecting the priority to an existing KPI. This link makes sure that the priority icon is displayed on a KPI. In case you don't want this link, you can enter a dummy KPI.

Example

records:
  - id: INVOICE
    displayName: Invoice
    priorities:
    - id: CASH_DISCOUNT_PRIORITIZATION
      displayName: Cash Discount
      pql: CASE WHEN "BSEG"."BELNR" IN ('0120205969', '9330002454', '5110056998',
            '5110055916', '5110055917', '5110052424', '5110056999', '5110052423')
            THEN 'Urgent' WHEN DAYS_BETWEEN(TO_TIMESTAMP(  '10012020'
            ,'MMDDYYYY'), ADD_MONTHS(PU_MIN("BSEG",
            "_CEL_AP_ACTIVITIES"."EVENTTIME", "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" =
            'Cash Discount Due Date passed'),6)) < 0 THEN 'Low' WHEN
            DAYS_BETWEEN(TO_TIMESTAMP(  '10012020' ,'MMDDYYYY'),
            ADD_MONTHS(PU_MIN("BSEG", "_CEL_AP_ACTIVITIES"."EVENTTIME",
            "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" = 'Cash Discount Due Date
            passed'),6)) < 5 AND DAYS_BETWEEN(TO_TIMESTAMP(  '10012020'
            ,'MMDDYYYY'), ADD_MONTHS(PU_MIN("BSEG",
            "_CEL_AP_ACTIVITIES"."EVENTTIME", "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" =
            'Cash Discount Due Date passed'),6)) >= 0 THEN 'Low' ELSE 'Medium' END
      kpi: LOST_CASH_DISCOUNT

KPIs need to be activated to be displayed in the Priority Switcher. To do this, add the customAttribute "active: true". This will make the KPI selectable in the priority switcher.

Example

kpis:
  - id: LOST_CASH_DISCOUNT
    displayName: Lost Cash Discount
    customAttributes:
        absoluteCalculation: true
        active: true #required Defines if the KPI should be considered by the Priority Switcher
    pql: ( SUM(CASE WHEN MONTH("BKPF"."CPUDT") = 4 THEN "BSEG"."SKFBT_CONVERTED" *
        "BSEG"."ZBD1P"*1.1 * 0.01 ELSE "BSEG"."SKFBT_CONVERTED" *
        "BSEG"."ZBD1P"*0.01 END) - SUM(CASE WHEN "BSEG"."ZBD1P" > 0 AND
        "BSEG"."SKFBT_CONVERTED" > 0 THEN  "BSEG"."SKNTO_CONVERTED" ELSE NULL END)
        ) * 2
    filterIds: []
    format: $.3s
    breakdowns: []
    aggregations: []
    parameters: []
    desiredDirection: DECREASE
    priority: false
    type: KPI
Recommendation List

Use the "Recommendation" component on Views to list out different recommendations on how to improve a KPI. Details about the recommended improvement measures can be provided in Profile Views.

Recommendation List Components are defined in the customAttribute section in KPIs.

More info can be found here.

Example

kpis: 
  - id: TOTAL_REVENUE
        displayName: Total Revenue
        customAttributes:
        recommendations:
          - id: RECOMMANDATION_REVENUE
                displayName: High volume of outstanding order shipments
                filter: CASE WHEN 1=1 THEN 1 ELSE 0 END
                firstKpi: null
                secondKpi: null
                process: RM
          - id: RECOMMANDATION_REVENUE_2
                displayName: High inventory for low-demand products
                filter: CASE WHEN 1=1 THEN 1 ELSE 0 END
                firstKpi: null
                secondKpi: null
                process: RM