passing a variable to the workflow from a business rule does not work

DoDo labs___
Mega Sage

Hi,

 

I am trying to pass a variable from business rule to workflow, but it does not receive it.

 

This is the business rule:


(function executeRule(current, previous /*null when async*/) {

var u_vars = {};

u_vars.u_met = 'Test 2';

var w = new Workflow();
var context = w.startFlow('ea52870687239e10d111646e8bbb357d', current, current.operation(), u_vars);

})(current, previous);

 

 

This is the workflow input:

 

DoDolabs____0-1739092727339.png

 

 

And here is the workflow script:

 

var input = workflow.variables.u_vars;

var testing = new GlideRecord('incident');
testing.addQuery('number', 'INC0295583');
testing.query();
if (testing.next())
{
testing.comments = 'TEST 1';
testing.comments = input.u_met;
testing.update();
}

 

 

The workflow runs, since the TEST 1 comment is appear in the incident, but the test 2 value is not received.

DoDolabs____1-1739092868386.png

 

1 ACCEPTED SOLUTION

"Test 2" appeared in the log, so the workflow received the value. From this I realized that toString() should be used:
var inputValue = workflow.inputs.u_met.toString();

 

Finally the value appeared in the incident as well.

 


Business rule:

(function executeRule(current, previous /*null when async*/) {


var vars = {};
vars.u_met = 'Test 2';

var w = new Workflow();
var context = w.startFlow('ea52870687239e10d111646e8bbb357d', '', 'FIG_ignored_emails', vars);

})(current, previous);


Workflow inputs:

Type: String
Label: Email Sys ID
Column name: u_met
Max length: 60


Workflow script:

var inputValue = workflow.inputs.u_met.toString();

var testing = new GlideRecord('incident');
testing.addQuery('number', 'INC0295583');
testing.query();
if (testing.next())
{
testing.comments = inputValue ;
testing.update();
}

 


Thank you all for your help!

View solution in original post

10 REPLIES 10

"Test 2" appeared in the log, so the workflow received the value. From this I realized that toString() should be used:
var inputValue = workflow.inputs.u_met.toString();

 

Finally the value appeared in the incident as well.

 


Business rule:

(function executeRule(current, previous /*null when async*/) {


var vars = {};
vars.u_met = 'Test 2';

var w = new Workflow();
var context = w.startFlow('ea52870687239e10d111646e8bbb357d', '', 'FIG_ignored_emails', vars);

})(current, previous);


Workflow inputs:

Type: String
Label: Email Sys ID
Column name: u_met
Max length: 60


Workflow script:

var inputValue = workflow.inputs.u_met.toString();

var testing = new GlideRecord('incident');
testing.addQuery('number', 'INC0295583');
testing.query();
if (testing.next())
{
testing.comments = inputValue ;
testing.update();
}

 


Thank you all for your help!