The CreatorCon Call for Content is officially open! Get started here.

Fix Script for Remove Duplicate Hardware Models Help

michaelsmith02
Tera Contributor

Hello,

Our organization has duplicate hardware models with assets tied to both model records.

I am trying to use the How to de-duplicate hardware models - Product Knowledge remediation play. This play comes with a Fix Script that should move the assets from the bad model record to the good one. However, when I run the fix script in our Sandbox or Dev environment, I am getting this returned

 

*** Script: No Data for alm_asset
*** Script: No Data for cmdb_m2m_model_component
*** Script: No Data for pc_vendor_cat_item
*** Script: No Data for cmn_m2m_skill_model
[0:00:00.008] Total Time

Here is the original script 

//Move CI from the bad dup model name to the good dup model
var xcorrect_model = 'sysid1'; //The desired dup model SYS ID where the CI's will be moved from xincorrect_model
var xincorrect_model = 'sysid2';//The desired dup model SYS ID where the CI's will be moved to the xcorrect_model sys id.

var xreloc_assets= [ {"table":"alm_asset","field":"model"},{"table":"cmdb_m2m_model_component","field":"parent"},{"table":"pc_vendor_cat_item","field":"model"},{"table":"cmn_m2m_skill_model","field":"model"} ];

for(var xitem=0;xitem < xreloc_assets.length; xitem++)
   relocate(xreloc_assets[xitem].table,xreloc_assets[xitem].field,xcorrect_model,xincorrect_model);

function relocate(p_table,p_field,p_correct_model,p_incorrect_model) {

    var xresult = false;
    try {
        var xgr = new GlideRecord(p_table);
        xgr.addQuery(p_field,p_incorrect_model);
        xgr.setWorkflow(false); //Avoiding any further processing related to the update
        xgr.setAutoSysFields(false); //Avoid update timestamp modification
        xgr.query();
        if(xgr.getRowCount() > 0) {
            gs.info('Relocating ' + p_table );
            xgr.setValue(p_field,p_correct_model);
            xgr.updateMultiple();
            xresult = true;
        } else {
            gs.info('No Data for ' + p_table );
        }

    } catch(e) {
      gs.info(e.message);
      gs.info(e.stack);
    }

    return xresult;

}

 Can anyone help me understand why it's not picking up any data for that array? Any insight would be greatly appreciated.

0 REPLIES 0