Julius has not published any posts yet.

The general syntax for calling routines from another namespace is:

do label^|namesapce|routine


- you can omit the label and

- namespace is either the name of the namespace (like set namesapce="USER") or the path to the database (preceded by two carets), where the routine resides.

I see right now, Config.MapGlobals accesses the ^SYS global via the path to the database (take a look at the Storage section) - so in theory, you  can  call all classmethods from the above class as:

do zClassmethodname^|"%SYS"|Config.MapGlobals.1(args...)

merely, I do NOT recommend to do this (the cass is in deployed mode, so we do not know, what the code really does and (instance)methods are private, so you can't call them from outside).

First, the correct (or better) way for the above code snipet were:

zn "%SYS"
do ##class(Config.MapGlobals).Delete(...)

second, one can call routines (and (class)methodes are compiled to rotines) from another namespace by using extended syntax, but in that case such a routine uses the globals (if the routine does a global access) from the CALLING namespace. In Your case this won't work because the Config.MapGlobals uses globals which resides in %SYS namespace and not in the namesspace you are in.

Sure, you can check some key points:
- the size of your PDF-file (in bytes) must be the same as the size of the context.strDocument
- the size of the encoded stream must be 1.33 times of the unencoded stream (see below)
- the second parameter of the Base64Encode() method must be set to 1, else you get a stream with line breaks!

set docSize = context.strDocument.Size
set encSize = context.strDocumentEncoded.Size

if -docSize#3+docSize*4/3-encSize { write "Base64 stream has wrong size" }

Your "old" version sent a string, the new version should send a stream - is there everything OK? Just double check all the recent changes.

Julius has not followed anybody yet.
Global Masters badges: