Diagnostic Scripts form

  • Release version: Australia
  • Updated March 12, 2026
  • 1 minute to read
  • Learn about the fields of diagnostic scripts form.

    Table 1. Diagnostic Scripts form
    Field Description
    Name Name 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.
    Description Details describing the actions of the diagnostic script.
    Diagnostic script The 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);
                        }
                    }
                }