go to post Robert Cemper · 7 hr ago I run iris.script at docker start in this demo : UDPsee docker-compose.yml.It's for 2 containers. In your case half of it would be enough.
go to post Robert Cemper · 20 hr ago In IRiS, instead of ZPretty, you may use this ugly official approach jsn(jsn) if $e(jsn)="{" do class(%JSON.Formatter).%New().Format(jsn) else write "<UNDEFINED>" quit ZPretty was initially designed for Caché, Ensemble, ...
go to post Robert Cemper · 20 hr ago ZPretty is not in OEX anymore for various version conflictsBut in IPM you may find this workaround left over. user>zpm "install pretty-json-upd" For this and other incompatibilities introduced by version changes therepo on GitHub is broken and not available until several fixes.Workaround for the left over version is ZPM once again USER>zpm "install objectscript-native-api" Studio-2024.1.5.649.0-win.msi is still available from WRC download for contracted customersIt works perfectly for me on IRIS for Windows (x86-64) 2025.1
go to post Robert Cemper · Dec 29 My guess youw workaroud ERROR 2 cause ERROR 1 ERROR 2:Your import of the code is just WRONG. Wherever you may have it copied it from jsn(jsn) if $e(jsn)="{" write $$Do^ZPretty(jsn) else write "<UNDEFINED>" quit } jsn(jsn) is a Label with a parameter But if your COPY/ TEXT manipulator doesn't understand ObjectScript and inserts a BLANK before jsn(jsn) , it's no longer a label anymore but just nonsens therefore : ERROR: ONAPI.demo.cls(Menu+35) #1026: Invalid command : 'jsn(jsn)' :Offset:7 [Menu+34^ONAPI.demo.1] The compiler is right ! Your code is brokenERROR 1:now as the label jsn doesn'1 exist anymore, this MUST be an ERROR if pop do jsn(..iris.ClassMethodValue("ONAPI.Person","JSON",pop)) ERROR: ONAPI.demo.cls(Menu+9) #8: <NOLINE> [Menu+8^ONAPI.demo.1] TEXT: if pop do jsn(..iris.ClassMethodValue("ONAPI.Person","JSON",pop)) The compiler is right again! Your code is broken. The label jsn() is destroyedIn Intersystems ObjectScript blanks and tabs are not just for illustrationor visualization but are an essential part of the language with some functionality.Somehow like exact indenting in Python, just ~60 years longer In my Studio such typing errors are flagged red immediately during typing.So I wonder where the obviously broken source came from and how you worked on it
go to post Robert Cemper · Dec 29 Merci beaucoup @Thibault Odor d'avoir traduit mon article avec autant d'élégance.👍More on the subject Code Scanner & Code Scanner - enhanced
go to post Robert Cemper · Dec 28 What you describe is a Basic Class Query. Slightly advanced to embedded SQLBUT inside a Custom Class Query https://docs.intersystems.com/supplychain20251/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_queries_userqueries You have Exec, and Fetch methods. They can mask whatever you like as long as you feed the formal requirements.Define the following class methods in the same class: querynameExecute — This method must perform any one-time setup. querynameFetch — This method must return a row of the result set; each subsequent call returns the next row. querynameClose — This method must perform any cleanup operations. Where queryname is the name of the query. Each of these methods accepts an argument (qHandle), which is passed by reference. You can use this argument to pass information among these methods. So you can mask your DELETE (implemented by embedded SQL) or any other wayIt's not the standard way, but nothing prevents you as long as the formalism is served.
go to post Robert Cemper · Dec 21 You may reduce the number of XDBC connects by 50%#1)Create an SQL function for the update CREATE FUNCTION done_func(integer,varchar) RETURNS integer AS 'update my_postgres_table set status=$2 where id=$1' LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT RETURN 1 ; #2)run your SELECT, adding the function in your WHERE clause which is always TRUE select * from my_postgres_table limit 10000 Where 1 = done_Func(id,'S') You should check the exact syntax for PostgreSQLI just composed it guided byhttps://www.postgresql.org/docs/current/sql-createfunction.html
go to post Robert Cemper · Dec 20 @Evgeny Shvarov you pointed me to the correct placeDid some checks using the most native approach. set sc=$system.OBJ.Import(file, . . . . . Removing the Export Tag from the 2nd line in the 'hidden XML' names DFI <Export generator="IRIS" version="26" zv="IRIS for Windows (x86-64) 2024.3 (Build 217U)" ts="2025-09-21 16:53:05"> ends with unknown flle type !!!After re-insert of that Export Tag all import works perfect might be necessary to teach VScode to add that tag
go to post Robert Cemper · Dec 19 Interesting observations. My export came directly out of STUDIO.InterSystems Studio Client 2024.1.0 Build 262Server IRIS for Windows (x86-64) 2025.1 (Build 230.2U)Simple right click + export ..... (+ Windows Directory).Just straight, no flags, no anything extra
go to post Robert Cemper · Dec 19 to me *.PKG is imported by $system.OBJ.LoadDir(...) whaever the file name isone file contained a %ZX.* class.That one required manual compilation as it didn't match the ZX.* packa real class, no DFI
go to post Robert Cemper · Dec 18 Updated init + load + build of cubes2025....latest had a minor surprise in init
go to post Robert Cemper · Dec 17 here is it - work in progress ZPM load DFIAnalytics need manual enable, cube to build still manuallyBUT:all DFI are all there (checked with Studio) and working immedeately
go to post Robert Cemper · Dec 17 Just can confirm that it works for me with a correct structure .../src /DFI /first.DFI /next.DFI /andSoOn.DFI And in module.xml the relevant part looks like this <Packaging>module</Packaging> <SourcesRoot>src</SourcesRoot> <Resource Name="DFI.PKG"/> BINGO
go to post Robert Cemper · Dec 16 No idea about zpm.Just a guess: if not listed or in a PKG it won't be touchedBUT this loads and compiles it set tSC=$system.OBJ.Import(fileref,"ck")
go to post Robert Cemper · Dec 12 1️⃣ When you joined the Developer Community and how you first discovered it.I joined in 2017, and it was by accident.Looking for help to work around a problem caused by "academic ignorance". Some linguistic university experts for German language up in sky, far from reality, decided: "S_sharp" ß (a lowercase only character for hundreds of years) will be also an uppercase character from now on.No one cared about the impact to sort orders, code conversions, pattern match. regular expressions, ...My cry for help:German collation of ß in upper and lower caseIn DC I got help and advice within a few hours on how to escapeuntil a new release or bug fix might have an official solution.Exploring DC was another big surprise for me.It was rather similar to a proposal I had done in 2005and I was massively pushed back by service managers at that time.DC covered and extended my basic intentionsI fell in love immediately and still feel like a proud grandfatherobserving his successful growing grandchildren.2️⃣ A meaningful moment or story from your personal journey here.It was somewhat longer than a moment, though just a single trigger.The challenge was to start working with Docker in some OEX packageBefore that, I was rather resistant to publishing complex examples.The effort to describe a complex setup and not having controlover implementation was rather significant.With Docker I had a reproducible environment and no traces or remainingjunk after termination.Another extra was learning to produce videos of my examples for contests.I never did it before and still don't have any private videos on Youtube.3️⃣ An article, question, or discussion you consider especially valuableThere are two recent articles that moved me most:The Wait Is Over: Welcome GoLang Support for InterSystems IRIS + followersandReducing the Footprint of the Docker image of IRIS Community EditionIt's 2 times the same authoring engineer, and what he presents matches mypersonal understanding of what quality software system engineering is like:- precise and detailed analysis- detailed and fully through tested code before release- 2 top-class projects My personal sorrow:There are groups that may force out the results just because of the"NOT INVENTED HERE" mentality in some areas.I speak based on personal experience after being attacked followinga backport of %JSON classes to Caché some years ago.