Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

Diagnostic Scripts form

Learn about the fields of diagnostic scripts form.

FieldDescription
NameName of the diagnostic script. Use a name that clearly explains the objective of the script. The script name also enables you to identify the correct script while mapping the script to a feature when creating a diagnostic scan.
DescriptionDetails describing the actions of the diagnostic script.
Diagnostic scriptThe code for the diagnostic script. The following example shows a diagnostic script to identify tasks with an invalid top portfolio.
/* 
- Inputs can be accessed from scanContext.input as per, the key specified in feature input table.
    eg.  scanContext.input.projectSysID
- To pass variables from the one script to another script use varSpace in scanContext.
    eg.  scanContext.varSpace.variable1 = '...';
*/
(function(scanContext) {
    try {
        var errorTasks = [];
        var encodedQuery = scanContext.input.projectFilter;
        var now_GR = new GlideRecord("pm_project");
        gr.addEncodedQuery(encodedQuery);
        gr.query();
        while (gr.next()) {
            var entitySysID = gr.getValue("sys_id");
            var projectData = new ProjectData(entitySysID);
            var projectTopTaskValidator = new ProjectTopTaskValidator(projectData);

            if (projectTopTaskValidator.tasksWithInvalidTopPortfolioPresent()) {
                var failedTasks = projectTopTaskValidator.getTasksWithInvalidTopPortfolio();
                if (failedTasks && failedTasks.length) {
                    for (var i = 0; i < failedTasks.length; i++) {
                        errorTasks.push(failedTasks[i].sys_id);
                    }
                }
            }

Related topics

Add diagnostic and fix scripts