@machinemetrics/mm-erp-sdk 0.9.7 → 0.9.8-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/services/data-sync-service/nats-labor-ticket-listener.d.ts.map +1 -1
- package/dist/services/data-sync-service/nats-labor-ticket-listener.js +49 -6
- package/dist/services/data-sync-service/nats-labor-ticket-listener.js.map +1 -1
- package/dist/types/erp-connector.d.ts +35 -0
- package/dist/types/erp-connector.d.ts.map +1 -1
- package/dist/types/erp-connector.js +9 -1
- package/dist/types/erp-connector.js.map +1 -1
- package/dist/utils/labor-ticket-recovery.d.ts +44 -0
- package/dist/utils/labor-ticket-recovery.d.ts.map +1 -0
- package/dist/utils/labor-ticket-recovery.js +144 -0
- package/dist/utils/labor-ticket-recovery.js.map +1 -0
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +26 -3
- package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +12 -1
- package/src/services/data-sync-service/nats-labor-ticket-listener.ts +65 -6
- package/src/types/erp-connector.ts +38 -0
- package/src/utils/labor-ticket-recovery.ts +217 -0
- package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +42 -7
package/README.md
CHANGED
|
@@ -9,6 +9,7 @@ This SDK provides the core infrastructure for:
|
|
|
9
9
|
- **Data Sync Service**: Automated job scheduling for bidirectional ERP data synchronization
|
|
10
10
|
- **ERP Connector Interface**: Standardized interface for implementing ERP connectors
|
|
11
11
|
- **MM API Integration**: Client for interacting with MachineMetrics APIs
|
|
12
|
+
- **Timezone handling**: Company timezone cached at startup; conversion helpers for the ERP boundary (see **Timezone handling**)
|
|
12
13
|
- **Utility Functions**: Common data transformation and HTTP utilities
|
|
13
14
|
|
|
14
15
|
## Documentation
|
|
@@ -35,6 +36,8 @@ import {
|
|
|
35
36
|
IERPLaborTicketHandler,
|
|
36
37
|
ERPObjType,
|
|
37
38
|
MMReceiveLaborTicket,
|
|
39
|
+
RecoverLaborTicketIdAction,
|
|
40
|
+
RecoverLaborTicketIdReturn,
|
|
38
41
|
ApplicationInitializer,
|
|
39
42
|
runDataSyncService,
|
|
40
43
|
} from "@machinemetrics/mm-erp-sdk";
|
|
@@ -76,6 +79,13 @@ export default class MyERPConnector
|
|
|
76
79
|
// Implement labor ticket creation
|
|
77
80
|
}
|
|
78
81
|
|
|
82
|
+
// Optional: recover an existing ERP laborTicketId before create when MM lost the link
|
|
83
|
+
async recoverLaborTicketId(
|
|
84
|
+
laborTicket: MMReceiveLaborTicket
|
|
85
|
+
): Promise<RecoverLaborTicketIdReturn> {
|
|
86
|
+
return { action: RecoverLaborTicketIdAction.CREATE };
|
|
87
|
+
}
|
|
88
|
+
|
|
79
89
|
async updateLaborTicketInERP(
|
|
80
90
|
laborTicket: MMReceiveLaborTicket
|
|
81
91
|
): Promise<MMReceiveLaborTicket> {
|
|
@@ -124,6 +134,8 @@ Jobs are scheduled with **Bree**. Each job cycle runs as an **independent worker
|
|
|
124
134
|
The SDK provides bidirectional labor ticket synchronization with built-in protection against circular writes (ERP → MM → ERP):
|
|
125
135
|
|
|
126
136
|
- **Labor sync ledger** (SQLite-backed): records a per-ticket business signature so the `to-erp` export skips tickets whose business-relevant content is unchanged since they were last processed. Tickets imported from the ERP before MM assigns a `laborTicketRef` are tracked under a stable `erp-import:{workOrderId}:{laborTicketId}` key.
|
|
137
|
+
- **ERP labor ticket ID recovery** (optional): connectors may implement `recoverLaborTicketId` on `IERPLaborTicketHandler` to look up an existing ERP row before create when MM has no `laborTicketId`. When recovery returns an id (`RECOVER`), polling and NATS patch MM then call `updateLaborTicketInERP`. When recovery returns `DEFER`, the SDK skips create for that cycle and retries later. Duplicate prevention depends on the connector implementing recovery correctly; connectors without the hook are unchanged.
|
|
138
|
+
- **Partial ERP create** (optional): when `createLaborTicketInERP` fails but an ERP id was assigned, throw `LaborTicketCreatePartialSuccessError` so the SDK patches MM before rethrowing. See `CONNECTOR_SDK_UTILITIES.md`.
|
|
127
139
|
- **ERP → MM import filtering**: `StandardProcessDrivers.writeLaborTicketsToMmFromErpImport()` applies MES/operator allowlists and FK rules, pre-marks accepted tickets in the ledger, writes them to MM, and advances the labor-tickets export checkpoint.
|
|
128
140
|
- **Hashed batch cache**: `BatchCacheManager` / `StandardProcessDrivers.writeEntitiesToMM()` deduplicate repeated upserts within a batch (local + API-side).
|
|
129
141
|
- **Signature semantics**: the business signature excludes identity fields (`laborTicketRef`, ERP-import keys) and SDK-mutated fields, so the same business state produces a stable hash across import and the next export. A dashboard edit changes the signature, so the change is exported.
|
|
@@ -147,6 +159,63 @@ The SDK provides employee clock in/out export from MM to the ERP, separate from
|
|
|
147
159
|
- `IERPTimesheetHandler` — connector-implemented hook that receives `MMReceiveTimesheet` rows.
|
|
148
160
|
- `StandardProcessDrivers.syncTimesheetsToERP()` — fetches pending rows from `/erp/v1/timesheets/updates`, processes them in `timesheetRef` order, and checkpoints progress. It assumes labor ticket export has already run for the cycle, so shop-floor labor is written/closed before clock-out.
|
|
149
161
|
|
|
162
|
+
## Timezone handling
|
|
163
|
+
|
|
164
|
+
MachineMetrics exchanges datetimes as **ISO-8601 strings in UTC** (trailing `Z` or an explicit `+00:00` offset). The ERP boundary is where timezone conversion happens.
|
|
165
|
+
|
|
166
|
+
### Cached timezone (no connector fetch)
|
|
167
|
+
|
|
168
|
+
`ApplicationInitializer.initialize()` fetches company info from MM (`/accounts/current`) and persists it in SQLite runtime state, including the company's **IANA timezone name**. After initialization succeeds, connector code reads it synchronously — no extra HTTP, no ERP-specific timezone configuration:
|
|
169
|
+
|
|
170
|
+
- `getCachedTimezoneName()` / `getERPTimezone()` — IANA name (e.g. `America/New_York`)
|
|
171
|
+
- `getCachedTimezoneOffset()` — current offset in hours for that zone (DST-aware)
|
|
172
|
+
|
|
173
|
+
**Connectors do not fetch or configure a timezone.** Call `ApplicationInitializer.initialize()` once at startup; the conversion helpers use the cached zone by default.
|
|
174
|
+
|
|
175
|
+
### MM company timezone vs ERP server timezone
|
|
176
|
+
|
|
177
|
+
The cached value is the **MM company's** timezone (`company.timezone` from `/accounts/current`). The SDK's default assumption is that **ERP-local wall time matches the MM company timezone**. If your ERP server's clock uses a different zone, pass an explicit `timezone?` argument to the conversion helpers.
|
|
178
|
+
|
|
179
|
+
Do not treat "ERP timezone" and "company timezone" as separate inputs the connector must obtain — the SDK already provides the company zone unless you need to override it.
|
|
180
|
+
|
|
181
|
+
### When to convert (depends on sync direction)
|
|
182
|
+
|
|
183
|
+
| Path | SDK converts? | Connector responsibility |
|
|
184
|
+
|------|---------------|--------------------------|
|
|
185
|
+
| **MM → ERP labor tickets** (`syncLaborTicketsToERP`) | Yes — UTC → ERP-local **before** your handler runs | Treat `clockIn`, `clockOut`, etc. as **localized wall time**. Do **not** apply further timezone shifts. |
|
|
186
|
+
| **MM → ERP timesheets** (`syncTimesheetsToERP`) | No | If the ERP expects local datetimes, call `convertUtcDateTimeToErpLocal()` in your handler. |
|
|
187
|
+
| **ERP → MM** (`writeEntitiesToMM`, `writeLaborTicketsToMmFromErpImport`) | No | Convert ERP-local datetimes to UTC with `convertErpLocalDateTimeToUtc()` **before** passing records to the SDK. |
|
|
188
|
+
|
|
189
|
+
Conversion is **field-specific**: apply it only where the ERP field semantics are local wall time. If an ERP field is already stored in UTC, converting would corrupt the value.
|
|
190
|
+
|
|
191
|
+
### Conversion helpers
|
|
192
|
+
|
|
193
|
+
All are exported from the package root. Inputs and outputs are ISO-8601 strings; invalid input throws.
|
|
194
|
+
|
|
195
|
+
```typescript
|
|
196
|
+
import {
|
|
197
|
+
getERPTimezone,
|
|
198
|
+
convertUtcDateTimeToErpLocal,
|
|
199
|
+
convertErpLocalDateTimeToUtc,
|
|
200
|
+
} from "@machinemetrics/mm-erp-sdk";
|
|
201
|
+
|
|
202
|
+
// After ApplicationInitializer.initialize():
|
|
203
|
+
const zone = getERPTimezone(); // cached MM company IANA name
|
|
204
|
+
|
|
205
|
+
// MM UTC → ERP-local (e.g. timesheets, or custom MM→ERP paths)
|
|
206
|
+
const localIso = convertUtcDateTimeToErpLocal("2024-06-15T18:30:00.000Z");
|
|
207
|
+
|
|
208
|
+
// ERP-local → MM UTC (required before writeEntitiesToMM)
|
|
209
|
+
const utcIso = convertErpLocalDateTimeToUtc("2024-06-15T14:30:00");
|
|
210
|
+
|
|
211
|
+
// Override when ERP clock differs from MM company timezone:
|
|
212
|
+
convertErpLocalDateTimeToUtc(localIso, "Europe/Amsterdam");
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Offset-based formatting helpers (`formatDateWithTZOffset`, `toISOWithOffset`, `convertToLocalTime`, `applyTimezoneOffsetsToFields`) remain available for legacy ERP formats; prefer the Luxon-based `convert*` helpers for new code.
|
|
216
|
+
|
|
217
|
+
See `CONNECTOR_SDK_UTILITIES.md` for full helper detail.
|
|
218
|
+
|
|
150
219
|
## ERP Resource Mapping (MES Machine Settings)
|
|
151
220
|
|
|
152
221
|
Machine-to-ERP-resource mapping is sourced from **MES machine settings** (`GET /mes/settings/machine-settings`):
|
|
@@ -256,14 +325,16 @@ ERP_SQLSERVER_TRUST_SERVER="false" # default: false
|
|
|
256
325
|
### Core Interfaces
|
|
257
326
|
|
|
258
327
|
- `IERPConnector`: Main connector interface (`syncFromERP`, `syncToERP`, lifecycle hooks). The `type` getter is the ERP system identifier passed to MM API `system` parameters and `StandardProcessDrivers` as `connectorType`.
|
|
259
|
-
- `IERPLaborTicketHandler`: Create/update labor tickets in the ERP (`MMReceiveLaborTicket`)
|
|
328
|
+
- `IERPLaborTicketHandler`: Create/update labor tickets in the ERP (`MMReceiveLaborTicket`). Optional `recoverLaborTicketId` (`RecoverLaborTicketIdAction`) when MM lost the ERP link — see **Labor Ticket Synchronization** and `CONNECTOR_SDK_UTILITIES.md`.
|
|
260
329
|
- `IERPTimesheetHandler`: Process employee clock in/out rows in the ERP (`MMReceiveTimesheet`)
|
|
261
330
|
|
|
262
331
|
### Utilities
|
|
263
332
|
|
|
264
|
-
- `ApplicationInitializer`: SDK initialization (configuration, migrations, company info)
|
|
333
|
+
- `ApplicationInitializer`: SDK initialization (configuration, migrations, company info including timezone)
|
|
265
334
|
- `runDataSyncService`: Start automated sync jobs
|
|
266
335
|
- `getCachedCompanyInfo()` / `getCachedCompanyId()` / `getCachedCompanyLocationRef()` / `getCachedTimezoneName()`: read company info persisted at startup
|
|
336
|
+
- `getERPTimezone()` / `convertUtcDateTimeToErpLocal()` / `convertErpLocalDateTimeToUtc()`: datetime boundary conversion (see **Timezone handling**)
|
|
337
|
+
- `formatDateWithTZOffset()` / `toISOWithOffset()` / `convertToLocalTime()` / `applyTimezoneOffsetsToFields()`: offset-based formatting for legacy ERP formats
|
|
267
338
|
- `StandardProcessDrivers`: Common sync operations, including:
|
|
268
339
|
- `syncLaborTicketsToERP(connectorType, handler, { onlyClosed? })`
|
|
269
340
|
- `syncTimesheetsToERP(connectorType, handler)`
|
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,9 @@ export type { HTTPResponse, HTTPClient, HTTPRequestConfig, } from "./utils/http-
|
|
|
26
26
|
export { ApplicationInitializer } from "./utils/application-initializer.js";
|
|
27
27
|
export { runDataSyncService } from "./services/data-sync-service/index.js";
|
|
28
28
|
export { logger } from "./services/reporting-service/index.js";
|
|
29
|
-
export
|
|
29
|
+
export { RecoverLaborTicketIdAction, } from "./types/erp-connector.js";
|
|
30
|
+
export type { IERPLaborTicketHandler, RecoverLaborTicketIdResult, RecoverLaborTicketIdReturn, } from "./types/erp-connector.js";
|
|
31
|
+
export { LaborTicketRecoveryDeferredError, LaborTicketCreatePartialSuccessError, } from "./utils/labor-ticket-recovery.js";
|
|
30
32
|
export { StandardProcessDrivers, getCachedCompanyInfo, getCachedCompanyId, getCachedCompanyLocationRef, getCachedTimezoneOffset, getCachedTimezoneName, } from "./utils/index.js";
|
|
31
33
|
export type { WriteEntitiesToMMResult } from "./utils/index.js";
|
|
32
34
|
export { MMBatchValidationError } from "./utils/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElF,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,qCAAqC,EACrC,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,YAAY,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,YAAY,EACV,0BAA0B,EAC1B,sCAAsC,EACtC,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,oBAAoB,EACpB,4CAA4C,EAC5C,+BAA+B,GAChC,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,4BAA4B,EAC5B,8BAA8B,EAC9B,eAAe,EACf,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,WAAW,EACX,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -26,6 +26,9 @@ export { ApplicationInitializer } from "./utils/application-initializer.js";
|
|
|
26
26
|
export { runDataSyncService } from "./services/data-sync-service/index.js";
|
|
27
27
|
// Logging service
|
|
28
28
|
export { logger } from "./services/reporting-service/index.js";
|
|
29
|
+
// Labor ticket handler interface
|
|
30
|
+
export { RecoverLaborTicketIdAction, } from "./types/erp-connector.js";
|
|
31
|
+
export { LaborTicketRecoveryDeferredError, LaborTicketCreatePartialSuccessError, } from "./utils/labor-ticket-recovery.js";
|
|
29
32
|
// Process drivers and utilities
|
|
30
33
|
export { StandardProcessDrivers, getCachedCompanyInfo, getCachedCompanyId, getCachedCompanyLocationRef, getCachedTimezoneOffset, getCachedTimezoneName, } from "./utils/index.js";
|
|
31
34
|
export { MMBatchValidationError } from "./utils/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAYlD,2BAA2B;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAG7F,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAUxE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAQ5C,iDAAiD;AACjD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,4BAA4B,EAC5B,8BAA8B,EAC9B,eAAe,EACf,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,WAAW,EACX,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAElF,4DAA4D;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnD,uCAAuC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,oBAAoB;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,kBAAkB;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nats-labor-ticket-listener.d.ts","sourceRoot":"","sources":["../../../src/services/data-sync-service/nats-labor-ticket-listener.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nats-labor-ticket-listener.d.ts","sourceRoot":"","sources":["../../../src/services/data-sync-service/nats-labor-ticket-listener.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,WAAW,CAAC,CAAc;gBAEtB,SAAS,EAAE,GAAG;IAI1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC5B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAwBlC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA4QlC;;OAEG;YACW,kBAAkB;CAoLjC"}
|
|
@@ -6,6 +6,7 @@ import { LaborTicketSyncLedgerManager } from "../caching-service/labor-ticket-sy
|
|
|
6
6
|
import { LaborTicketERPSynchronizer } from "../../utils/standard-process-drivers/labor-ticket-erp-synchronizer.js";
|
|
7
7
|
import { buildMMSendWorkOrderOperationFromLaborTicket } from "../../utils/labor-ticket-work-order-operation-send.js";
|
|
8
8
|
import { GraphQLError } from "../erp-api-services/errors.js";
|
|
9
|
+
import { LaborTicketRecovery } from "../../utils/labor-ticket-recovery.js";
|
|
9
10
|
/**
|
|
10
11
|
* Manages NATS-based real-time labor ticket processing
|
|
11
12
|
*/
|
|
@@ -311,12 +312,54 @@ export class NatsLaborTicketListener {
|
|
|
311
312
|
try {
|
|
312
313
|
let erpResult;
|
|
313
314
|
if (action === "create" || !laborTicket.laborTicketId) {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
315
|
+
const recoveredLaborTicketId = !laborTicket.laborTicketId
|
|
316
|
+
? await LaborTicketRecovery.attemptBeforeCreate(this.connector, laborTicket)
|
|
317
|
+
: null;
|
|
318
|
+
if (recoveredLaborTicketId) {
|
|
319
|
+
logger.info("[LABOR_RECOVERY] Recovered existing ERP laborTicketId; patching MM before ERP update", {
|
|
320
|
+
laborTicketRef: laborTicket.laborTicketRef,
|
|
321
|
+
laborTicketId: recoveredLaborTicketId,
|
|
322
|
+
});
|
|
323
|
+
laborTicket.laborTicketId = recoveredLaborTicketId;
|
|
324
|
+
if (laborTicket.laborTicketRef) {
|
|
325
|
+
const mmApiClient = new MMApiClient();
|
|
326
|
+
try {
|
|
327
|
+
await mmApiClient.updateLaborTicketIdByRef(laborTicket.laborTicketRef, recoveredLaborTicketId);
|
|
328
|
+
}
|
|
329
|
+
finally {
|
|
330
|
+
await mmApiClient.destroy();
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
erpResult = {
|
|
334
|
+
laborTicket: await this.connector.updateLaborTicketInERP(laborTicket),
|
|
335
|
+
erpUid: recoveredLaborTicketId,
|
|
336
|
+
};
|
|
337
|
+
erpResult.laborTicket.laborTicketId =
|
|
338
|
+
erpResult.laborTicket.laborTicketId || recoveredLaborTicketId;
|
|
339
|
+
logger.info("Successfully updated recovered labor ticket in ERP", {
|
|
340
|
+
laborTicketRef: laborTicket.laborTicketRef,
|
|
341
|
+
laborTicketId: recoveredLaborTicketId,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
try {
|
|
346
|
+
erpResult = await this.connector.createLaborTicketInERP(laborTicket);
|
|
347
|
+
logger.info("Successfully created labor ticket in ERP", {
|
|
348
|
+
laborTicketRef: laborTicket.laborTicketRef,
|
|
349
|
+
erpUid: erpResult.erpUid,
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
const mmApiClient = new MMApiClient();
|
|
354
|
+
try {
|
|
355
|
+
await LaborTicketRecovery.patchMmOnCreateFailure(mmApiClient, laborTicket, error);
|
|
356
|
+
}
|
|
357
|
+
finally {
|
|
358
|
+
await mmApiClient.destroy();
|
|
359
|
+
}
|
|
360
|
+
throw error;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
320
363
|
}
|
|
321
364
|
else {
|
|
322
365
|
// Update existing labor ticket in ERP
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nats-labor-ticket-listener.js","sourceRoot":"","sources":["../../../src/services/data-sync-service/nats-labor-ticket-listener.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nats-labor-ticket-listener.js","sourceRoot":"","sources":["../../../src/services/data-sync-service/nats-labor-ticket-listener.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
import { MMReceiveLaborTicket, MMReceiveTimesheet } from "../services/mm-api-service/types/receive-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Controls how the SDK proceeds after `recoverLaborTicketId`.
|
|
4
|
+
*/
|
|
5
|
+
export declare enum RecoverLaborTicketIdAction {
|
|
6
|
+
RECOVER = "RECOVER",
|
|
7
|
+
CREATE = "CREATE",
|
|
8
|
+
DEFER = "DEFER"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Result of `recoverLaborTicketId` when using the structured return shape.
|
|
12
|
+
*/
|
|
13
|
+
export type RecoverLaborTicketIdResult = {
|
|
14
|
+
action: RecoverLaborTicketIdAction.RECOVER;
|
|
15
|
+
laborTicketId: string;
|
|
16
|
+
} | {
|
|
17
|
+
action: RecoverLaborTicketIdAction.CREATE;
|
|
18
|
+
} | {
|
|
19
|
+
action: RecoverLaborTicketIdAction.DEFER;
|
|
20
|
+
reason?: string;
|
|
21
|
+
};
|
|
22
|
+
/** Accepted return shapes from `recoverLaborTicketId` (structured result or legacy shorthand). */
|
|
23
|
+
export type RecoverLaborTicketIdReturn = RecoverLaborTicketIdResult | string | null;
|
|
2
24
|
/**
|
|
3
25
|
* Interface for ERP connectors.
|
|
4
26
|
*
|
|
@@ -40,6 +62,19 @@ export interface IERPConnector {
|
|
|
40
62
|
* UTC API responses into the ERP's local timezone, based on the company's timezone setting.
|
|
41
63
|
*/
|
|
42
64
|
export interface IERPLaborTicketHandler {
|
|
65
|
+
/**
|
|
66
|
+
* Optionally recover an existing ERP labor ticket ID for an MM ticket before
|
|
67
|
+
* creating a new ERP row.
|
|
68
|
+
*
|
|
69
|
+
* Return `{ action: RecoverLaborTicketIdAction.RECOVER, laborTicketId }` when a row exists,
|
|
70
|
+
* `{ action: RecoverLaborTicketIdAction.CREATE }` or `null` when none exists,
|
|
71
|
+
* `{ action: RecoverLaborTicketIdAction.DEFER }` to skip create for this cycle (retry later).
|
|
72
|
+
* Legacy `string` / `null` returns are also accepted (`string` = recover).
|
|
73
|
+
*
|
|
74
|
+
* Duplicate prevention requires the connector to implement this and return a
|
|
75
|
+
* correct id; the SDK does not validate ids against the ERP.
|
|
76
|
+
*/
|
|
77
|
+
recoverLaborTicketId?(laborTicket: MMReceiveLaborTicket): Promise<RecoverLaborTicketIdReturn>;
|
|
43
78
|
createLaborTicketInERP(laborTicket: MMReceiveLaborTicket): Promise<{
|
|
44
79
|
laborTicket: MMReceiveLaborTicket;
|
|
45
80
|
erpUid: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erp-connector.d.ts","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,mDAAmD,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAE5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE"}
|
|
1
|
+
{"version":3,"file":"erp-connector.d.ts","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,mDAAmD,CAAC;AAE3D;;GAEG;AACH,oBAAY,0BAA0B;IACpC,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAClC;IAAE,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,MAAM,EAAE,0BAA0B,CAAC,MAAM,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,0BAA0B,CAAC,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,kGAAkG;AAClG,MAAM,MAAM,0BAA0B,GAClC,0BAA0B,GAC1B,MAAM,GACN,IAAI,CAAC;AAET;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAE5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,CACnB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACvC,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,sBAAsB,CACpB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Controls how the SDK proceeds after `recoverLaborTicketId`.
|
|
3
|
+
*/
|
|
4
|
+
export var RecoverLaborTicketIdAction;
|
|
5
|
+
(function (RecoverLaborTicketIdAction) {
|
|
6
|
+
RecoverLaborTicketIdAction["RECOVER"] = "RECOVER";
|
|
7
|
+
RecoverLaborTicketIdAction["CREATE"] = "CREATE";
|
|
8
|
+
RecoverLaborTicketIdAction["DEFER"] = "DEFER";
|
|
9
|
+
})(RecoverLaborTicketIdAction || (RecoverLaborTicketIdAction = {}));
|
|
2
10
|
//# sourceMappingURL=erp-connector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erp-connector.js","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"erp-connector.js","sourceRoot":"","sources":["../../src/types/erp-connector.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,iDAAmB,CAAA;IACnB,+CAAiB,CAAA;IACjB,6CAAe,CAAA;AACjB,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type IERPLaborTicketHandler, type RecoverLaborTicketIdResult, type RecoverLaborTicketIdReturn } from "../types/erp-connector.js";
|
|
2
|
+
import type { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types.js";
|
|
3
|
+
import type { MMApiClient } from "../services/mm-api-service/mm-api-service.js";
|
|
4
|
+
/**
|
|
5
|
+
* Thrown when a connector defers recovery and the SDK should skip ERP create for this cycle.
|
|
6
|
+
* Polling records failure and enqueues retry; NATS returns an error response.
|
|
7
|
+
*/
|
|
8
|
+
export declare class LaborTicketRecoveryDeferredError extends Error {
|
|
9
|
+
readonly code = "LABOR_RECOVERY_DEFERRED";
|
|
10
|
+
constructor(reason?: string);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Thrown when ERP create failed overall but an ERP laborTicketId was assigned.
|
|
14
|
+
* The SDK patches MM before rethrowing so retries use the update path.
|
|
15
|
+
*/
|
|
16
|
+
export declare class LaborTicketCreatePartialSuccessError extends Error {
|
|
17
|
+
readonly code = "LABOR_CREATE_PARTIAL_SUCCESS";
|
|
18
|
+
readonly laborTicketId: string;
|
|
19
|
+
readonly laborTicket?: MMReceiveLaborTicket;
|
|
20
|
+
constructor(laborTicketId: string, message: string, options?: {
|
|
21
|
+
laborTicket?: MMReceiveLaborTicket;
|
|
22
|
+
cause?: unknown;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export declare function normalizeRecoverLaborTicketIdResult(result: RecoverLaborTicketIdReturn | undefined): RecoverLaborTicketIdResult;
|
|
26
|
+
export declare function callRecoverLaborTicketId(connector: IERPLaborTicketHandler, laborTicket: MMReceiveLaborTicket): Promise<RecoverLaborTicketIdResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Shared pre-create recovery orchestration for polling and NATS labor ticket paths.
|
|
29
|
+
*/
|
|
30
|
+
export declare class LaborTicketRecovery {
|
|
31
|
+
/**
|
|
32
|
+
* Invokes `recoverLaborTicketId` when implemented, immediately before ERP create.
|
|
33
|
+
*
|
|
34
|
+
* @returns Recovered ERP `laborTicketId`, or `null` to proceed with create.
|
|
35
|
+
* @throws {LaborTicketRecoveryDeferredError} When the connector returns `DEFER`.
|
|
36
|
+
*/
|
|
37
|
+
static attemptBeforeCreate(connector: IERPLaborTicketHandler, laborTicket: MMReceiveLaborTicket): Promise<string | null>;
|
|
38
|
+
/**
|
|
39
|
+
* On create failure, patch MM when the connector threw LaborTicketCreatePartialSuccessError.
|
|
40
|
+
* No-op for any other error type. Never throws; callers rethrow the original create error.
|
|
41
|
+
*/
|
|
42
|
+
static patchMmOnCreateFailure(mmApiClient: MMApiClient, laborTicket: MMReceiveLaborTicket, error: unknown): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=labor-ticket-recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labor-ticket-recovery.d.ts","sourceRoot":"","sources":["../../src/utils/labor-ticket-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAIhF;;;GAGG;AACH,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,6BAA6B;gBAE9B,MAAM,CAAC,EAAE,MAAM;CAO5B;AAED;;;GAGG;AACH,qBAAa,oCAAqC,SAAQ,KAAK;IAC7D,QAAQ,CAAC,IAAI,kCAAkC;IAC/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;gBAG1C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAUpE;AAoCD,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,0BAA0B,GAAG,SAAS,GAC7C,0BAA0B,CA8B5B;AAED,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,sBAAsB,EACjC,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAOrC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;;;OAKG;WACU,mBAAmB,CAC9B,SAAS,EAAE,sBAAsB,EACjC,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwCzB;;;OAGG;WACU,sBAAsB,CACjC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC;CAwBjB"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { RecoverLaborTicketIdAction, } from "../types/erp-connector.js";
|
|
2
|
+
import { sdkLogger as logger } from "../services/reporting-service/logger.js";
|
|
3
|
+
import { summarizeError } from "./error-utils.js";
|
|
4
|
+
/**
|
|
5
|
+
* Thrown when a connector defers recovery and the SDK should skip ERP create for this cycle.
|
|
6
|
+
* Polling records failure and enqueues retry; NATS returns an error response.
|
|
7
|
+
*/
|
|
8
|
+
export class LaborTicketRecoveryDeferredError extends Error {
|
|
9
|
+
code = "LABOR_RECOVERY_DEFERRED";
|
|
10
|
+
constructor(reason) {
|
|
11
|
+
super(reason ??
|
|
12
|
+
"Labor ticket recovery deferred; skipping ERP create for this cycle");
|
|
13
|
+
this.name = "LaborTicketRecoveryDeferredError";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Thrown when ERP create failed overall but an ERP laborTicketId was assigned.
|
|
18
|
+
* The SDK patches MM before rethrowing so retries use the update path.
|
|
19
|
+
*/
|
|
20
|
+
export class LaborTicketCreatePartialSuccessError extends Error {
|
|
21
|
+
code = "LABOR_CREATE_PARTIAL_SUCCESS";
|
|
22
|
+
laborTicketId;
|
|
23
|
+
laborTicket;
|
|
24
|
+
constructor(laborTicketId, message, options) {
|
|
25
|
+
super(message, options?.cause !== undefined ? { cause: options.cause } : undefined);
|
|
26
|
+
this.name = "LaborTicketCreatePartialSuccessError";
|
|
27
|
+
this.laborTicketId = laborTicketId;
|
|
28
|
+
this.laborTicket = options?.laborTicket;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function readNonEmptyId(value) {
|
|
32
|
+
if (typeof value !== "string") {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const trimmed = value.trim();
|
|
36
|
+
return trimmed ? trimmed : null;
|
|
37
|
+
}
|
|
38
|
+
/** Extracts an ERP laborTicketId from a partial-create failure. Internal helper. */
|
|
39
|
+
function extractPartialLaborTicketId(error) {
|
|
40
|
+
if (error instanceof LaborTicketCreatePartialSuccessError) {
|
|
41
|
+
return readNonEmptyId(error.laborTicketId);
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
function coerceRecoverLaborTicketIdAction(action) {
|
|
46
|
+
if (typeof action === "string") {
|
|
47
|
+
switch (action.toUpperCase()) {
|
|
48
|
+
case RecoverLaborTicketIdAction.RECOVER:
|
|
49
|
+
return RecoverLaborTicketIdAction.RECOVER;
|
|
50
|
+
case RecoverLaborTicketIdAction.DEFER:
|
|
51
|
+
return RecoverLaborTicketIdAction.DEFER;
|
|
52
|
+
default:
|
|
53
|
+
return RecoverLaborTicketIdAction.CREATE;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return action;
|
|
57
|
+
}
|
|
58
|
+
export function normalizeRecoverLaborTicketIdResult(result) {
|
|
59
|
+
if (result === null || result === undefined) {
|
|
60
|
+
return { action: RecoverLaborTicketIdAction.CREATE };
|
|
61
|
+
}
|
|
62
|
+
if (typeof result === "string") {
|
|
63
|
+
const laborTicketId = result.trim();
|
|
64
|
+
return laborTicketId
|
|
65
|
+
? { action: RecoverLaborTicketIdAction.RECOVER, laborTicketId }
|
|
66
|
+
: { action: RecoverLaborTicketIdAction.CREATE };
|
|
67
|
+
}
|
|
68
|
+
const action = coerceRecoverLaborTicketIdAction(result.action);
|
|
69
|
+
if (action === RecoverLaborTicketIdAction.RECOVER) {
|
|
70
|
+
const laborTicketId = "laborTicketId" in result ? result.laborTicketId.trim() : "";
|
|
71
|
+
return laborTicketId
|
|
72
|
+
? { action: RecoverLaborTicketIdAction.RECOVER, laborTicketId }
|
|
73
|
+
: { action: RecoverLaborTicketIdAction.CREATE };
|
|
74
|
+
}
|
|
75
|
+
if (action === RecoverLaborTicketIdAction.DEFER) {
|
|
76
|
+
return {
|
|
77
|
+
action: RecoverLaborTicketIdAction.DEFER,
|
|
78
|
+
reason: "reason" in result ? result.reason : undefined,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return { action: RecoverLaborTicketIdAction.CREATE };
|
|
82
|
+
}
|
|
83
|
+
export async function callRecoverLaborTicketId(connector, laborTicket) {
|
|
84
|
+
if (!connector.recoverLaborTicketId) {
|
|
85
|
+
return { action: RecoverLaborTicketIdAction.CREATE };
|
|
86
|
+
}
|
|
87
|
+
const raw = await connector.recoverLaborTicketId(laborTicket);
|
|
88
|
+
return normalizeRecoverLaborTicketIdResult(raw);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Shared pre-create recovery orchestration for polling and NATS labor ticket paths.
|
|
92
|
+
*/
|
|
93
|
+
export class LaborTicketRecovery {
|
|
94
|
+
/**
|
|
95
|
+
* Invokes `recoverLaborTicketId` when implemented, immediately before ERP create.
|
|
96
|
+
*
|
|
97
|
+
* @returns Recovered ERP `laborTicketId`, or `null` to proceed with create.
|
|
98
|
+
* @throws {LaborTicketRecoveryDeferredError} When the connector returns `DEFER`.
|
|
99
|
+
*/
|
|
100
|
+
static async attemptBeforeCreate(connector, laborTicket) {
|
|
101
|
+
if (!connector.recoverLaborTicketId) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
const laborTicketRef = laborTicket.laborTicketRef;
|
|
105
|
+
logger.info("[LABOR_RECOVERY] Attempting to recover laborTicketId before ERP create", { laborTicketRef });
|
|
106
|
+
try {
|
|
107
|
+
const recovery = await callRecoverLaborTicketId(connector, laborTicket);
|
|
108
|
+
if (recovery.action === RecoverLaborTicketIdAction.DEFER) {
|
|
109
|
+
logger.warn("[LABOR_RECOVERY] Deferred; skipping ERP create for this cycle", { laborTicketRef, reason: recovery.reason });
|
|
110
|
+
throw new LaborTicketRecoveryDeferredError(recovery.reason);
|
|
111
|
+
}
|
|
112
|
+
if (recovery.action === RecoverLaborTicketIdAction.RECOVER) {
|
|
113
|
+
return recovery.laborTicketId;
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error instanceof LaborTicketRecoveryDeferredError) {
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
logger.warn("[LABOR_RECOVERY] Recovery lookup failed; proceeding with ERP create", { laborTicketRef, error: summarizeError(error) });
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* On create failure, patch MM when the connector threw LaborTicketCreatePartialSuccessError.
|
|
127
|
+
* No-op for any other error type. Never throws; callers rethrow the original create error.
|
|
128
|
+
*/
|
|
129
|
+
static async patchMmOnCreateFailure(mmApiClient, laborTicket, error) {
|
|
130
|
+
try {
|
|
131
|
+
const laborTicketId = extractPartialLaborTicketId(error);
|
|
132
|
+
const laborTicketRef = laborTicket.laborTicketRef;
|
|
133
|
+
if (!laborTicketId || laborTicketRef == null || laborTicketRef === "") {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
await mmApiClient.updateLaborTicketIdByRef(String(laborTicketRef), laborTicketId);
|
|
137
|
+
logger.warn("[LABOR_PARTIAL_CREATE] Patched MM laborTicketId despite create failure", { laborTicketRef, laborTicketId });
|
|
138
|
+
}
|
|
139
|
+
catch (patchError) {
|
|
140
|
+
logger.warn("[LABOR_PARTIAL_CREATE] Salvage step failed; original create error still propagates", { error: summarizeError(patchError) });
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=labor-ticket-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labor-ticket-recovery.js","sourceRoot":"","sources":["../../src/utils/labor-ticket-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAI3B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;GAGG;AACH,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IAChD,IAAI,GAAG,yBAAyB,CAAC;IAE1C,YAAY,MAAe;QACzB,KAAK,CACH,MAAM;YACJ,oEAAoE,CACvE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IACjD,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oCAAqC,SAAQ,KAAK;IACpD,IAAI,GAAG,8BAA8B,CAAC;IACtC,aAAa,CAAS;IACtB,WAAW,CAAwB;IAE5C,YACE,aAAqB,EACrB,OAAe,EACf,OAAiE;QAEjE,KAAK,CACH,OAAO,EACP,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CACpE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sCAAsC,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC;IAC1C,CAAC;CACF;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAED,oFAAoF;AACpF,SAAS,2BAA2B,CAAC,KAAc;IACjD,IAAI,KAAK,YAAY,oCAAoC,EAAE,CAAC;QAC1D,OAAO,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gCAAgC,CACvC,MAA2C;IAE3C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7B,KAAK,0BAA0B,CAAC,OAAO;gBACrC,OAAO,0BAA0B,CAAC,OAAO,CAAC;YAC5C,KAAK,0BAA0B,CAAC,KAAK;gBACnC,OAAO,0BAA0B,CAAC,KAAK,CAAC;YAC1C;gBACE,OAAO,0BAA0B,CAAC,MAAM,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,MAA8C;IAE9C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,EAAE,MAAM,EAAE,0BAA0B,CAAC,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,aAAa;YAClB,CAAC,CAAC,EAAE,MAAM,EAAE,0BAA0B,CAAC,OAAO,EAAE,aAAa,EAAE;YAC/D,CAAC,CAAC,EAAE,MAAM,EAAE,0BAA0B,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,gCAAgC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE/D,IAAI,MAAM,KAAK,0BAA0B,CAAC,OAAO,EAAE,CAAC;QAClD,MAAM,aAAa,GACjB,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,aAAa;YAClB,CAAC,CAAC,EAAE,MAAM,EAAE,0BAA0B,CAAC,OAAO,EAAE,aAAa,EAAE;YAC/D,CAAC,CAAC,EAAE,MAAM,EAAE,0BAA0B,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,MAAM,KAAK,0BAA0B,CAAC,KAAK,EAAE,CAAC;QAChD,OAAO;YACL,MAAM,EAAE,0BAA0B,CAAC,KAAK;YACxC,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACvD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,0BAA0B,CAAC,MAAM,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,SAAiC,EACjC,WAAiC;IAEjC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;QACpC,OAAO,EAAE,MAAM,EAAE,0BAA0B,CAAC,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,mCAAmC,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAC9B,SAAiC,EACjC,WAAiC;QAEjC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;QAClD,MAAM,CAAC,IAAI,CACT,wEAAwE,EACxE,EAAE,cAAc,EAAE,CACnB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAExE,IAAI,QAAQ,CAAC,MAAM,KAAK,0BAA0B,CAAC,KAAK,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CACT,+DAA+D,EAC/D,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAC5C,CAAC;gBACF,MAAM,IAAI,gCAAgC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,0BAA0B,CAAC,OAAO,EAAE,CAAC;gBAC3D,OAAO,QAAQ,CAAC,aAAa,CAAC;YAChC,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;gBACtD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,CAAC,IAAI,CACT,qEAAqE,EACrE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CACjD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACjC,WAAwB,EACxB,WAAiC,EACjC,KAAc;QAEd,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;YAElD,IAAI,CAAC,aAAa,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;gBACtE,OAAO;YACT,CAAC;YAED,MAAM,WAAW,CAAC,wBAAwB,CACxC,MAAM,CAAC,cAAc,CAAC,EACtB,aAAa,CACd,CAAC;YACF,MAAM,CAAC,IAAI,CACT,wEAAwE,EACxE,EAAE,cAAc,EAAE,aAAa,EAAE,CAClC,CAAC;QACJ,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CACT,oFAAoF,EACpF,EAAE,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CACtC,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labor-ticket-erp-synchronizer.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"labor-ticket-erp-synchronizer.d.ts","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAe5F;;GAEG;AACH,qBAAa,0BAA0B;IAGrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAEnD;;;OAGG;mBACkB,kCAAkC;IA2BvD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wCAAwC;IA2BvD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;WACU,SAAS,CACpB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,EACjC,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GACA,OAAO,CAAC,IAAI,CAAC;IAmMhB,OAAO,CAAC,MAAM,CAAC,gCAAgC;mBAgB1B,wBAAwB;mBA4IxB,0BAA0B;mBAsG1B,0BAA0B;IAwD/C;;OAEG;WACU,WAAW,CACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;mBA2IK,sBAAsB;mBAetB,kBAAkB;IA6EvC;;;;;;;;;OASG;WACW,4BAA4B,CACxC,MAAM,EAAE,oBAAoB,GAC3B,MAAM;IA0BT;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAa3C,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAc1C"}
|
|
@@ -4,6 +4,7 @@ import { sdkLogger as logger } from "../../services/reporting-service/logger.js"
|
|
|
4
4
|
import { summarizeError } from "../error-utils.js";
|
|
5
5
|
import { LaborTicketSyncLedgerManager } from "../../services/caching-service/labor-ticket-sync-ledger-manager.js";
|
|
6
6
|
import { normalizeTimestamp, normalizeString, normalizeNumber, normalizeLaborTicketRef, normalizeReasons, tryLaborTicketLedgerErpImportKey, } from "./labor-ticket-normalization.js";
|
|
7
|
+
import { LaborTicketRecovery } from "../labor-ticket-recovery.js";
|
|
7
8
|
/**
|
|
8
9
|
* Handles synchronization of labor tickets between MachineMetrics and ERP systems
|
|
9
10
|
*/
|
|
@@ -542,9 +543,31 @@ export class LaborTicketERPSynchronizer {
|
|
|
542
543
|
// MLW TODO: Should we always swap out the resource ID for the machine group ERP id when relevant?
|
|
543
544
|
// Or use a flag? Connector-specific mapping (MES / ERP behavior) replaces the old GraphQL-based helper.
|
|
544
545
|
if (!laborTicket.laborTicketId) {
|
|
545
|
-
const
|
|
546
|
-
|
|
547
|
-
|
|
546
|
+
const recoveredLaborTicketId = await LaborTicketRecovery.attemptBeforeCreate(connector, laborTicket);
|
|
547
|
+
if (recoveredLaborTicketId) {
|
|
548
|
+
logger.info("[LABOR_RECOVERY] Recovered existing ERP laborTicketId; patching MM before ERP update", {
|
|
549
|
+
laborTicketRef: laborTicket.laborTicketRef,
|
|
550
|
+
laborTicketId: recoveredLaborTicketId,
|
|
551
|
+
});
|
|
552
|
+
laborTicket.laborTicketId = recoveredLaborTicketId;
|
|
553
|
+
await this.writeLaborTicketIdToMM(mmApiClient, laborTicket, laborTicket);
|
|
554
|
+
laborTicketResult = await connector.updateLaborTicketInERP(laborTicket);
|
|
555
|
+
laborTicketResult.laborTicketId =
|
|
556
|
+
laborTicketResult.laborTicketId || recoveredLaborTicketId;
|
|
557
|
+
}
|
|
558
|
+
else {
|
|
559
|
+
try {
|
|
560
|
+
const createResult = await connector.createLaborTicketInERP(laborTicket);
|
|
561
|
+
laborTicketResult = createResult.laborTicket;
|
|
562
|
+
const erpUid = createResult.erpUid;
|
|
563
|
+
laborTicketResult.laborTicketId = erpUid;
|
|
564
|
+
await this.writeLaborTicketIdToMM(mmApiClient, laborTicket, laborTicketResult);
|
|
565
|
+
}
|
|
566
|
+
catch (error) {
|
|
567
|
+
await LaborTicketRecovery.patchMmOnCreateFailure(mmApiClient, laborTicket, error);
|
|
568
|
+
throw error;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
548
571
|
}
|
|
549
572
|
else {
|
|
550
573
|
laborTicketResult = await connector.updateLaborTicketInERP(laborTicket);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labor-ticket-erp-synchronizer.js","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"labor-ticket-erp-synchronizer.js","sourceRoot":"","sources":["../../../src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -104,7 +104,18 @@ export { runDataSyncService } from "./services/data-sync-service/index.js";
|
|
|
104
104
|
export { logger } from "./services/reporting-service/index.js";
|
|
105
105
|
|
|
106
106
|
// Labor ticket handler interface
|
|
107
|
-
export
|
|
107
|
+
export {
|
|
108
|
+
RecoverLaborTicketIdAction,
|
|
109
|
+
} from "./types/erp-connector.js";
|
|
110
|
+
export type {
|
|
111
|
+
IERPLaborTicketHandler,
|
|
112
|
+
RecoverLaborTicketIdResult,
|
|
113
|
+
RecoverLaborTicketIdReturn,
|
|
114
|
+
} from "./types/erp-connector.js";
|
|
115
|
+
export {
|
|
116
|
+
LaborTicketRecoveryDeferredError,
|
|
117
|
+
LaborTicketCreatePartialSuccessError,
|
|
118
|
+
} from "./utils/labor-ticket-recovery.js";
|
|
108
119
|
|
|
109
120
|
// Process drivers and utilities
|
|
110
121
|
export {
|
|
@@ -10,6 +10,7 @@ import { LaborTicketSyncLedgerManager } from "../caching-service/labor-ticket-sy
|
|
|
10
10
|
import { LaborTicketERPSynchronizer } from "../../utils/standard-process-drivers/labor-ticket-erp-synchronizer.js";
|
|
11
11
|
import { buildMMSendWorkOrderOperationFromLaborTicket } from "../../utils/labor-ticket-work-order-operation-send.js";
|
|
12
12
|
import { GraphQLError } from "../erp-api-services/errors.js";
|
|
13
|
+
import { LaborTicketRecovery } from "../../utils/labor-ticket-recovery.js";
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Manages NATS-based real-time labor ticket processing
|
|
@@ -386,12 +387,70 @@ export class NatsLaborTicketListener {
|
|
|
386
387
|
let erpResult;
|
|
387
388
|
|
|
388
389
|
if (action === "create" || !laborTicket.laborTicketId) {
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
390
|
+
const recoveredLaborTicketId = !laborTicket.laborTicketId
|
|
391
|
+
? await LaborTicketRecovery.attemptBeforeCreate(
|
|
392
|
+
this.connector,
|
|
393
|
+
laborTicket
|
|
394
|
+
)
|
|
395
|
+
: null;
|
|
396
|
+
|
|
397
|
+
if (recoveredLaborTicketId) {
|
|
398
|
+
logger.info(
|
|
399
|
+
"[LABOR_RECOVERY] Recovered existing ERP laborTicketId; patching MM before ERP update",
|
|
400
|
+
{
|
|
401
|
+
laborTicketRef: laborTicket.laborTicketRef,
|
|
402
|
+
laborTicketId: recoveredLaborTicketId,
|
|
403
|
+
}
|
|
404
|
+
);
|
|
405
|
+
|
|
406
|
+
laborTicket.laborTicketId = recoveredLaborTicketId;
|
|
407
|
+
|
|
408
|
+
if (laborTicket.laborTicketRef) {
|
|
409
|
+
const mmApiClient = new MMApiClient();
|
|
410
|
+
try {
|
|
411
|
+
await mmApiClient.updateLaborTicketIdByRef(
|
|
412
|
+
laborTicket.laborTicketRef,
|
|
413
|
+
recoveredLaborTicketId
|
|
414
|
+
);
|
|
415
|
+
} finally {
|
|
416
|
+
await mmApiClient.destroy();
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
erpResult = {
|
|
421
|
+
laborTicket: await this.connector.updateLaborTicketInERP(
|
|
422
|
+
laborTicket
|
|
423
|
+
),
|
|
424
|
+
erpUid: recoveredLaborTicketId,
|
|
425
|
+
};
|
|
426
|
+
erpResult.laborTicket.laborTicketId =
|
|
427
|
+
erpResult.laborTicket.laborTicketId || recoveredLaborTicketId;
|
|
428
|
+
|
|
429
|
+
logger.info("Successfully updated recovered labor ticket in ERP", {
|
|
430
|
+
laborTicketRef: laborTicket.laborTicketRef,
|
|
431
|
+
laborTicketId: recoveredLaborTicketId,
|
|
432
|
+
});
|
|
433
|
+
} else {
|
|
434
|
+
try {
|
|
435
|
+
erpResult = await this.connector.createLaborTicketInERP(laborTicket);
|
|
436
|
+
logger.info("Successfully created labor ticket in ERP", {
|
|
437
|
+
laborTicketRef: laborTicket.laborTicketRef,
|
|
438
|
+
erpUid: erpResult.erpUid,
|
|
439
|
+
});
|
|
440
|
+
} catch (error) {
|
|
441
|
+
const mmApiClient = new MMApiClient();
|
|
442
|
+
try {
|
|
443
|
+
await LaborTicketRecovery.patchMmOnCreateFailure(
|
|
444
|
+
mmApiClient,
|
|
445
|
+
laborTicket,
|
|
446
|
+
error
|
|
447
|
+
);
|
|
448
|
+
} finally {
|
|
449
|
+
await mmApiClient.destroy();
|
|
450
|
+
}
|
|
451
|
+
throw error;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
395
454
|
} else {
|
|
396
455
|
// Update existing labor ticket in ERP
|
|
397
456
|
erpResult = {
|
|
@@ -3,6 +3,29 @@ import {
|
|
|
3
3
|
MMReceiveTimesheet,
|
|
4
4
|
} from "../services/mm-api-service/types/receive-types.js";
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Controls how the SDK proceeds after `recoverLaborTicketId`.
|
|
8
|
+
*/
|
|
9
|
+
export enum RecoverLaborTicketIdAction {
|
|
10
|
+
RECOVER = "RECOVER",
|
|
11
|
+
CREATE = "CREATE",
|
|
12
|
+
DEFER = "DEFER",
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Result of `recoverLaborTicketId` when using the structured return shape.
|
|
17
|
+
*/
|
|
18
|
+
export type RecoverLaborTicketIdResult =
|
|
19
|
+
| { action: RecoverLaborTicketIdAction.RECOVER; laborTicketId: string }
|
|
20
|
+
| { action: RecoverLaborTicketIdAction.CREATE }
|
|
21
|
+
| { action: RecoverLaborTicketIdAction.DEFER; reason?: string };
|
|
22
|
+
|
|
23
|
+
/** Accepted return shapes from `recoverLaborTicketId` (structured result or legacy shorthand). */
|
|
24
|
+
export type RecoverLaborTicketIdReturn =
|
|
25
|
+
| RecoverLaborTicketIdResult
|
|
26
|
+
| string
|
|
27
|
+
| null;
|
|
28
|
+
|
|
6
29
|
/**
|
|
7
30
|
* Interface for ERP connectors.
|
|
8
31
|
*
|
|
@@ -50,6 +73,21 @@ export interface IERPConnector {
|
|
|
50
73
|
* UTC API responses into the ERP's local timezone, based on the company's timezone setting.
|
|
51
74
|
*/
|
|
52
75
|
export interface IERPLaborTicketHandler {
|
|
76
|
+
/**
|
|
77
|
+
* Optionally recover an existing ERP labor ticket ID for an MM ticket before
|
|
78
|
+
* creating a new ERP row.
|
|
79
|
+
*
|
|
80
|
+
* Return `{ action: RecoverLaborTicketIdAction.RECOVER, laborTicketId }` when a row exists,
|
|
81
|
+
* `{ action: RecoverLaborTicketIdAction.CREATE }` or `null` when none exists,
|
|
82
|
+
* `{ action: RecoverLaborTicketIdAction.DEFER }` to skip create for this cycle (retry later).
|
|
83
|
+
* Legacy `string` / `null` returns are also accepted (`string` = recover).
|
|
84
|
+
*
|
|
85
|
+
* Duplicate prevention requires the connector to implement this and return a
|
|
86
|
+
* correct id; the SDK does not validate ids against the ERP.
|
|
87
|
+
*/
|
|
88
|
+
recoverLaborTicketId?(
|
|
89
|
+
laborTicket: MMReceiveLaborTicket
|
|
90
|
+
): Promise<RecoverLaborTicketIdReturn>;
|
|
53
91
|
createLaborTicketInERP(
|
|
54
92
|
laborTicket: MMReceiveLaborTicket
|
|
55
93
|
): Promise<{ laborTicket: MMReceiveLaborTicket; erpUid: string }>;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RecoverLaborTicketIdAction,
|
|
3
|
+
type IERPLaborTicketHandler,
|
|
4
|
+
type RecoverLaborTicketIdResult,
|
|
5
|
+
type RecoverLaborTicketIdReturn,
|
|
6
|
+
} from "../types/erp-connector.js";
|
|
7
|
+
import type { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types.js";
|
|
8
|
+
import type { MMApiClient } from "../services/mm-api-service/mm-api-service.js";
|
|
9
|
+
import { sdkLogger as logger } from "../services/reporting-service/logger.js";
|
|
10
|
+
import { summarizeError } from "./error-utils.js";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Thrown when a connector defers recovery and the SDK should skip ERP create for this cycle.
|
|
14
|
+
* Polling records failure and enqueues retry; NATS returns an error response.
|
|
15
|
+
*/
|
|
16
|
+
export class LaborTicketRecoveryDeferredError extends Error {
|
|
17
|
+
readonly code = "LABOR_RECOVERY_DEFERRED";
|
|
18
|
+
|
|
19
|
+
constructor(reason?: string) {
|
|
20
|
+
super(
|
|
21
|
+
reason ??
|
|
22
|
+
"Labor ticket recovery deferred; skipping ERP create for this cycle"
|
|
23
|
+
);
|
|
24
|
+
this.name = "LaborTicketRecoveryDeferredError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Thrown when ERP create failed overall but an ERP laborTicketId was assigned.
|
|
30
|
+
* The SDK patches MM before rethrowing so retries use the update path.
|
|
31
|
+
*/
|
|
32
|
+
export class LaborTicketCreatePartialSuccessError extends Error {
|
|
33
|
+
readonly code = "LABOR_CREATE_PARTIAL_SUCCESS";
|
|
34
|
+
readonly laborTicketId: string;
|
|
35
|
+
readonly laborTicket?: MMReceiveLaborTicket;
|
|
36
|
+
|
|
37
|
+
constructor(
|
|
38
|
+
laborTicketId: string,
|
|
39
|
+
message: string,
|
|
40
|
+
options?: { laborTicket?: MMReceiveLaborTicket; cause?: unknown }
|
|
41
|
+
) {
|
|
42
|
+
super(
|
|
43
|
+
message,
|
|
44
|
+
options?.cause !== undefined ? { cause: options.cause } : undefined
|
|
45
|
+
);
|
|
46
|
+
this.name = "LaborTicketCreatePartialSuccessError";
|
|
47
|
+
this.laborTicketId = laborTicketId;
|
|
48
|
+
this.laborTicket = options?.laborTicket;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function readNonEmptyId(value: unknown): string | null {
|
|
53
|
+
if (typeof value !== "string") {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const trimmed = value.trim();
|
|
57
|
+
return trimmed ? trimmed : null;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Extracts an ERP laborTicketId from a partial-create failure. Internal helper. */
|
|
61
|
+
function extractPartialLaborTicketId(error: unknown): string | null {
|
|
62
|
+
if (error instanceof LaborTicketCreatePartialSuccessError) {
|
|
63
|
+
return readNonEmptyId(error.laborTicketId);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function coerceRecoverLaborTicketIdAction(
|
|
70
|
+
action: RecoverLaborTicketIdAction | string
|
|
71
|
+
): RecoverLaborTicketIdAction {
|
|
72
|
+
if (typeof action === "string") {
|
|
73
|
+
switch (action.toUpperCase()) {
|
|
74
|
+
case RecoverLaborTicketIdAction.RECOVER:
|
|
75
|
+
return RecoverLaborTicketIdAction.RECOVER;
|
|
76
|
+
case RecoverLaborTicketIdAction.DEFER:
|
|
77
|
+
return RecoverLaborTicketIdAction.DEFER;
|
|
78
|
+
default:
|
|
79
|
+
return RecoverLaborTicketIdAction.CREATE;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return action;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function normalizeRecoverLaborTicketIdResult(
|
|
87
|
+
result: RecoverLaborTicketIdReturn | undefined
|
|
88
|
+
): RecoverLaborTicketIdResult {
|
|
89
|
+
if (result === null || result === undefined) {
|
|
90
|
+
return { action: RecoverLaborTicketIdAction.CREATE };
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (typeof result === "string") {
|
|
94
|
+
const laborTicketId = result.trim();
|
|
95
|
+
return laborTicketId
|
|
96
|
+
? { action: RecoverLaborTicketIdAction.RECOVER, laborTicketId }
|
|
97
|
+
: { action: RecoverLaborTicketIdAction.CREATE };
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const action = coerceRecoverLaborTicketIdAction(result.action);
|
|
101
|
+
|
|
102
|
+
if (action === RecoverLaborTicketIdAction.RECOVER) {
|
|
103
|
+
const laborTicketId =
|
|
104
|
+
"laborTicketId" in result ? result.laborTicketId.trim() : "";
|
|
105
|
+
return laborTicketId
|
|
106
|
+
? { action: RecoverLaborTicketIdAction.RECOVER, laborTicketId }
|
|
107
|
+
: { action: RecoverLaborTicketIdAction.CREATE };
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (action === RecoverLaborTicketIdAction.DEFER) {
|
|
111
|
+
return {
|
|
112
|
+
action: RecoverLaborTicketIdAction.DEFER,
|
|
113
|
+
reason: "reason" in result ? result.reason : undefined,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return { action: RecoverLaborTicketIdAction.CREATE };
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export async function callRecoverLaborTicketId(
|
|
121
|
+
connector: IERPLaborTicketHandler,
|
|
122
|
+
laborTicket: MMReceiveLaborTicket
|
|
123
|
+
): Promise<RecoverLaborTicketIdResult> {
|
|
124
|
+
if (!connector.recoverLaborTicketId) {
|
|
125
|
+
return { action: RecoverLaborTicketIdAction.CREATE };
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
const raw = await connector.recoverLaborTicketId(laborTicket);
|
|
129
|
+
return normalizeRecoverLaborTicketIdResult(raw);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Shared pre-create recovery orchestration for polling and NATS labor ticket paths.
|
|
134
|
+
*/
|
|
135
|
+
export class LaborTicketRecovery {
|
|
136
|
+
/**
|
|
137
|
+
* Invokes `recoverLaborTicketId` when implemented, immediately before ERP create.
|
|
138
|
+
*
|
|
139
|
+
* @returns Recovered ERP `laborTicketId`, or `null` to proceed with create.
|
|
140
|
+
* @throws {LaborTicketRecoveryDeferredError} When the connector returns `DEFER`.
|
|
141
|
+
*/
|
|
142
|
+
static async attemptBeforeCreate(
|
|
143
|
+
connector: IERPLaborTicketHandler,
|
|
144
|
+
laborTicket: MMReceiveLaborTicket
|
|
145
|
+
): Promise<string | null> {
|
|
146
|
+
if (!connector.recoverLaborTicketId) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const laborTicketRef = laborTicket.laborTicketRef;
|
|
151
|
+
logger.info(
|
|
152
|
+
"[LABOR_RECOVERY] Attempting to recover laborTicketId before ERP create",
|
|
153
|
+
{ laborTicketRef }
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
try {
|
|
157
|
+
const recovery = await callRecoverLaborTicketId(connector, laborTicket);
|
|
158
|
+
|
|
159
|
+
if (recovery.action === RecoverLaborTicketIdAction.DEFER) {
|
|
160
|
+
logger.warn(
|
|
161
|
+
"[LABOR_RECOVERY] Deferred; skipping ERP create for this cycle",
|
|
162
|
+
{ laborTicketRef, reason: recovery.reason }
|
|
163
|
+
);
|
|
164
|
+
throw new LaborTicketRecoveryDeferredError(recovery.reason);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (recovery.action === RecoverLaborTicketIdAction.RECOVER) {
|
|
168
|
+
return recovery.laborTicketId;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return null;
|
|
172
|
+
} catch (error) {
|
|
173
|
+
if (error instanceof LaborTicketRecoveryDeferredError) {
|
|
174
|
+
throw error;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
logger.warn(
|
|
178
|
+
"[LABOR_RECOVERY] Recovery lookup failed; proceeding with ERP create",
|
|
179
|
+
{ laborTicketRef, error: summarizeError(error) }
|
|
180
|
+
);
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* On create failure, patch MM when the connector threw LaborTicketCreatePartialSuccessError.
|
|
187
|
+
* No-op for any other error type. Never throws; callers rethrow the original create error.
|
|
188
|
+
*/
|
|
189
|
+
static async patchMmOnCreateFailure(
|
|
190
|
+
mmApiClient: MMApiClient,
|
|
191
|
+
laborTicket: MMReceiveLaborTicket,
|
|
192
|
+
error: unknown
|
|
193
|
+
): Promise<void> {
|
|
194
|
+
try {
|
|
195
|
+
const laborTicketId = extractPartialLaborTicketId(error);
|
|
196
|
+
const laborTicketRef = laborTicket.laborTicketRef;
|
|
197
|
+
|
|
198
|
+
if (!laborTicketId || laborTicketRef == null || laborTicketRef === "") {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
await mmApiClient.updateLaborTicketIdByRef(
|
|
203
|
+
String(laborTicketRef),
|
|
204
|
+
laborTicketId
|
|
205
|
+
);
|
|
206
|
+
logger.warn(
|
|
207
|
+
"[LABOR_PARTIAL_CREATE] Patched MM laborTicketId despite create failure",
|
|
208
|
+
{ laborTicketRef, laborTicketId }
|
|
209
|
+
);
|
|
210
|
+
} catch (patchError) {
|
|
211
|
+
logger.warn(
|
|
212
|
+
"[LABOR_PARTIAL_CREATE] Salvage step failed; original create error still propagates",
|
|
213
|
+
{ error: summarizeError(patchError) }
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
normalizeReasons,
|
|
14
14
|
tryLaborTicketLedgerErpImportKey,
|
|
15
15
|
} from "./labor-ticket-normalization.js";
|
|
16
|
+
import { LaborTicketRecovery } from "../labor-ticket-recovery.js";
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* Handles synchronization of labor tickets between MachineMetrics and ERP systems
|
|
@@ -803,14 +804,48 @@ export class LaborTicketERPSynchronizer {
|
|
|
803
804
|
// Or use a flag? Connector-specific mapping (MES / ERP behavior) replaces the old GraphQL-based helper.
|
|
804
805
|
|
|
805
806
|
if (!laborTicket.laborTicketId) {
|
|
806
|
-
const
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
await this.writeLaborTicketIdToMM(
|
|
810
|
-
mmApiClient,
|
|
811
|
-
laborTicket,
|
|
812
|
-
laborTicketResult
|
|
807
|
+
const recoveredLaborTicketId = await LaborTicketRecovery.attemptBeforeCreate(
|
|
808
|
+
connector,
|
|
809
|
+
laborTicket
|
|
813
810
|
);
|
|
811
|
+
|
|
812
|
+
if (recoveredLaborTicketId) {
|
|
813
|
+
logger.info(
|
|
814
|
+
"[LABOR_RECOVERY] Recovered existing ERP laborTicketId; patching MM before ERP update",
|
|
815
|
+
{
|
|
816
|
+
laborTicketRef: laborTicket.laborTicketRef,
|
|
817
|
+
laborTicketId: recoveredLaborTicketId,
|
|
818
|
+
}
|
|
819
|
+
);
|
|
820
|
+
|
|
821
|
+
laborTicket.laborTicketId = recoveredLaborTicketId;
|
|
822
|
+
await this.writeLaborTicketIdToMM(mmApiClient, laborTicket, laborTicket);
|
|
823
|
+
|
|
824
|
+
laborTicketResult = await connector.updateLaborTicketInERP(laborTicket);
|
|
825
|
+
laborTicketResult.laborTicketId =
|
|
826
|
+
laborTicketResult.laborTicketId || recoveredLaborTicketId;
|
|
827
|
+
} else {
|
|
828
|
+
try {
|
|
829
|
+
const createResult = await connector.createLaborTicketInERP(
|
|
830
|
+
laborTicket
|
|
831
|
+
);
|
|
832
|
+
laborTicketResult = createResult.laborTicket;
|
|
833
|
+
const erpUid = createResult.erpUid;
|
|
834
|
+
laborTicketResult.laborTicketId = erpUid;
|
|
835
|
+
await this.writeLaborTicketIdToMM(
|
|
836
|
+
mmApiClient,
|
|
837
|
+
laborTicket,
|
|
838
|
+
laborTicketResult
|
|
839
|
+
);
|
|
840
|
+
} catch (error) {
|
|
841
|
+
await LaborTicketRecovery.patchMmOnCreateFailure(
|
|
842
|
+
mmApiClient,
|
|
843
|
+
laborTicket,
|
|
844
|
+
error
|
|
845
|
+
);
|
|
846
|
+
throw error;
|
|
847
|
+
}
|
|
848
|
+
}
|
|
814
849
|
} else {
|
|
815
850
|
laborTicketResult = await connector.updateLaborTicketInERP(laborTicket);
|
|
816
851
|
}
|