Skip to main content

Celonis Product Documentation

KM - Records

Introduction to Records
Why do they exist?

Records contain all the domain and use-case-specific data. For instance, an Execution App in the domain of Accounting will typically have a Record for invoices. An Execution App in Customer Support typically has a Record for support tickets.

What do they do?

Records are derived from tables in a Data Model (DM) but have an additional layer of abstraction. In comparison, a DM table contains the actual data instances in a certain schema (Data Model Layer), whereas a Record features more powerful modeling capabilities such as human-readable annotations (e.g. Display Name and Description) as well as Augmented Attributes.

How are they used?

Records and attributes are frequently used in tables, action flows, skills, and in many other components.

Record Visual Editor

How do they look?

When looking at the KM listing Record objects, you can see the following information:

  1. Name

    Shows the human-readable Display Name of each Record.

  2. Source

    This column gives an overview of where the Record was originally defined. Possible options are:

    1. Base.

    2. Base - overwritten.

    3. Auto-generated.

    4. Auto-generated - overwritten.

    5. Custom added.

  3. Record Items

    Short overview of Record Items. Click to unfold a detailed overview.

  4. Record Items Detailed Overview

    A list of all associated Record Items. These can be Attributes, Augmented Attributes and Flags.

  5. Create Record

    To create a Record, please click the button. The Record Editor will open.

  6. Edit a record

    To edit a Record, hover over the Record and click ‘edit’. The Record Editor will open. Next to the fields you know from the section above, it also gives more information on the identifier, and associated Record Items like Attributes, Augmented Attributes and Flags.

  7. Add Attribute/Augmented Attribute / Flag

    For a detailed overview please check the following sections.

57542390.png
YAML
Introduction to Records in YAML

Attributes in YAML

Attribute declaration for Records in YAML follows this format:

records:
  - id: "INVOICE"
    displayName: "invoice ID"
    pql: "BKPF.MANDT || BKPF.BUKRS"
        attributes: []

Augmented Attributes

Attribute declaration for Records in YAML follows this format:

records:
  - id: "INVOICE"
    newAttributes:
          - id: STATUS
        displayName: Status
        columnType: string
        possibleValues:
          - OPEN
          - IN_PROGRESS
          - CLOSED
        defaultValue: OPEN

Flags

Flags in YAML follow the format below. On the code block, you can see a flag for short payment terms for an invoice record. Using PQL, the flag gets defined. Record attributes such as the vendor's name can be defined as the root cause feature of a flag.

records:
  - id: "INVOICE"
        flags:
      - id: SHORT_PAYMENT_TERMS
                displayName: Short Payment Terms (< 15 days)
                pql: DAYS_BETWEEN  ( ROUND_DAY("BKPF"."BLDAT") ,
                PU_LAST(BSEG,ROUND_DAY("_CEL_AP_ACTIVITIES"."EVENTTIME"),
                "_CEL_AP_ACTIVITIES"."ACTIVITY_EN"=  'Due Date passed' )) 
                < 15 AND DAYS_BETWEEN  ( ROUND_DAY("BKPF"."BLDAT") ,
                PU_LAST(BSEG,ROUND_DAY("_CEL_AP_ACTIVITIES"."EVENTTIME"),
                "_CEL_AP_ACTIVITIES"."ACTIVITY_EN"=  'Due Date passed' )) >= 0
Defining Records

A record configuration can range from a simple PQL Query to an advanced, customized scheme to retrieve and provide information.

- id: INVOICE
  displayName: Invoice
  description: ""
  pql: BKPF
  identifier:
    - id: CASE_KEY_ID
      displayName: Identifier
      description: ""
      pql: '"BKPF"."MANDT"'
  attributes:
    - id: Client_ID
      displayName: client_id
      description: ""
      pql: '"BKPF"."MANDT"'
      columnType: INTEGER
      unit: ""
      format: ""
  augmentedAttributes:
    - id: STATUS
      displayName: Invoice Status
      description: ""
      columnType: STRING
      possibleValues:
        - OPEN
        - IN_PROGRESS
        - CLOSED
      defaultValue: OPEN
      unit: ""
      format: ""
  flags:
    - id: LOW_INVOICE_VALUE
      displayName: Low Invoice Value
      description: ""
      pql: DAYS_BETWEEN  ( ROUND_DAY("BKPF"."BLDAT") ,
            PU_LAST(BSEG,ROUND_DAY("_CEL_AP_ACTIVITIES"."EVENTTIME"),
            "_CEL_AP_ACTIVITIES"."ACTIVITY_EN"=  'Due Date passed' ))
            < 15 AND DAYS_BETWEEN  ( ROUND_DAY("BKPF"."BLDAT") ,
            PU_LAST(BSEG,ROUND_DAY("_CEL_AP_ACTIVITIES"."EVENTTIME"),
            "_CEL_AP_ACTIVITIES"."ACTIVITY_EN"=  'Due Date passed' )) >= 0

Let's have a more detailed look at the attributes

Field name

Description

id

Defines the id of the record, needs to be unique.

displayName

Defines the name of the record, should be descriptive.

description

Possibility to add a short description of the record.

pql

Here the PQL query gets defined, see here PQL Function Library .

identifier

Defines which element gets used as a unique identifier of the record consists of:

  • id

  • displayName

  • description (optional)

  • PQL

attributes

Defines attributes of the record using PQL queries, consists of:

  • id

  • displayName

  • description (optional)

  • PQL

  • columnType

  • unit and format (optional)

unit

Defines the unit of the attribute (e.g. $).

format

Defines the format of the attribute, see format documentation here.

augmentedAttributes

Defines advanced attributes of a record that go beyond querying information from the data model, consists of:

  • id

  • displayName

  • description (optional)

  • columnType

  • unit and format (optional)

  • possibleValues

  • defaultValue

flags

A flag is an attribute of a Record. This flag can then be called by an Anomaly. Consists of:

  • id

  • displayName

  • description (optional)

  • pql