Skip to main content

1. load_data — Data Loading

Mode: Both · Category: Data Retrieval

The primary tool for loading data from the knowledge model. It operates in two distinct modes:

  • Intelligent mode (no columns): The LLM dynamically picks columns, filters, ordering, and limit at runtime.

  • Custom mode (columns set): The entire query is pre-configured — columns, filters, ordering, and limit are all defined in the YAML. The LLM does not fill any arguments. The only exception is when input_schema is defined: then the LLM fills the declared input variables, which are substituted into ${...} placeholders in columns, filters, ordering, or limit.

You can have multiple load_data instances in one Process Copilot (use unique_id to distinguish them), and you can mix intelligent and custom instances.

- id: load_data

The LLM triggers this tool but fills no arguments. The query is fully defined:

- id: load_data
  unique_id: get_overdue_invoices
  description: >-
    Retrieves overdue invoices with vendor, clearing date, and fiscal year.
    Use when the user asks about overdue or unpaid invoices.
  columns:
    - id: INVOICE.INVOICE_VENDOR_NUMBER_AND_NAME
    - id: INVOICE.INVOICE_CLEARING_DATE_DAY
    - id: INVOICE.INVOICE_FISCAL_YEAR
  limit: 100
- id: load_data
  unique_id: vendor_summary
  description: Retrieves vendor data sorted by name, filtered to fiscal year 2021.
  columns:
    - id: vendors.vendor_name
    - id: INVOICE.INVOICE_CLEARING_DATE_DAY
    - id: KPI_DAYS_PAYABLE_OUTSTANDING
    - pql_template:
        pql: '"BKPF"."MANDT"'
        name: Custom PQL Column
  filters:
    - pql_template:
        pql: "FILTER @fiscal_year_2021;"
        name: Fiscal Year 2021
  orderby:
    - column:
        id: vendors.vendor_name
        ascending: true
  limit: 50

When input_schema is defined, the LLM fills the declared input variables at runtime. These are substituted into ${...} placeholders in columns, filters, or limit:

- id: load_data
  unique_id: get_invoice_by_id
  description: Get invoice details for a specific invoice number.
  columns:
    - id: INVOICES.INVOICE_NUMBER
    - pql_template:
        pql: '"invoices"."Invoice Value"'
        name: Invoice Value
  filters:
    - pql_template:
        pql: FILTER "invoices"."Invoice Number" in ('${invoice_number}')
        name: Invoice Number Filter
  input_schema:
    properties:
      invoice_number:
        description: The invoice number to look up.
- id: load_data # intelligent mode — LLM picks columns freely

- id: load_data
  unique_id: get_overdue_invoices
  description: Retrieves overdue invoices with vendor and clearing date.
  columns:
    - id: INVOICE.INVOICE_VENDOR_NUMBER_AND_NAME
    - id: INVOICE.INVOICE_CLEARING_DATE_DAY
    - id: INVOICE.INVOICE_FISCAL_YEAR
  limit: 100

- id: load_data
  unique_id: get_vendor_summary
  description: Retrieves a vendor overview with company code.
  columns:
    - id: INVOICE.INVOICE_VENDOR_NUMBER_AND_NAME
    - id: INVOICE.INVOICE_FISCAL_YEAR
    - id: INVOICE.INVOICE_COMPANY_CODE_AND_TEXT
  limit: 50
pc_at_load_data.png

Field

Type

Description

columns

list

Column IDs or PQL templates. Setting this activates custom mode.

filters

list

Filter IDs or PQL templates (can use ${input} placeholders).

orderby

list

Ordering rules — each has a column (ID or PQL) and ascending flag.

limit

int or string

Max rows returned. Can be a ${variable} template.

input_schema

object

Defines input variables the LLM fills at runtime (for ${...} placeholders in columns/filters/limit). Without this, the LLM fills no arguments in custom mode.

Each column entry is either {id: "..."} or {pql_template: {pql: "...", name: "..."}}.

Related topics