@transai/connector-runner-cerm
v0.4.0
Published
Connector runner for the **CERM MIS** (Management Information System) REST API.
Readme
connector-runner-cerm
Connector runner for the CERM MIS (Management Information System) REST API.
This library integrates with CERM to register shop-floor events — clockings, material consumption, semi-finished goods, and non-job activities — directly from XOD workflows via the CERM REST API.
Overview
The CERM connector runner is an action-only connector (no inbound data sources). It covers the full JMF slave SFDC (ibsatlslave) workflow:
| Action | Identifier | CERM endpoint |
|---|---|---|
| Create clocking | create_clocking | POST /clockings |
| Consume material | consume_material | POST /material-consumptions |
| Register activity | register_activity | POST /activities |
| Create semi-finished good | create_semi_finished_good | POST /semi-finished-goods |
| Consume semi-finished good | consume_semi_finished_good | POST /semi-finished-good-consumptions |
| Register end of day | register_end_of_day | POST /end-of-day |
JMF slave coverage
| JMF slave capability | Action | Status |
|---|---|---|
| Clockings from JMF messages | create_clocking | ✅ |
| Roll/SKU material consumption (EPSMA scan) | consume_material | ✅ |
| Non-job related activities (manual) | register_activity | ✅ |
| Create semi-finished good (manual) | create_semi_finished_good | ✅ |
| Consume semi-finished goods (manual) | consume_semi_finished_good | ✅ |
| End-of-day registration | register_end_of_day | ✅ |
Configuration
| Field | Type | Description |
|---|---|---|
| endpointUrl | string | Base URL of the CERM REST API, e.g. https://cerm.example.com/api |
| apiKey | string | CERM API key, sent as the x-api-key request header |
Actions
create_clocking
Register a time-tracking (clocking) record in CERM. Maps to the JMF-driven SFDC slave flow where operator login and activity data are automatically captured from JMF messages.
| Parameter | Type | Required | Description |
|---|---|---|---|
| costCenterId | string | yes | CERM cost center (machine) ID, e.g. "5200" |
| employeeId | string | yes | JMF Identification value of the employee |
| activityId | string | yes | CERM activity identifier for the current activity |
| startTime | string | yes | ISO-8601 start date-time of the clocking |
| endTime | string | no | ISO-8601 end date-time (omit to leave clocking open) |
| jobId | string | no | Optional CERM job/order reference |
consume_material
Register material (SKU / roll) consumption in CERM against an active job. Corresponds to roll-change events where the operator scans the supplier EPSMA barcode to mount a new roll.
| Parameter | Type | Required | Description |
|---|---|---|---|
| jobId | string | yes | CERM job/order reference the material is consumed against |
| costCenterId | string | yes | CERM cost center (machine) ID |
| skuId | string | yes | SKU identifier of the material (e.g. EPSMA barcode or internal SKU code) |
| quantity | number | yes | Quantity consumed (e.g. metres of roll consumed) |
| unit | string | yes | Unit of measurement, e.g. "m", "kg", "sheets" |
| consumedAt | string | no | ISO-8601 date-time of the consumption event (defaults to current time) |
register_activity
Register a non-job-related activity (e.g. maintenance, break, idle) in CERM. Used when the machine cannot report such activity via JMF. The activity must have a unique JMF StatusDetails value configured in the CERM cost-center activity.
| Parameter | Type | Required | Description |
|---|---|---|---|
| costCenterId | string | yes | CERM cost center (machine) ID |
| employeeId | string | yes | JMF Identification value of the employee |
| jmfStatusDetails | string | yes | JMF StatusDetails value that uniquely identifies the non-job activity on this cost center |
| startTime | string | yes | ISO-8601 start date-time of the activity |
| endTime | string | no | ISO-8601 end date-time (omit for open registration) |
create_semi_finished_good
Manually create a semi-finished good (SFG) job in CERM. Used in the JMF slave SFDC application when the operator needs to register an SFG outside of the automatic JMF flow.
| Parameter | Type | Required | Description |
|---|---|---|---|
| jobId | string | yes | CERM job/order reference the SFG belongs to |
| costCenterId | string | yes | CERM cost center (machine) ID |
| skuId | string | yes | SKU identifier of the semi-finished good |
| quantity | number | yes | Quantity of semi-finished goods produced |
| unit | string | yes | Unit of measurement, e.g. "sheets", "m" |
| producedAt | string | no | ISO-8601 date-time of production (defaults to current time) |
| description | string | no | Optional description or label for the SFG |
consume_semi_finished_good
Manually consume semi-finished goods (SFG) in CERM. Used when SFG consumption is not automatically captured via JMF counter data from the machine.
| Parameter | Type | Required | Description |
|---|---|---|---|
| jobId | string | yes | CERM job/order reference the SFG is consumed against |
| costCenterId | string | yes | CERM cost center (machine) ID |
| skuId | string | yes | SKU identifier of the semi-finished good |
| quantity | number | yes | Quantity of semi-finished goods consumed |
| unit | string | yes | Unit of measurement, e.g. "sheets", "m" |
| consumedAt | string | no | ISO-8601 date-time of consumption (defaults to current time) |
register_end_of_day
Register an end-of-day record in CERM for an employee on a cost center. Used when there is no automatic presence registration configured.
| Parameter | Type | Required | Description |
|---|---|---|---|
| costCenterId | string | yes | CERM cost center (machine) ID |
| employeeId | string | yes | JMF Identification value of the employee |
| endTime | string | no | ISO-8601 date-time when the working day ends (defaults to current time) |
Template
A ready-to-use connector template is available at assets/template.json. Import it in the XOD management UI to get started quickly.
Building
Run nx build connector-runner-cerm to build the library.
Running unit tests
Run nx test connector-runner-cerm to execute the unit tests via Jest.
