--- task: Package a project for another CI Server (quick load files, display, layout, user) and check the install version: R1.05 source: IM 36K10J10-01EN §5.6 (moving engineering data); IM 36K10L50-01EN §3; practiced with a user project on the R1.05 test server 2026-10-12 (remove and reload from the package, twice) status: verified on R1.05 with a user project (not on CI-Eng-Sample) --- # Package a project for another CI Server Goal: a folder (zip) a junior engineer can install from, step by step, on another server. ## 1. What goes in | Part | Notes | |---|---| | Quick load files `01_…` to `nn_…` in load order + `load.cmd` | sections, status items, line, station/points, items, trigger, class, object, users. **No node names** (leave `EQUIPMENT_NODE`, `FRONT_END_NODE` out) and no `NSID` / `ID_NUMBER`: the target assigns them. Insert (`-i`) only. | | Removal files in reverse order + `remove.cmd` | so the install can be undone | | Displays + a deploy script | copy to `DEPLOY\displays`, `jwuiutl -d -v -i -l … ` (must say *No problems found*), copy again (validation re-saves), `jwuiutl -e HTML -i -f DEPLOY `. Displays without `` bind by name, so new item numbers on the target do not matter. | | Layout block + script | only the project's layout(s) between ``, inserted before the first ``; the script makes a timestamped backup and checks the XML (sample: `examples/CI-Eng-Sample/layouts/layout.ps1`). | | README | numbered steps with the exact command, the expected output and what to do if it differs | | Pre-check script (read-only) | CI Server version (`%TLS_ALLUSERS_PATH%\lst\tls_versions.lst`), `dssqld` answers, longest file path ≤ 79 (ISS-020), `tls\jre\bin\javac.exe` present (Java classes compile on load), device reachable (TCP connect), each name free (filtered export per dataset, e.g. `'NAME = ""'` on `MODBUS_LINE_DF`, `'EQUIPMENT_MAN = ""'`), layout name not used outside the project block | | Post-install check | `itmval -g` of the station status item, one value to compare with the device's own software, a value the calculation updates (read twice), learn/initial states | ## 2. Script rules (found by testing the README in one Command Prompt) - **`pushd "%~dp0"` … `popd`**, not `cd /d "%~dp0"`: the engineer runs the scripts one after the other in the same prompt; a script that leaves the prompt in its own folder breaks the next command. - `load.cmd`: delete the old `0*.qlo` first and end with `findstr /c:"_DF " 0*.qlo` (one result line per data set; the last column is *Errors*). Otherwise old results (e.g. of an undo) are listed too. - Wait after the line (`powershell -NoProfile -Command "Start-Sleep -Seconds 15"`, the equipment manager starts) and after a class (about 20 s, compile) before the next file. ## 3. Test the package On a test server: run the README's undo, then every step exactly as written, in one Command Prompt, from a fresh copy of the zip; point the device address at a simulator (`tools/ModbusSim.java`) if the device is not reachable. Compare the server against the package afterwards (filtered `ITEM_DF` export by name range, class source from a `CLASS_DF` export, display file hash).