Skip to content

Expose Fields’ custom fields as criteria in “Business rules for tickets” (GLPI 10.0.14 / Fields 1.21.x) #994

@kuesttman

Description

@kuesttman

Summary
Please add support for using Fields’ custom fields as criteria in GLPI’s Administration → Rules → Business rules for tickets.
Today, Fields exposes custom fields in search and forms, and provides an action to update custom fields in rules. However, the same fields are not available as criteria when building Business Rules.

Current behavior

GLPI: 10.0.14

Fields: 1.21.22

In Business rules for tickets → Criteria, only core ticket attributes are available. Fields’ custom fields do not appear.

In Actions, it’s possible to “update additional fields of the ticket”, which suggests partial integration, but the lack of criteria prevents many automations.

Expected behavior

When a Fields container is attached to Ticket and its fields are active, those fields should appear under the Criteria dropdown (with appropriate types: text, number/integer, yes/no, date, dropdown, etc.).

Ideally, criteria should be grouped (e.g., “Fields – ”) and support the same operators as core criteria for the matching datatype.

Why this matters

Many workflows need to trigger actions based on values in Fields (e.g., payment amount/date, internal codes, approval flags), not only set them.

Having these as criteria allows full parity with core attributes and avoids custom code/plugins.

Environment

GLPI 10.0.14 (Docker)

Fields 1.21.22 (installed via Marketplace)

MariaDB 10.x, PHP 8.x

Steps to reproduce

Create a Fields container for Ticket (e.g., ticketpagamentos) with fields like:

valordepagamentofield (integer/number)

datadepagamentofield (date)

Go to Administration → Rules → Business rules for tickets → Add.

In Criteria, look for those fields → they are not listed.

In Actions, “Update additional fields of the ticket” exists → partial support only.

Proposed approach

Dynamically register Fields’ active ticket fields into the criteria list for RuleTicket::getCriterias(), mapping datatypes correctly.

(If needed) Provide an API hook for plugins to extend criteria for existing rule subtypes (Ticket) — something akin to addMoreCriteria() in the Rules API — so Fields can inject its fields without patching core.

References

Rules API / plugin rule collections and criteria/actions: developer docs (see “Rules Engine” and “Add a new Rule class”)
glpi-developer-documentation.readthedocs.io

Hooks around rule processing (e.g., ruleCollectionPrepareInputDataForProcess): developer docs (plugins → hooks)
glpi-developer-documentation.readthedocs.io

Fields plugin docs / repo: overview and capabilities
glpi-plugins.readthedocs.io
GitHub

Thanks for considering! Happy to help test a beta build.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions