Are you looking to count nodes that have data? Will your global always be sequencially and numerically subscripted like your example?
- Log in to post comments
Are you looking to count nodes that have data? Will your global always be sequencially and numerically subscripted like your example?
At a high level you can find the feature differences between Cache, Ensemble and IRIS here:
https://www.intersystems.com/wp-content/uploads/2019/05/InterSystems_IR…
Hi Angie
How about using a VIEW instead?
Jenna
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?
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’.
I must not have had enough coffee today because it looks right to me.
:)
Interesting. I did get this to work but don't believe it's calling the %iFind.Utils:Highlight method. The reason I say this is that the method has extra parameters that don't correspond to the SQL %Fimd.Highlight SQL function.
Eduard,
I had seen that in the docs and have tried various flavors of it. I am using embedded SQL in a classmethod here to do my search. Here's the method
ClassMethod Search(pSessionId As %String, pSearchString As %String) As %Stream.GlobalCharacter
{
set tTags="<span style='background-color:yellow;'>"
&sql(
SELECT %iFind.Highlight(Text , :pSearchString , '' , :tTags) into :results
FROM SSA_OCR.TempSearchable)
quit results
}When I try to use this, I get:
SSA>s rs=##class(SSA.OCR.TempSearchable).Search(20, "Cough") quit results } ^ <UNDEFINED>zSearch+7^SSA.OCR.TempSearchable.1 *results SSA 2e1>w results W results ^ <UNDEFINED>^SSA.OCR.TempSearchable.1 *results SSA 2e1>w %objlasterror 0 à=<CLASS DOES NOT EXIST>zApplyTransformation+6^%iFind.Utils.1SSA*^zApplyTransformation+6^%iFind.Utils.1^15d^zPrepareTransformations+27^%iFind.Filer.Basic.1^1(d^zFileIndex+33^%iFind.Filer.Basic.1^1*d^zFileIndex+8^%iFind.Filer.Semantic.1^1*d^zFileIndex+5^%iFind.Filer.Analytic.1^1"d^zHighlight+17^%iFind.Utils.1^1,e^%0JmCm3l4tudf^SSA.OCR.TempSearchable.1^41e^%0JmBuncommitted+1^SSA.OCR.TempSearchable.1^1(d^zSearch+6^SSA.OCR.TempSearchable.1^1e^^^0 SSA 2e1>d $System.OBJ.DisplayError(%objlasterror) ERROR #5002: ObjectScript error: <CLASS DOES NOT EXIST>zApplyTransformation+6^%iFind.Utils.1 SSA 2e1>
Any thoughts on why this is erroring?
Unfortunately name <-> IP aren't always one to one
Ben
Check %SYSTEM.INetInfo. I think it probably contains a method to serve your purpose
The proper way to do this would be
if the %OnNew is going to error you should throw an exception- If you did this, the thrown exception should be caught by your try/catch block that calls the %New() method. Then in the catch block you can examine either %objlasterror or perhaps some specific error variable you create for your purposes.
Hi-
Even in a http POST, url variables are found in %request.Data. The content stream will contain the body of your post.
I'm not really familiar with this service but it looks like there's a format problem with some content field. Maybe Telephone
When studio opens a class, routine, or CSP file it takes out a lock. I've seen cases where if Studio crashes the lock doesn't get removed.
Task manager seems very appropriate here.
VA is doing some of this with their productions. Auto disabling services after one execution.
Install on local workstation and create a connection that points to the cloud server
Here's some docs on how to use many "legacy" command line utilities including %RCHAMGE
http://www.intersystems.com/priordocexcerpts/prgroutinechui-41.pdf
If you want to q global search and replace you can use the %RCHANGE utility from a terminal session.
I'm going to allow someone more familiar with Docker answer this. It's clearly a permissions issue biut is it a issue inside or outside the container? I don't know
What user is IRIS running a
Do a ps -ef and make sure the user listed for all of the Iris processes has write permissions to the directory.
Do you have anyone that has worked with ISC technology before or Linux? If not I would suggest perhaps getting someone with a little experience here.
This is a permission issue. The ^ZUSET routine needs to be able to write to the database and cant because it was mounted read-only because of the IRIS.lck issue. There is a permission issue at the linux level on the directory where your database is stored. Need to make sure it's set properly so that the user which IRIS runs under has write permissions to the directory.
Then you can unmount and remount the database and it should solve your problem.
You could do one of a couple things.
1.Export all the ROUTINES to a file using %RO and then use a linux tool or something else to make the global replace
or
2.Simply use the %RCHANGE utility at the IRIS command prompt to do the global routine change. I certainly would recommend verifying each change.
Ignacio
This is a good reference document to follow.
Now you need to create a Namespace that uses your RPMS database for routines and globals.
Refer to the doc link I sent earlier on Creating Namespaces.
Did you add a new local Database under Local Databases?