Unique Functionality
Bulk Upload Records into the Table using Catalog Item
1.
Create a Record Producer:
Table name: Data Source [sys_data_source]
Execution Plan: DEFAULT
Short description: Import to Create - Issue IA
track
Description
Please download
the template to create Issue.
Please fill the
downloaded document and attach to the same.
Mandatory Values
Engagement Name: *
Script:
var gr2 = new
GlideRecord("sys_attachment");
gr2.addQuery("table_sys_id",
current.sys_id);
var oC = gr2.addQuery("table_name",
"sys_data_source");
gr2.query();
if (!gr2.next()) {
gs.addErrorMessage("You must attach a file to submit. Your import
submission has been aborted.");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=a5d7beae1b074914f93fba23164bcb59";
} else {
var
file_name = gr2.getValue("file_name");
if
(gr2.getRowCount() > 1) {
gs.addErrorMessage("You may only attach one file at a time for this
import wizard. Your import submission has been aborted.");
current.setAbortAction(true);
producer.redirect
=
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=a5d7beae1b074914f93fba23164bcb59";
}
//
check to make sure the file format is correct on the attachment
var
passedFormatCheck = false;
if
(gr2.file_name.endsWith('.xls') == true || gr2.file_name.endsWith('.xlsx') ==
true) {
passedFormatCheck = true;
}
else {
passedFormatCheck = false;
gs.addErrorMessage("This import type is expecting submission of an
Excel file (.xls), but a different file format was attached. Your import
submission has been aborted.");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=a5d7beae1b074914f93fba23164bcb59";
}
if
(passedFormatCheck == true) {
var gDS = new GlideRecord('sys_data_source');
gDS.get('3fd376621b074914f93fba23164bcb57');
var transformMapIDs = "7fe3fa621b074914f93fba23164bcb96";
// Process excel file
var grs = new GlideRecord("sys_attachment");
grs.addQuery("table_sys_id",
'3fd376621b074914f93fba23164bcb57');
grs.query();
while (grs.next())
grs.deleteRecord();
var attachment = new GlideSysAttachment();
var copiedAttachments = attachment.copy('sys_data_source',
current.sys_id, 'sys_data_source', gDS.getValue('sys_id'));
// Process excel file
var loader = new GlideImportSetLoader();
var importSetRec = loader.getImportSetGr(gDS);
var ranload =
loader.loadImportSetTable(importSetRec, gDS);
importSetRec.state = "loaded";
importSetRec.update();
// Transform import set
var transformWorker = new
GlideImportSetTransformerWorker(importSetRec.sys_id, transformMapIDs);
transformWorker.setBackground(true);
transformWorker.start();
//The script is inserting the data source, prevent the record producer
from creating an additional insert
current.setAbortAction(true);
gs.addInfoMessage("Your import file has been submitted.");
producer.redirect = "home.do";
}
}
2.
Create the data source
a. Go to Load Data module
b.
Select the βCreate
Tableβ and Give a name
c.
Select the excel file
which is exported from list level
3. Create Transform Map: IA Issue Bulk Upload Concurrent Audit
To update additional Assignee List:
answer = (function transformEntry(source) {
// Add your code here
// return the value to be put
into the target field
var depart = '';
if (source.u_department != ''
&& source.u_department != 'NULL') {
var department = new
GlideRecord('cmn_department');
department.addEncodedQuery('u_department_node_level=3^name=' +
source.u_department);
department.query();
if (department.next()) {
depart =
department.getUniqueValue().toString();
}
}
var addAssgnTo = '',
assngedTo =
source.u_additional_assignee.toString();
var usr = new
GlideRecord('sys_user');
usr.addEncodedQuery('emailIN' +
assngedTo + '^department.parent.parent.parent.parent=' + depart +
'^ORdepartment=' + depart);
usr.query();
while (usr.next())
if (addAssgnTo == '')
addAssgnTo +=
usr.getValue('sys_id');
else
addAssgnTo += ',' +
usr.getValue('sys_id');
// if (addAssgnTo == '' ||
addAssgnTo == null) {
// if (assngedTo != '' &&
assngedTo != null)
// if (source.sys_import_row > 0)
// source.u_error_message =
"Additional assignee for row " + source.sys_import_row + "
either incorrect email or do not belong to the respective department.";
// }
return addAssgnTo;
})(source);
&
answer = (function transformEntry(source) {
var depart = '';
if(source.u_department != ''
&& source.u_department !='NULL'){
var
department = new GlideRecord('cmn_department');
department.addEncodedQuery('u_department_node_level=3^name='+source.u_department);
department.query();
if(department.next()){
depart
= department.getUniqueValue().toString();
}
}
var addAssgnTo = '',
assngedTo =
source.u_additional_assignee.toString();
var usr = new
GlideRecord('sys_user');
usr.addEncodedQuery('emailIN'
+ assngedTo+'^department.parent.parent.parent.parent='+depart+
'^ORdepartment='+depart);
usr.query();
while (usr.next())
if
(addAssgnTo == '')
addAssgnTo
+= usr.getValue('sys_id');
else
addAssgnTo
+= ',' + usr.getValue('sys_id');
return addAssgnTo;
})(source);
To update the sn_audit_engagement
details:
answer = (function transformEntry(source) {
if (source.u_engagement_number)
{
var eng = new GlideRecord('sn_audit_engagement');
eng.addEncodedQuery('number=' + source.u_engagement_number);
eng.query();
if (eng.next()) {
var engagement =
eng.name;
engagement += ' ';
engagement += eng.number;
return engagement;
} else {
// if
(source.sys_import_row > 0)
// source.u_error_message =
'Engagement number entered for row ' + source.sys_import_row + ' is
incorrect.';
return false;
}
} else {
// if
(source.sys_import_row > 0)
//
source.u_error_message = 'No engagement number entered for row ' +
source.sys_import_row;
return false;
}
})(source);
To update the watch_list:
answer
= (function transformEntry(source) {
// Add your code here
// return the value to be put into the
target field
var watchListUser = '',
sourceWatchList =
source.u_watch_list.toString();
var usr = new GlideRecord('sys_user');
usr.addEncodedQuery('emailIN' +
sourceWatchList);
usr.query();
while (usr.next())
if (watchListUser == '')
watchListUser +=
usr.getValue('sys_id');
else
watchListUser += ',' +
usr.getValue('sys_id');
return watchListUser;
})(source);
&
answer
= (function transformEntry(source) {
var addWatchList = '',
watchList =
source.u_watch_list.toString();
var usr = new GlideRecord('sys_user');
usr.addEncodedQuery('emailIN' +
watchList);
usr.query();
while (usr.next())
if (addWatchList == '')
addWatchList +=
usr.getValue('sys_id');
else
addWatchList +=
',' + usr.getValue('sys_id');
return addWatchList;
})(source);
To update the βassigned_toβ:
answer
= (function transformEntry(source) {
// if
(!source.u_assigned_to.nil()) {
// var
bu = new GlideRecord('business_unit');
// bu.get('name',source.u_department);
// var
usr = new GlideRecord('sys_user');
// usr.addEncodedQuery('name='
+ source.u_assigned_to + '^department.business_unit=' + bu.getValue('sys_id'));
// usr.query();
// if
(usr.next())
// return
usr.getDisplayValue();
// else
// return
"";
// }
else {
// return
source.u_assigned_to;
// }
if (source.u_department != '' &&
source.u_department != 'NULL') {
var department = new
GlideRecord('cmn_department');
department.addEncodedQuery('u_department_node_level=3^name=' + source.u_department);
department.query();
if (department.next()) {
var depart = '';
depart =
department.getValue('sys_id');
var usr = new
GlideRecord('sys_user');
usr.addEncodedQuery('email=' +
source.u_assigned_to + '^department.parent.parent.parent.parent=' + depart +
'^ORdepartment=' + depart);
usr.query();
if (usr.next()) {
return usr.getValue('sys_id');
} else {
if (source.sys_import_row >
0)
source.u_error_message =
'Entered value for Issue owner for row ' + source.sys_import_row + ' is either
incorrect or user does not belong to the mentioned department.';
return false;
}
}
} else {
return false;
}
})(source);
&
answer
= (function transformEntry(source) {
if(source.u_department != '' &&
source.u_department !='NULL'){
var department = new
GlideRecord('cmn_department');
department.addEncodedQuery('u_department_node_level=3^name='+source.u_department);
department.query();
if(department.next()){
var depart = '';
depart =
department.getValue('sys_id');
var usr = new
GlideRecord('sys_user');
usr.addEncodedQuery('email='
+source.u_assigned_to+'^department.parent.parent.parent.parent='+depart+
'^ORdepartment='+depart);
usr.query();
if (usr.next()){
return
usr.getValue('sys_id');
}
else
return
false;
}
}
else
return false;
})(source);
&
answer
= (function transformEntry(source) {
if (!source.u_department.nil()) {
var bu = new
GlideRecord('business_unit');
bu.get('name',source.u_department);
var usr = new GlideRecord('sys_user');
usr.addEncodedQuery('name=' +
source.u_assigned_to + '^department.business_unit=' + bu.getValue('sys_id'));
// check if users department is same as mentioned dept
usr.query();
if (usr.next())
return usr.getDisplayValue();
else
return "";
} else {
return source.u_assigned_to;
}
})(source);
To update the Priority Value:
answer
= (function transformEntry(source) {
var issue = new
GlideRecord('sn_grc_issue');
if (issue.get('number', source.u_issue)) {
var choice = new
GlideRecord('sys_choice');
choice.addEncodedQuery('element=priority^name=sn_grc_task^dependent_value=3^inactive=false^value='
+ issue.getValue('priority'));
choice.query();
if (choice.next())
return choice.getValue('value');
else return 4;
} else
return 4; // return the value to be put
into the target field
})(source);
To update the βDepartmentβ:
answer
= (function transformEntry(source) {
if(source.u_department != '' &&
source.u_department !='NULL'){
var department = new
GlideRecord('cmn_department');
department.addEncodedQuery('u_department_node_level=3^name='+source.u_department);
department.query();
if(department.next()){
return department.getUniqueValue().toString();
}
}
else{
return false;
}
})(source);
To update Numeric field based on
condidtion:
answer = (function transformEntry(source) {
// Add your code here
// return the value to be put
into the target field
var cyberSecurity =
parseInt(source.u_strategic)
if (cyberSecurity < 0 ||
cyberSecurity > 6) {
if (cyberSecurity < 0)
return '0';
else if (cyberSecurity >
6)
return '6';
} else
return cyberSecurity;
})(source);
To Update the Approvers:
answer = (function transformEntry(source) {
if
(!source.u_vertical_head.nil()) {
var usr =
new GlideRecord('sys_user');
usr.addEncodedQuery('email='
+ source.u_vertical_head);
usr.query();
if
(usr.next())
return
usr.getDisplayValue();
else
return
false;
} else {
return
false;
}
})(source);
To update the Auditors in Engagement:
answer = (function transformEntry(source) {
var SourceAuditors =
source.u_auditors,
Auditors =
'';
var usr = new
GlideRecord('sys_user');
usr.addEncodedQuery('emailIN'
+ SourceAuditors);
usr.query();
while (usr.next())
if (Auditors
== '')
Auditors
+= usr.getValue('sys_id').toString();
else
Auditors
+= ',' + usr.getValue('sys_id').toString();
return Auditors;
})(source);
4.
Create
onBefore BusinessRule
(function runTransformScript(source, map, log, target /*undefined
onStart*/ ) {
var skip = false;
var eng =
source.u_engagement_number;
var checkEng = new
GlideRecord('sn_audit_engagement');
checkEng.get('number', eng);
if (checkEng.engagement_type !=
17 || checkEng.state != 2 || checkEng.u_rt_and_issue_creation != true) {
if (source.sys_import_row
> 0)
source.u_error_message
= "Issue is not created for row " + source.sys_import_row + "
because of one of the following reasons :1. Engagement type is not Concurrent
Audit, 2. State is not Fieldwork, 3. RT / Issue creation checkbox is not
checked. 4. Engagement number is incorrect.";
skip = true;
}
if (source.sys_import_row == 0
|| skip == true)
ignore = true;
})(source, map, log, target);
&
(function runTransformScript(source, map, log, target /*undefined
onStart*/ ) {
if(source.sys_import_row==0)
ignore=true;
})(source, map, log, target);
&
(function runTransformScript(source, map, log, target /*undefined
onStart*/ ) {
var skip = false;
var eng =
source.u_engagement_number;
var checkEng = new
GlideRecord('sn_audit_engagement');
checkEng.get('number', eng);
if (checkEng.engagement_type !=
17 || checkEng.state != 2 || checkEng.u_rt_and_issue_creation != true) {
if (source.sys_import_row
> 0)
source.u_error_message
= "Remediation task is not created for row " + source.sys_import_row
+ " because of one of the following reasons :1. Engagement type is not
Concurrent Audit, 2. State is not Fieldwork, 3. RT / Issue creation checkbox is
not checked. 4. Engagement number is incorrect.";
skip = true;
}
var issue_number =
source.u_issue_number;
var issue = new GlideRecord('sn_grc_issue');
issue.addEncodedQuery('number='
+ issue_number);
issue.query();
if (!issue.next()) {
if (source.sys_import_row
> 0) {
source.u_error_message
= "Remediation task is not created for row " + source.sys_import_row
+ " because given Issue number does not exist.";
skip = true;
}
}
if (source.sys_import_row == 0)
{
ignore = true;
} else if (skip == true) {
ignore = true;
}
})(source, map, log, target);
5.
Create
report to identify the errors occurred during the import file
Report on data source table
Created catalog items for VRM Vendor Master Template
Script:
var cat_item_sysID =
gs.getProperty('idfc.GRC.VRM.bulk.upload.RP.sys_id');
var vendor_bulk_upload_import_set_sysID =
gs.getProperty('idfc.GRC.VRM.IRM.bulk.data.upload.import.set.sys_id');
var tiering_bulk_upload_import_set_sysID =
gs.getProperty('idfc.GRC.VRM.IRM.tiering.bulk.data.upload.import.set.sys_id');
var perf_review_import_set_sysID = gs.getProperty('idfc.GRC.VRM.IRM.performance_review.data.upload.import.set.sys_id');
var reassignment_import_set_sysID =
gs.getProperty('idfc.GRC.VRM.IRM.reassignment.data.upload.import.set.sys_id');
var onsite_review_import_set_sysID =
gs.getProperty('idfc.GRC.VRM.IRM.onsite_review.data.upload.import.set.sys_id');
var onsite_review_dsa_import_set_sysID =
gs.getProperty('idfc.GRC.VRM.IRM.onsite_review_dsa.data.upload.import.set.sys_id');
var gr2 = new GlideRecord("sys_attachment");
gr2.addQuery("table_sys_id", current.sys_id);
var oC = gr2.addQuery("table_name",
"sys_data_source");
oC.addOrCondition("table_name",
"sc_cart_item");
gr2.query();
if (!gr2.next()) {
gs.addErrorMessage("You must attach a file to submit. Your import
submission has been aborted.");
current.setAbortAction(true);
producer.redirect
= "com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id="
+ cat_item_sysID.toString();
} else {
var file_name =
gr2.getValue("file_name");
if
(gr2.getRowCount() > 1) {
gs.addErrorMessage("You may only attach one file at a time for this
import wizard. Your import submission has been aborted.");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
}
// check to make
sure the file format is correct on the attachment
var
passedFormatCheck = false;
if
(gr2.file_name.endsWith('.xls') == true || gr2.file_name.endsWith('.xlsx') ==
true) {
passedFormatCheck = true;
} else {
passedFormatCheck = false;
gs.addErrorMessage("This import type is expecting submission of an
Excel file (.xls), but a different file format was attached. Your import
submission has been aborted.");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
}
}
if
(producer.getValue("v_please_select_data_table") ==
"vendor") {
var parser = new
sn_impex.GlideExcelParser();
var attachment =
new GlideSysAttachment();
var
attachmentStream = attachment.getContentStream(gr2.sys_id.toString());
parser.parse(attachmentStream);
var headers =
parser.getColumnHeaders();
var header1 =
headers[0];
var header2 =
headers[1];
var header3 =
headers[2];
var header4 =
headers[3];
var header5 =
headers[4];
var header6 =
headers[5];
var header7 =
headers[6];
var header8 =
headers[7];
var header9 =
headers[8];
var header10 =
headers[9];
var header11 = headers[10];
var header12 =
headers[11];
var header13 =
headers[12];
var header14 =
headers[13];
var header15 =
headers[14];
var header16 =
headers[15];
var header17 =
headers[16];
var header18 =
headers[17];
var header19 =
headers[18];
var header20 =
headers[19];
var header21 =
headers[20];
var header22 =
headers[21];
var header23 =
headers[22];
var header24 =
headers[23];
var header25 =
headers[24];
var header26 =
headers[25];
var header27 =
headers[26];
var header28 =
headers[27];
var header29 =
headers[28];
var header30 =
headers[29];
var header31 =
headers[30];
var header32 =
headers[31];
if (header1 ==
"Vendor Name" && header2 == "Vendor PAN" &&
header3 == "Vendor Code" && header4 == "Vendor
Address-Line1" && header5 == "Vendor Address-Line2"
&& header6 == "Vendor Address-Line3" && header7 ==
"Vendor Address-City" && header8 == "Vendor
Address-State" && header9 == "Vendor Address-PinCode"
&& header10 == "Vendor Type" && header11 ==
"Description of activities (DD)" && header12 == "Type of
activities (DD)" && header13 == "Business function-L2" &&
header14 == "Business Unit-L3" && header15 ==
"Product" && header16 == "Vendor Contact Country
Code" && header17 == "Vendor Contact Number (Mobile)"
&& header18 == "Vendor Contact Number (Land-Line)" &&
header19 == "Vendor Contact Number (Alternate-1)" && header20
== "Vendor Contact Number (Alternate-2)" && header21 ==
"Vendor Contact Number (Alternate-3)" && header22 ==
"Vendor Relationship Manager" && header23 == "VRM Email
Address" && header24 == "Vendor Contact Person Name"
&& header25 == "Vendor Email" && header26 ==
"Vendor Email (Alternate-1)" && header27 == "Vendor
Email (Alternate-2)" &&
header28 == "Vendor Status" && header29 == "Vendor key
official name" && header30 == "Vendor key official-Email
Address" && header31 == "Entity- DD" && header32
== "Vendor tiering") {
if
(passedFormatCheck == true) {
// current.name
= file_name;
current.name = gs.nowDateTime();
current.format = "Excel";
current.import_set_table_name =
"sn_vdr_risk_asmt_vrm_bulk_data_upload";
current.header_row = '1';
current.sheet_number
= '1';
current.file_retrieval_method = "Attachment";
current.type = "File";
//Data
source needs to be created before we can trigger the commands below, so we
create the record outside of the normal record producer method
var vendor
= new GlideRecord('scheduled_import_set');
vendor.addQuery('sys_id',
vendor_bulk_upload_import_set_sysID.toString()); //sys_id for scheduled import
vendor.query();
if (vendor.next())
{
vendor.data_source = current.sys_id.toString();
vendor.run_as = gs.getUserID();
vendor.update();
SncTriggerSynchronizer.executeNow(vendor); //Execute the scheduled
import
}
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
gs.addInfoMessage("Email Notification Sent.Please Navigate to All
Vendor Screen for Succesfull Entries.Bulk Upload Error Data Screen for
Unsuccessfull Entries");
}
} else {
gs.addErrorMessage("Excel column name not vaild or not in correct
sequence");
current.setAbortAction(true);
producer.redirect = "com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id="
+ cat_item_sysID.toString();
}
}
if
(producer.getValue("v_please_select_data_table") ==
"contract") {
var parser3 = new
sn_impex.GlideExcelParser();
var attachment3 =
new GlideSysAttachment();
var
attachmentStream3 = attachment3.getContentStream(gr2.sys_id.toString());
parser3.parse(attachmentStream3);
var headers3 =
parser3.getColumnHeaders();
var header41 =
headers3[0];
var header42 =
headers3[1];
var header43 =
headers3[2];
var header44 = headers3[3];
var header45 =
headers3[4];
var header46 =
headers3[5];
var header47 =
headers3[6];
var header48 =
headers3[7];
var header51 =
headers3[8];
var header53 =
headers3[9];
var header54 =
headers3[10];
if (header41 ==
"Engagement Number" && header42 == "Contract Model"
&& header43 == "Start date" && header44 == "End
date" && header45 == "Agreement Custody Status"
&& header46 == "Short Description" && header47 ==
"VRM Name" && header48 == "VRM Email" &&
header51 == "PO Number" && header53 == "Vendor
account" && header54 == "Vendor Payment Code") {
if
(passedFormatCheck == true) {
current.name = file_name;
current.format = "Excel";
current.import_set_table_name
= "sn_vdr_risk_asmt_bulk_vrm_contract_data";
current.header_row = '1';
current.sheet_number = '1';
current.file_retrieval_method = "Attachment";
current.type = "File";
var gr1 = new
GlideRecord('scheduled_import_set');
gr1.addQuery('sys_id', vendor_bulk_upload_import_set_sysID.toString());
//sys_id for scheduled import
gr1.query();
if
(gr1.next()) {
gr1.data_source = current.sys_id.toString();
gr1.run_as = gs.getUserID();
gr1.update();
SncTriggerSynchronizer.executeNow(gr1); //Execute the scheduled import
}
producer.redirect = "com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id="
+ cat_item_sysID.toString();
gs.addInfoMessage("Email Notification Sent.Please Navigate to All
Contracts Screen for Succesfull Entries.Bulk Upload Error Data Screen for
Unsuccessfull Entries");
}
} else {
gs.addErrorMessage("Excel column name not vaild or not in correct
sequence");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
}
}
if
(producer.getValue("v_please_select_data_table") ==
"annual_tiering") {
var parser4 = new
sn_impex.GlideExcelParser();
var attachment4 =
new GlideSysAttachment();
var
attachmentStream4 = attachment4.getContentStream(gr2.sys_id.toString());
parser4.parse(attachmentStream4);
var headers4 =
parser4.getColumnHeaders();
var header60 =
headers4[0];
var header61 =
headers4[1];
var header62 =
headers4[2];
var header63 = headers4[3];
var header64 =
headers4[4];
var header65 =
headers4[5];
var header66 =
headers4[6];
var header67 =
headers4[7];
var header68 =
headers4[8];
var header69 =
headers4[9];
var header70 =
headers4[10];
var header71 =
headers4[11];
var header72 =
headers4[12];
var header73 =
headers4[13];
var header74 =
headers4[14];
var header75 =
headers4[15];
var header76 =
headers4[16];
var header77 =
headers4[17];
var header78 =
headers4[18];
var header79 =
headers4[19];
var header80 =
headers4[20];
var header81 =
headers4[21];
var header82 =
headers4[22];
var header83 =
headers4[23];
var header84 =
headers4[24];
var header85 =
headers4[25];
var header86 =
headers4[26];
var header87 =
headers4[27];
var header88 =
headers4[28];
var header89 =
headers4[29];
var header90 =
headers4[30];
var header91 =
headers4[31];
var header92 =
headers4[32];
var header93 =
headers4[33];
var header94 =
headers4[34];
if (header60 ==
"Engagament ID" && header61 == "Year of tiering"
&& header62 == "Review Number" && header63 ==
"Planned Start Date" && header64 == "Planned End
Date" && header65 == "Actual Start Date" &&
header66 == "Actual End date" && header67 == "Is the
activity classified as \"Material\" as per Bank's outsourcing
policy" && header68 == "The importance of the vendor in the
banking industry, level of reliance by various Banks and concentration of
services being provided" && header69 == "Geographical,
Political, social or legal circumstances of the country if vendor is operating
outside India" && header70 == "Financial Soundness of the
service provider" && header71 == "What is the level of
regulatory emphasis on the nature of activity" && header72 ==
"What is the vendor's past performance in regulatory adherence"
&& header73 == "Does the outsourced process directly contribute to
any regulatory obligation of the Bank" && header74 == "Experience
of the vendor in delivering this process in the Industry" &&
header75 == "Does the vendor have adequate policies and SOPs in place to
deliver the activity" && header76 == "Reputational impact on
Bank in case of any failure / breach at Vendor" && header77 ==
"Ability to manage customer complaints and grievances" &&
header78 == "Is the vendor seeking any deviation from Bank's standard
terms and conditions" && header79 == "Are there any
contractual limitations on financial remedies to the Bank" && header80
== "What is the potential for litigation on the Bank in case of vendor
failures" && header81 == "The criticality of the vendor on
business continuity of the Bank" && header82 == "Level of
vendor's dependency on sub-contractors" && header83 == "Does
the vendor have proper BCM framework and a periodical testing mechanism"
&& header84 == "What is the level of difficulty in replacing the
vendor" && header85 == "What is the Bank's ability to deliver
process in-house in case of vendor failure" && header86 ==
"What is the nature of integration with the Bank's systems"
&& header87 == "What is the type of data shared with the
vendor" && header88 == "What is the classification of the
information shared with the vendor" && header89 == "What is
the location of data processing and storage" && header90 ==
"Whether the data will be stored outside India" && header91
== "What is the quantum of data available with the vendor" &&
header92 == "Availability of an independent IS Audit mechanism"
&& header93 == "Does the Vendor has ISMS Policy and Security
standard certification in place" && header94 == "Past history
of IS / Cyber leakages and breaches") {
if
(passedFormatCheck == true) {
//
current.name = file_name;
current.name = gs.nowDateTime();
current.format = "Excel";
current.import_set_table_name =
"sn_vdr_risk_asmt_vrm_bulk_tiering_data";
current.header_row = '1';
current.sheet_number = '1';
current.file_retrieval_method = "Attachment";
current.type = "File";
//Data
source needs to be created before we can trigger the commands below, so we
create the record outside of the normal record producer method
var
risk_tier = new GlideRecord('scheduled_import_set');
risk_tier.addQuery('sys_id',
tiering_bulk_upload_import_set_sysID.toString()); //sys_id for scheduled import
risk_tier.query();
if
(risk_tier.next()) {
risk_tier.data_source = current.sys_id.toString();
risk_tier.run_as = gs.getUserID();
risk_tier.update();
SncTriggerSynchronizer.executeNow(risk_tier); //Execute the scheduled
import
}
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
gs.addInfoMessage("Email Notification Sent.Please Navigate to All
Tiering Screen for Succesfull Entries.Bulk Upload Error Data Screen for
Unsuccessfull Entries");
}
} else {
gs.addErrorMessage("Excel column name not vaild or not in correct
sequence");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
}
}
// Bulk Performance Review
if
(producer.getValue("v_please_select_data_table") ==
"performance_review") {
var result = new
global.INMRecordProducerBulkUploadUtils().performance_review_bulk_upload(current,
passedFormatCheck, gr2.sys_id.toString(), perf_review_import_set_sysID.toString(),
current.sys_id.toString());
if (result ==
'true' || result == true) {
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
gs.addInfoMessage("Email Notification Sent.Please Navigate to All
Tiering Screen for Succesfull Entries.Bulk Upload Error Data Screen for
Unsuccessfull Entries");
} else {
gs.addErrorMessage("Excel column name not vaild or not in correct
sequence");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
}
}
// Bulk Assessor Reassignment
if
(producer.getValue("v_please_select_data_table") ==
"bulk_assessor_reassignment") {
var result2 = new
global.INMRecordProducerBulkUploadUtils().bulk_reassignment(current,
passedFormatCheck, gr2.sys_id.toString(),
reassignment_import_set_sysID.toString(), current.sys_id.toString());
if (result2 ==
'true' || result2 == true) {
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
gs.addInfoMessage("Email Notification Sent.Please Navigate to All
Tiering Screen for Succesfull Entries.Bulk Upload Error Data Screen for
Unsuccessfull Entries");
} else {
gs.addErrorMessage("Excel column name not vaild or not in correct
sequence");
current.setAbortAction(true);
producer.redirect = "com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id="
+ cat_item_sysID.toString();
}
}
// Bulk Onsite Review
if
(producer.getValue("v_please_select_data_table") ==
"onsite_review") {
var result3 = new
global.INMRecordProducerBulkUploadUtils().bulk_onsite_review(current,
passedFormatCheck, gr2.sys_id.toString(),
onsite_review_import_set_sysID.toString(), current.sys_id.toString());
if (result3 ==
'true' || result3 == true) {
producer.redirect
= "com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id="
+ cat_item_sysID.toString();
gs.addInfoMessage("Email Notification Sent.Please Navigate to All
Tiering Screen for Succesfull Entries.Bulk Upload Error Data Screen for
Unsuccessfull Entries");
} else {
gs.addErrorMessage("Excel column name not vaild or not in correct
sequence");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
}
}
// Bulk Onsite Review DSA
if
(producer.getValue("v_please_select_data_table") ==
"onsite_review_dsa") {
var result4 = new
global.INMRecordProducerBulkUploadUtils().bulk_onsite_review_dsa(current,
passedFormatCheck, gr2.sys_id.toString(),
onsite_review_dsa_import_set_sysID.toString(), current.sys_id.toString());
if (result4 ==
'true' || result4 == true) {
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
gs.addInfoMessage("Email Notification Sent.Please Navigate to All
Tiering Screen for Succesfull Entries.Bulk Upload Error Data Screen for
Unsuccessfull Entries");
} else {
gs.addErrorMessage("Excel column name not vaild or not in correct
sequence");
current.setAbortAction(true);
producer.redirect =
"com.glideapp.servicecatalog_cat_item_view.do?v=1&sysparm_id=" +
cat_item_sysID.toString();
}
}
Transform
Map:
onBefore:
(function runTransformScript(source, map, log, target
/*undefined onStart*/ ) {
var flag =
"true";
var madt =
"true";
var msg = [];
var pattern2 =
/^(([^<>()[\]\\.,;:\s@]+(\.[^<>()[\]\\.,;:\s@]+)*)|(.+))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var gr41 = new
GlideRecord("sn_vdr_risk_asmt_vendor_engagement");
gr41.addQuery("u_number", source.u_engagement_number);
gr41.query();
if (!gr41.next())
{
msg +=
"Invalid Engagement number,";
flag =
"false";
} else {
var gr1 = new
GlideRecord("ast_contract");
gr1.addQuery("u_engagement",
gr41.getValue("sys_id"));
gr1.query();
if
(gr1.next()) {
msg +=
"Contract already exits with no - " +
gr1.getValue("number");
flag =
"false";
}
}
var object = {
"engagementnumber":
source.getValue("u_engagement_number"),
"vrmemail": source.getValue("u_vrm_email"),
"startdate": source.getValue("u_start_date"),
"enddate": source.getValue("u_end_date"),
"model": source.getValue("u_contract_model")
};
var
missMendatoryFields = [];
for (var key in
object) {
if
(object[key] == undefined || object[key] == "undefined" ||
typeof(object[key]) == "undefined" || object[key] == '' ||
object[key] == ' ' || object[key] == "null" || object[key] == null) {
madt =
"false";
}
}
if (madt ==
"false") {
msg +=
"Few manadatory fields data are missing / Please check the of start date,
end date formate even you fill the data manadatory fields,";
flag =
"false";
}
if
(source.u_engagement_number) {
var gr4 = new
GlideRecord("sn_vdr_risk_asmt_vendor_engagement");
gr4.addQuery("u_number", source.u_engagement_number);
gr4.query();
if
(gr4.next()) {
target.u_engagement = gr4.getValue("sys_id");
target.vendor = gr4.getValue("vendor");
var gr22 =
new GlideRecord("core_company");
gr22.addQuery("sys_id", gr4.getValue("vendor"));
gr22.query();
if
(gr22.next()) {
target.u_vendor_code = gr22.getValue("u_number");
}
}
}
if
(source.u_agreement_custody_status) {
var gr = new
GlideRecord("sys_choice");
gr.addQuery("name", "ast_contract");
gr.addQuery("label", source.u_agreement_custody_status);
gr.query();
if (!gr.next())
{
msg +=
"Error in Agreement custody status type dropdown,";
flag =
"false";
} else {
target.u_agreement_custody_status = gr.getValue("value");
}
}
if (source.u_contract_model)
{
var gr10 = new
GlideRecord("cmdb_model");
gr10.addQuery("name", source.u_contract_model);
gr10.query();
if
(!gr10.next()) {
msg +=
"Error in Contract Model dropdown,";
flag =
"false";
} else {
target.contract_model = gr10.getValue("sys_id");
}
}
if
(source.u_vrm_email) {
if
((!pattern2.test(source.getValue("u_vrm_email")))) {
msg +=
'invalid VRM Email Address,';
flag = "false";
} else {
var gr6 =
new GlideRecord("sys_user");
gr6.addQuery("email", source.u_vrm_email);
gr6.query();
if
(!gr6.next()) {
msg +=
"Invalid VRM User email,";
flag =
"false";
} else {
target.u_vendor_relationship_manager = gr6.getValue("sys_id");
target.u_vrm_email = source.u_vrm_email;
}
}
}
if
(source.getValue("u_start_date")) {
var k =
source.getValue("u_start_date");
var p =
k.split("-");
if (p.length
!= '3') {
msg +=
'Invalid start date formate';
flag =
"false";
}
}
if
(source.getValue("u_end_date")) {
var k1 =
source.getValue("u_end_date");
var p1 =
k1.split("-");
if (p1.length
!= '3') {
msg +=
'Invalid end date formate';
flag =
"false";
}
}
if ((source.getValue("u_start_date"))
&& (source.getValue("u_end_date"))) {
var dt1 =
source.getValue("u_start_date");
var dt2 =
source.getValue("u_end_date");
if (dt1 >
dt2) {
msg +=
'start date is greater then end date';
flag = "false";
}
}
target.u_source_id
= "excel";
if (flag ==
"false") {
source.u_number = source.getDisplayValue("sys_import_set");
source.u_error_message = msg;
ignore =
"true";
}
})(source, map, log, target);
onComplete:
(function runTransformScript(source, map, log, target
/*undefined onStart*/ ) {
GlideSysAttachment.copy('sys_data_source',source.sys_import_set.data_source,'sys_import_set',source.sys_import_set);
var
grUser = new GlideRecord('sys_user');
grUser.addQuery('user_name', import_set.sys_created_by);
//the import set record is created by the user who initiates the import
grUser.query();
if (grUser.next()){
gs.eventQueue('sn_vdr_risk_asmt.bulk_contract_data_noti',
import_set, grUser.sys_id);
}
})(source, map, log, target);
Comments
Post a Comment