Name
sn_nlu_discovery.IntentDiscoveryRecordTracking
Description
No description available
Script
var IntentDiscoveryRecordTracking = Class.create();
IntentDiscoveryRecordTracking.prototype = {
initialize: function() {},
trackClusterAction: function(clusterSysId, lang, targetIntent) {
var clusterGlideRecord = this._getRecordIfExists("sn_nlu_discovery_cluster", clusterSysId)
if (clusterGlideRecord === null) {
gs.error("Cluster does not exist" + clusterSysId);
return null;
}
return this._trackAction(lang, null, clusterGlideRecord, targetIntent);
},
trackIntentAction: function(intentSysId, lang, targetIntent) {
var intentGlideRecord = this._getRecordIfExists("sn_nlu_discovery_intent", intentSysId);
if (intentGlideRecord === null) {
gs.error("Intent does not exist" + intentSysId);
return null;
}
return this._trackAction(lang, intentGlideRecord, null, targetIntent);
},
_trackAction: function(lang, reportIntent, reportCluster, targetIntent) {
var reportTraceRecord = new GlideRecord("sn_nlu_discovery_report_trace");
reportTraceRecord.initialize();
reportTraceRecord.setValue("lang", lang);
if (targetIntent && targetIntent != null) {
reportTraceRecord.setValue("model_intent", targetIntent);
}
if (reportIntent && reportIntent != null) {
gs.info("setting intent to unique id: " + reportIntent.getUniqueValue());
reportTraceRecord.setValue("intent", reportIntent.getUniqueValue());
} else if (reportCluster && reportCluster != null) {
reportTraceRecord.setValue("cluster", reportCluster.getUniqueValue());
}
var insertedActionTraceSysID = reportTraceRecord.insert();
return insertedActionTraceSysID;
},
deleteTrackAction: function(lang, reportIntentSysId, reportClusterSysId, targetIntent) {
var reportTraceRecord = new GlideRecord("sn_nlu_discovery_report_trace");
if (targetIntent && targetIntent != null) {
reportTraceRecord.addQuery("model_intent", targetIntent);
}
if (lang && lang != null) {
reportTraceRecord.addQuery("lang", targetIntent);
}
if (reportIntentSysId && reportIntentSysId != null) {
reportTraceRecord.addQuery("intent", reportIntentSysId);
} else if (reportClusterSysId && reportClusterSysId != null) {
reportTraceRecord.addQuery("cluster", reportClusterSysId);
} else {
gs.error("Must pass intent or cluster to delete");
return null;
}
//check to be safe.
if ((!reportIntentSysId || reportIntentSysId === null) && (!reportClusterSysId || reportClusterSysId === null)) {
return null;
}
reportTraceRecord.query();
var count = 0;
while (reportTraceRecord.next()) {
// if targetIntent is null don't delete records with targetIntent
if (targetIntent === null && reportTraceRecord.model_intent) {
gs.debug("[DISC] Not deleting tracking record for " + reportTraceRecord.getUniqueValue());
continue;
} else if (targetIntent != null && reportTraceRecord.model_intent === null) {
gs.debug("[DISC] Not deleting tracking record for " + reportTraceRecord.getUniqueValue());
continue;
}
if (reportTraceRecord.deleteRecord()) {
count = count + 1;
}
}
return count;
},
_getRecordIfExists: function(recordType, sysId) {
var g = new GlideRecord(recordType);
var glideRecord = g.get(sysId);
if (!glideRecord || glideRecord === undefined || glideRecord === null) {
return null;
}
return g;
},
type: 'IntentDiscoveryRecordTracking'
};
Sys ID
cfaaa37e61702010989f4c9e26e774a0