Name

sn_service_builder.ASBDeleteOffering

Description

No description available

Script

var ASBDeleteOffering = Class.create();
ASBDeleteOffering.prototype = {
  initialize: function() {
      this.CONSTANTS = new sn_service_builder.ASBConstants();
  },
  /**
   * Method that deletes offerings.
   * @param {string} offeringIds - Comma separated offering ids to delete
   * @return {object} - Object that returns succesful (count) and unsuccessful deletes (sys id array)
   */
  deleteOfferings: function(offeringIds) {
      var gr = new GlideRecord('service_offering');
      gr.addQuery('sys_id', 'IN', offeringIds);
      gr.addQuery('state', '!=', this.CONSTANTS.FIELD_VALUE.PUBLISHED);
      gr.query();

      var offeringsDeleted = [];
      var offeringsFailedToDelete = [];
      while (gr.next()) {
          var tempOffering = {
              name: gr.getValue('name'),
              publishedRef: gr.getValue('published_ref')
          };
          var result = gr.deleteRecord();
          if (result) {
              offeringsDeleted.push(tempOffering);
          } else {
              offeringsFailedToDelete.push({
                  name: gr.getValue('name')
              });
          }
      }

      // switch checkout flag to false
      if (offeringsDeleted.length > 0) {
          var publishedRefs = offeringsDeleted.map(function(o) {
              return o.publishedRef;
          }).join(',');

          var grPubRef = new GlideRecord(this.CONSTANTS.TABLE.OFFERING);
          grPubRef.addQuery('sys_id', 'IN', publishedRefs);
          grPubRef.setValue('checkout', false);
          grPubRef.updateMultiple();
      }

      if (offeringsFailedToDelete.length > 0)
          gs.info('[ASB] Failed to delete offerings (' + offeringsFailedToDelete.length + ') - ' + JSON.stringify(offeringsFailedToDelete));

      return {
          successful: offeringsDeleted,
          unsuccessful: offeringsFailedToDelete
      };
  },
  type: 'ASBDeleteOffering'
};

Sys ID

80d7b8d353732010efc7ddeeff7b123a

Offical Documentation

Official Docs: