From f862014759a12808b16252c67fe509660718a291 Mon Sep 17 00:00:00 2001
From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com>
Date: Sun, 19 Oct 2025 12:54:44 +0530
Subject: [PATCH 1/7] Create UI Action.js
---
.../Add Multiple Catalogs to Order Guide/UI Action.js | 11 +++++++++++
1 file changed, 11 insertions(+)
create mode 100644 Modern Development/Add Multiple Catalogs to Order Guide/UI Action.js
diff --git a/Modern Development/Add Multiple Catalogs to Order Guide/UI Action.js b/Modern Development/Add Multiple Catalogs to Order Guide/UI Action.js
new file mode 100644
index 0000000000..aa9ad12f97
--- /dev/null
+++ b/Modern Development/Add Multiple Catalogs to Order Guide/UI Action.js
@@ -0,0 +1,11 @@
+/*
+onClick function name : addToOrderGuide
+The UI action will prompt UI page to select order guide.
+*/
+function addToOrderGuide() {
+ var items = g_list.getChecked();
+ var dialog = new GlideDialogWindow("add_to_og"); // UI page name
+ dialog.setTitle("Select Order Guide and Variable Set"); // Prompt title.
+ dialog.setPreference("items", items);
+ dialog.render();
+}
From fbb18498ad1f1a6d5dd10c5e4e2c089274dfc865 Mon Sep 17 00:00:00 2001
From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com>
Date: Sun, 19 Oct 2025 12:56:41 +0530
Subject: [PATCH 2/7] Create UI Page.js
---
.../UI Page.js | 33 +++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 Modern Development/Add Multiple Catalogs to Order Guide/UI Page.js
diff --git a/Modern Development/Add Multiple Catalogs to Order Guide/UI Page.js b/Modern Development/Add Multiple Catalogs to Order Guide/UI Page.js
new file mode 100644
index 0000000000..a2156ee756
--- /dev/null
+++ b/Modern Development/Add Multiple Catalogs to Order Guide/UI Page.js
@@ -0,0 +1,33 @@
+// HTML of UI page
+
+
+
+
+
+
+
+
+
+
+
+
+
+//Client Script of UI page
+
+function addItems(catItems) {
+ var og = document.getElementById("order_guide").value;
+ var varSet = document.getElementById("var_set").value;
+
+ var orderG = new GlideAjax('AddtoOG');
+ orderG.addParam('sysparm_name', 'addToOrderGuide');
+ orderG.addParam('sysparm_itemList', catItems);
+ orderG.addParam('sysparm_og', og);
+ orderG.addParam('sysparm_set', varSet);
+ orderG.getXML(addOrderGuide);
+}
+
+function addOrderGuide(response) {
+ var answer = response.responseXML.documentElement.getAttribute("answer");
+ alert(answer);
+ GlideDialogWindow.get().destroy();
+}
From 3ea2487a66c89d8df936977ad2f3b6c99526a311 Mon Sep 17 00:00:00 2001
From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com>
Date: Sun, 19 Oct 2025 12:57:28 +0530
Subject: [PATCH 3/7] Create Script Include.js
---
.../Script Include.js | 57 +++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 Modern Development/Add Multiple Catalogs to Order Guide/Script Include.js
diff --git a/Modern Development/Add Multiple Catalogs to Order Guide/Script Include.js b/Modern Development/Add Multiple Catalogs to Order Guide/Script Include.js
new file mode 100644
index 0000000000..f79c10eaeb
--- /dev/null
+++ b/Modern Development/Add Multiple Catalogs to Order Guide/Script Include.js
@@ -0,0 +1,57 @@
+var AddtoOG = Class.create();
+AddtoOG.prototype = Object.extendsObject(AbstractAjaxProcessor, {
+ addToOrderGuide: function() {
+ var msgArrNotAdded = [];
+ var msgArrAdded = [];
+ var msg = '';
+ var item = this.getParameter('sysparm_itemList').toString().split(',');
+ var order_guide = this.getParameter('sysparm_og');
+ var var_set = this.getParameter('sysparm_set');
+ for (var i = 0; i < item.length; i++) {
+ var itemName = new GlideRecord('sc_cat_item');
+ itemName.get(item[i]); // get item name
+ var itemBckName = itemName.name.toString().replace(/[^a-zA-Z0-9]/g, "_");
+ // check if item is present in order guide
+ var checkStatus = new GlideRecord('sc_cat_item_guide_items');
+ checkStatus.addQuery('guide', order_guide); //software order guide
+ checkStatus.addQuery('item', item[i]);
+ checkStatus.query();
+ if (checkStatus.next()) {
+ msgArrNotAdded.push(itemName.name);
+ } else {
+ // Add variable set to all catalog items selected
+ var set = new GlideRecord('io_set_item');
+ var orderVar = new GlideRecord('item_option_new');
+ set.initialize();
+ set.variable_set = var_set;
+ set.sc_cat_item = item[i];
+ set.order = '200'; // set order as per your requirement
+ set.insert();
+
+ // Add checkbox variable in order guide for each catalog item
+ orderVar.initialize();
+ orderVar.setValue('type', 7);
+ orderVar.setValue('cat_item', order_guide);
+ orderVar.setValue('question_text', itemName.name);
+ orderVar.setValue('name', itemBckName);
+ orderVar.setValue('order', 1200); // set order as per your requirement
+ orderVar.insert();
+ }
+
+ // Add rule base to order guide
+ var ruleBase = new GlideRecord('sc_cat_item_guide_items');
+ ruleBase.initialize();
+ ruleBase.setValue('item', item[i]);
+ ruleBase.setValue('guide', order_guide);
+ ruleBase.setValue('condition', 'IO:' + orderVar.sys_id + '=true^EQ');
+ ruleBase.insert();
+ msgArrAdded.push(itemName.name);
+ }
+ if (msgArrNotAdded.length > 0) {
+ msg = "Not added item are " + msgArrNotAdded + ' Added Items are ' + msgArrAdded; // array of items which are not added
+ } else
+ msg = 'Added Items are ' + msgArrAdded; // array of added items
+ return msg;
+ },
+ type: 'AddtoOG'
+});
From b46fb2d889f4caa8b4983908f3b1fcc951360998 Mon Sep 17 00:00:00 2001
From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com>
Date: Sun, 19 Oct 2025 13:03:36 +0530
Subject: [PATCH 4/7] Update UI Page.js
---
.../UI Page.js | 28 +++++++++++--------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/Modern Development/Add Multiple Catalogs to Order Guide/UI Page.js b/Modern Development/Add Multiple Catalogs to Order Guide/UI Page.js
index a2156ee756..dd9cf1fe67 100644
--- a/Modern Development/Add Multiple Catalogs to Order Guide/UI Page.js
+++ b/Modern Development/Add Multiple Catalogs to Order Guide/UI Page.js
@@ -1,15 +1,21 @@
-// HTML of UI page
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
//Client Script of UI page
@@ -29,5 +35,5 @@ function addItems(catItems) {
function addOrderGuide(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
- GlideDialogWindow.get().destroy();
+ GlideDialogWindow.get().destroy();
}
From d2d2da706ba616db545481fb187f6355726ad0a2 Mon Sep 17 00:00:00 2001
From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com>
Date: Sun, 19 Oct 2025 13:04:06 +0530
Subject: [PATCH 5/7] Update UI Action.js
---
.../Add Multiple Catalogs to Order Guide/UI Action.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Modern Development/Add Multiple Catalogs to Order Guide/UI Action.js b/Modern Development/Add Multiple Catalogs to Order Guide/UI Action.js
index aa9ad12f97..98e1cd68a8 100644
--- a/Modern Development/Add Multiple Catalogs to Order Guide/UI Action.js
+++ b/Modern Development/Add Multiple Catalogs to Order Guide/UI Action.js
@@ -1,6 +1,6 @@
/*
onClick function name : addToOrderGuide
-The UI action will prompt UI page to select order guide.
+The UI action will prompt UI page to select order guide and variable set.
*/
function addToOrderGuide() {
var items = g_list.getChecked();
From 004c0000cba7af27cf30ffcd57ebb36940298d6e Mon Sep 17 00:00:00 2001
From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com>
Date: Sun, 19 Oct 2025 13:07:35 +0530
Subject: [PATCH 6/7] Update Script Include.js
---
.../Add Multiple Catalogs to Order Guide/Script Include.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Modern Development/Add Multiple Catalogs to Order Guide/Script Include.js b/Modern Development/Add Multiple Catalogs to Order Guide/Script Include.js
index f79c10eaeb..f658329dde 100644
--- a/Modern Development/Add Multiple Catalogs to Order Guide/Script Include.js
+++ b/Modern Development/Add Multiple Catalogs to Order Guide/Script Include.js
@@ -1,8 +1,8 @@
var AddtoOG = Class.create();
AddtoOG.prototype = Object.extendsObject(AbstractAjaxProcessor, {
addToOrderGuide: function() {
- var msgArrNotAdded = [];
- var msgArrAdded = [];
+ var msgArrNotAdded = []; // array to store not added catalog items.
+ var msgArrAdded = []; // array to store added catalog items.
var msg = '';
var item = this.getParameter('sysparm_itemList').toString().split(',');
var order_guide = this.getParameter('sysparm_og');
@@ -13,7 +13,7 @@ AddtoOG.prototype = Object.extendsObject(AbstractAjaxProcessor, {
var itemBckName = itemName.name.toString().replace(/[^a-zA-Z0-9]/g, "_");
// check if item is present in order guide
var checkStatus = new GlideRecord('sc_cat_item_guide_items');
- checkStatus.addQuery('guide', order_guide); //software order guide
+ checkStatus.addQuery('guide', order_guide);
checkStatus.addQuery('item', item[i]);
checkStatus.query();
if (checkStatus.next()) {
From 13a7ff2edcf0e53a5f4e7d8dddb3058e254a7507 Mon Sep 17 00:00:00 2001
From: Raghav Sharma <53517312+raghavs046@users.noreply.github.com>
Date: Sun, 19 Oct 2025 13:21:27 +0530
Subject: [PATCH 7/7] Create README.md
---
.../README.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
create mode 100644 Modern Development/Add Multiple Catalogs to Order Guide/README.md
diff --git a/Modern Development/Add Multiple Catalogs to Order Guide/README.md b/Modern Development/Add Multiple Catalogs to Order Guide/README.md
new file mode 100644
index 0000000000..abae7b1e1c
--- /dev/null
+++ b/Modern Development/Add Multiple Catalogs to Order Guide/README.md
@@ -0,0 +1,16 @@
+**Details**
+1. This code will add multiple items in an order guide in single click
+2. Order guide rule base creation will be automatic
+3. This code will also add variable set to selected catalog items automatically.
+
+**How to use**
+1. Go to "sc_cat_item" table and select the items to be added in list view.
+2. Look for "Add to order guide" in list actions.
+3. The list action will give you an option to select order guide and variable set to be added to catalog items
+
+**Components**
+1. UI Action
+2. UI Page
+3. Script Include
+
+