Hello John,

I'm trying to get more information about a similar $ZF issue, and running the caché instance as a Windows user rather than Local SYSTEM.  I have this link from IS to help me out: 



But I was hoping to get a little bit more info from the link you sent out; unfortunately the link gives me a "missing" error.  Do you think you can find that link again?


This is my issue: after we upgraded from 2014 to 2016, the ability to use call out (such as w $zf(-1,"dir *.*") ) is gone.  IS recommended using the cinstall command, as noted above, but it's not working.  I'm asking IS about it now... We run our instances under a particular user, not as local system.

I can update this thread with the solution.


Laura Cavanaugh

Hi Eduard,

Interesting hack, and a good point.  There's enough going back and forth between namespaces, importing new code, and running new methods in the newly created namespace already, so I'd prefer to keep my manifest simple.  If I find that it needs to be done in, say, 5 places, I'll just say it needs to be the one value ("ABC") and I can create a copy of the installer if it needs to be a new value ("XYZ").  If it needs to be a new value, then we're probably moving toward replacing the old value anyway.



Yan, yes, this looks like it's working.  The OnCreateResultSet method is called, but not the OnExecuteResultSet.  Thanks!


Hi Timothy,

Yes, indeed, thanks.  I already have a SessionEvents class set up for all my web applications involved, so I stuck in this method:

ClassMethod OnLogin() As %Status
if ^ZPMGSYSTEM("%DOWNFLAG")=1 quit $$$ERROR($$$GeneralError,"Logins are currently disabled")
quit 1

This caused an actual login that got around our flag (via special testing, in this case) to get a response of 

Not Found

The requested URL /Works/PMG.Works.Home.cls was not found on this server.

Is that the expected behavior?

So, I would say this works.  Unfortunately, it also removes my backdoor -- it keeps out everyone!  I guess I could add a little backdoor into this method as well; a screen door, if you will, on my back door.

I did not know that - but I tried taking it out, but my test global is still populated with method calls to OnCreateResultSet and OnExecuteResultSet methods.  The table itself if hidden at first.  In fact, there are multiple tablesPanes, and they are all getting called upon page load, even though the tablePane group is hidden.  

I'm going to play around with pInfo.QueryExecuted; and there's a runflag set up, which I can see why it was set up now.


I often forget to mention that we are on 2014.  Thanks - at least I can tell him we can't do it but maybe in a future release we can change the IS logo.



I can't believe how much I look forward to these discussions.  Unfortunately, there is no EnsembleLogo* anywhere in the InterSystems directory.  

It almost looks like it's simple text, made to look like a logo using CSS. This is from the page source:


<div class="portalLogoBox">
 <div class="portalLogo" title="Powered by Zen">Ensemble</div>
 <div class="portalLogoSub">by InterSystems</div>


The class portalLogoBox must do all that CSS/html stuff to make it look cool.  I was wondering if I can change the text from Ensemble to something else.

 If the user is in the DeepSee Analyzer, it will say DeepSee by InterSystems instead, but with similar CSS modifications.

I figured out why  he wants to do this; we have a few "portal" users who have accss to all of the clients' namespaces.  For a demo, they will go into the DeepSee UserPortal, then exit to the management portal to switch namespaces, then go back in to the DeepSee user portal.  THe DeepSee user portal has settings where you can change the logo that is displayed (what are those classes?  I need to be able to change them programmatically rather than manually 50 times!) but when the portal users go back to the management portal, our company logo is lost; instead the lovely Ensemble by InterSystems (Powered by Zen) is there.  I personally think IS should get the credit, but my boss is wondering if we can change it for the purposes of these demos.


If not, that's OK; but now I'm simply curious.




Wow, that works in 2014 too!  So, there must be something with my $lb parameter, you're right.  

Note what happens here, without the ... .  What is that?  Can't find it in the documentation.  Nevermind, I found it: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...

quit $classmethod($this, "Sum", .args)

ClassMethod Sum(n... As %Integer)

zw n

But... does it work for a SQL query?  It's fine in COS, but what about a %ResultSet.Execute() call?  Should I change it to %SQL.Statement?

Well, it all works if I force feed the params list.  If I do get it, I'll let you know.  Thanks for all the help!