snow-flow 8.39.13 → 8.39.14
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/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_background_script.d.ts +2 -2
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_background_script.d.ts.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_background_script.js +171 -22
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_background_script.js.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_sync.d.ts +2 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_sync.d.ts.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_sync.js +184 -47
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_sync.js.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_with_output.d.ts +3 -3
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_with_output.d.ts.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_with_output.js +194 -140
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_with_output.js.map +1 -1
- package/dist/utils/servicenow-client.d.ts +2 -1
- package/dist/utils/servicenow-client.d.ts.map +1 -1
- package/dist/utils/servicenow-client.js +98 -10
- package/dist/utils/servicenow-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* snow_execute_script_with_output - Execute
|
|
3
|
+
* snow_execute_script_with_output - Execute scripts with full output capture
|
|
4
4
|
*
|
|
5
|
-
* Execute server-side JavaScript in ServiceNow
|
|
6
|
-
*
|
|
5
|
+
* Execute server-side JavaScript in ServiceNow with comprehensive output capture
|
|
6
|
+
* using Fix Scripts. Captures gs.print, gs.info, gs.warn, gs.error.
|
|
7
7
|
*
|
|
8
8
|
* ⚠️ CRITICAL: ALL SCRIPTS MUST BE ES5 ONLY!
|
|
9
9
|
* ServiceNow runs on Rhino engine - no const/let/arrow functions/template literals.
|
|
@@ -15,7 +15,7 @@ const auth_js_1 = require("../../shared/auth.js");
|
|
|
15
15
|
const error_handler_js_1 = require("../../shared/error-handler.js");
|
|
16
16
|
exports.toolDefinition = {
|
|
17
17
|
name: 'snow_execute_script_with_output',
|
|
18
|
-
description: 'Execute server-side JavaScript with output capture (ES5 only
|
|
18
|
+
description: 'Execute server-side JavaScript with full output capture using Fix Scripts (ES5 only)',
|
|
19
19
|
// Metadata for tool discovery (not sent to LLM)
|
|
20
20
|
category: 'automation',
|
|
21
21
|
subcategory: 'script-execution',
|
|
@@ -43,13 +43,18 @@ exports.toolDefinition = {
|
|
|
43
43
|
type: 'boolean',
|
|
44
44
|
description: 'Validate ES5 syntax before execution',
|
|
45
45
|
default: true
|
|
46
|
+
},
|
|
47
|
+
timeout: {
|
|
48
|
+
type: 'number',
|
|
49
|
+
description: 'Timeout in milliseconds for polling execution results',
|
|
50
|
+
default: 30000
|
|
46
51
|
}
|
|
47
52
|
},
|
|
48
53
|
required: ['script']
|
|
49
54
|
}
|
|
50
55
|
};
|
|
51
56
|
async function execute(args, context) {
|
|
52
|
-
const { script, scope = 'global', validate_es5 = true } = args;
|
|
57
|
+
const { script, scope = 'global', validate_es5 = true, timeout = 30000 } = args;
|
|
53
58
|
try {
|
|
54
59
|
// ES5 validation
|
|
55
60
|
if (validate_es5) {
|
|
@@ -65,169 +70,218 @@ async function execute(args, context) {
|
|
|
65
70
|
}
|
|
66
71
|
}
|
|
67
72
|
const client = await (0, auth_js_1.getAuthenticatedClient)(context);
|
|
68
|
-
//
|
|
73
|
+
// Create unique execution ID for tracking
|
|
74
|
+
const executionId = `output_${Date.now()}_${Math.random().toString(36).substring(7)}`;
|
|
75
|
+
const outputMarker = `SNOW_FLOW_EXEC_${executionId}`;
|
|
76
|
+
// Wrap script with comprehensive output capture
|
|
69
77
|
const wrappedScript = `
|
|
70
|
-
|
|
71
|
-
var
|
|
72
|
-
var
|
|
73
|
-
var
|
|
74
|
-
var
|
|
78
|
+
// Snow-Flow Script Execution with Output Capture - ID: ${executionId}
|
|
79
|
+
var __sfOutput = [];
|
|
80
|
+
var __sfStartTime = new GlideDateTime();
|
|
81
|
+
var __sfResult = null;
|
|
82
|
+
var __sfError = null;
|
|
75
83
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
// Store original gs methods
|
|
85
|
+
var __sfOrigPrint = gs.print;
|
|
86
|
+
var __sfOrigInfo = gs.info;
|
|
87
|
+
var __sfOrigWarn = gs.warn;
|
|
88
|
+
var __sfOrigError = gs.error;
|
|
80
89
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
90
|
+
// Override gs methods to capture output
|
|
91
|
+
gs.print = function(msg) {
|
|
92
|
+
var m = String(msg);
|
|
93
|
+
__sfOutput.push({level: 'print', message: m, timestamp: new GlideDateTime().getDisplayValue()});
|
|
94
|
+
__sfOrigPrint(m);
|
|
95
|
+
};
|
|
88
96
|
|
|
89
|
-
gs.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
gs.info = function(msg) {
|
|
98
|
+
var m = String(msg);
|
|
99
|
+
__sfOutput.push({level: 'info', message: m, timestamp: new GlideDateTime().getDisplayValue()});
|
|
100
|
+
__sfOrigInfo(m);
|
|
101
|
+
};
|
|
93
102
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// Modify the wrapped script to use gs.print for final output
|
|
100
|
-
const executableScript = `
|
|
101
|
-
var __output = [];
|
|
102
|
-
var __originalPrint = gs.print;
|
|
103
|
-
var __originalInfo = gs.info;
|
|
104
|
-
var __originalWarn = gs.warn;
|
|
105
|
-
var __originalError = gs.error;
|
|
103
|
+
gs.warn = function(msg) {
|
|
104
|
+
var m = String(msg);
|
|
105
|
+
__sfOutput.push({level: 'warn', message: m, timestamp: new GlideDateTime().getDisplayValue()});
|
|
106
|
+
__sfOrigWarn(m);
|
|
107
|
+
};
|
|
106
108
|
|
|
107
|
-
gs.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
gs.error = function(msg) {
|
|
110
|
+
var m = String(msg);
|
|
111
|
+
__sfOutput.push({level: 'error', message: m, timestamp: new GlideDateTime().getDisplayValue()});
|
|
112
|
+
__sfOrigError(m);
|
|
113
|
+
};
|
|
111
114
|
|
|
115
|
+
// Execute the user script
|
|
112
116
|
try {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
gs.info('=== Snow-Flow Script Execution Started ===');
|
|
118
|
+
|
|
119
|
+
__sfResult = (function() {
|
|
120
|
+
${script}
|
|
121
|
+
})();
|
|
122
|
+
|
|
123
|
+
gs.info('=== Snow-Flow Script Execution Completed ===');
|
|
124
|
+
|
|
125
|
+
if (__sfResult !== undefined && __sfResult !== null) {
|
|
126
|
+
gs.info('Script returned: ' + (typeof __sfResult === 'object' ? JSON.stringify(__sfResult) : String(__sfResult)));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
} catch(e) {
|
|
130
|
+
__sfError = e.toString();
|
|
131
|
+
gs.error('=== Snow-Flow Script Execution Failed ===');
|
|
132
|
+
gs.error('Error: ' + e.toString());
|
|
133
|
+
if (e.stack) {
|
|
134
|
+
gs.error('Stack: ' + e.stack);
|
|
135
|
+
}
|
|
117
136
|
}
|
|
118
137
|
|
|
119
|
-
gs
|
|
120
|
-
gs.
|
|
121
|
-
gs.
|
|
122
|
-
gs.
|
|
138
|
+
// Restore original gs methods
|
|
139
|
+
gs.print = __sfOrigPrint;
|
|
140
|
+
gs.info = __sfOrigInfo;
|
|
141
|
+
gs.warn = __sfOrigWarn;
|
|
142
|
+
gs.error = __sfOrigError;
|
|
143
|
+
|
|
144
|
+
// Calculate execution time
|
|
145
|
+
var __sfEndTime = new GlideDateTime();
|
|
146
|
+
var __sfExecTimeMs = Math.abs(GlideDateTime.subtract(__sfStartTime, __sfEndTime).getNumericValue());
|
|
147
|
+
|
|
148
|
+
// Build result object
|
|
149
|
+
var __sfResultObj = {
|
|
150
|
+
executionId: '${executionId}',
|
|
151
|
+
success: __sfError === null,
|
|
152
|
+
result: __sfResult,
|
|
153
|
+
error: __sfError,
|
|
154
|
+
output: __sfOutput,
|
|
155
|
+
executionTimeMs: __sfExecTimeMs,
|
|
156
|
+
completedAt: __sfEndTime.getDisplayValue()
|
|
157
|
+
};
|
|
123
158
|
|
|
124
|
-
//
|
|
125
|
-
gs.
|
|
159
|
+
// Store result in system property for retrieval
|
|
160
|
+
gs.setProperty('${outputMarker}', JSON.stringify(__sfResultObj));
|
|
161
|
+
gs.info('${outputMarker}:DONE');
|
|
126
162
|
`;
|
|
127
|
-
//
|
|
128
|
-
const
|
|
129
|
-
|
|
163
|
+
// Step 1: Create Fix Script record
|
|
164
|
+
const fixScriptName = `Snow-Flow Output Capture - ${executionId}`;
|
|
165
|
+
const createResponse = await client.post('/api/now/table/sys_script_fix', {
|
|
166
|
+
name: fixScriptName,
|
|
167
|
+
script: wrappedScript,
|
|
168
|
+
description: `Script execution with output capture. ID: ${executionId}. Scope: ${scope}`,
|
|
169
|
+
active: true
|
|
170
|
+
});
|
|
171
|
+
if (!createResponse.data?.result?.sys_id) {
|
|
172
|
+
throw new error_handler_js_1.SnowFlowError(error_handler_js_1.ErrorType.SERVICENOW_API_ERROR, 'Failed to create Fix Script for execution', { details: createResponse.data });
|
|
173
|
+
}
|
|
174
|
+
const fixScriptSysId = createResponse.data.result.sys_id;
|
|
175
|
+
// Step 2: Attempt to run the Fix Script
|
|
176
|
+
// Try multiple approaches to trigger execution
|
|
177
|
+
let executionTriggered = false;
|
|
178
|
+
// Approach 1: PATCH with sys_run_script
|
|
130
179
|
try {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
script: executableScript,
|
|
134
|
-
active: true,
|
|
135
|
-
run_type: 'once', // Run once at specified time
|
|
136
|
-
run_start: now.toISOString(),
|
|
137
|
-
run_dayofweek: '1,2,3,4,5,6,7' // All days (for compatibility)
|
|
180
|
+
await client.patch(`/api/now/table/sys_script_fix/${fixScriptSysId}`, {
|
|
181
|
+
sys_run_script: 'true'
|
|
138
182
|
});
|
|
183
|
+
executionTriggered = true;
|
|
139
184
|
}
|
|
140
|
-
catch (
|
|
141
|
-
//
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
};
|
|
150
|
-
// Try to extract specific error from ServiceNow response
|
|
151
|
-
if (errorData?.error) {
|
|
152
|
-
errorMessage = `ServiceNow rejected script: ${errorData.error.message || errorData.error.detail || 'Unknown error'}`;
|
|
153
|
-
errorDetails.servicenow_error = errorData.error;
|
|
154
|
-
}
|
|
155
|
-
// Add helpful hints
|
|
156
|
-
if (script.length > 1000) {
|
|
157
|
-
errorDetails.hint = 'Script is very large (>1000 chars). Consider breaking into smaller operations or using snow_create_business_rule for complex logic.';
|
|
158
|
-
}
|
|
159
|
-
throw new error_handler_js_1.SnowFlowError(error_handler_js_1.ErrorType.VALIDATION_ERROR, errorMessage, {
|
|
160
|
-
retryable: false,
|
|
161
|
-
details: errorDetails
|
|
185
|
+
catch (patchError) {
|
|
186
|
+
// Try next approach
|
|
187
|
+
}
|
|
188
|
+
// Approach 2: If PATCH didn't work, try PUT with run field
|
|
189
|
+
if (!executionTriggered) {
|
|
190
|
+
try {
|
|
191
|
+
await client.put(`/api/now/table/sys_script_fix/${fixScriptSysId}`, {
|
|
192
|
+
run: 'true',
|
|
193
|
+
active: true
|
|
162
194
|
});
|
|
195
|
+
executionTriggered = true;
|
|
163
196
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const jobId = jobResponse.data.result.sys_id;
|
|
167
|
-
// Wait for execution - scheduled jobs execute asynchronously
|
|
168
|
-
// Give the ServiceNow scheduler time to pick up and execute the job
|
|
169
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
170
|
-
// Retrieve output from sys_log (only logs from the last 10 seconds)
|
|
171
|
-
const tenSecondsAgo = new Date(Date.now() - 10000).toISOString().replace('T', ' ').substring(0, 19);
|
|
172
|
-
const logResponse = await client.get('/api/now/table/sys_log', {
|
|
173
|
-
params: {
|
|
174
|
-
sysparm_query: `messageLIKESNOW_FLOW_OUTPUT^sys_created_on>${tenSecondsAgo}^ORDERBYDESCsys_created_on`,
|
|
175
|
-
sysparm_limit: 10,
|
|
176
|
-
sysparm_fields: 'message,sys_created_on'
|
|
197
|
+
catch (putError) {
|
|
198
|
+
// Script saved but may need manual execution
|
|
177
199
|
}
|
|
178
|
-
});
|
|
179
|
-
// Clean up job
|
|
180
|
-
try {
|
|
181
|
-
await client.delete(`/api/now/table/sysauto_script/${jobId}`);
|
|
182
200
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
201
|
+
// Step 3: Poll for execution results
|
|
202
|
+
const startTime = Date.now();
|
|
203
|
+
let result = null;
|
|
204
|
+
let attempts = 0;
|
|
205
|
+
const maxAttempts = Math.ceil(timeout / 2000);
|
|
206
|
+
while (Date.now() - startTime < timeout && attempts < maxAttempts) {
|
|
207
|
+
attempts++;
|
|
208
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
209
|
+
try {
|
|
210
|
+
// Check sys_properties for output marker
|
|
211
|
+
const propResponse = await client.get('/api/now/table/sys_properties', {
|
|
212
|
+
params: {
|
|
213
|
+
sysparm_query: `name=${outputMarker}`,
|
|
214
|
+
sysparm_fields: 'value,sys_id',
|
|
215
|
+
sysparm_limit: 1
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
if (propResponse.data?.result?.[0]?.value) {
|
|
194
219
|
try {
|
|
195
|
-
|
|
220
|
+
result = JSON.parse(propResponse.data.result[0].value);
|
|
221
|
+
// Delete the property after reading
|
|
222
|
+
const propSysId = propResponse.data.result[0].sys_id;
|
|
223
|
+
if (propSysId) {
|
|
224
|
+
await client.delete(`/api/now/table/sys_properties/${propSysId}`).catch(() => { });
|
|
225
|
+
}
|
|
196
226
|
break;
|
|
197
227
|
}
|
|
198
|
-
catch (
|
|
199
|
-
|
|
228
|
+
catch (parseErr) {
|
|
229
|
+
// Continue polling
|
|
200
230
|
}
|
|
201
231
|
}
|
|
202
232
|
}
|
|
233
|
+
catch (pollError) {
|
|
234
|
+
// Continue polling
|
|
235
|
+
}
|
|
203
236
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
237
|
+
// Step 4: Cleanup - delete the Fix Script
|
|
238
|
+
try {
|
|
239
|
+
await client.delete(`/api/now/table/sys_script_fix/${fixScriptSysId}`);
|
|
240
|
+
}
|
|
241
|
+
catch (cleanupError) {
|
|
242
|
+
// Ignore cleanup errors
|
|
243
|
+
}
|
|
244
|
+
// Step 5: Format and return results
|
|
245
|
+
if (result) {
|
|
246
|
+
// Organize output by level
|
|
247
|
+
const organized = {
|
|
248
|
+
print: result.output.filter((o) => o.level === 'print').map((o) => o.message),
|
|
249
|
+
info: result.output.filter((o) => o.level === 'info').map((o) => o.message),
|
|
250
|
+
warn: result.output.filter((o) => o.level === 'warn').map((o) => o.message),
|
|
251
|
+
error: result.output.filter((o) => o.level === 'error').map((o) => o.message),
|
|
252
|
+
success: result.success
|
|
253
|
+
};
|
|
254
|
+
return (0, error_handler_js_1.createSuccessResult)({
|
|
255
|
+
success: result.success,
|
|
256
|
+
result: result.result,
|
|
257
|
+
error: result.error,
|
|
258
|
+
output: organized,
|
|
259
|
+
raw_output: result.output,
|
|
260
|
+
execution_time_ms: result.executionTimeMs,
|
|
261
|
+
execution_id: executionId
|
|
262
|
+
}, {
|
|
263
|
+
script_length: script.length,
|
|
264
|
+
scope,
|
|
265
|
+
es5_validated: validate_es5,
|
|
266
|
+
method: 'fix_script'
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
// Script was saved but execution couldn't be confirmed
|
|
271
|
+
return (0, error_handler_js_1.createSuccessResult)({
|
|
272
|
+
success: true,
|
|
273
|
+
execution_id: executionId,
|
|
274
|
+
message: 'Script was saved as Fix Script but automatic execution could not be confirmed.',
|
|
275
|
+
fix_script_sys_id: fixScriptSysId,
|
|
276
|
+
action_required: 'Navigate to System Definition > Fix Scripts and run the script manually',
|
|
277
|
+
script_name: fixScriptName
|
|
278
|
+
}, {
|
|
279
|
+
script_length: script.length,
|
|
280
|
+
scope,
|
|
281
|
+
es5_validated: validate_es5,
|
|
282
|
+
method: 'fix_script_pending'
|
|
212
283
|
});
|
|
213
284
|
}
|
|
214
|
-
// Organize output by level
|
|
215
|
-
const organized = {
|
|
216
|
-
print: output.filter(o => o.level === 'print').map(o => o.message),
|
|
217
|
-
info: output.filter(o => o.level === 'info').map(o => o.message),
|
|
218
|
-
warn: output.filter(o => o.level === 'warn').map(o => o.message),
|
|
219
|
-
error: output.filter(o => o.level === 'error').map(o => o.message),
|
|
220
|
-
success: output.some(o => o.level === 'success')
|
|
221
|
-
};
|
|
222
|
-
return (0, error_handler_js_1.createSuccessResult)({
|
|
223
|
-
success: organized.error.length === 0,
|
|
224
|
-
output: organized,
|
|
225
|
-
raw_output: output
|
|
226
|
-
}, {
|
|
227
|
-
script_length: script.length,
|
|
228
|
-
scope,
|
|
229
|
-
es5_validated: validate_es5
|
|
230
|
-
});
|
|
231
285
|
}
|
|
232
286
|
catch (error) {
|
|
233
287
|
return (0, error_handler_js_1.createErrorResult)(error instanceof error_handler_js_1.SnowFlowError
|
package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_with_output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snow_execute_script_with_output.js","sourceRoot":"","sources":["../../../../../src/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_with_output.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"snow_execute_script_with_output.js","sourceRoot":"","sources":["../../../../../src/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script_with_output.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,7 +125,8 @@ export declare class ServiceNowClient {
|
|
|
125
125
|
*/
|
|
126
126
|
createApplication(application: ServiceNowApplication): Promise<ServiceNowAPIResponse<ServiceNowApplication>>;
|
|
127
127
|
/**
|
|
128
|
-
* Execute a ServiceNow script
|
|
128
|
+
* Execute a ServiceNow script using Fix Scripts
|
|
129
|
+
* Creates a temporary Fix Script, attempts to run it, and cleans up
|
|
129
130
|
*/
|
|
130
131
|
executeScript(script: string): Promise<ServiceNowAPIResponse<any>>;
|
|
131
132
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"servicenow-client.d.ts","sourceRoot":"","sources":["../../src/utils/servicenow-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"servicenow-client.d.ts","sourceRoot":"","sources":["../../src/utils/servicenow-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -875,20 +875,108 @@ class ServiceNowClient {
|
|
|
875
875
|
}
|
|
876
876
|
}
|
|
877
877
|
/**
|
|
878
|
-
* Execute a ServiceNow script
|
|
878
|
+
* Execute a ServiceNow script using Fix Scripts
|
|
879
|
+
* Creates a temporary Fix Script, attempts to run it, and cleans up
|
|
879
880
|
*/
|
|
880
881
|
async executeScript(script) {
|
|
881
882
|
try {
|
|
882
|
-
this.logger.info('⚡ Executing ServiceNow script...');
|
|
883
|
-
const
|
|
884
|
-
|
|
885
|
-
|
|
883
|
+
this.logger.info('⚡ Executing ServiceNow script via Fix Script...');
|
|
884
|
+
const executionId = `exec_${Date.now()}_${Math.random().toString(36).substring(7)}`;
|
|
885
|
+
const outputMarker = `SNOW_FLOW_EXEC_${executionId}`;
|
|
886
|
+
// Wrap script with output capture
|
|
887
|
+
const wrappedScript = `
|
|
888
|
+
// Snow-Flow Script Execution - ${executionId}
|
|
889
|
+
var __execResult = null;
|
|
890
|
+
var __execError = null;
|
|
891
|
+
var __execOutput = [];
|
|
892
|
+
|
|
893
|
+
var __origInfo = gs.info;
|
|
894
|
+
var __origError = gs.error;
|
|
895
|
+
|
|
896
|
+
gs.info = function(msg) { __execOutput.push({level: 'info', msg: String(msg)}); __origInfo(msg); };
|
|
897
|
+
gs.error = function(msg) { __execOutput.push({level: 'error', msg: String(msg)}); __origError(msg); };
|
|
898
|
+
|
|
899
|
+
try {
|
|
900
|
+
__execResult = (function() {
|
|
901
|
+
${script}
|
|
902
|
+
})();
|
|
903
|
+
} catch(e) {
|
|
904
|
+
__execError = e.toString();
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
gs.info = __origInfo;
|
|
908
|
+
gs.error = __origError;
|
|
909
|
+
|
|
910
|
+
gs.setProperty('${outputMarker}', JSON.stringify({
|
|
911
|
+
executionId: '${executionId}',
|
|
912
|
+
success: __execError === null,
|
|
913
|
+
result: __execResult,
|
|
914
|
+
error: __execError,
|
|
915
|
+
output: __execOutput
|
|
916
|
+
}));
|
|
917
|
+
`;
|
|
918
|
+
// Create Fix Script
|
|
919
|
+
const createResponse = await this.client.post(`${this.getBaseUrl()}/api/now/table/sys_script_fix`, {
|
|
920
|
+
name: `Snow-Flow Exec - ${executionId}`,
|
|
921
|
+
script: wrappedScript,
|
|
922
|
+
description: `Temporary script execution. ID: ${executionId}`,
|
|
923
|
+
active: true
|
|
886
924
|
});
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
925
|
+
const fixScriptSysId = createResponse.data?.result?.sys_id;
|
|
926
|
+
if (!fixScriptSysId) {
|
|
927
|
+
throw new Error('Failed to create Fix Script record');
|
|
928
|
+
}
|
|
929
|
+
// Attempt to trigger execution
|
|
930
|
+
try {
|
|
931
|
+
await this.client.patch(`${this.getBaseUrl()}/api/now/table/sys_script_fix/${fixScriptSysId}`, { sys_run_script: 'true' });
|
|
932
|
+
}
|
|
933
|
+
catch (runErr) {
|
|
934
|
+
// Script created but may need manual execution
|
|
935
|
+
}
|
|
936
|
+
// Poll for result (max 30 seconds)
|
|
937
|
+
let result = null;
|
|
938
|
+
for (let i = 0; i < 15; i++) {
|
|
939
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
940
|
+
try {
|
|
941
|
+
const propResponse = await this.client.get(`${this.getBaseUrl()}/api/now/table/sys_properties`, { params: { sysparm_query: `name=${outputMarker}`, sysparm_fields: 'value,sys_id', sysparm_limit: 1 } });
|
|
942
|
+
if (propResponse.data?.result?.[0]?.value) {
|
|
943
|
+
result = JSON.parse(propResponse.data.result[0].value);
|
|
944
|
+
// Cleanup property
|
|
945
|
+
const propSysId = propResponse.data.result[0].sys_id;
|
|
946
|
+
if (propSysId) {
|
|
947
|
+
await this.client.delete(`${this.getBaseUrl()}/api/now/table/sys_properties/${propSysId}`).catch(() => { });
|
|
948
|
+
}
|
|
949
|
+
break;
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
catch (pollErr) {
|
|
953
|
+
// Continue polling
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
// Cleanup Fix Script
|
|
957
|
+
try {
|
|
958
|
+
await this.client.delete(`${this.getBaseUrl()}/api/now/table/sys_script_fix/${fixScriptSysId}`);
|
|
959
|
+
}
|
|
960
|
+
catch (cleanupErr) {
|
|
961
|
+
// Ignore
|
|
962
|
+
}
|
|
963
|
+
if (result) {
|
|
964
|
+
this.logger.info('✅ Script executed successfully!');
|
|
965
|
+
return {
|
|
966
|
+
success: result.success,
|
|
967
|
+
data: result
|
|
968
|
+
};
|
|
969
|
+
}
|
|
970
|
+
else {
|
|
971
|
+
this.logger.warn('⚠️ Script saved but execution not confirmed');
|
|
972
|
+
return {
|
|
973
|
+
success: true,
|
|
974
|
+
data: {
|
|
975
|
+
message: 'Script saved as Fix Script but execution not confirmed',
|
|
976
|
+
fix_script_sys_id: fixScriptSysId
|
|
977
|
+
}
|
|
978
|
+
};
|
|
979
|
+
}
|
|
892
980
|
}
|
|
893
981
|
catch (error) {
|
|
894
982
|
console.error('❌ Failed to execute script:', error);
|