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
go to post Robert Cemper · Oct 25 From Class Docs.: Somewhere in the CSP page. This is just ~20% of the content
go to post Robert Cemper · Oct 22 I can just confirm your experience. Must be a bug in irisession on WIN.My workaround for termination: HALT followed by blankThen an empty line following. Otherwise, the last character is repeated endlessly until all memory is consumed.Neither mouse nor keyboard reacts. I had to reboot several times