27544 - no subject - On March 15th I reported having issues w

On March 15th I reported having issues with a report and a having a definition (script) that wasn't being displayed if the "Include data from sub-processes" was set to Yes. I just found that the issue is being caused by the "isnull()" and sub-process set to "yes". This script is always returning "not null".

=if(isnull(pv!variablename),"null","not null")

As a work around I put the sub-process to "No" and added my sub-process name in the Report Context along with the main process. Then my isnull() is working....

OriginalPostID-27544

  Discussion posts and replies are publicly visible

  • When you enable the "Show data from sub-process" option, the data returned by the variable is an array. For instance, if you have pv!myColumnA on both, the parent and the child, the values from both the child and the parent for this pv, are returned as an array, for instance, valueFromParent;valueFromChild. Therefore, if there are no values, the returned result cannot be null; it's an empty list, therefore, when enabling this option the right check would be =if(length(pv!variablename)<1,"null","not null")
  • I used the byreference() for my variables, would it still be considered as an array?
  • That's correct, the byreference() won't make any difference. Reports will always create an array when you have this option enabled in an effort of concentrating the values from the parent and subprocesses from the pv's with the same name. If they all are null then what you end up having is a list with ={null,null} which means the isnull() function will return false (this is actually not null but a list of nulls which is different). In this case length() of this example will return 0 (because length ignores nulls) while count will report 2