snow-flow 10.0.1-dev.412 → 10.0.1-dev.414
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/package.json
CHANGED
|
@@ -124,11 +124,11 @@ async function createFlowViaScheduledJob(
|
|
|
124
124
|
" } catch(t1e) { r.steps.tier1 = { success: false, error: t1e.getMessage ? t1e.getMessage() : t1e + '' }; }",
|
|
125
125
|
"",
|
|
126
126
|
// ── TIER 2: GlideRecord ──
|
|
127
|
-
// Reference flow analysis
|
|
128
|
-
// -
|
|
129
|
-
// -
|
|
130
|
-
// - latest_version = null (normal
|
|
131
|
-
//
|
|
127
|
+
// Reference flow analysis:
|
|
128
|
+
// - latest_snapshot points to sys_hub_flow_snapshot (NOT version, NOT JSON)
|
|
129
|
+
// - flow_definition on flow record = null
|
|
130
|
+
// - latest_version = null (normal)
|
|
131
|
+
// Pipeline: flow → version → snapshot → set latest_snapshot on flow
|
|
132
132
|
" if (!flowSysId) {",
|
|
133
133
|
" try {",
|
|
134
134
|
" var f = new GlideRecord('sys_hub_flow');",
|
|
@@ -138,11 +138,10 @@ async function createFlowViaScheduledJob(
|
|
|
138
138
|
" f.setValue('run_as', runAs); f.setValue('active', false);",
|
|
139
139
|
" f.setValue('status', 'draft'); f.setValue('validated', true);",
|
|
140
140
|
" f.setValue('type', isSubflow ? 'subflow' : 'flow');",
|
|
141
|
-
// Do NOT set flow_definition (null on working flows)
|
|
142
|
-
// Do NOT set latest_snapshot yet (set after version insert — it's a sys_id ref)
|
|
143
141
|
" flowSysId = f.insert();",
|
|
144
142
|
" r.steps.flow_insert = { success: !!flowSysId, sys_id: flowSysId + '' };",
|
|
145
143
|
" if (flowSysId) {",
|
|
144
|
+
// Version record
|
|
146
145
|
" var v = new GlideRecord('sys_hub_flow_version');",
|
|
147
146
|
" v.initialize();",
|
|
148
147
|
" v.setValue('flow', flowSysId); v.setValue('name', '1.0');",
|
|
@@ -153,16 +152,35 @@ async function createFlowViaScheduledJob(
|
|
|
153
152
|
" verSysId = v.insert();",
|
|
154
153
|
" r.steps.version_insert = { success: !!verSysId, sys_id: verSysId + '' };",
|
|
155
154
|
"",
|
|
156
|
-
//
|
|
157
|
-
"
|
|
155
|
+
// Create snapshot in sys_hub_flow_snapshot (this is what latest_snapshot points to!)
|
|
156
|
+
" var snapId = null;",
|
|
157
|
+
" try {",
|
|
158
|
+
" var snap = new GlideRecord('sys_hub_flow_snapshot');",
|
|
159
|
+
" if (snap.isValid()) {",
|
|
160
|
+
" snap.initialize();",
|
|
161
|
+
" snap.setValue('name', flowName);",
|
|
162
|
+
// Try setting common fields — some may not exist, that's OK
|
|
163
|
+
" try { snap.setValue('flow', flowSysId); } catch(e) {}",
|
|
164
|
+
" try { snap.setValue('version', verSysId); } catch(e) {}",
|
|
165
|
+
" try { snap.setValue('state', 'draft'); } catch(e) {}",
|
|
166
|
+
" try { snap.setValue('active', true); } catch(e) {}",
|
|
167
|
+
" if (flowDefStr) { try { snap.setValue('flow_definition', flowDefStr); } catch(e) {} }",
|
|
168
|
+
" snapId = snap.insert();",
|
|
169
|
+
" r.steps.snapshot_insert = { success: !!snapId, sys_id: snapId + '' };",
|
|
170
|
+
" } else { r.steps.snapshot_insert = { success: false, error: 'table not valid' }; }",
|
|
171
|
+
" } catch(snapE) { r.steps.snapshot_insert = { success: false, error: snapE.getMessage ? snapE.getMessage() : snapE + '' }; }",
|
|
172
|
+
"",
|
|
173
|
+
// Set latest_snapshot on flow to point to the snapshot record
|
|
174
|
+
" var snapshotRef = snapId || verSysId;",
|
|
175
|
+
" if (snapshotRef) {",
|
|
158
176
|
" try {",
|
|
159
177
|
" var flowUpd = new GlideRecord('sys_hub_flow');",
|
|
160
178
|
" if (flowUpd.get(flowSysId)) {",
|
|
161
|
-
" flowUpd.setValue('latest_snapshot',
|
|
179
|
+
" flowUpd.setValue('latest_snapshot', snapshotRef);",
|
|
162
180
|
" flowUpd.update();",
|
|
163
|
-
" r.steps.latest_snapshot_set =
|
|
181
|
+
" r.steps.latest_snapshot_set = { value: snapshotRef + '', source: snapId ? 'snapshot' : 'version' };",
|
|
164
182
|
" }",
|
|
165
|
-
" } catch(lsE) { r.steps.latest_snapshot_set =
|
|
183
|
+
" } catch(lsE) { r.steps.latest_snapshot_set = { error: lsE.getMessage ? lsE.getMessage() : lsE + '' }; }",
|
|
166
184
|
" }",
|
|
167
185
|
" r.tier_used = 'gliderecord_scheduled'; r.success = true;",
|
|
168
186
|
" }",
|
|
@@ -273,7 +291,7 @@ async function createFlowViaScheduledJob(
|
|
|
273
291
|
" }",
|
|
274
292
|
" r.steps.variables = { success: true, created: varsCreated };",
|
|
275
293
|
"",
|
|
276
|
-
// ── Reference:
|
|
294
|
+
// ── Reference: deep-inspect a published flow to find what latest_snapshot points to ──
|
|
277
295
|
" r.steps.reference_flow = null;",
|
|
278
296
|
" try {",
|
|
279
297
|
" var refGr = new GlideRecord('sys_hub_flow');",
|
|
@@ -282,83 +300,63 @@ async function createFlowViaScheduledJob(
|
|
|
282
300
|
" refGr.setLimit(1); refGr.query();",
|
|
283
301
|
" if (refGr.next()) {",
|
|
284
302
|
" var refId = refGr.getUniqueValue();",
|
|
285
|
-
" var refFd = refGr.getValue('flow_definition') + '';",
|
|
286
303
|
" var refLs = refGr.getValue('latest_snapshot') + '';",
|
|
287
|
-
" var refLv = refGr.getValue('latest_version') + '';",
|
|
288
304
|
" r.steps.reference_flow = {",
|
|
289
305
|
" sys_id: refId,",
|
|
290
306
|
" name: refGr.getValue('name'),",
|
|
291
|
-
"
|
|
292
|
-
"
|
|
293
|
-
" flow_definition_prefix: refFd.substring(0, 200),",
|
|
294
|
-
" has_latest_snapshot: refLs !== 'null' && refLs.length > 0,",
|
|
295
|
-
" latest_snapshot_length: refLs.length,",
|
|
296
|
-
" latest_version: refLv,",
|
|
297
|
-
" has_latest_version: refLv !== 'null' && refLv.length > 5",
|
|
307
|
+
" latest_snapshot_value: refLs,",
|
|
308
|
+
" latest_version: refGr.getValue('latest_version') + ''",
|
|
298
309
|
" };",
|
|
299
|
-
//
|
|
300
|
-
"
|
|
301
|
-
"
|
|
302
|
-
"
|
|
303
|
-
"
|
|
304
|
-
"
|
|
305
|
-
|
|
306
|
-
"
|
|
307
|
-
"
|
|
308
|
-
"
|
|
309
|
-
"
|
|
310
|
-
"
|
|
311
|
-
"
|
|
312
|
-
"
|
|
313
|
-
"
|
|
314
|
-
|
|
315
|
-
"
|
|
316
|
-
"
|
|
310
|
+
// Read the reference snapshot record fields (sys_hub_flow_snapshot)
|
|
311
|
+
" if (refLs !== 'null' && refLs.length === 32) {",
|
|
312
|
+
" try {",
|
|
313
|
+
" var refSnap = new GlideRecord('sys_hub_flow_snapshot');",
|
|
314
|
+
" if (refSnap.get(refLs)) {",
|
|
315
|
+
" r.steps.reference_flow.snapshot_table = 'sys_hub_flow_snapshot';",
|
|
316
|
+
// Read all non-null fields to learn the schema
|
|
317
|
+
" var snapFields = {};",
|
|
318
|
+
" var snapEl = refSnap.getFields();",
|
|
319
|
+
" for (var si = 0; si < snapEl.size(); si++) {",
|
|
320
|
+
" var sField = snapEl.get(si);",
|
|
321
|
+
" var sName = sField.getName() + '';",
|
|
322
|
+
" var sVal = refSnap.getValue(sName);",
|
|
323
|
+
" if (sVal && sName.indexOf('sys_') !== 0) {",
|
|
324
|
+
" var sStr = sVal + '';",
|
|
325
|
+
" snapFields[sName] = sStr.length > 100 ? sStr.substring(0, 100) + '...(len:' + sStr.length + ')' : sStr;",
|
|
326
|
+
" }",
|
|
327
|
+
" }",
|
|
328
|
+
" r.steps.reference_flow.snapshot_fields = snapFields;",
|
|
329
|
+
" }",
|
|
330
|
+
" } catch(snapRefE) { r.steps.reference_flow.snapshot_error = snapRefE + ''; }",
|
|
331
|
+
" }",
|
|
332
|
+
// Count trigger/action instances for reference flow
|
|
333
|
+
" var refTrig = new GlideAggregate('sys_hub_trigger_instance');",
|
|
334
|
+
" refTrig.addQuery('flow', refId); refTrig.addAggregate('COUNT'); refTrig.query();",
|
|
335
|
+
" r.steps.reference_flow.trigger_count = refTrig.next() ? parseInt(refTrig.getAggregate('COUNT')) : 0;",
|
|
336
|
+
" var refAct = new GlideAggregate('sys_hub_action_instance');",
|
|
337
|
+
" refAct.addQuery('flow', refId); refAct.addAggregate('COUNT'); refAct.query();",
|
|
338
|
+
" r.steps.reference_flow.action_count = refAct.next() ? parseInt(refAct.getAggregate('COUNT')) : 0;",
|
|
317
339
|
" }",
|
|
318
340
|
" } catch(refE) { r.steps.reference_flow = { error: refE + '' }; }",
|
|
319
341
|
"",
|
|
320
|
-
// ── Engine:
|
|
321
|
-
|
|
322
|
-
" r.steps.engine = { apis_found: [], mode: 'compile_with_flowdef' };",
|
|
342
|
+
// ── Engine: skip compile (returns error, doesn't help) ──
|
|
343
|
+
" r.steps.engine = { mode: 'probe_only' };",
|
|
323
344
|
" try {",
|
|
324
345
|
" if (typeof sn_fd !== 'undefined') {",
|
|
325
346
|
" r.steps.engine.sn_fd = 'available';",
|
|
326
|
-
"
|
|
327
|
-
"
|
|
328
|
-
" try {",
|
|
329
|
-
" var compileResult = sn_fd.FlowAPI.compile(flowSysId);",
|
|
330
|
-
" r.steps.engine.compile = 'success';",
|
|
331
|
-
" r.steps.engine.compile_result = (compileResult + '').substring(0, 200);",
|
|
332
|
-
" } catch(ce) {",
|
|
333
|
-
" r.steps.engine.compile = 'error:' + (ce.getMessage ? ce.getMessage() : ce + '');",
|
|
334
|
-
" }",
|
|
335
|
-
// Check latest_version immediately after compile
|
|
336
|
-
" var postCompile = new GlideRecord('sys_hub_flow');",
|
|
337
|
-
" if (postCompile.get(flowSysId)) {",
|
|
338
|
-
" r.steps.engine.latest_version_after_compile = postCompile.getValue('latest_version') + '';",
|
|
339
|
-
" }",
|
|
340
|
-
" }",
|
|
341
|
-
" } else {",
|
|
342
|
-
" r.steps.engine.sn_fd = 'unavailable';",
|
|
343
|
-
" }",
|
|
344
|
-
" } catch(engineErr) {",
|
|
345
|
-
" r.steps.engine.error = engineErr.getMessage ? engineErr.getMessage() : engineErr + '';",
|
|
346
|
-
" }",
|
|
347
|
+
" } else { r.steps.engine.sn_fd = 'unavailable'; }",
|
|
348
|
+
" } catch(engineErr) {}",
|
|
347
349
|
" }",
|
|
348
350
|
"",
|
|
349
351
|
" r.flow_sys_id = flowSysId ? flowSysId + '' : null;",
|
|
350
352
|
" r.version_sys_id = verSysId ? verSysId + '' : null;",
|
|
351
|
-
// ── Final check:
|
|
353
|
+
// ── Final check: read back our flow's latest_snapshot to confirm ──
|
|
352
354
|
" if (flowSysId) {",
|
|
353
355
|
" var cf = new GlideRecord('sys_hub_flow');",
|
|
354
356
|
" if (cf.get(flowSysId)) {",
|
|
355
|
-
" r.latest_version_set = !cf.latest_version.nil();",
|
|
356
357
|
" r.latest_version_value = cf.getValue('latest_version') + '';",
|
|
357
|
-
|
|
358
|
-
"
|
|
359
|
-
" r.our_flow_definition_stored = ourFd !== 'null' && ourFd.length > 0;",
|
|
360
|
-
" r.our_flow_definition_length = ourFd.length;",
|
|
361
|
-
" r.our_flow_definition_prefix = ourFd.substring(0, 200);",
|
|
358
|
+
" r.our_latest_snapshot = cf.getValue('latest_snapshot') + '';",
|
|
359
|
+
" r.our_latest_snapshot_length = (cf.getValue('latest_snapshot') + '').length;",
|
|
362
360
|
" }",
|
|
363
361
|
" }",
|
|
364
362
|
" } catch(e) { r.success = false; r.error = e.getMessage ? e.getMessage() : e + ''; }",
|