Transform map showing updated records as ignored

AnilkumarP
Tera Expert

I have a transform map that is updating many records in backend based on On-Before Transform map script, but when I check the transform history it shows the records as ignored. 

AnilkumarP_0-1745216670207.png

 

 

AnilkumarP_1-1745216961897.png

 

 

On Before  Transform map script: Based on state value existing record will update as  state and worknotes

In Backend it is updating but in Transform map History not showing as updates is there any issue with this ?
Please find the below code for your reference.

 var table = 'custom_table';
    var wimNumber = source.u_wim_number;
    var pendingStates = ['22']; // Pending
    var activeStates = ['19', '20', '21']; // New, Assigned, In Progress
    var completedStates = ['23']; // Completed
    var notProcessedStates = ['24']; //Not Processed with
    var closedStates = ['25']; //Closed

    var gr = new GlideRecord(table);
    gr.addQuery('u_wim_number', wimNumber);
    gr.addQuery('u_channel', 'test');
    gr.orderBy('sys_created_on'); // Ascending (oldest first)
    gr.query();

    var activeRecs = [];
    var pendingRecs = [];
    var completedRecs = [];
    var notProcessedRecs = [];
    var closedRecs = [];
    var allRecs = [];

    while (gr.next()) {
        var state = gr.getValue('state');
        var rec = {
            sys_id: gr.getUniqueValue(),
            state: state,
            created: gr.getValue('sys_created_on'),
            gr: gr //newlyadded
        };

        allRecs.push(rec); //newlyadded

        if (activeStates.includes(state)) {
            activeRecs.push(rec);
        } else if (pendingStates.includes(state)) {
            pendingRecs.push(rec);
        } else if (completedStates.includes(state)) {
            completedRecs.push(rec);
        } else if (notProcessedStates.includes(state)) {
            notProcessedRecs.push(rec);
        } else if (closedStates.includes(state)) {
            closedRecs.push(rec);
        }
    }

    // Helper: get latest record from array
    function getLatestRecord(recordList) {
        return recordList.sort(function(a, b) {
            return new GlideDateTime(b.created).getNumericValue() - new GlideDateTime(a.created).getNumericValue();
        })[0];
    }

    function getOldestRecord(records) {
        return records[0];
    }


    // Case 1: More than one record with Multiple New/In-progress/assigned records → update oldest record
    if (activeRecs.length > 1 && pendingRecs.length == 0 && completedRecs.length == 0 && notProcessedRecs.length == 0 && closedRecs.length == 0) {

        var oldestActive = getOldestRecord(activeRecs);
        //var oldestActive = activeRecs[0];
        var gr1 = new GlideRecord(table);
        if (gr1.get(oldestActive.sys_id)) {
            gr1.work_notes = "Advising of an update that has come through from test.";
            gr1.update();
        }
        return;
    }

    // Case 2: One or More Completed + Pending → update oldest pending state to Assigned
    if (pendingRecs.length > 0 && completedRecs.length > 0 && notProcessedRecs.length == 0 && closedRecs.length == 0 && activeRecs.length == 0) {
        var pendingRec = getOldestRecord(pendingRecs);
        //var pendingRec = pendingRecs[0];
        var gr2 = new GlideRecord(table);
        if (gr2.get(pendingRec.sys_id)) {
            gr2.state = 20;
            gr2.work_notes = "Please check test for Update ";
            gr2.update();
        }
        return;
    }

    // Case 3: One or More Completed → update oldest completed with state and worknotes
    if (completedRecs.length > 0 && pendingRecs.length == 0 && notProcessedRecs.length == 0 && closedRecs.length == 0 && activeRecs.length == 0) {

        //var oldestCompleted = completedRecs[0];
        var oldestCompleted = getOldestRecord(completedRecs);
        var gr3 = new GlideRecord(table);
        if (gr3.get(oldestCompleted.sys_id)) {
            gr3.state = 20;
            gr3.work_notes = "Please check test for Update ";
            gr3.update();
        }
        return;
    }

    // Case 4: One or More Pending state → update oldest pending state and worknotes
    if (pendingRecs.length > 0 && completedRecs.length == 0 && notProcessedRecs.length == 0 && closedRecs.length == 0 && activeRecs.length == 0) {

        //var oldestPending = pendingRecs[0];
        var oldestPending = getOldestRecord(pendingRecs);
        var gr4 = new GlideRecord(table);
        if (gr4.get(oldestPending.sys_id)) {
            gr4.state = 20;
            gr4.work_notes = "Please check test for Update";
            gr4.update();
        }
        return;
    }

    // Case 5: One or more Completed and +  ActiveRecords (New/In-progress/Assigned) → update oldest complete record
    if (completedRecs.length > 0 && activeRecs.length > 0 && pendingRecs.length == 0 && notProcessedRecs.length == 0 && closedRecs.length == 0) {

        var oldCompltedRecord = getOldestRecord(completedRecs);
        var gr5 = new GlideRecord(table);
        if (gr5.get(oldCompltedRecord.sys_id)) {
            gr5.state = 20;
            gr5.work_notes = "Please check CommSee for Update ";
            gr5.update();
        }
        return;
    }

    // Case 6: One or more Pending + ActiveRecords (New/In-progress/Assigned) → update oldest pending record
    if (pendingRecs.length > 0 && activeRecs.length > 0 && completedRecs.length == 0 && notProcessedRecs.length == 0 && closedRecs.length == 0) {
        var getPendingRecord2 = getOldestRecord(pendingRecs);
        var gr6 = new GlideRecord(table);
        if (gr6.get(getPendingRecord2.sys_id)) {
            gr6.state = 20;
            gr6.work_notes = "Please check test for Update";
            gr6.update();
        }
        return;
    }
    //case 7: one or more pending or complted and active record -> update oldest of pending record state
    if ((pendingRecs.length > 0 || completedRecs.length > 0) && activeRecs.length > 0 && notProcessedRecs == 0 && closedRecs.length == 0) {
        var getPendingRecord3 = getOldestRecord(pendingRecs);
        var gr7 = new GlideRecord(table);
        if (gr7.get(getPendingRecord3.sys_id)) {
            gr7.state = 20;
            gr7.work_notes = "Please check CommSee for Update ";
            gr7.update();
        }
        return;
    }
    //Case8: One or more not processed/closed and one or more active records and no pending and no completed records
    if ((notProcessedRecs.length > 0 || closedRecs.length > 0) && activeRecs.length > 0 && pendingRecs.length == 0 && completedRecs.length == 0) {

        var latestPreferred = getLatestRecord(activeRecs);
        var gr7update = new GlideRecord(table);
        if (gr7update.get(latestPreferred.sys_id)) {
            gr7update.work_notes = "Advising of an update in test ";
            gr7update.update();
        }
        return;

    }
    //Case9: One or more not processed/closed and one or more pending state and no active records and no completed records
    if ((notProcessedRecs.length > 0 || closedRecs.length > 0) && pendingRecs.length > 0 && activeRecs.length == 0 && completedRecs.length == 0) {

        var oldestPreferred9 = getOldestRecord(pendingRecs);
        var gr7update1 = new GlideRecord(table);
        if (gr7update1.get(oldestPreferred9.sys_id)) {
            gr7update1.state = 20;
            gr7update1.work_notes = "Please check test for Update ";
            gr7update1.update();
        }
        return;

    }
    //case10: Notprocessed/closed and one or more pending and one more pending records and one or more active records and no completed records
    if ((notProcessedRecs.length > 0 || closedRecs.length > 0) && pendingRecs.length > 0 && activeRecs.length > 0 && completedRecs.length == 0) {

        var oldestPreferred10 = getOldestRecord(pendingRecs);
        var gr7update2 = new GlideRecord(table);
        if (gr7update2.get(oldestPreferred10.sys_id)) {
            gr7update2.state = 20;
            gr7update2.work_notes = "Please check test for Update ";
            gr7update2.update();
        }
        return;

    }

    //Case11: One or more not processed/closed and one or more completed records and one or more active records and no pending records

    if ((notProcessedRecs.length > 0 || closedRecs.length > 0) && completedRecs.length > 0 && activeRecs.length > 0 && pendingRecs.length == 0) {

        var oldestPreferred11 = getOldestRecord(completedRecs);
        var gr7update3 = new GlideRecord(table);
        if (gr7update3.get(oldestPreferred11.sys_id)) {
            gr7update3.state = 20;
            gr7update3.work_notes = "Please check test for Update";
            gr7update3.update();
        }
        return;

    }

    //Case12: One or more not processed/closed and one or more pending records and one or more completed records and no active records

    if ((notProcessedRecs.length > 0 || closedRecs.length > 0) && pendingRecs.length > 0 && completedRecs.length > 0 && activeRecs.length == 0) {

        var oldestPreferred12 = getOldestRecord(pendingRecs);
        var gr7update4 = new GlideRecord(table);
        if (gr7update4.get(oldestPreferred12.sys_id)) {
            gr7update4.state = 20;
            gr7update4.work_notes = "Please check test for Update";
            gr7update4.update();
        }
        return;

    }

    //Case13: One or more not processed/closed and one or more pending records and one or more completed records and one or more active records

    if ((notProcessedRecs.length > 0 || closedRecs.length > 0) && pendingRecs.length > 0 && completedRecs.length > 0 && activeRecs.length > 0) {

        var oldestPreferred13 = getOldestRecord(pendingRecs);
        var gr7update5 = new GlideRecord(table);
        if (gr7update5.get(oldestPreferred13.sys_id)) {
            gr7update5.state = 20;
            gr7update5.work_notes = "Please check CommSee for Update";
            gr7update5.update();
        }
        return;

    }
    //Case14: One or more not processed/closed and one or more completed state and no active records and no pending records

    if ((notProcessedRecs.length > 0 || closedRecs.length > 0) && completedRecs.length > 0 && activeRecs.length == 0 && pendingRecs.length == 0) {

        var oldestPreferred14 = getOldestRecord(completedRecs);
        var gr7update14 = new GlideRecord(table);
        if (gr7update14.get(oldestPreferred14.sys_id)) {
            gr7update14.state = 20;
            gr7update14.work_notes = "Please check CommSee for Update ";
            gr7update14.update();
        }
        return;

    }
 
 
Kindly Please suggest for any solution Thank you.
6 REPLIES 6

Ankur Bawiskar
Tera Patron
Tera Patron

@AnilkumarP 

seems your transform map is updating the target record and somewhere it's setting ignore=true

Hence it's shows ignored but it's actually getting updated due to GlideRecord

Did you check that?

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

I have seen only 3 fields are mapping in transform map and checked on-before script as well , we are not setting

ignore =true anywhere.

@AnilkumarP 

are you also inserting through that transform map or always updating?

If always updating then why are you using coalesce on 1 field

Also since you are updating based on transform script, there is no need of field map

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

OlaN
Giga Sage
Giga Sage

Hi,

Is the onBefore transform script updating records in the same table as the target table, or is it a different table?

 

If they are different, it will explain the 0 updates, because the onBefore always runs before the transform happens, but the record will be set to ignored if the source and target record are considered the same (no values to change).