go to post Robert Cemper · May 11 I prepared a pull request for standard Docker supporthttps://github.com/r-cemper/PR_First-Vector-Search-on-IRIS
go to post Robert Cemper · Apr 30 #1) in %SYS find the sessions by this Stored Procedure: #2 Next based on the SessionId I can open the Object %SYS>set sess=##class(%CSP.Session).%OpenId("kTkyVXwgxw") %SYS>set pid=sess.ProcessId %SYS>if $l(pid) set tSC=$$DeleteSession^%SYS.cspServer(pid) The last row was found in Class %CSP.UI.Portal.CSPSessions ClassMethod EndSessionAttention. Not every CSP Session has also a pid !
go to post Robert Cemper · Apr 18 That's a typical case,where I write my personal ZZanyname function into %ZLANGF00.macto hide the details
go to post Robert Cemper · Apr 18 which version ? I tried and failed.CLASS DOES NOT EXIST>%FromOref+8^%Library.DynamicObject.1 *%Library.EntityProjectionUtilSAMPLES>w $zvIRIS for Windows (x86-64) 2024.3 (Build 217U) Thu Nov 14 2024 17:59:58 EST
go to post Robert Cemper · Apr 14 Just to confirm naming in COS GlobalName is everything between Caret ^ and left Parenthesis (GlobalSubscript is everything within left and right Parenthesis ( )
go to post Robert Cemper · Apr 14 Did you mean to map this Global ? ^DepartmentMasterData("^E2C8.D9IS.*") ????? or just ^E2C8.D9IS.* ? with all subscripts
go to post Robert Cemper · Apr 8 OK To Stream needs 1 line 2 statements ClassMethod personsidGET(messageRequest As dc.Sample.v3rest.requests.personsidGET) As %Stream.Object { set stream=##class(%Stream.TmpCharacter).%New(),sc=##class(dc.Sample.Person).%OpenId(messageRequest.pathid).%JSONExportToStream(.stream) return stream } To String is shorter (just 1 statement) as you don't need to initialize %String) ClassMethod personsidGET(messageRequest As dc.Sample.v3rest.requests.personsidGET) As %String do ##class(dc.Sample.Person).%OpenId(messageRequest.pathid).%JSONExportToString(.string) return string {
go to post Robert Cemper · Apr 7 not just Sample.Person but also Sample.Address,or whatever serial class you refer to require %JSON Adaptor.then set person=##class(Sample.Person).%OpenId(3) >set sc=person.%JSONExportToString(.Jperson) set zjson={}.%FromJSON(Jperson) ZWRITE Jperson="{"LIMIT":103,"Name":"O'Rielly,Xavier E.","SSN":"331-77-5308","DOB":"1957-05-26","Home":{"Street":"8757 Elm Place","City":"Miami","State":"FL","Zip":"92027"},"Office":{"Street":"413 First Drive","City":"Miami","State":"NH","Zip":"83830"},"Age":67,"RowVer":0}" person=<OBJECT REFERENCE>[2@Sample.Person] sc=1 zjson=<OBJECT REFERENCE>[13@%Library.DynamicObject] and there is your dynamic object
go to post Robert Cemper · Apr 1 there is no description of how to communicate with Butlerat the moment it hangs around like a lazy chap
go to post Robert Cemper · Mar 10 Congratulations to the participants and winners.Special BIG THANKS to the organizers and administrators of this contest. 💐🏵🌷🌻🌹I'm really proud to see how this community has grown and raised in quality.
go to post Robert Cemper · Mar 3 do ^ADMIN indicates that you run a classic straight ObjectScript program.while WRITE just has 1 direction to act READ is bi-directional.READ can send some text as prompt and waits for reply.The only bi-directinal device I know of are network connections as TCP, UDP, TRM,FTP,..The common feature is : they communicate out of your IRIS instance.Inside IRIS you may do a redirection e.g to some TCP port like |TCP|7000but then this port is blocked. No other process can touch |TCP|7000.So you need an external port wrapper to some other port. e.g. |TCP|7100 Then you can handle this bi-directional communication either by sequenceor you have a list of prompts and the expected replies or similar. The sequence of operation could then be: have a STARTER that runs in background initiate the external wrapper run do ^ADMIN start the FOREGROUND connect to external wrapper send prompts to terminal get replies from external file send it back to port which forwards it to ^ADMIN hanging in background The most tricky point is to handle situations where the communicationif it is not just 1 Prompt :=> 1 Answer butmultiple Prompts or WRITEs :=>1 Answer or 1 Prompt :=> multiple Answers.So I'd suggest instead of an IRIS internal solution rather look for anexternal Terminal program to consume and apply your answer script.
go to post Robert Cemper · Feb 26 check if your lines start with the labels or if you have some leading <blank> or <tab>if so it is interpreted as function call instead of a label
go to post Robert Cemper · Feb 25 slightly shorter using Julian Date USER>set hours=-3 write $zdt($zdth(hours*3600+$zdt($h,-2),-2)) Sorry, I just couldn't resist
go to post Robert Cemper · Feb 25 From Ensemble.inc: #define TRACE(%arg) $$$catTRACE("user",%arg) #define sysTRACE(%arg) $$$catTRACE("system",%arg) #define catTRACE(%cat,%arg) Do:$$$DoTrace ##class(Ens.Util.Trace).WriteTrace(%cat,$$$CurrentClass,$$$CurrentMethod,%arg) #; #define DoTrace $S($D($$$EnsJobLocal("DoTrace")):$$$EnsJobLocal("DoTrace"),1:##class(Ens.Util.Trace).DoTrace()) #; #define EnsJobLocal %Ensemble #; . . . . Class Ens.Util.Trace [ Abstract, ClassType = "", ProcedureBlock, System = 4 ] { ClassMethod DoTrace() { Set tJobConfigName=$$$JobConfigName Quit $G($$$ConfigTrace(tJobConfigName),0)||(""'=$G($$$JobTraceDevice))||$$$IsTerminalDevice($IO) }
go to post Robert Cemper · Feb 21 Never tried it for long time , but $system.CSP.Shell() might be a starting point$system.CSP.* seems to have some more useful methods.
go to post Robert Cemper · Feb 20 I followed this rules with (1,1) as baseStarting any other point than (1,1) simply shortens the spiral.now I reached 259 I really dislike the result as it is composed so unfriendlyjust to save same bytes that nobody asked for.
go to post Robert Cemper · Feb 19 I see a general problem in interpretation of the "spiral" so I took some drawing for aquadratíc and a rectangular matrix. depending on the starting point you have to take a pre-designed direction if you hit the diagonal you have to turn right you have to invalidate the row/column you just were on proceeding to invalid points is not allowed. start a the central point is an immediate termination as it has no direction to proceed The diagonal came to my mind thinking how to NOT increase the imaginative radius of the spiral.The related subscripts for the diagonale points of an n*m are found as (-n/2+x,-m/2+y) The pink subscripts are obviously (n/2,m/2) and might be just virtual. As subscripts start with 1 and first piece position is also 1some more adjustment of coordinates is required I haven't written any useful line yet.
go to post Robert Cemper · Feb 17 DC search; Improve selectivity of Articles and Questions by using TAGShttps://ideas.intersystems.com/ideas/DPI-I-630