Hi Ken

In ObjectScript an abstract class simply means that you can not instantiate it.   You MUST subclass it and instantiate the subclass.

The concept you understand is supported in Objectscript but it requires that you declare the method itself as abstract.

The two (abstract class keyword and abstract method keyword) work independently of each other.

Does this explain what you are seeing better?

Robert

Obviously the class keywords and source could diverge and become incompatible.

That said, take a look at the header in the export file.  Should be as simple as changing IRIS to cache

Hi Yakov

First, I wouldn't implement this kind of logic in a business service.  I would have a business service that immediately passes a message to a business operation and then perform these functions there (or possibly in business operations).   Services should not be long-running which building and querying a staging table seems like it might take some time.

My stream definition is

Property Streams As list Of %CSP.CharacterStream;
 

I used the %CSP.CharacterStream because that is what was being created in the %request object and I figured it would be simpler to just add that stream to my collection.  

I understand why this would be stored in CacheStream as it it created by the CSP engine.   I think my solution is to use a %Stream.Character and actually copy the contents from the %CSP.CharacterStream rather than storing itself.

I think I may have it.  Basically I. Base64.encoding the file on the client side and will need to decide it on the server.  

I need to do a little more testing and debugging in the morning and will post the solution.

No.    There is another page that is the target of the HTTPRequest POST which takes the file data passed in request and stores the file into the database.   Problem is that the binary files aren't  received properly

If it is desirable to have the customized setting heading with distinct separate words (like in the HL7FTPService) in the production configuration view then the global CacheMsg should be updated in the related namespace (e.g. Ensemble) where the production will be running as it is shown below for the RemoteArchivePath:

  Ensemble>set ^CacheMsg("EnsColumns","en","RemoteArchivePath")="Remote Archive Path"

After that change the RemoteArchivePath setting name is shown in the view as ‘Remote Archive Path’.