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