Skip to main content

Boiler plate fix script to back-fill existing records

 (function fixScript(nLimit, doIt, bSkipEngines) {

    var SCRIPT_NAME = "Fix Script"; // Set this to help with the log output

    // Set the table and query for the GlideRecord lookup 
    var sTable = "",
        sQuery = "";

    log(((!doIt) ? "***DRY RUN" : "***RUN"));

    var nCount = 0,
        nFixCount = 0,
        grTemplate = new GlideRecord(sTable);

    grTemplate.addEncodedQuery(sQuery);
    // Set any other queries as needed
    
    if (nLimit > 0) {
        // '0' means no limit to apply
        grTemplate.setLimit(nLimit);
    }
    grTemplate.query();

    nCount = parseInt(grTemplate.getRowCount());
    log("Found " + nCount + " record" + (nCount > 1 ? "s" : ""));

    while (grTemplate._next()) {
        // If we can, try to catch potential errors during the update/insert so the code can carry on merrily
        try {
            // do your processing/querying with the GlideRecord in this block

            if (doIt) {
                if (bSkipEngines) {
                    // Make sure any engines do not kick off
                    grTemplate.setWorkflow(false);
                    grTemplate.setUseEngines(false);
                    grTemplate.autoSysFields(false);
                }

                // Update what you need with the GlideRecord here
                // Example:
                // grTemplate.setValue('template', sTemplate);

                grTemplate.update();
                nFixCount++;
            }
        } catch (e) {
            log("Could not update " + grTemplate.getDisplayValue());
        }
    }

    log("***END: Removed from " + nFixCount + " out of " + nCount + "  records");

    // Garbage collection
    nCount = 0;
    nFixCount = 0;
    grTemplate = null;

    function log(msg) {
        gs.log(msg, SCRIPT_NAME);
    }
})(0, false, true);

Comments

Popular posts from this blog

URL link in addInfoMessage

var ga=new GlideAjax('gld_HR_ajax'); ga.addParam('sysparm_name', 'checkEmployeeNumber_hrProfile'); ga.addParam('sysparm_hrprofilenumber', g_form.getValue('number')); ga.addParam('sysparm_employeenumber', newValue); ga.getXMLAnswer(function(answer) { if (answer!='undefined' && answer!=''){ var navURL="<a style='text-decoration:underline;color:blue' href=hr_profile.do?sysparm_query=number=" + answer + ">" + answer + "</a><img width='3' src='images/s.gif'/>"; var sMsg='The employee number entered already exists on another HR Profile ' + navURL; //alert(sMsg); g_form.showErrorBox('employee_number', 'error - please check'); g_form.addInfoMessage(sMsg); } });

GlideRecord setValue

setValue(String name, Object value) Sets the specified field to the specified value. Normally a script would do a direct assignment, for example,  gr.category = value . However, if in a script the element name is a variable, then  gr.setValue(elementName, value)  can be used. When setting a value, ensure the data type of the field matches the data type of the value you enter. This method cannot be used on journal fields. If the value parameter is null, the record is not updated, and an error is not thrown https://developer.servicenow.com/app.do#!/api_doc?v=madrid&id=r_GlideRecord-setValue_String_Object