diff --git a/.claude/skills/reporting/SKILL.md b/.claude/skills/reporting/SKILL.md index d3b083f..6c58019 100644 --- a/.claude/skills/reporting/SKILL.md +++ b/.claude/skills/reporting/SKILL.md @@ -38,7 +38,7 @@ Rules: |---|---|---| | Check REPORT Service: processes, set-up files, system reports, stop a hanging report (`rptstp`) | `tasks/report-checks.md` | verified | | Try RQL in the interactive generator (`rptgen -s rptgen.rpt`), CSV with `SPOOL` | `tasks/rql-interactive.md` | verified | -| Define reports by quick load (ad hoc with parameters, schedule, item trigger, HTML, logbook); generate, read, print, delete; remove | `tasks/define-reports.md` | verified (command line); Engineering Module forms awaiting the user's check | +| Define reports by quick load (ad hoc with parameters, schedule, item trigger, HTML, logbook); generate, read, print, delete; remove | `tasks/define-reports.md` | verified (command line and Engineering Module) | | Report output to a file: printer device and destination | `tasks/output-devices.md` | verified | | Report component on a display; Operator Interface generate/view | C30 summary §5 | from docs | | Hardcopy printers, application devices, more generators, separate RPI servers | C30 summary §3, R40 summary §1, §3 | from docs | diff --git a/.claude/skills/reporting/tasks/define-reports.md b/.claude/skills/reporting/tasks/define-reports.md index 9f2f768..8714967 100644 --- a/.claude/skills/reporting/tasks/define-reports.md +++ b/.claude/skills/reporting/tasks/define-reports.md @@ -2,7 +2,7 @@ task: Define reports by quick load (ad hoc with parameters, schedule, item trigger, HTML, logbook); generate, read, print and delete generated reports; remove reports version: R1.03 source: IM 36K10C30-01EN §2.1, §2.3.1, §3, App. 1; IM 36K10L50-01EN App. 1 (REPORT_DF, REPORT_VAL); IM 36K10P20-01EN; practiced on CI-Eng-Sample 2026-10-01 -status: verified (command line); Engineering Module forms awaiting the user's check +status: verified --- # Define and run reports @@ -127,6 +127,14 @@ NAME,ACTIVATION_TIME,GENERATION_INTERVAL `CIENG_TANK1` (parameter `[ITEM:…]`, daily 06:00 with `CORRECT_DAYLIGHT` 1, ad-hoc destination), `CIENG_INFLOW_HI` (trigger `TANK1.INFLOW` > 400, delay 5 s) and `CIENG_HTML` (cursor loop, HTML, logbook) loaded, generated (ad hoc with `@P0` = `TANK1.INFLOW`, by trigger 5 s after the write, by -schedule), read, printed to `CIENG_FILE`, deleted; full sample remove/reload with 0 errors. Not yet -checked by the user: the same reports in the Engineering Module forms (generate dialog with the -item pick list, *View* of the HTML report). +schedule), read, printed to `CIENG_FILE`, deleted; full sample remove/reload with 0 errors. + +Engineering Module (checked by the user 2026-10-01): the forms show the loaded fields (General: +*Report destination* = `DEST_NAME`, no field for `ADHOC_DEST`; Query with Structure / Keywords / +Datasets panes; Time scheduling with *Correct for daylight saving*; Item triggering). Right-click › +*Generate* opens a dialog with *Destination* (preset ``, `ADHOC_DEST` is not pre-selected) and +one field per parameter prompt; an `[ITEM:…]` prompt gives an item tree browser, but the filter did +**not** limit it (whole tree shown, ISS-048). The run is made by the logged-in user (`ADMIN`, process +`JHMISET…`) and printed to the chosen destination without errors. Generated reports are listed under +the report by local time; *View* has its own *Destination* box and *Export…*; HTML reports render as +HTML. diff --git a/.claude/skills/system-check/SKILL.md b/.claude/skills/system-check/SKILL.md index c2a15c8..bc69542 100644 --- a/.claude/skills/system-check/SKILL.md +++ b/.claude/skills/system-check/SKILL.md @@ -83,6 +83,10 @@ prompt. Setup files (`*.sup`) are plain text (CRLF); edit them with the Setup Fi (observed 2026-10-01: a run started 17:25 ran out at 09:52 the next morning after a sleep); some processes (e.g. `umh`) stay attached, but `dssqld`/`itmval` fail and the log shows `ISF-F-LIC_PROB, DATABASE Service is not licensed`. +- `Stop-Service StartCIServer` can fail with *Cannot stop StartCIServer service* although CI + Server does restart (seen 2026-10-01: the error was shown, the service stayed *Running*, and all + processes had new PIDs and a new `STARTUP_TIME` in `LOCAL_NODE_DF` within a minute). Check + `STARTUP_TIME` before retrying. - **Close the Edit Module (and Engineering Module) before stopping CI Server.** A local Edit Module is attached to the BUS Service (`JWUIGED`, a `java.exe` in the user's session) and does not stop with the service. The next start then aborts at once; `%TLS_LOG_PATH%\ci_start.log` diff --git a/examples/CI-Eng-Sample/18_report_df.qli b/examples/CI-Eng-Sample/18_report_df.qli index 0e85714..1d602a9 100644 --- a/examples/CI-Eng-Sample/18_report_df.qli +++ b/examples/CI-Eng-Sample/18_report_df.qli @@ -10,7 +10,7 @@ ENGLISH ! Report names: at most 16 characters. ! ! CIENG_TANK1 : values of all TANK1 items plus last-hour statistics of one item (parameter -! @p0, picked from a list of TANK1 items); daily at 06:00 local time and ad hoc. +! @p0, chosen in an item browser; its filter does not limit it, ISS-048); daily at 06:00. ! The activation time lies in the past; CI Server moves it to the next 06:00. ! CORRECT_DAYLIGHT 1 keeps 06:00 across daylight-saving changes (with 0 the ! interval runs in UTC and 06:00 in January became 05:00 in October). diff --git a/examples/CI-Eng-Sample/README.md b/examples/CI-Eng-Sample/README.md index 496b55a..6f822ed 100644 --- a/examples/CI-Eng-Sample/README.md +++ b/examples/CI-Eng-Sample/README.md @@ -74,7 +74,7 @@ cmd /c "\examples\CI-Eng-Sample\remove.cmd" | `CIENG_TANK1` | Alarm selection area | `SECTION = "CI-Eng-Sample.TANK1"`, compiled on load | | `CIENG_VIEWER` | Authorization group | Read-only: `ITEM_READ`, `SECTION_READ`, `ALARM_CURRENT_READ`, `ALARM_CHRONO_READ`. No users are created by the sample. | | `CIENG_FILE` | Printer device + destination | FILE output to `%TLS_LST_PATH%\cieng_report.txt` (overwritten by each printed report); destination visible to operators | -| `CIENG_TANK1` | Report | Values of the `TANK1` items + last-hour statistics of one item (ad-hoc parameter, pick list of `TANK1` items, default `LEVEL`); daily 06:00 local time and ad hoc; output `CIENG_FILE`; lifetime 1 week | +| `CIENG_TANK1` | Report | Values of the `TANK1` items + last-hour statistics of one item (ad-hoc parameter chosen in an item browser, default `LEVEL`); daily 06:00 local time and ad hoc; output `CIENG_FILE`; lifetime 1 week | | `CIENG_INFLOW_HI` | Report | Generated 5 s after `TANK1.INFLOW` rises above 400; output `CIENG_FILE` | | `CIENG_HTML` | Report | Ad hoc; `TANK1` values as an HTML table (cursor loop) plus the logbook text | diff --git a/knowledge/issues.md b/knowledge/issues.md index 8fd4281..00bed27 100644 --- a/knowledge/issues.md +++ b/knowledge/issues.md @@ -64,6 +64,7 @@ development system (see "Test system" in `progress.md`); they do not exist on ot | ISS-042 | 2026-10-01 | GRAPHICS (layouts) | Installed vs `Layouts.readme`: the factory layouts use status line item types `displayName`, `playbackIndicator` and `dateTime` and the commands `reload ` / `reload all`, none of which the readme lists (readme: `statusText`, `userName`, `progresBar`, `graphicsQueueLevel`, `connectionState`); the readme also writes `zooom` for the zoom command (factory files use `zoom`). | open | Installed software is the reference (standing user decision). Close when the user confirms. | `.claude/skills/graphics/tasks/layouts.md` §2 | | ISS-043 | 2026-10-01 | REPORT (system reports) | IM 36K10C30 App. 1.3 names two system reports `ALM_ATTS_CUR` and `ALM_ATRS_HIS`; the installed reports are `ALM_ATTRS_CUR` and `ALM_ATTRS_HIS`. The other 26 names match. | open | Installed software is the reference (standing user decision). Close when the user confirms. | `knowledge/manuals/IM36K10C30-01EN.md` §8 (done) | | ISS-044 | 2026-10-01 | REPORT (scheduling) | Behaviour not in the manuals, found by quick load: a generation interval below 10 minutes is refused (`HIS-E-ROLLTOFAST`, the interval is the rollover of the report's storage group); a scheduled report cannot be deleted (`RPT-E-ACTIVE`) until `ACTIVATION_TIME` and `GENERATION_INTERVAL` are cleared; `CORRECT_DAYLIGHT` 0 counts intervals in UTC (06:00 set for January ran at 05:00 in October); a past activation time moves to the next slot - once (modify, past time within the lifetime) a single report labelled with the old time was generated, at insert with an older time none. | open | Documented as verified behaviour; the one-off generation for a past activation time is not fully understood. Close when the user confirms. | `.claude/skills/reporting/tasks/define-reports.md` §1, §5, §6; `knowledge/manuals/IM36K10C30-01EN.md` §2; `examples/CI-Eng-Sample/83a_stop_report_df.qli`, `18_report_df.qli` | -| ISS-045 | 2026-10-01 | REPORT (ad hoc from `dssqld`) | Generating ad hoc with `REPORT_DF.GENERATE` = 1 from `dssqld` (user `FULL AUTHORIZATION`) on a report without `ADHOC_DEST` logs `FSL-E-PRT_UNKUSER, Job submitted by unknown user (FULL AUTHORIZATION)` and `RPT-I-TRYPRINT` in `umhlog.log`; the generated report is stored normally. With `ADHOC_DEST` set no error appears and the device gets the output. Related to the R1.03 known issue on report generation and default printers (IM 36K01A50, REPORT 1.11). | open | Workaround documented (set `ADHOC_DEST`). Check whether an ad-hoc run from the Engineering Module as a real user behaves the same. | `.claude/skills/reporting/tasks/define-reports.md` §2; `knowledge/manuals/IM36K10C30-01EN.md` §6 | +| ISS-045 | 2026-10-01 | REPORT (ad hoc from `dssqld`) | Generating ad hoc with `REPORT_DF.GENERATE` = 1 from `dssqld` (user `FULL AUTHORIZATION`) on a report without `ADHOC_DEST` logs `FSL-E-PRT_UNKUSER, Job submitted by unknown user (FULL AUTHORIZATION)` and `RPT-I-TRYPRINT` in `umhlog.log`; the generated report is stored normally. With `ADHOC_DEST` set no error appears and the device gets the output. Related to the R1.03 known issue on report generation and default printers (IM 36K01A50, REPORT 1.11). | open | Workaround documented (set `ADHOC_DEST`). 2026-10-01: generating from the Engineering Module as user `ADMIN` with destination `CIENG_FILE` printed without errors, so it only affects runs from `dssqld`. Close when the user confirms. | `.claude/skills/reporting/tasks/define-reports.md` §2; `knowledge/manuals/IM36K10C30-01EN.md` §6 | | ISS-046 | 2026-10-01 | DATABASE (`dssqld` memo) | A memo field loaded from a file (`@""@`, IM 36K10L50 §3.10) fails with a relative name (`CRL-E-ENOENT`, the file is read on the server side) and with a long absolute path (`DSSG-E-STRBUFSMAL`, buffer 83); a short absolute path works. The manual gives no limits. | open | Documented: use inline memos, or an absolute path ≤ 82 characters. Close when the user confirms. | `.claude/skills/system-management/tasks/dss-tools.md` §2; `knowledge/manuals/IM36K10L50-01EN.md` §4 | | ISS-047 | 2026-10-01 | REPORT (RQL manuals) | The manuals disagree: default `@WORKSPACE` 500 KB (IM 36K10R40 §2.2.2) vs 16 KB (IM 36K10C30 table 2.1-1, IM 36K10P20 §9.6); maximum `@WIDTH` 512 (R40, P20 §4) vs 5000 (P20 §9.6); `@FORMFEED` described with opposite meanings (C30: not 1 = form feed; P20: 0 = blank lines, default 1). Installed set-up files set `@workspace` explicitly (500 in `rptge1.rpt`, 100 in `rptgen.rpt`) and `@formfeed 0` for the interactive generator. | open | Not tested (no printer); the set-up files make the defaults irrelevant in practice. | `knowledge/manuals/IM36K10R40-01EN.md` §2; `knowledge/manuals/IM36K10P20-01EN.md` §3 | +| ISS-048 | 2026-10-01 | REPORT (ad-hoc parameters) | The prompt `[ITEM:NAME like "CI-Eng-Sample.TANK1.*"]Item for statistics:` (filter form as in IM 36K10C30 §2.1) gives an item tree browser in the Engineering Module generate dialog, but the tree shows all sections, not only `TANK1` items (checked by the user). | open | Try other filter forms (`%` wildcard, `SECTION = …`, `[ITEM:TAG="…"]`) and the display report component. | `.claude/skills/reporting/tasks/define-reports.md`; `knowledge/manuals/IM36K10C30-01EN.md` §2; `examples/CI-Eng-Sample/18_report_df.qli` comment | diff --git a/knowledge/manuals/IM36K10C30-01EN.md b/knowledge/manuals/IM36K10C30-01EN.md index aa6f711..21f8813 100644 --- a/knowledge/manuals/IM36K10C30-01EN.md +++ b/knowledge/manuals/IM36K10C30-01EN.md @@ -3,7 +3,7 @@ manual: IM 36K10C30-01EN title: Engineering Module - Reporting edition: 3rd Edition, Sep. 2023 version: R1.03 -status: report definitions (ad hoc with parameters, schedule, item trigger, HTML, logbook), generated reports, file device and destination verified by quick load on CI-Eng-Sample 2026-10-01; Engineering Module forms awaiting the user's check; report component in displays and hardcopy printers from docs +status: report definitions (ad hoc with parameters, schedule, item trigger, HTML, logbook), generated reports, file device and destination verified by quick load on CI-Eng-Sample 2026-10-01; Engineering Module forms, generate and view checked by the user; report component in displays and hardcopy printers from docs --- # Engineering Module - Reporting (R1.03) @@ -43,7 +43,9 @@ lifetime. Parameter prompt meta-information (makes a pick list in the generate dialog): `[ITEM:]`, `[OBJECT::]`, `[DATE]`, `[TIME]`, `[DATE:TIME]`, `[LIST:a:b:c]`, followed by the -prompt text, e.g. `[ITEM:NAME like "CI-Eng-Sample.TANK1.*"]Item for statistics:`. The installed +prompt text, e.g. `[ITEM:NAME like "CI-Eng-Sample.TANK1.*"]Item for statistics:`. **Installed:** the +`[ITEM:…]` prompt opens an item tree browser in the generate dialog, but the filter did not limit +the tree (ISS-048). The installed system reports use lower case (`[item]`, `[date:time]`, `[list:Days:Hours:Minutes]`). Query editor: *Ctrl+Space* lists keywords, datasets and fields. Basics of RQL (§2.1) are @@ -101,8 +103,8 @@ Logbook on a display needs *Logbook Enabled* and *Visible* in the report. Not pr ## 6. Generating and viewing (§3) -- Engineering Module: right-click a report › *Generate* (choose destination, answer - parameters) › right-click a generated report › *View* (*Scroll Form-Feeds* for multi-page). +- Engineering Module: right-click a report › *Generate* (choose destination - preset ``, the + report's `ADHOC_DEST` is not pre-selected - and answer parameters) › right-click a generated report › *View* (*Scroll Form-Feeds* for multi-page). - Operator interface: display with the report component (*Generate* / *View* tabs, print). - Command line: `REPORT_DF` `NAME,PARAM_VALUE_1,GENERATE` = `"","",1` with `dssqld -m`; read `REPORT_VAL` (`NAME` = `.`, `REPORT` memo, @@ -113,7 +115,10 @@ Logbook on a display needs *Logbook Enabled* and *Visible* in the report. Not pr **Verified:** ad-hoc runs from `dssqld` are made by user `FULL AUTHORIZATION`; without an ad-hoc destination `RPTMAN` then logs `FSL-E-PRT_UNKUSER, Job submitted by unknown user` (the report is still stored; ISS-045). With `ADHOC_DEST` set the output went to the device without errors. -Scheduled and triggered runs are made by `RPTMAN` and print to `DEST_NAME`. +Scheduled and triggered runs are made by `RPTMAN` and print to `DEST_NAME`. Generated from the +Engineering Module the run is made by the logged-in user (`ADMIN`, process `JHMISET…`) and printed +to the chosen destination without errors; *View* lists generated reports by local time and has a +*Destination* box and *Export…*. ## 7. Tuning (§4) diff --git a/knowledge/progress.md b/knowledge/progress.md index 2b6a4d7..11777ee 100644 --- a/knowledge/progress.md +++ b/knowledge/progress.md @@ -60,7 +60,7 @@ AID is not needed. | 11 | IM 36K10P30 | Data Set Service Language | summarized; compiler used as syntax check on a copy (no dictionary change) ([notes](manuals/IM36K10P30-01EN.md)) | | 11 | IM 36K10P20 | Report Generation Language | done for queries, layout, cursors/loops, functions, SPOOL/CSV, HTML; SEND/RECEIVE, BREAK, INCLUDE, FLAG PAGE from docs ([notes](manuals/IM36K10P20-01EN.md)); skill `reporting` | | 11 | IM 36K10R40 | Report Server Setup | done for processes, set-up files, interactive generator, `rptstp`; extra generators, separate RPI servers, custom destinations from docs ([notes](manuals/IM36K10R40-01EN.md)) | -| 11 | IM 36K10C30 | Engineering Module - Reporting | done by quick load for report definitions (ad hoc + parameters, schedule, item trigger, HTML, logbook), generated reports and a file device/destination; Engineering Module forms awaiting the user's check; report component in displays and hardcopy printers from docs ([notes](manuals/IM36K10C30-01EN.md)) | +| 11 | IM 36K10C30 | Engineering Module - Reporting | done by quick load for report definitions (ad hoc + parameters, schedule, item trigger, HTML, logbook), generated reports and a file device/destination; Engineering Module forms, generate and view checked by the user; report component in displays and hardcopy printers from docs ([notes](manuals/IM36K10C30-01EN.md)) | | 11 | IM 36K10E10 | Excel Add-in | summarized, from docs (Excel not installed on the test system) ([notes](manuals/IM36K10E10-01EN.md)) | | 12 | IM 36K10L25 | Audit Trail Management | not started | | 13 | IM 36K10J20 | High Availability Computing | not started (needs two servers) | @@ -137,7 +137,7 @@ now come before classes and objects (phase 6), and the other interfaces follow a | R30/C50/C60 | Dataset forms, symbols, AOG library, dual screen, per-user layouts | not practiced | n/a | GUI work; user profiles not changed. | | R40/C30 | REPORT Service checks: processes, set-up files (`rptman.sup`, `rptge1.rpt`, `rptgen.rpt`), system reports, `rptstp` ([task](../.claude/skills/reporting/tasks/report-checks.md)) | passed | n/a | Read-only plus one cancel: `rptstp rptge1` stopped the endless-loop test report `CIENG_LOOP` (removed). 28 system reports; two names differ from the manual (ISS-043). | | R40/P20 | RQL in the interactive generator (`rptgen -s rptgen.rpt`), CSV with `SPOOL` ([task](../.claude/skills/reporting/tasks/rql-interactive.md)) | passed | passed | Piped query files (bash `<`, PowerShell via `cmd /c`); `@NEXT 0` needed; dates are local-time seconds; LOOP refused interactively (`RPT-E-LPNOTAL`); aggregated history empty on the test system. | -| C30/P20 | Report definitions by quick load: ad hoc with parameters, daily schedule, item trigger, HTML with cursor loop, logbook; generate, read, print, delete; remove ([task](../.claude/skills/reporting/tasks/define-reports.md)) | practiced, awaiting confirmation | passed | `CIENG_TANK1`, `CIENG_INFLOW_HI`, `CIENG_HTML` + destination `CIENG_FILE`; full sample remove/reload 0 errors. Schedule ≥ 10 min, scheduled report not deletable until the schedule is cleared, `CORRECT_DAYLIGHT` (ISS-044); `dssqld` ad hoc without `ADHOC_DEST` logs a print error (ISS-045). Engineering Module forms still to be checked by the user. | +| C30/P20 | Report definitions by quick load: ad hoc with parameters, daily schedule, item trigger, HTML with cursor loop, logbook; generate, read, print, delete; remove ([task](../.claude/skills/reporting/tasks/define-reports.md)) | passed | passed | `CIENG_TANK1`, `CIENG_INFLOW_HI`, `CIENG_HTML` + destination `CIENG_FILE`; full sample remove/reload 0 errors. Schedule ≥ 10 min, scheduled report not deletable until the schedule is cleared, `CORRECT_DAYLIGHT` (ISS-044); `dssqld` ad hoc without `ADHOC_DEST` logs a print error (ISS-045). User checked the Engineering Module: forms, generate dialog (item browser not filtered, ISS-048), view of text and HTML reports. | | C30 | File printer device and destination ([task](../.claude/skills/reporting/tasks/output-devices.md)) | passed | passed | Output type needs the node name (`:FILE`); literal path only (`%TLS_LST_PATH%` failed). Sample builds the file at load (`17_printer_df.ps1`). | | L50/P30 | DSS tools: processes, `dss.sup`, quick load macro/include/memo file, `dssutl` read, DSS compiler syntax check ([task](../.claude/skills/system-management/tasks/dss-tools.md)) | passed | n/a | Memo from file: absolute path ≤ 82 characters only (ISS-046). Dictionary untouched. | | C30 | Report component on a display, hardcopy printer, extra report generators | not practiced | n/a | GUI / no printer / admin restart. |