go to post Robert Cemper · Nov 14 While you are in terminal $IO="|TRM|:|10468" or similar from Studio it is "|TCP|1972|11096" with 1972 as Superserver portIt's one of the differences
go to post Robert Cemper · Nov 14 I fully support your proposal.I published >700 reviews for the actual 1156 visible packages.And there are several challenges to be addressed with any new structure. The reviews with stars focus on an actual individual snapshot. Similar to the code or example, they age and may become invalid. Ongoing maintenance by creators can't be expected So a clear separation between actual and maintained packages and those just kept for historical reference could be useful. The decision for maintenance must be left to the creator Example: If some essential function in IRIS is dropped without replacement with no acceptable workaround, I'd move it to the archive I just had to unpublish some packages for this reason Another category could be packages where ISC takes responsibility. This isn't a solution, but a step in between to improve the actual situationI wonder how many of the 1156 packages might move to the archive without maintenance There is no voting on the numbers added
go to post Robert Cemper · Nov 13 Chrome could be a beast on cachingFor other cases, I had to clear its cache from settings several timesThe latest AI stuff even modified my text during typing.I had to fight to lock it in chains
go to post Robert Cemper · Nov 9 Hi @Evgeny Shvarov You inspired me to extend the standard Dockerfile sequence by this line RUN --mount=type=bind,src=.,dst=. \ iris start IRIS && \ iris session IRIS < zpm.script && \ iris session IRIS < iris.script && \ iris stop IRIS quietly and zpm.script is basically the version-independent one-liner sliced to readable pieces zn "%SYS" ;; from onezpm hang 3 write !,"from onezpm",! set r=##class(%Net.HttpRequest).%New() set r.Server="pm.community.intersystems.com" set r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" do r.Get("/packages/zpm/latest/installer") do $system.OBJ.LoadStream(r.HttpResponse.Data,"c") ZPM "repo -r -n registry -url https://pm.community.intersystems.com/ -user """" -pass """"" zpm "enable -community" hang 2 Write !,"ZPM ready",! halt This makes me independent from the limits of intersystemsdc/.....and I can use images from containers.intersystems.com/intersystems/****-communitywith a minimal invasive approach without touching any other part of the repo
go to post Robert Cemper · Nov 9 In most cases, I've seen working beforethe real message was "community license expired."You see it only in the builder log. ORusing docker compose --progress plain build from command line.workaround:use instead. intersystemsds/iris-community or intersystemsdc/irishealth-community :latest is always the default
go to post Robert Cemper · Nov 9 Yeah!If there is a reference of how to add -ml- functionality to available intersystemsds/iris-community and intersystemsdc/irishealth-community The other possibility could be to change to NON-intersystemsdc versionsand add the single-line installation for ZPM. Not my favorite.
go to post Robert Cemper · Nov 9 That means that the -ml- versions are requested in Dockerfile or docker-compose.yml.It is not immediately visible that ML is required and used.For a few packages, it was pretty obvious thatit came in by cut&paste from previous packages..
go to post Robert Cemper · Nov 5 technically correct but not really a practical solutionfor 50+ affected packages in OEX
go to post Robert Cemper · Nov 4 Thank you @Dmitry Maslennikov !You confirmed my initial suspicion.And the missing intersystemsdc version (including preinstalled ZPM) affects a rather broad range of packages in OEX.
go to post Robert Cemper · Oct 29 1) you miss a final condition in $SELECT(). It's the 1:$SELECT(^GlFSL("Debug")>0:Entry^HS.Local.VA.Util.Log(%arr,,"D"),1:QUIT)2) QUIT doesn't return a value but <UNDEFINED> error if you don't have a SET QUIT="" somwhere before or use $GET()this may fit$SELECT(^GlFSL("Debug")>0:Entry^HS.Local.VA.Util.Log(%arr,,"D"),1:$GET(QUIT)) Command QUIT is just appropriate with $CASE(...)https://docs.intersystems.com/iris20252/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fselect#RCOS_fselect_select_and_case
go to post Robert Cemper · Oct 29 TestFor.inc #define MyLoop(%count) set x="" for i=1:1:%count set x=$order(^%SYS("JOURNAL",x),-1) write x,! in Test class: ClassMethod Mike() { $$$MyLoop(7) Write ?5,$get(@$ZR," *** "),! } Resulting in PURGED *** PREFIX MAXSIZE 1073741824 LIFESPAN *** LAST 1^C:\InterSystems\IRIS242\mgr\journal\20251029.003 EXPSIZE 0 CURRENT 1^C:\InterSystems\IRIS242\mgr\journal\20251029.003
go to post Robert Cemper · Oct 29 Thanks for the correction.I had something similar in mind, but didn't find the related doc!
go to post Robert Cemper · Oct 28 So this means that the IF is not applicable in your context.What commands are before the $$$TestIf(3) and after ? I think of some WRITE $$$TestIf(3) ..... Or you may try to explicitly write the macro-generated code to see any hidden issueI'm running a bit out of fantas,y what may go on
go to post Robert Cemper · Oct 28 Strange. It should generate IF (3>0) {QUIT 5} and accept it.Could you pls simplify the case for testing to #define TestIf(%arr) if %arr>0 QUIT 5 Not yet Halloween, but this looks spooky:For me, all variants work: My versions:InterSystems Studio Client 2024.1.0 Build 262Server IRIS for Windows (x86-64) 2024.3 (Build 217U)
go to post Robert Cemper · Oct 28 Now it's clear instead of (%arr > 0) you simply should write (%arr>0) The ObjectScript compiler is interpreting the blank after %arr as an argument terminator
go to post Robert Cemper · Oct 28 Another challenge is to enable WebSocket protocol on your webserverI just had the "pleasure" to do this for IIS 👺It's not a default
go to post Robert Cemper · Oct 28 (error on compiling within a class) like: #define TestIf(%arr) if (%arr > 0) { QUIT 5 } ; no final dot. #define is an element of ObjectScriptso it has to be embedded in a [Class]Method and it is only available within that method It can't be flying free inside a class definition. If you need your $$$TestIf(...) in more than 1 method, you can depositit in some TestIf.INC and include it BEFORE the Class statement !!Then it is visible to ALL methods. Attention: You can INCLUDE just 1 single *.INC in a class definition.If you need more than 1, you have to cascade it with #include in the first *.inc Include TestIf Class A.PERSON1 Extends %Library.Persistent { Parameter GlobalName = "^.........!" ;; /// ....... ClassMethod michael(param) as %Integer { $$$TestIf(param) ......... quit $$$OK }
go to post Robert Cemper · Oct 28 The AI example is misleading anyhow, as it just does a $O loop without any action to be done *.inc is typically kind of text generation code during compilation. What is your expectation for using the *.inc ? %in and %gn are just text replacement parameters:%gn is used as globalname, %in as first level subscript
go to post Robert Cemper · Oct 27 If you just see pre you may have a problem with your &html< ........> sequencethat translates to write ........,! including all quoting requirements, while <pre> any text </pre> is just straight HTML and #(variable)# is a CSP instruction to display the actual content of a variableand avoid any extra spaces
go to post Robert Cemper · Oct 25 this may help to get the plain %request object: k ^SPOOL s %io=$I O 2 u 2 ZW %request c 2 u %io or whatever object you need to trace