Name

sn_ci_analytics.CAPopulateFlattenFields

Description

No description available

Script

var CAPopulateFlattenFields = Class.create();
CAPopulateFlattenFields.prototype = {
  initialize: function() {
      this.config = new CAConfig();
      this.logger = CIAnalyticsLogger.getLogger("CAPopulateFlattenFields");
  },
  populateFlattenFields: function() {
      try {
          //Disabling ETL Process
          this.config.disableAnalyticsProcessing();
          var gr = new GlideRecord('sn_ci_analytics_conversation');
          gr.addQuery('status', 'new').addOrCondition('status', 'onHold');
          gr.addNullQuery('consumer').addOrCondition('conversation_type');
          gr.query();
          while (gr.next()) {
              try {
                  var completedStates = gs.getProperty('sn_ci_analytics.analytic_conversation_completed_states', '');
                  gr.setValue('consumer', gr.conversation.consumer.sys_id);
                  gr.setValue('conversation_type', gr.conversation.conversation_type);
                  gr.setValue('conversation_created_at', gr.conversation.sys_created_on);
                  gr.setValue('conversation_closed_at', gr.conversation.conversation_completed);
                  var state = completedStates.includes(gr.conversation.state) ? 'completed' : 'open';
                  gr.setValue('conversation_state', state);
                  gr.update();
              } catch (e) {
                  this.logger.error('Conversation Falttening failed ' + gr.conversation.sys_id + ' ' + e.message);
              }
          }
          //Enabling ETL Process
          this.config.enableAnalyticsProcessing();
      } catch (e) {
          //Enabling ETL Process
          this.config.enableAnalyticsProcessing();
          this.logger.error('Flattening Conversations Migration Error ' + e.message);
      }

  },
  type: 'CAPopulateFlattenFields'
};

Sys ID

ad867a9d77e60110c23e1f130e5a991e

Offical Documentation

Official Docs: