- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-25-2021 11:48 AM
Hello Community,
I need your help. Saving the backstory i need to do what i feel should be simple but for whatever reason i am unable to use my knowledge to be successful.
I have a working email script that is working, but i have (12) copies of this code in the script and i know i can reduce this down to one occurance in which it can interate through an array and only have one piece of code.
*****
if (current.variables.ldap != 'Yes') {
template.print("<br/><br/>" + current.variables.ldap.getGlideObject().getQuestion().getLabel() + ": <b>" +
current.variables.ldap.getGlideObject().getQuestion().getValue() +
"</b><br/> Implemented at go-live?: <b>" +
current.variables.ldap_go_live.getGlideObject().getQuestion().getValue() +
"</b><br/> Additional details/Comments: <b>" +
current.variables.ldap_reason.getGlideObject().getQuestion().getValue())+"</b>";
} else {
template.print("<br/><br/>" + current.variables.ldap.getGlideObject().getQuestion().getLabel() + ": <b>" +
current.variables.ldap.getGlideObject().getQuestion().getValue() +
"</b><br/> Additional details/Comments: <b>" +
current.variables.ldap_reason.getGlideObject().getQuestion().getValue())+"</b>";
}
*****
What im trying to do is this...
var VARIABLE = ['ldap','fsso']; //<<<will be all 12 names in the list<<<
for( var i = 0; i < myArray.length; i ++){
var qna = myArray [i];
if (current.variables.[VARIABLE] != 'Yes') {
template.print("<br/><br/>" + current.variables.[VARIABLE].getGlideObject().getQuestion().getLabel() + ": <b>" +
current.variables.[VARIABLE].getGlideObject().getQuestion().getValue() +
"</b><br/> Implemented at go-live?: <b>" +
current.variables.[VARIABLE]_go_live.getGlideObject().getQuestion().getValue() +
"</b><br/> Additional details/Comments: <b>" +
current.variables.[VARIABLE]_reason.getGlideObject().getQuestion().getValue())+"</b>";
} else {
template.print("<br/><br/>" + current.variables.[VARIABLE].getGlideObject().getQuestion().getLabel() + ": <b>" +
current.variables.[VARIABLE].getGlideObject().getQuestion().getValue() +
"</b><br/> Additional details/Comments: <b>" +
current.variables.[VARIABLE]_reason.getGlideObject().getQuestion().getValue())+"</b>";
}
break;
}
Anyone that can help me I would be greatly appreciative.
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-29-2021 10:17 AM
Spencer,
Sounds good; I think the issue is with resolving the dot walk and string combinations. I concatenated the string to hopefully solve this and attached a rough draft of the current script. First, we should ensure the variableName and variableVaule are correct before moving to this full script.
(function runMailScript(current, template, email, email_action, event) {
var list = 'ldap,fsso,data_at_rest,tls,endpoint,patch30,network,seperation,us_data,logging,risk_asmt,pentest';
var array = list.split(",");
for (var i = 0; i < array.length; i++) {
var VariableName = current.variables + "." + array[i];
gs.log('VariableName');
var VariableValue = VariableName.getValue();
gs.log('VariableValue')
if (VariableValue != 'Yes') {
template.print(VariableName + "." + getGlideObject().getQuestion().getLabel() + ": <b>" +
VariableName + "." + getGlideObject().getQuestion().getValue() +
"</b><br/> Implemented at go-live?: <b>" +
VariableName + "_go_live." + getGlideObject().getQuestion().getValue() +
"</b><br/> Additional details/Comments: <b>" +
VariableName + "_reason." + getGlideObject().getQuestion().getValue() + "</b>");
} else {
template.print("OR HERE<br/><br/>" + VariableName + "."+ getGlideObject().getQuestion().getLabel() + ": <b>" +
VariableName + "." + getGlideObject().getQuestion().getValue() +
"</b><br/> Additional details/Comments: <b>" +
VariableName + "_reason." + getGlideObject().getQuestion().getValue() + "</b>");
}
}
})(current, template, email, email_action, event);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-29-2021 10:36 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-29-2021 10:51 AM
yea - that doesn't work for me. but I can just 'system logs' > 'all' and im in same place
seems like it looped, but in the logs im not seeing a value from the list passed. I see 12 instances if VariableName and VariableValue.
I am going to run the last full code. (in case you haven't figured it out - im new to SNOW and things like this make me insane - smile)
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
19m ago
|
Information | VariableName | *** Script | Log Entry | system |
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system | |||
03-29 12:20:31 PM
21m ago
|
Information | VariableValue | *** Script | Log Entry | system |
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-29-2021 10:57 AM
ran new code and ..
03-29 12:53:34 PM
just now
|
Warning | org.mozilla.javascript.EcmaError: "getGlideObject" is not defined. Caused by error in Email Script: 'rp_mssa_email_loop' at line 49 46: var VariableValue = VariableName.getValue(); 47: gs.log('VariableValue'); 48: if (VariableValue != 'Yes') { ==> 49: template.print(VariableName + "." + getGlideObject().getQuestion().getLabel() + ": <b>" + 50: VariableName + "." + getGlideObject().getQuestion().getValue() + 51: "</b> Implemented at go-live?: <b>" + 52: VariableName + "_go_live." + getGlideObject().getQuestion().getValue() + |
Evaluator | Log Entry | system | ||
|
syslog.message=org.mozilla.javascript.EcmaError: "getGlideObject" is not defined.
Caused by error in Email Script: 'rp_mssa_email_loop' at line 49
46: var VariableValue = VariableName.getValue();
47: gs.log('VariableValue');
48: if (VariableValue != 'Yes') {
==> 49: template.print(VariableName + "." + getGlideObject().getQuestion().getLabel() + ": <b>" +
50: VariableName + "." + getGlideObject().getQuestion().getValue() +
51: "</b><br/> Implemented at go-live?: <b>" +
52: VariableName + "_go_live." + getGlideObject().getQuestion().getValue() +
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-29-2021 11:21 AM
so taking your lead... I stripped the script down further:
(function runMailScript(current, template, email, email_action, event) {
var list = 'ldap,fsso,data_at_rest,tls,endpoint,patch30,network,seperation,us_data,logging,risk_asmt,pentest';
var array = list.split(",");
for (var i = 0; i < array.length; i++) {
var VariableName = current.variables + "." + array[i];
template.print("<br / >>>>>>" + VariableName + "....." + array[i]);
var VariableValue = VariableName.getDisplayValue();
}
})(current, template, email, email_action, event);
That produced this: so... what this tells me is that the 'current.variables' is not prepending to the value from the array but that the array is populating [i].
so... getting closer. going to move current.variables into the string.
more to come. i think we are close!!!
>>>>>.ldap.....ldap
>>>>>.fsso.....fsso
>>>>>.data_at_rest.....data_at_rest
>>>>>.tls.....tls
>>>>>.endpoint.....endpoint
>>>>>.patch30.....patch30
>>>>>.network.....network
>>>>>.seperation.....seperation
>>>>>.us_data.....us_data
>>>>>.logging.....logging
>>>>>.risk_asmt.....risk_asmt
>>>>>.pentest.....pentest
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-29-2021 11:23 AM
Spencer;
Try this too:
(function runMailScript(current, template, email, email_action, event) {
var list = 'ldap,fsso,data_at_rest,tls,endpoint,patch30,network,seperation,us_data,logging,risk_asmt,pentest';
var array = list.split(",");
for (var i = 0; i < array.length; i++) {
var VariableName = current.variables + "." + array[i];
template.print("<br / >>>>>>" + VariableName + "....." + array[i]);
var VariableValue = VariableName + "." + getDisplayValue();
template.print("<br / >>>>>>" + VariableValue);
}
})(current, template, email, email_action, event);