Name

sn_rf.RFSimilarityService

Description

No description available

Script

var RFSimilarityService = Class.create();

RFSimilarityService.prototype = {
  initialize: function(solutionDefinition) {
      var solutionDefGr = new GlideRecord(RFConstants.tables.ML_CAPABILITY_DEFINITION_SIMILARITY);
      solutionDefGr.addQuery('sys_id', solutionDefinition);
      solutionDefGr.addActiveQuery();
      solutionDefGr.query();
      var solutionName = null;
      if (solutionDefGr.next()) {
          this.solutionDefinition = solutionDefGr;
      }
  },

  getPredictions: function(current, additionalParameters) {
      var predictions = [];
      if (!this.solutionDefinition) {
          return predictions;
      }
      var predictor = new global.MLPredictor();
      var solution = predictor.findActiveSolution(this.solutionDefinition.getValue(RFConstants.fields.ML_CAPABILITY_DEFINITION_BASE_SOLUTION_NAME));
      if (solution && predictor.isSimilaritySolution(solution)) {
          var options = {};
          if (additionalParameters && additionalParameters[RFConstants.mlPredictorOptions.TOP_N]) {
              var topN = additionalParameters[RFConstants.mlPredictorOptions.TOP_N];
              topN = (typeof topN == 'number') ? String(topN) : topN;
              options[RFConstants.mlPredictorOptions.TOP_N] = topN;
          }
          predictions = predictor.getPredictions(current, solution, options);
      }

      return predictions;
  },

  isSolutionDefValid: function() {
      return Boolean(this.solutionDefinition);
  },

  getSimilarityDefinitionId: function() {
      return this.solutionDefinition.getValue('sys_id');
  },

  getSimilaritySolutionName: function() {
      return this.solutionDefinition.getValue(RFConstants.fields.ML_CAPABILITY_DEFINITION_BASE_SOLUTION_NAME);
  },

  getTestFields: function() {
      return this.solutionDefinition.getValue(RFConstants.fields.ML_CAPABILITY_DEFINITION_SIMILARITY_TEST_FIELDS);
  },

  getTableName: function() {
      if (this.isSolutionDefValid()) {
          return this.solutionDefinition.getValue(RFConstants.fields.ML_CAPABILITY_DEFINITION_BASE_TABLE);
      }
  },

  getTestTableName: function() {
      if (this.isSolutionDefValid()) {
          return this.solutionDefinition.getValue(RFConstants.fields.ML_CAPABILITY_DEFINITION_SIMILARITY_TEST_TABLE);
      }
  },

  type: 'RFSimilarityService'
};

Sys ID

571ff007537230103953ddeeff7b129d

Offical Documentation

Official Docs: