- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-22-2017 02:23 AM
Hi ,
Can someone please let me know what is "current.variable_pool" used in the business rule to call the Rest message . We are calling the REST messages for posting the varaibles information to 3rd party tool.
Our script looks like this , please clarify what is difference between r.setStringParameter('your rest parameter name using which you want to send', current.variables.your_variable_name); and the below mentioned.
var r = new sn_ws.RESTMessageV2('Tufin New VPN Request', 'post');
r.setEccParameter('skip_sensor', true);
r.setStringParameter('algorithm', current.variable_pool.algorithm.getDisplayValue());
r.setStringParameter('bpemail1', current.variable_pool.partnerEmail1);
r.setStringParameter('bpemail2', current.variable_pool.partnerEmail2);
r.setStringParameter('bpname', current.variable_pool.partnerName1);
r.setStringParameter('bpname2', current.variable_pool.partnerName2);
r.setStringParameter('bpphn1', current.variable_pool.bpphn1);
r.setStringParameter('bpphn2', current.variable_pool.bpphn2);
r.setStringParameter('citrix', current.variable_pool.citrix.getDisplayValue());
r.setStringParameter('company', current.variable_pool.companyName.getDisplayValue());
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-22-2017 02:35 AM
Yes you can use the current.variables.variable_name syntax instead of the variable_pool, both should work.
Thank You
Please Hit Like, Helpful or Correct depending on the impact of response
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-22-2017 04:50 AM
Yes Alikutty,
This is an existing functionality we are sending the 1st Catalog task details already , now as per requirement mentioned above we need to send 2nd task . We are calling Rest message from business rule. I tested for type =4 ->Tufin New VPN Request which is pointing to Second task geting response status code as 400 , please check as it is resturning status code 201 for other REST messages.
Please see the complete code of business rule:
====================================
(function executeRule(current, previous /*null when async*/) {
var json = new global.JSON();
var cad;
var snm;
var dnm;
var ref;
var hrefURL = gs.getProperty('glide.servlet.uri');
var href = hrefURL+ 'sc_req_item.do?sys_id=';
var ritm;
var sour;
var dest;
var tref;
var thref = hrefURL+ 'sc_task.do?sys_id=';
var task;
var tsk;
var type = current.variable_pool.reqType;
var username = gs.getProperty('tufin.username') ;
var password = gs.getProperty('tufin.password') ;
var a;
var b;
var c;
var d;
var e;
var f;
var g;
var h;
var j;
//For New VPN request
if(type == 4){
try {
var r = new sn_ws.RESTMessageV2('Tufin New VPN Request', 'post');
r.setEccParameter('skip_sensor', true);
//r.setBasicAuth(username, password);
gs.log('reqTYpe is' +type);
r.setStringParameter('algorithm', current.variable_pool.algorithm.getDisplayValue());
r.setStringParameter('bpemail1', current.variable_pool.partnerEmail1);
r.setStringParameter('bpemail2', current.variable_pool.partnerEmail2);
r.setStringParameter('bpname', current.variable_pool.partnerName1);
r.setStringParameter('bpname2', current.variable_pool.partnerName2);
r.setStringParameter('bpphn1', current.variable_pool.bpphn1);
r.setStringParameter('bpphn2', current.variable_pool.bpphn2);
r.setStringParameter('citrix', current.variable_pool.citrix.getDisplayValue());
r.setStringParameter('company', current.variable_pool.companyName.getDisplayValue());
var dtap = new GlideDateTime(gs.now());
var dt = dtap.getDate();
r.setStringParameter('date', dt);
r.setStringParameter('dept', current.variable_pool.department.getDisplayValue());
r.setStringParameter('dirName', current.variable_pool.director.getDisplayValue());
r.setStringParameter('email', current.variable_pool.emailAdress.getDisplayValue());
r.setStringParameter('emergency', current.variable_pool.emergency.getDisplayValue());
r.setStringParameter('encrypt', current.variable_pool.encryptionAlgorithm.getDisplayValue());
r.setStringParameter('expiry', current.variable_pool.vpnexpiry);
r.setStringParameter('function', current.variable_pool.functionality.getDisplayValue());
r.setStringParameter('group', current.variable_pool.group.getDisplayValue());
r.setStringParameter('Hardware', current.variable_pool.hardware.getDisplayValue());
r.setStringParameter('reqNotes', current.variable_pool.reqNotes.getDisplayValue());
tsk = new GlideRecord('sc_task');
tsk.addQuery('request_item', current.sys_id);
tsk.addQuery('active', true);
tsk.query();
while(tsk.next()){
r.setStringParameter('task', tsk.number);
tref = tsk.sys_id;
task = thref+tref;
r.setStringParameter('itemId', tsk.sys_id);
r.setStringParameter('tasklink', task);
}
r.setStringParameter('justify', current.variable_pool.justify.getDisplayValue());
r.setStringParameter('lifetime', current.variable_pool.lifetime.getDisplayValue());
r.setStringParameter('justify', current.variable_pool.justify.getDisplayValue());
ref = current.sys_id;
ritm = href+ref;
r.setStringParameter('link', ritm);
r.setStringParameter('method', current.variable_pool.authMethod.getDisplayValue());
r.setStringParameter('mode', current.variable_pool.mode.getDisplayValue());
r.setStringParameter('more', current.variable_pool.more.getDisplayValue());
r.setStringParameter('name', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('num', current.variable_pool.number.getDisplayValue());
r.setStringParameter('number', current.number);
r.setStringParameter('phn', current.variable_pool.phone.getDisplayValue());
r.setStringParameter('request', 'NEW MetLife VPN Request_1_3_17');
r.setStringParameter('requester', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('requestId', current.sys_id.getDisplayValue());
r.setStringParameter('scheme', current.variable_pool.encrytionScheme.getDisplayValue());
r.setStringParameter('secret', current.variable_pool.secrecy.getDisplayValue());
r.setStringParameter('step', current.variable_pool.tufinStep.getDisplayValue());
r.setStringParameter('subject', 'VPN Request');
r.setStringParameter('type', current.variable_pool.encapsulation.getDisplayValue());
r.setStringParameter('version', current.variable_pool.version.getDisplayValue());
r.setStringParameter('dirEmail', current.variable_pool.dirEmail);
r.setEccParameter('skip_sensor', true);
gs.include("global.JSON");
cad = current.variable_pool.insert_item_result.toString();
var parsed = json.decode(cad);
var xmlValue = '';
for(i=0;i<parsed[0].rows.length;i++){
var k=i+1;
a = 'AR'+k;
b=parsed[0].rows[i][0].display;
c=parsed[0].rows[i][2].display;
d=parsed[0].rows[i][5].display;
e=parsed[0].rows[i][4].display;
f=parsed[0].rows[i][6].display;
g=parsed[0].rows[i][7].display;
h=parsed[0].rows[i][1].display;
j=parsed[0].rows[i][3].display;
if(h == 'Select'){
h = '';
}
else
{
h = parsed[0].rows[i][1].display;
}
if(j == 'Select'){
j = '';
}
else
{
j = parsed[0].rows[i][3].display;
}
xmlValue += '<access_request>'+
'<order>'+a+'</order>'+
'<targets>'+
'<target type="ANY">'+
'</target>'+
'</targets>'+
'<users><user>Any</user>'+
'</users>'+
'<sources><source type="IP"><ip_address>'+b+'</ip_address>'+
'<netmask>'+h+'</netmask></source></sources>'+
'<destinations><destination type="IP"><ip_address>' +c+ '</ip_address>'+
'<netmask>'+j+'</netmask></destination></destinations>'+
'<services><service type="PROTOCOL"><protocol>'+d+'</protocol>'+
'<port>'+e+'</port>'+
'<type /></service></services>'+
'<action>'+f+ '</action>'+
'<comment>'+g+'</comment>'+
'</access_request>';
}
r.setStringParameterNoEscape('access', xmlValue);
var response = r.execute();
RESTLog(r,response,"Tufin Integration");
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
var header = response.getHeader("Location");
gs.log('httpstatus'+httpStatus);
gs.log('responseBody '+responseBody)
//gs.log('header '+ header);
var m1 = header.split('?')[0];
var m2 = m1.split('/')[7];
current.u_vendor_ticket = m2;
}
catch(ex) {
var message = ex.getMessage();
}
}
//For VPN certification request
if(type == 5){
try {
var r = new sn_ws.RESTMessageV2('Tufin VPN Certification', 'post');
r.setEccParameter('skip_sensor', true);
r.setStringParameter('requestor', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('name', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('bp', current.variable_pool.bpname);
r.setStringParameter('metemail', current.variable_pool.metcontactemail);
r.setStringParameter('email', current.variable_pool.emailAdress);
r.setStringParameter('step', 'Vendor Extranet Input');
r.setStringParameter('metphn', current.variable_pool.metcontactphn);
r.setStringParameter('request', 'MetLife VPN Certification');
r.setStringParameter('requestId', current.sys_id);
r.setStringParameter('metname', current.variable_pool.metcontact.getDisplayValue());
r.setStringParameter('number', current.number);
tsk = new GlideRecord('sc_task');
tsk.addQuery('request_item', current.sys_id);
tsk.addQuery('active', true);
tsk.query();
while(tsk.next()){
r.setStringParameter('task', tsk.number);
tref = tsk.sys_id;
task = thref+tref;
r.setStringParameter('itemId', tsk.sys_id);
r.setStringParameter('tasklink', task);
}
ref = current.sys_id;
ritm = href+ref;
r.setStringParameter('link', ritm);
//r.setBasicAuth(username, password);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
var header = response.getHeader("Location");
//gs.log('httpstatus'+httpStatus);
//gs.log('header '+ header);
var m1 = header.split('?')[0];
var m2 = m1.split('/')[7];
current.u_vendor_ticket = m2;
RESTLog(r,response,"Tufin Integration");
}
catch(ex) {
var message = ex.getMessage();
}
}
//For US Firewall Request
if(type == 1){
try {
var r = new sn_ws.RESTMessageV2('Tufin New US Firewall Request', 'post');
r.setEccParameter('skip_sensor', true); // Added for US32985
ref = current.sys_id;
ritm = href+ref;
r.setStringParameter('link', ritm);
r.setStringParameter('number', current.number);
r.setStringParameter('requester', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('justify', current.variable_pool.justify);
//r.setStringParameter('comment', current.variable_pool.reqNotes);
r.setStringParameter('request', 'New US Firewall Request');
r.setStringParameter('name', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('email', current.variable_pool.emailAdress);
r.setStringParameter('phone', current.variable_pool.phone);
r.setStringParameter('requestId', current.sys_id);
r.setStringParameter('step', current.variable_pool.tufinStep.getDisplayValue());
r.setStringParameter('emergency', current.variable_pool.emergency.getDisplayValue());
r.setStringParameter('reqNotes', current.variable_pool.reqNotes.getDisplayValue());
//r.setStringParameter('action', current.variable_pool.action.getDisplayValue());
tsk = new GlideRecord('sc_task');
tsk.addQuery('request_item', current.sys_id);
tsk.addQuery('active', true);
tsk.query();
while(tsk.next()){
r.setStringParameter('task', tsk.number);
tref = tsk.sys_id;
task = thref+tref;
r.setStringParameter('itemId', tsk.sys_id);
r.setStringParameter('tasklink', task);
}
gs.include("global.JSON");
cad = current.variable_pool.insert_item_result.toString();
var parsed = json.decode(cad);
var xmlValue = '';
for(i=0;i<parsed[0].rows.length;i++){
var k=i+1;
a = 'AR'+k;
b=parsed[0].rows[i][0].display;
c=parsed[0].rows[i][2].display;
d=parsed[0].rows[i][5].display;
e=parsed[0].rows[i][4].display;
f=parsed[0].rows[i][6].display;
g=parsed[0].rows[i][7].display;
h=parsed[0].rows[i][1].display;
j=parsed[0].rows[i][3].display;
if(h == 'Select'){
h = '';
}
else{
h=parsed[0].rows[i][1].display;
}
if(j == 'Select'){
j = '';
}
else{
j=parsed[0].rows[i][3].display;
}
xmlValue += '<access_request>'+
'<order>'+a+'</order>'+
'<targets>'+
'<target type="ANY">'+
'</target>'+
'</targets>'+
'<users><user>Any</user>'+
'</users>'+
'<sources><source type="IP"><ip_address>'+b+'</ip_address>'+
'<netmask>'+h+'</netmask></source></sources>'+
'<destinations><destination type="IP"><ip_address>' +c+ '</ip_address>'+
'<netmask>'+j+'</netmask></destination></destinations>'+
'<services><service type="PROTOCOL"><protocol>'+d+'</protocol>'+
'<port>'+e+'</port>'+
'<type /></service></services>'+
'<action>'+f+ '</action>'+
'<comment>'+g+'</comment>'+
'</access_request>';
}
r.setStringParameterNoEscape('access', xmlValue);
//r.setBasicAuth(username, password);
var response = r.execute();
RESTLog(r,response,"Tufin Integration");
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
var header = response.getHeader("Location");
//gs.log('httpstatus'+httpStatus);
//gs.log('header '+ header);
var m1 = header.split('?')[0];
var m2 = m1.split('/')[7];
current.u_vendor_ticket = m2;
}
catch(ex) {
var message = ex.getMessage();
}
}
//For Extranet FW request
if(type == 3){
try {
var r = new sn_ws.RESTMessageV2('Tufin New Extranet Firewall Request', 'post');
r.setEccParameter('skip_sensor', true);
r.setStringParameter('requester', current.variable_pool.requestor.getDisplayValue());
ref = current.sys_id;
ritm = href+ref;
r.setStringParameter('link', ritm);
var dtap = new GlideDateTime(gs.now());
var dt = dtap.getDate();
r.setStringParameter('date', dt);
r.setStringParameter('dirEmail', current.variable_pool.dirEmail);
//r.setStringParameter('comment', current.variable_pool.reqNotes);
r.setStringParameter('number', current.number);
r.setStringParameter('request', 'New Extranet Firewall Request');
r.setStringParameter('step', current.variable_pool.tufinStep.getDisplayValue());
r.setStringParameter('emergency', current.variable_pool.emergency.getDisplayValue());
r.setStringParameter('requestId', current.sys_id);
r.setStringParameter('name', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('email', current.variable_pool.emailAdress);
r.setStringParameter('dirName', current.variable_pool.director.getDisplayValue());
r.setStringParameter('justify', current.variable_pool.justify);
r.setStringParameter('reqNotes', current.variable_pool.reqNotes.getDisplayValue());
var vndr = current.variable_pool.vendor;
if(vndr == 36){
r.setStringParameter('vendor', current.variable_pool.otherName.getDisplayValue());
}
else{
r.setStringParameter('vendor', current.variable_pool.vendor.getDisplayValue());
}
//r.setStringParameter('action', current.variable_pool.action.getDisplayValue());
gs.include("global.JSON");
cad = current.variable_pool.insert_item_result.toString();
var parsed = json.decode(cad);
var xmlValue = '';
for(i=0;i<parsed[0].rows.length;i++){
var k=i+1;
a = 'AR'+k;
b=parsed[0].rows[i][0].display;
c=parsed[0].rows[i][2].display;
d=parsed[0].rows[i][5].display;
e=parsed[0].rows[i][4].display;
f=parsed[0].rows[i][6].display;
g=parsed[0].rows[i][7].display;
h=parsed[0].rows[i][1].display;
j=parsed[0].rows[i][3].display;
if(h == 'Select'){
h = '';
}
else{
h=parsed[0].rows[i][1].display;
}
if(j == 'Select'){
j = '';
}
else{
j=parsed[0].rows[i][3].display;
}
xmlValue += '<access_request>'+
'<order>'+a+'</order>'+
'<targets>'+
'<target type="ANY">'+
'</target>'+
'</targets>'+
'<users><user>Any</user>'+
'</users>'+
'<sources><source type="IP"><ip_address>'+b+'</ip_address>'+
'<netmask>'+h+'</netmask></source></sources>'+
'<destinations><destination type="IP"><ip_address>' +c+ '</ip_address>'+
'<netmask>'+j+'</netmask></destination></destinations>'+
'<services><service type="PROTOCOL"><protocol>'+d+'</protocol>'+
'<port>'+e+'</port>'+
'<type /></service></services>'+
'<action>'+f+ '</action>'+
'<comment>'+g+'</comment>'+
'</access_request>';
}
r.setStringParameterNoEscape('access', xmlValue);
tsk = new GlideRecord('sc_task');
tsk.addQuery('request_item', current.sys_id);
tsk.addQuery('active', true);
tsk.query();
while(tsk.next()){
r.setStringParameter('task', tsk.number);
tref = tsk.sys_id;
task = thref+tref;
r.setStringParameter('itemId', tsk.sys_id);
r.setStringParameter('tasklink', task);
}
//r.setBasicAuth(username, password);
var response = r.execute();
RESTLog(r,response,"Tufin Integration");
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
var header = response.getHeader("Location");
//gs.log('httpstatus'+httpStatus);
//gs.log('header '+ header);
var m1 = header.split('?')[0];
var m2 = m1.split('/')[7];
current.u_vendor_ticket = m2;
}
catch(ex) {
var message = ex.getMessage();
}
}
//For International FW request
if(type == 2){
try {
var r = new sn_ws.RESTMessageV2('Tufin New International Firewall Request', 'post');
r.setEccParameter('skip_sensor', true);
var location = current.variable_pool.location;
if(location <= 6 && location >6){
r.setStringParameter('approval', 'EIA-ITRS-International FW Governance-LATAM');
}
else if(location <= 16 && location >6){
r.setStringParameter('approval', 'EIA-ITRS-International FW Governance-ASIA');
}
else{
r.setStringParameter('approval', 'EIA-ITRS-International FW Governance-EMEA');
}
ref = current.sys_id;
ritm = href+ref;
r.setStringParameter('link', ritm);
r.setStringParameter('number', current.number);
r.setStringParameter('requester', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('justify', current.variable_pool.justify);
//r.setStringParameter('comment', current.variable_pool.reqNotes);
r.setStringParameter('request', 'New International Firewall Request');
r.setStringParameter('step', current.variable_pool.tufinStep.getDisplayValue());
r.setStringParameter('emergency', current.variable_pool.emergency.getDisplayValue());
r.setStringParameter('name', current.variable_pool.requestor.getDisplayValue());
r.setStringParameter('email', current.variable_pool.emailAdress);
r.setStringParameter('phone', current.variable_pool.phone);
r.setStringParameter('requestId', current.sys_id);
r.setStringParameter('step', current.variable_pool.tufinStep.getDisplayValue());
r.setStringParameter('reqNotes', current.variable_pool.reqNotes.getDisplayValue());
//r.setStringParameter('action', current.variable_pool.action.getDisplayValue());
gs.include("global.JSON");
cad = current.variable_pool.insert_item_result.toString();
var parsed = json.decode(cad);
var xmlValue = '';
for(i=0;i<parsed[0].rows.length;i++){
var k=i+1;
a = 'AR'+k;
b=parsed[0].rows[i][0].display;
c=parsed[0].rows[i][2].display;
d=parsed[0].rows[i][5].display;
e=parsed[0].rows[i][4].display;
f=parsed[0].rows[i][6].display;
g=parsed[0].rows[i][7].display;
h=parsed[0].rows[i][1].display;
j=parsed[0].rows[i][3].display;
if(h == 'Select'){
h = '';
}
else{
h=parsed[0].rows[i][1].display;
}
if(j == 'Select'){
j = '';
}
else{
j=parsed[0].rows[i][3].display;
}
xmlValue += '<access_request>'+
'<order>'+a+'</order>'+
'<targets>'+
'<target type="ANY">'+
'</target>'+
'</targets>'+
'<users><user>Any</user>'+
'</users>'+
'<sources><source type="IP"><ip_address>'+b+'</ip_address>'+
'<netmask>'+h+'</netmask></source></sources>'+
'<destinations><destination type="IP"><ip_address>' +c+ '</ip_address>'+
'<netmask>'+j+'</netmask></destination></destinations>'+
'<services><service type="PROTOCOL"><protocol>'+d+'</protocol>'+
'<port>'+e+'</port>'+
'<type /></service></services>'+
'<action>'+f+ '</action>'+
'<comment>'+g+'</comment>'+
'</access_request>';
}
r.setStringParameterNoEscape('access', xmlValue);
tsk = new GlideRecord('sc_task');
tsk.addQuery('request_item', current.sys_id);
tsk.addQuery('active', true);
tsk.query();
while(tsk.next()){
r.setStringParameter('task', tsk.number);
tref = tsk.sys_id;
task = thref+tref;
r.setStringParameter('itemId', tsk.sys_id);
r.setStringParameter('tasklink', task);
}
//r.setBasicAuth(username, password);
var response = r.execute();
RESTLog(r,response,"Tufin Integration");
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
//gs.print(httpStatus);
var header = response.getHeader("Location");
//gs.log('httpstatus'+httpStatus);
//gs.log('header '+ header);
var m1 = header.split('?')[0];
var m2 = m1.split('/')[7];
current.u_vendor_ticket = m2;
}
catch(ex) {
var message = ex.getMessage();
}
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-22-2017 04:57 AM
Hello Ravi,
I see you have opened another thread for the new query - REST Message response code: 400 , I will respond you on it.
Can you please close this thread by marking the correct answer as your original question on variable pool is answered.
Thank You
Please Hit Like, Helpful or Correct depending on the impact of response