- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2017 07:44 AM
I have a script which I know returns true but the field remains hidden. Why?
Here is the script:
Solved! Go to Solution.
- Labels:
-
Security Operations

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2017 09:46 AM
yes answer variable should be set to true or false.And comming to passing current parameter is not required. Did you copy my script as is and tested it?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2017 08:46 AM
Can you post the code instead of the screenshot so that I can check the syntax errors
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2017 08:52 AM
answer=getAnswer();
function getAnswer() {
if(gs.hasRole('admin'))
return true;
gs.info('assigned to'+current.getValue('assigned_to'));
if (gs.hasRole('x_64719_letters.'+current.getValue('assigned_to')))
return true;
if (typeof current.getValue('choppers') !== "undefined" && current.getValue('choppers')!== null)
{
var ii, ss,llen,chopperrights;
chopperrights=current.getValue('choppers').trim().split(',');
llen =chopperrights.length;
for (ii=0; ii<llen; ++ii) {
if (ii in chopperrights)
{
//gs.info("chopperrights[ii]"+chopperrights[ii]);
if (gs.hasRole('x_64719_letters.'+chopperrights[ii]))
{ gs.info('chopper role exists');
return true;}
} }
}
if (typeof current.getValue('initial_letter_reviewers') !== "undefined" && current.getValue('initial_letter_reviewers')!== null)
{
var iii, sss, initial_letter_reviewers=current.getValue('initial_letter_reviewers').trim().split(','), lllen =initial_letter_reviewers.length;
for (iii=0; iii<lllen; ++iii) {
if (iii in initial_letter_reviewers) {
if (gs.hasRole('x_64719_letters.'+initial_letter_reviewers[iii]))
{ gs.info('ir role exists');
return true;}
}
}
}
if (typeof current.getValue('reviewers') !== "undefined" && current.getValue('reviewers')!== null)
{
var iiii, ssss, reviewers=current.getValue('reviewers').trim().split(','), llllen =reviewers.length;
for (iiii=0; iiii<llllen; ++iiii) {
if (iiii in reviewers) {
if (gs.hasRole('x_64719_letters.'+reviewers[iiii]))
{ gs.info('r role exists');
return true;} }
}
}
if (typeof current.getValue('ntk_display_value') !== "undefined" && current.getValue('ntk_display_value')!== null)
{
var i, s, ntkroles= current.getValue('ntk_display_value').trim().split(','), len =ntkroles.length;
for (i=0; i<len; ++i)
{
if (i in ntkroles) {
if (gs.hasRole(ntkroles[i]))
{gs.info('ntk role exists');
return true;
}
}
}
}
else
return true;
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2017 09:33 AM
Copy this script and one more question, you are not returning false anywhere. I only see return true even for the else condition.
answer=getAnswer();
function getAnswer() {
if(gs.hasRole('admin'))
return true;
gs.info('assigned to'+current.getValue('assigned_to'));
if (gs.hasRole('x_64719_letters.'+current.getValue('assigned_to')))
return true;
if (typeof current.getValue('choppers') != "undefined" && current.getValue('choppers')!= null)
{
var ii, ss,llen,chopperrights;
chopperrights=current.getValue('choppers').toString().trim().split(',');
llen =chopperrights.length;
for (ii=0; ii<llen; ii++) {
//gs.info("chopperrights[ii]"+chopperrights[ii]);
if (gs.hasRole('x_64719_letters.'+chopperrights[ii].toString()))
{ gs.info('chopper role exists');
return true;
}
}
}
if (typeof current.getValue('initial_letter_reviewers') != "undefined" && current.getValue('initial_letter_reviewers')!= null)
{
var iii, sss,lllen;
var initial_letter_reviewers= current.getValue('initial_letter_reviewers').toString().trim().split(',');
lllen =initial_letter_reviewers.length;
for (iii=0; iii<lllen; iii++) {
if (gs.hasRole('x_64719_letters.'+initial_letter_reviewers[iii].toString()))
{ gs.info('ir role exists');
return true;
}
}
}
if (typeof current.getValue('reviewers') != "undefined" && current.getValue('reviewers')!= null)
{
var iiii, ssss,llllen ;
var reviewers=
current.getValue('reviewers').toString().trim().split(',');
llllen =reviewers.length;
for (iiii=0; iiii<llllen; iiii++) {
if (gs.hasRole('x_64719_letters.'+reviewers[iiii].toString()))
{ gs.info('r role exists');
return true;} }
}
if (typeof current.getValue('ntk_display_value') != "undefined" && current.getValue('ntk_display_value')!= null)
{
var i, s,len;
var ntkroles= current.getValue('ntk_display_value').toString().trim().split(',');
len =ntkroles.length;
for (i=0; i<len; ++i)
{
if (gs.hasRole(ntkroles[i]))
{gs.info('ntk role exists');
return true;
}
}
}
else
return true;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2017 09:39 AM
Actually, yes you are right for returning false but I solved the first problem. It looks like the getAnswer function needs to pass a pointer to the current document although that still doesn't seem to fix the ACL:
answer=getAnswer(current);
function getAnswer(current) {
if(gs.hasRole('admin'))
return true;
gs.info('assigned to'+current.getValue('assigned_to'));
if (gs.hasRole('x_64719_letters.'+current.getValue('assigned_to')))
return true;
if (typeof current.getValue('initial_letter_reviewers') !== "undefined" && current.getValue('initial_letter_reviewers')!== null)
{
var iii, sss, initial_letter_reviewers=current.getValue('initial_letter_reviewers').trim().split(','), lllen =initial_letter_reviewers.length;
for (iii=0; iii<lllen; ++iii) {
if (iii in initial_letter_reviewers) {
if (gs.hasRole('x_64719_letters.'+initial_letter_reviewers[iii]))
{ gs.info('ir role exists');
return true;}
}
}
}
if (typeof current.getValue('choppers') !== "undefined" && current.getValue('choppers')!== null)
{
var ii, ss,llen,chopperrights;
chopperrights=current.getValue('choppers').trim().split(',');
llen =chopperrights.length;
for (ii=0; ii<llen; ++ii) {
if (ii in chopperrights)
{
//gs.info("chopperrights[ii]"+chopperrights[ii]);
if (gs.hasRole('x_64719_letters.'+chopperrights[ii]))
{ gs.info('chopper role exists');
return true;}
} }
}
if (typeof current.getValue('reviewers') !== "undefined" && current.getValue('reviewers')!== null)
{
var iiii, ssss, reviewers=current.getValue('reviewers').trim().split(','), llllen =reviewers.length;
for (iiii=0; iiii<llllen; ++iiii) {
if (iiii in reviewers) {
if (gs.hasRole('x_64719_letters.'+reviewers[iiii]))
{ gs.info('r role exists');
return true;} }
}
}
if (typeof current.getValue('ntk_display_value') !== "undefined" && current.getValue('ntk_display_value')!== null)
{
var i, s, ntkroles= current.getValue('ntk_display_value').trim().split(','), len =ntkroles.length;
for (i=0; i<len; ++i)
{
if (i in ntkroles) {
if (gs.hasRole(ntkroles[i]))
{gs.info('ntk role exists');
return true;
}
}
}
}
else
return false;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-04-2017 09:42 AM
Really stupid question but do I return false or true to hide a field?