Skip to main content
Reference for the checklist service API surface — the entry point for reading, storing, resetting, and applying templates to checklists from Java workflow functions/conditions and from Velocity (LiveReport / wiki pages).
Verify in applicationThis page documents the API surface as captured in the product’s API documentation and source. Method behavior for edge cases not explicitly described below should be verified in the application.

Overview

IChecklistService accessed via a Java PlatformContext lookup from workflow functions/conditions, and via the Velocity $checklistService binding from LiveReport/wiki pages and the checklist form extension

Accessing the service

From Java (workflow functions and conditions)

This is the pattern used internally by the ChecklistUncheckAll workflow function. Use the same lookup in custom workflow IFunction or ICondition implementations that need programmatic access to checklist state.

From Velocity (LiveReport / wiki pages)

The service is exposed directly in the Velocity context as $checklistService — no lookup call is required.
IChecklistService API documentation illustration
LiveReport table fields and querying via Lucene are not confirmedTicket evidence shows users have asked to add checklist progress (for example 1/7 completed) directly as a LiveReport table field, or to query per-item checked-state via a Lucene-style query, and found no direct way to do so. The Velocity access pattern above (parsing the checklist field manually inside a script block) is the confirmed mechanism. Whether checklists can be surfaced as a native LiveReport table column is not currently supported based on available evidence — treat it as a limitation until confirmed otherwise.

Method reference — IChecklistService

All methods below are declared on the IChecklistService interface. Overloads exist per target object type: work item, document (module), test run, and plan — although not every method has an overload for every type (see notes).

parse — full signature list

Test run and plan overloads confirmed directly in the interface sourceThe published IChecklistService API article lists only the IWorkItem / WorkItem / IModule overloads of parse. Confirmed directly from IChecklistService.java: parse also exists for ITestRun and IPlan targets, each merging in the target’s own template (test run template via the test run’s template test run; plan template via the plan’s template plan). The field parameter identifies which field on the target stores the checklist markup.

store — full signature list

Test run and plan overloads confirmed directly in the interface sourceConfirmed directly from IChecklistService.java: both the Checklist-typed and raw-String-typed store overloads exist for ITestRun and IPlan, in addition to IWorkItem/WorkItem/IModule.

applyTempate — full signature list

Merge semantics confirmed — not destructiveConfirmed directly from ChecklistService.java: every applyTempate overload is implemented as store(parse(target, field), target, field) — it re-parses the field (which merges the template into the currently stored content, exactly like a normal parse call — see Template Merge Behavior) and immediately persists the merged result. Calling applyTempate on a field that already has data does not discard existing progress: items matched by id keep their recorded result, while label/mandatory/description are refreshed from the template. This is different from reset below, which discards all existing content unconditionally.

reset — full signature list

Destructive actionResetting a checklist re-parses the template content and saves it, discarding any current checklist progress on that field. There is no undo.

getChecklistConf — full signature list

Test run and plan overloads confirmed directly in the interface sourceConfirmed directly from IChecklistService.java and ChecklistService.java: getChecklistConf has dedicated ITestRun and IPlan overloads, each computing readonly/adminPermission from that target’s own permission check (testRun.can().modify() / plan.can().modify()) rather than the work item path’s license-authorization check.

Worked example — Java workflow function

The ChecklistUncheckAll workflow function demonstrates the full lookup → parse → mutate → store cycle. Its target resolution — context.getTarget() plus an instanceof branch per type — is the same pattern used by every checklist workflow function/condition (see Workflow Functions and Conditions):
Work item, document, and test run — not planChecklistUncheckAll (like the other workflow functions/conditions on the Workflow Functions and Conditions page) branches on IWorkItem, IModule, and ITestRun only — there is no IPlan branch, so it is not available as a workflow action on plan transitions.
Pattern to reuse in custom workflow functionsTicket evidence confirms a similar pattern for a custom use case: call checklistService.parse(wi, "dod") to get a Checklist object, iterate ChecklistItem.checked and ChecklistItem.label on its items (for example to create follow-up tasks from checked items), then call checklistService.reset() on the work item or module when the checklist needs clearing as part of the same function.

Worked example — Velocity on a LiveReport or wiki page

This queries a single work item, parses its dor checklist field, and renders each item’s checked state, label, and note.

Related rendering entry point — checklist form extension

The checklist form extension (the form widget shown on a work item) is wired to IChecklistService internally: it calls parse to read the current checklist state, and getChecklistConf to read the configuration that controls how the widget behaves and renders. The form extension always reflects the current stored checklist state on render — it is a live read, not a cached snapshot.
Full extension-tag attributes documented in the setup guideThe full <extension> tag — including the id (extension implementation ID, e.g. ChecklistFormExtension) and label (display heading) attributes alongside checklistId — is documented with a worked example in Set Up a Work Item Checklist, not repeated here to avoid duplication.

Known limitations

  • LiveReport table field / column integration for checklist progress is not confirmed as supported. Users have asked for a way to show progress (e.g., 1/7 completed) as a LiveReport table field without writing a Velocity script; no such built-in field is evidenced in the gathered context. The Velocity scripting approach shown above is the confirmed workaround.
  • Direct Lucene-style querying of individual checklist item checked-state is not confirmed as supported. Per-item state must be read by parsing the field via IChecklistService.parse in a script, not via a query filter.
  • Access to IChecklistService from scripted JavaScript workflow conditions is not confirmed. Ticket evidence shows a user asking specifically whether the service can be reached from a JavaScript-based workflow condition (as opposed to VTL or Java). Only Java (via PlatformContext.getPlatform().lookupService) and Velocity (via $checklistService) access are confirmed by the gathered context.

See also

KB Articles
  • IChecklistService API Documentation
  • Assign notes to checklist items
  • How to create checklist template?
Support TicketsSource Code
  • proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/internal/ChecklistFormExtension.java
  • proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/internal/ChecklistService.java
  • proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/baselines/BaselinesView.java
  • proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/Checklist.java
  • proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/IChecklistService.java
  • proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/ChecklistView.java
  • proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/DocumentChecklistView.java
  • proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/wf/ChecklistUncheckAll.java
Last modified on August 31, 2026