Name
global.NLULookup
Description
All methods related to NLU Lookup Type Vocabulary records
Script
var NLULookup = Class.create();
(function() {
var tables = NLUConstants.tables;
var vocabTypes = NLUConstants.VOCAB_TYPES;
NLULookup.trainMultipleLookups = function(lookupIds, options) {
var result = {
status: 'success',
lookupDetails: []
};
try {
lookupIds.forEach(function(lookupId) {
var lookupTrainResult = new NLULookupTrainer(lookupId).trainLookup(options);
if (lookupTrainResult.status === 'failure')
result.status = 'failure';
result.lookupDetails.push(lookupTrainResult.lookupDetails);
});
} catch (e) {
gs.debug('NLULookup trainMultipleLookups error: ' + e.message);
result.status = 'failure';
}
return result;
};
NLULookup.getGR = function(handleNameList, filter) {
var lookupGR = new GlideRecord(tables.SYS_NLU_VOCABULARY);
lookupGR.addQuery('type', 'IN', vocabTypes.lookup + ',' + vocabTypes.static_lookup);
lookupGR.addQuery('name', 'IN', handleNameList.join(', '));
if (filter) lookupGR.addEncodedQuery(filter);
lookupGR.query();
return lookupGR;
};
NLULookup.prototype = {
initialize: function(lookupId, lookupGR) {
this.lookupId = lookupId;
this.lookupGR = lookupGR;
if (lookupGR) this.lookupId = lookupGR.getUniqueValue();
},
getGR: function() {
if (!this.lookupGR) {
this.lookupGR = new GlideRecord(tables.SYS_NLU_VOCABULARY);
if (!this.lookupGR.get(this.lookupId))
this.lookupGR = null;
}
return this.lookupGR;
},
getStatus: function() {
if (!this.lookupIntegrator)
this.lookupIntegrator = new NLULookupIntegrator(this.getGR());
return this.lookupIntegrator.getModelStatus();
},
getLastTrainedOn: function() {
if (!this.lookupIntegrator)
this.lookupIntegrator = new NLULookupIntegrator(this.getGR());
var solutionVersion = this.lookupIntegrator.getLastTrainedVersion();
var solutionProps = solutionVersion && JSON.parse(solutionVersion.getProperties());
return solutionProps && solutionProps.sys_updated_on;
},
type: 'NLULookup'
};
})();
Sys ID
eed2b54173d310103bb6a4fa54f6a748