ores.reporting.report_definition

Table of Contents

The persistent template for a report. Describes what to run, when to run it, and how to handle concurrent executions. Type-specific configuration (e.g. risk parameters) lives in a separate table keyed by report_definition_id.

Lifecycle is managed through the report_definition_lifecycle FSM machine. fsm_state_id points to the current state in ores_dq_fsm_states_tbl.

scheduler_job_id links to ores_scheduler_job_definitions_tbl.id and is set by the scheduler service when the definition is activated (state: active). It is cleared when the definition is suspended or archived.

1. Flags

2. Columns

2.1. id

UUID uniquely identifying this report definition.

2.2. name

Unique name for the report definition within a party.

std::string(faker::word::noun()) + "_report"

2.3. party_id

Party that owns this report definition.

ctx.generate_uuid()

2.4. description

Human-readable description of the report.

std::string(faker::lorem::sentence())

2.5. report_type

Report type code (FK to ores_reporting_report_types_tbl).

std::string("risk")

2.6. fsm_state_id

Current FSM state (FK to ores_dq_fsm_states_tbl). Null until first activation.

std::nullopt

2.7. schedule_expression

Validated cron expression driving report recurrence.

std::string("0 6 * * 1")

2.8. concurrency_policy

Concurrency policy code (FK to ores_reporting_concurrency_policies_tbl).

std::string("skip")

2.9. scheduler_job_id

Scheduler job UUID (FK to ores_scheduler_job_definitions_tbl). Present only when status is active.

std::nullopt

3. SQL

3.1. Flags

4. C++

4.1. Flags

4.2. Repository

4.3. Domain includes

#include <optional>
#include <string>
#include <boost/uuid/uuid.hpp>

4.4. Entity includes

#include <optional>
#include <string>
#include "sqlgen/Timestamp.hpp"
#include <boost/uuid/uuid.hpp>

4.5. Conventions

4.6. Table display

column header
id ID
name Name
report_type Type
modified_by Modified By
version Version

4.7. Presentation

4.7.1. Detail fields

field label widget type is_key is_required placeholder
name Name nameEdit line_edit true true Enter report definition name
description Description descriptionEdit text_edit     Enter a description
report_type Report Type reportTypeEdit line_edit   true e.g. risk
schedule_expression Schedule (cron) scheduleExpressionEdit line_edit   true e.g. 0 6 * * 1
concurrency_policy Concurrency Policy concurrencyPolicyEdit line_edit   true e.g. skip

4.7.2. Columns

enum_name field header type width
Name name Name string 200
ReportType report_type Type string 100
ScheduleExpression schedule_expression Schedule string 150
ConcurrencyPolicy concurrency_policy Concurrency string 100
Version version Version int 60
ModifiedBy modified_by Modified By string 120

4.8. Custom repository methods

5. See also

Emacs 29.3 (Org mode 9.6.15)