go to post Robert Cemper · Feb 3 Did you use this kit from evaluation.intersystems.com/Eval/community-download ?=> IRISHealth_Community-2025.3.0.226.0-macos.tar.gz
go to post Robert Cemper · Jan 27 Primary / Secondary ?? Is this a shadowing configuration ? Shadowing applies to the databases IRIS.DAT, and Journal Files It doesn't shadow external "foreign" files like .../Temp/QWhoZAwFF3f9jQ.iostream
go to post Robert Cemper · Jan 20 If you use a custom class query %Library.Query type you may write your parameters to some^mtemp.Evgeny($i(^mtermp.Egeny)) = ..... direct from the Execute methodor ^mtemp.Evgeny($h) = .... For basic class query %SQL.Query () you may take the usual SQL approach Create a SQL method that always returns 1 (TRUE) You pass all your parameters into that method which does the ^mtemp trick and a QUIT 1 add to the WHERE clause . . . AND MYTRACE(par1,par2,---)=1 I refer to this a STATIC clause since it is only executed once by querybecause of no reference to any column values It was my approach to SQL debugging
go to post Robert Cemper · Jan 18 If your payload is received as a string set jsn={}.%FromJSON(payload) write jsn.%Get("boolprop") works without a persistent object
go to post Robert Cemper · Jan 18 Class MyPackage.MyClass Extends (%Persistent, %JSON.Adaptor) { Property JSONid As %Integer(%JSONFIELDNAME = "id"); Property strprop As %String; Property boolprop As %Boolean; } next this worked set jsn={ "id": 1, "strprop": "string", "boolprop": true } set sc=obj.%JSONImport(jsn) zw obj +----------------- general information --------------- | oref value: 2 | class name: MyPackage.MyClass | reference count: 1 +----------------- attribute values ------------------ | %Concurrency = 1 <Set> | JSONid = 1 | boolprop = 1 | strprop = "string" +-----------------------------------------------------
go to post Robert Cemper · Jan 15 Probably because extending ObjectScript Functions in %LANGF00.mac is so simple for ages ZLPAD(%txt,%len,%pad) quit $$lpad^%qarfunc(%txt,%len,%pad) ZRPAD(%txt,%len,%pad) quit $$rpad^%qarfunc(%txt,%len,%pad) and then USER>s txt="robert" USER>w $zrpad(txt,20,"*") robert************** USER>w $zlpad(txt,20,"*") **************robert
go to post Robert Cemper · Jan 6 $system.SQL.SetIdentityInsert(1) is deprecated and replaced by $system..SQL.Util.SetOption(IdentityInsert ,1) from class docs:>>>https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic.cls?LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.SQL.Util#METHOD_SetOption IdentityInsert - Set the IDENTITY_INSERT option for this process. IDENTITY_INSERTcontrols the ability of the user to specify a value for the IDENTITY property whensaving a new object, a value for the IDENTITY column, or an explicit ROWID value in an SQL INSERT. Notes Changing this configuration setting takes effect immediately and lasts for the duration of the process or until $SYSTEM.SQL.Util.SetOption("IsolationMode",pValue) is called again. This is a per-process setting. Sounds good to me
go to post Robert Cemper · Jan 6 Big THANKS!A great improvement!Especially useful for continuous repeating quality checks in OEX !
go to post Robert Cemper · Jan 5 to be clear: USEEXTENTSET is great for very large tables where the top (with the ID) is many storage levels away from data blocks.It's up to the dimension of your project if the eventual gain in speed pays off at all.for small tables as we know from our samples, I doubt.
go to post Robert Cemper · Jan 5 As I expected, it's one of the new storage features that cause the irritation /// Use hashed global names Parameter USEEXTENTSET = 1 from docu https://docs.intersystems.com/iris20253/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_storageglobals#GOBJ_storageglobals_hashedWhen you set USEEXTENTSET to 1, each index is also assigned to a separate global, instead of using a single index global with different first subscripts. Again, this is done for increased performance. Not explicitly mentioned - this also affects IDKEY ! And the example presented shows in detail that IdLocation and DataLocation are NOT identical anymore, as it used to be for decades
go to post Robert Cemper · Jan 5 You can get the required Global reference like this programmatically: ; get compiled class with your classname USER>set classname="oex.Dir" USER>set dic=##class(%Dictionary.CompiledClass).%OpenId(classname) ; get relationship to CompiledStorage USER>set stor=dic.Storages.GetAt(1) ; get name of the ID-Global USER>Write stor.IdLocation ^oex.DirD USER>
go to post Robert Cemper · Jan 4 I'm surprised that data is already imported via SQL but ^myclassD has no content.So take a look into the related generated class: Storage Default { <Data name="DirDefaultData"> <Value name="1"> <Value>%%CLASSNAME</Value> - - - - - - after all properties </Data> <DataLocation>^oex.DirD</DataLocation> <DefaultData>DirDefaultData</DefaultData> <ExtentSize>986</ExtentSize> <IdLocation>^oex.DirD</IdLocation> <IndexLocation>^oex.DirI</IndexLocation> <IdLocation> is the one to go forwith all the new Storage strategies (columnar, sharded, ... )This might be quite an exotic global name and rarely the traditional.
go to post Robert Cemper · Jan 3 I was right. My 7* review in OEX is still blocked by OEX censors, and your stars are suppressed.24hrs are promised for reviews in OEX.Just found it published now [2026-01-04 13:18:45 UTC]
go to post Robert Cemper · Jan 2 Using methods inside the class instead ofThe external MAC routine in the original code is an elegant and valid approach
go to post Robert Cemper · Dec 31, 2025 Happy New Year!Here is a draft version of ZPretty.mac for ISISI'm not sure if this is worth to be public at all. ZPretty ; make JSON readable #; input= JSON string Do(input) public { if $e(input)="{" do ##class(%JSON.Formatter).%New().Format(input) else write "<UNDEFINED>" quit "" } tst public ; set jsn={"Name":"Li,Robert K.","SSN":"672-92-9664","DOB":"1975-01-12","Home":{"Street":"986 Washington Blvd","City":"Boston","State":"PA","Zip":"95802"},"Office":{"Street":"6012 First Place","City":"Reston","State":"MT","Zip":"77739"},"Spouse":{"Name":"Avery,Zelda H.","SSN":"323-13-7437","DOB":"1943-03-27","Home":{"Street":"196 Main Drive","City":"Youngstown","State":"WY","Zip":"53229"},"Office":{"Street":"4056 Franklin Court","City":"Bensonhurst","State":"IA","Zip":"27688"},"FavoriteColors":["Black"],"Age":77},"Age":45,"Title":"Associate Marketing Manager","Salary":10421} quit jsn
go to post Robert Cemper · Dec 31, 2025 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 · Dec 30, 2025 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 · Dec 30, 2025 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