Name

global.CatalogTransactionClone

Description

Invoked when you hit clone from the order summary screen. Clones your request multiple times

Script

gs.include('PrototypeServer');
gs.include('CatalogTransactionCheckout');

var CatalogTransactionClone = Class.create();

CatalogTransactionClone.prototype = Object.extendsObject(CatalogTransactionCheckout, {

  execute: function() {
      var requestID = this.request.getParameter("requestID");
      var catalogID = this.request.getParameter("sysparm_catalog");
      var catalogView = this.request.getParameter("sysparm_catalog_view");
      var map = this.request.getParameterMap();
      var gr = new GlideRecord("sc_request");
      if (!gr.get(requestID) || !gr.canRead())
          return;

      var roles = gs.getProperty('glide.sc.allow.clone.roles', '');
      if (roles != '' && !gs.hasRole(roles))
          return;

      var p = new GlideCatalogCloneWorker();
      p.setProgressName("Copying Request: " + gr.number);
      p.setRequest(requestID);
      p.setParameterMap(map);
      p.setBackground(true);
      p.start();

      var url = GlideappCatalogURLGenerator.getCloneStatusURL(p.getProgressID(), gr.number, gr.sys_id, catalogID, catalogView);
      this.response.sendRedirect(url);
  }
});

Sys ID

8f9a0dd9c0a8002700b1049447e97a85

Offical Documentation

Official Docs: