--- task: Send reports to a file - printer device and destination version: R1.05 (first written for R1.03) source: IM 36K10C30-01EN §2.2 (4th Edition, Feb. 2026); IM 36K10L50-01EN App. 1 (PRINTER_*); practiced on CI-Eng-Sample 2026-10-01 status: verified on R1.03 (2026-10-01); on R1.05 the PRINTER_* definitions are identical to R1.03 (file hashes, 2026-10-08), the 6 factory destinations (no devices) are the same (2026-10-09, read-only), and the sample's file device and destination loaded and were removed with 0 errors (2026-10-08, load check only); printing to the file not tested on R1.05 --- # Report output devices and destinations A report goes to a **destination** (`PRINTER_DEST_DF`), which sends it to a primary (and optional secondary) **device** (`PRINTER_DEV_DF`). Devices: FILE, HARDCOPY (Windows printer queue), APPLICATION. Engineering Module: *Configuration > Reporting > Printers > Device / Destinations*. The printer manager is `FMFPRT`. ## 1. Find the output types of this node ``` dssqld -e types.csv -d PRINTER_TYPE_DF -c ``` Names are `:FILE`, `:HARDCOPY`, `:APPLICATION` (`` = CI Server node name, `NODE_NAME` in `LOCAL_NODE_DF`, e.g. `UNLICENCED` on an unlicensed system). A device needs the full name; plain `FILE` is refused (`DSSP-E-NORELV`). ## 2. File device and destination ``` @FIELDS NAME,DESCRIPTION,OUTPUT_TYPE,PARAMETERS,SUSPEND @PRINTER_DEV_DF "","Report file",":FILE","PATH,"""",FILE,"".txt"",OVERWRITE,""Yes""",0 @FIELDS NAME,DESCRIPTION,PRIMARY_DEVICE,POLICY,ALLOW_OPERATOR,PRIORITY @PRINTER_DEST_DF "","Report file","","None",1,0 ``` `dssqld -i`. `` must be a literal path that exists (no `%variables%`: `FSL-E-PRT_PAR, Invalid device parameter` in `umhlog.log`). `OVERWRITE "Yes"` keeps one file with the latest report (`"No"` not tried). `ALLOW_OPERATOR` 1 also lists the destination in `PRINTER_OPER_DEST_DF` (needed for `ADHOC_DEST` and the operator's generate/print dialogs). `CI-Eng-Sample` builds this file at load time from `17_printer_df.tpl` (node name and `%TLS_LST_PATH%` filled in by `17_printer_df.ps1`). Printer instead of file: `OUTPUT_TYPE` `:HARDCOPY`, `PARAMETERS` `TYPE,"WINDOWS",QUEUE,"\\\"` (+ `FONT`, `POINT`, `LINES`, `ORIENTATION`) — not practiced (no printer). ## 3. Use it Set `DEST_NAME` (scheduled/triggered runs) and `ADHOC_DEST` (ad-hoc runs) of the report to ``, or print a generated report (`define-reports.md` §4). ## 4. Check ``` dssqld -e jobs.csv -d PRINTER_JOB_OVV -c (job, file, submitter, status, destination, device) dssqld -e devs.csv -d PRINTER_DEV_OVV -c (device status, e.g. Ready) ``` A job can show *Finished* even when the device failed; also read `%TLS_LOG_PATH%\umhlog.log` (`From: FMFPRT`, `FSL-E-…`). The output file holds the text report as generated (HTML reports as HTML source). ## 5. Remove Remove (or repoint) the reports that use the destination, then the destination, then the device (`DSSP-E-NODEL … still in use` otherwise). The output file is not deleted. ## R1.05 (2026-10-08/09) - ``: use the real `TLS_LST_PATH` of the system (`set TLS`); on the R1.05 test server it is under `C:\Yokogawa\CIServer\tls`, not `C:\Users\Public\Yokogawa\tls`. `17_printer_df.ps1` fills it in from the environment, so the sample works on both. - **Verified (R1.05 test server):** factory destinations `ALARMS`, `AUDIT_TRAIL`, `DEFAULT`, `MESSAGES`, `PRINTER_1`, `SCREEN_CAPTURE`, no devices (as on R1.03, 2026-10-09); the sample's device and destination loaded and were removed with 0 errors (2026-10-08). - **Awaiting user verification:** a print to the file device on R1.05 (see `define-reports.md` R1.05 section); expected job *Finished*, device *Ready*, the report text in the file. ## Verified (R1.03, 2026-10-01) `CIENG_FILE` (`UNLICENCED:FILE`, `C:\Users\Public\Yokogawa\tls\lst\cieng_report.txt`, overwrite): printed generated reports, scheduled, triggered and ad-hoc runs wrote the file; jobs *Finished*, device *Ready*; `%TLS_LST_PATH%` in the path failed as above.