Actually, it wasn't quite working. When I reopened the class it couldn't access the file property as it was looking at the default stream location rather than the one it was filed with, so thought it was empty!  It doesn't appear to save the directory along with the filename in the D global. So I'm having to do a workaround when I open the object I set a variable to the HTMLZIPDoc.Filename, piece out just the filename part then put the directory and a slash on the front and put it back into HTMLZIPDoc.Filename and that seems to work. If anyone has a better solution let me know. thanks.

Hi 

Thanks that did work when I took out the %OnOpen. What I was trying to do was copy from an existing %Stream.FileCharacter; property to a new  Stream.FileCharacterGzip property and I was also trying to set the location of the FileCharacter property too, but in doing that it lost the link the existing file, even though it was the same location. So I've just had to add code to change the location of the Stream.FileCharacterGzip just before I copy it from the existing property.  I did realise you could set the FileName but wanted it to just generate the random filename part as it does when you set the LOCATION, so wasn't sure how that would work when using that. 

Does your suggestion just switch namespace? 

We will be receiving events to a central SOAP service for a number of 'sites' on the same machine in different namespaces. They share a common database, but some globals are not mapped to the central database namespace so as to separate out some settings and they also need to take responsibility for resolving data issues for the patients belonging to their area.  

The SOAP service will upload events automatically for individual patients, but each 'site' only wishes to see events related to their patients and manually resolve 'rejections' for their area.  I think in explaining the case, I have thought of another way to do it. I think I will save the object centrally and just save a namespace specific global which points to ones for their area, then I can also create an index by 'site'.  I think that should do it.  

thanks for your suggestions!

Probably not the same sort of token and probably nothing to do with your problem... but to create a bearer token for the interface I recently wrote I had to do:

s authstring=$TR($SYSTEM.Encryption.Base64Encode(headJSONstring,1),"=")_"."_$TR($SYSTEM.Encryption.Base64Encode(paylJSONstring,1),"=")_"."

s request.Authorization=" Bearer "_authstring

I had set the flag so that the Base64Encode didn't add CR/LF and strip padded ='s from the end and also the other end want a space before the word Bearer as well as after. I don't know if that's standard.

I also only used a standard Ens.BusinessOperation with an EnsLib.HTTP.OutboundAdapter to send my REST requests.