How to restrict manufacturer field to take only records for which manufacturer is true.

Mayuri1711
Tera Contributor
In this transform script need to add this condition after 8th line
If manufacturer field is true in core company only than manufacturer field should take values in product model load transform (It should not take the value if manufacturer is false in core company)

answer = (
function transformEntry(source) {
    if(source.u_manufacturer){
    var gr_Manufacturer = new GlideRecord("core_company");
        gr_Manufacturer.addQuery('name', source.u_manufacturer);
        gr_Manufacturer.addQuery('u_source', source.u_data_source__manufacturer_);
        gr_Manufacturer.addQuery('u_external_id''CONTAINS', source.u_external_id__manufacturer_);
        gr_Manufacturer.query();
    if(gr_Manufacturer.next()){
        return gr_Manufacturer.sys_id;
    }
}
})(source);
1 ACCEPTED SOLUTION

Anil Lande
Kilo Patron

Hi,

You can try below:

answer = (function transformEntry(source) {
    if (source.u_manufacturer) {
        var gr_Manufacturer = new GlideRecord("core_company");
        gr_Manufacturer.addQuery('name', source.u_manufacturer);
        gr_Manufacturer.addQuery('u_source', source.u_data_source__manufacturer_);
        gr_Manufacturer.addQuery('u_external_id', 'CONTAINS', source.u_external_id__manufacturer_);
        gr_Manufacturer.query();
        if (gr_Manufacturer.next()) {
            if (gr_Manufacturer.manufacturer == true) {
                return gr_Manufacturer.sys_id;
            } else {
                return '';
            }
        }
    }
})(source);
Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

View solution in original post

3 REPLIES 3

Anil Lande
Kilo Patron

Hi,

You can try below:

answer = (function transformEntry(source) {
    if (source.u_manufacturer) {
        var gr_Manufacturer = new GlideRecord("core_company");
        gr_Manufacturer.addQuery('name', source.u_manufacturer);
        gr_Manufacturer.addQuery('u_source', source.u_data_source__manufacturer_);
        gr_Manufacturer.addQuery('u_external_id', 'CONTAINS', source.u_external_id__manufacturer_);
        gr_Manufacturer.query();
        if (gr_Manufacturer.next()) {
            if (gr_Manufacturer.manufacturer == true) {
                return gr_Manufacturer.sys_id;
            } else {
                return '';
            }
        }
    }
})(source);
Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

It worked, Thank you😊

Ankur Bawiskar
Tera Patron
Tera Patron

@Mayuri1711 

try this -> add that in query itself rather than checking inside IF

Also try to use EncodedQuery as compared to 4 addQuery()

answer = (function transformEntry(source) {
if(source.u_manufacturer){
var gr_Manufacturer = new GlideRecord("core_company");
gr_Manufacturer.addQuery('name', source.u_manufacturer);
gr_Manufacturer.addQuery('u_source', source.u_data_source__manufacturer_);
gr_Manufacturer.addQuery('u_external_id', 'CONTAINS', source.u_external_id__manufacturer_);
gr_Manufacturer.addQuery('manufacturer', true);
gr_Manufacturer.query();
if(gr_Manufacturer.next()){
return gr_Manufacturer.sys_id;
}
else
return '';
}
})(source);

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