Full manual diffs (L15, C20, E30, L25, J40, C10 §2, L10, P10, P11, J20, C30, P20, R40, E10) and read-only checks on the shared R1.05 test server. Skills and summaries moved to R1.05; new skill pytools (IM 36K10P40) from docs (no Python on the test server). Issues ISS-132..181; corrections to version-differences (E10, E30, P11, dss_ath_grp_u0104); C10 summary lists the 3 new authorization actions; r105-verification V10-V17. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
85 lines
5.8 KiB
Markdown
85 lines
5.8 KiB
Markdown
---
|
||
manual: IM 36K10R40-01EN
|
||
title: Report Server Setup
|
||
edition: 4th Edition, Feb. 2026 (R1.05); content unchanged since the 3rd Edition, Sep. 2023 (R1.03): the revision table lists contact information only; the full text diff found only wording in §1 ("block", "REPORT Service" for "RPT")
|
||
version: R1.05 (first written for R1.03)
|
||
status: R1.03: processes, start/stop scripts, rptman.sup and the generator set-up files checked; interactive generator and rptstp verified 2026-10-01. R1.05 test server (2026-10-09, read-only): processes, rptman.sup and .rpt files (identical to R1.03), start/stop scripts (new extension-script call) and the interactive generator verified; rptstp not re-tested. Separate server processes, extra generators and custom destinations from docs
|
||
---
|
||
|
||
# Report Server Setup (R1.05)
|
||
|
||
How REPORT Service is built and configured. Writing reports: `IM36K10P20-01EN.md` (RQL) and
|
||
`IM36K10C30-01EN.md` (Engineering Module). Section numbers refer to the manual.
|
||
|
||
## 1. Parts (§1)
|
||
|
||
| Block | Process | Job |
|
||
|---|---|---|
|
||
| Manager | `RPTMAN` | Stores report definitions, schedules (through HISTORY Service), event triggers and ad-hoc requests; hands generation to a generator; manages generated reports |
|
||
| Generator | `RPTGE1` (executable `rptgen`) | Runs the RQL of a report and writes the result; ad-hoc queries use copies of the generator |
|
||
| Report stopper | `rptstp <generator>…` | Cancels the report a generator is working on |
|
||
| Info servers (RPI) | `rpidic`, `rpidis` (DSS dictionary), `rpidix` (DSS data), `rpifil`, `rpiitm`, `rpihis`, `rpialm`, `rpievt`, `rpiopc`, `rpicif` | Fetch data for the generator; **linked into the generator by default** — separate processes only when the data lives on another node |
|
||
|
||
Default layout (installed): one node, servers linked into `rptgen`; `report_start.cmd` (in
|
||
`tls\com`) refuses to start when HISTORY Service is not running, then starts `rptman` and
|
||
`rptgen -n rptge1`. The separate `rpi*` lines and a second generator (`rptge2`) and `rptgsp`
|
||
are present but commented out. `report_stop.cmd` stops `rpt*` and `rpi*` with `durstp`.
|
||
**R1.05 (installed, not in the manual):** `report_start.cmd` finally calls every
|
||
`tls\com\?*_report_start.cmd`, and `report_stop.cmd` first calls every `?*_report_stop.cmd`
|
||
(extension scripts, ISS-121); otherwise unchanged. `rptman.sup`, `rptge1.rpt`, `rptgen.rpt` and
|
||
`rptgsp.rpt` are byte-identical to R1.03 (verified 2026-10-08/09).
|
||
Full functionality needs BUS, DATABASE, HISTORY, ITEM, AUDIT, PROCESS Services and INTEGRATION.
|
||
|
||
## 2. Setup files (§2.2)
|
||
|
||
- `tls\sup\rptman.sup` (manager): `HIS = <node>, <name>, <task>` (default `0, HIS, 0`),
|
||
`DUR_QUEUE_SIZE` (500 KB). `FPATH`/`SPATH` are not used. **Installed:** `his = 0, HIS, 0`,
|
||
`dur_queue_size = 500`. Also present: `rptini.sup` (only a licence-like value, undocumented).
|
||
- Generator set-up descriptions are RQL files with extension `.rpt`, named after the instance:
|
||
- `rptge1.rpt` (background generator) — installed: `@workspace 500`, `@page_size 66`,
|
||
`@width 120`, `@left_margin 1`, `@top_margin 1`, header (line, customer name centred,
|
||
description right, `Report of DD-MMM-YY`, line), footer (line, report name, `page n`, line),
|
||
`dictionary rpidis.'tlsdic';`, `login rptman;` (priority 0). Every background report gets
|
||
this layout unless its query overrides it.
|
||
- `rptgen.rpt` (interactive) — no `LOGIN` (that is what makes the generator interactive),
|
||
`@page_size 23`, `@formfeed 0`, `@workspace 100`.
|
||
- `rptgsp.rpt` — a spare generator with `login rptman, 9` (not started by default).
|
||
Documented defaults when a variable is not set: top 3, bottom 6, left/right 0, width 80
|
||
(40–512), page 72 (20–255), sort space 100 KB, workspace 500 KB (C30 and P20 say 16 KB, ISS-047).
|
||
- `DICTIONARY` in the set-up file chooses the dictionary server/node; default `rpidis.'tlsdic'`
|
||
(file `%TLS_DAT_PATH%\tlsdic_dss.dic`).
|
||
|
||
## 3. More generators (§2.4)
|
||
|
||
Add `start /B /NORMAL %TLS_ROOT_PATH%\tls\exe\rptgen -n rptge2` to `report_start.cmd` and a
|
||
`tls\sup\rptge2.rpt` ending with `LOGIN rptman, <p>;`. A generator only takes reports with a
|
||
priority ≥ its own; one generator must keep priority 0. Higher-priority reports are generated
|
||
first. Admin rights and a restart needed (not practiced).
|
||
|
||
## 4. Layout defaults (§3.1, §3.2)
|
||
|
||
Put shared header/footer/margins in the set-up file (or a new `.rpt` given with `-s`).
|
||
`@export 1` gives comma-separated output (for files read by other programs). Memory: `@workspace`
|
||
(strings, records), `@sortspace` (ORDER/GROUP BY; spills to `tls\lst` when too small).
|
||
|
||
## 5. Destinations (§3.3)
|
||
|
||
The Engineering Module offers file, printer and system log destinations; R1.03 adds printer
|
||
management devices and destinations (`IM36K10C30-01EN.md` §3). Adding a new built-in destination
|
||
means changing `rpt_print.c` (not shipped as buildable on the test system), re-linking `rptman`
|
||
and adding a list entry to `report_val.dss` (`dss -d`) — system integrator work, not practiced.
|
||
|
||
## 6. Interactive mode (§4) and stopping (§5)
|
||
|
||
`rptgen -s rptgen.rpt` starts a foreground generator (prompt `RPT>`); end with `QUIT;`. Useful to
|
||
try RQL and inspect datasets without defining a report. `rptstp rptge1` cancels the running
|
||
report of `RPTGE1` (also the *Cancel* button / `REPORT_DF.CANCEL`).
|
||
|
||
**Verified 2026-10-01:** piped input works (`rptgen -s rptgen.rpt < query.rql`), set
|
||
`SET @NEXT 0;` first or every page waits for Enter. `rptstp rptge1` stopped an endless loop
|
||
report within seconds; `GENERATE` went back to 0, an empty generated report was stored, the
|
||
generator stayed running and took the next report normally. Task: skill `reporting`.
|
||
|
||
**Verified on R1.05 (2026-10-09, read-only):** a piped query file starting with
|
||
`SET @NEXT 0; SET @PAGE_SIZE 0;` and ending with `QUIT;` ran and ended normally; `@VERSION` =
|
||
`1.05.00`. `rptstp` not re-tested (shared server).
|