go to post Robert Cemper · Mar 18, 2021 deep needs to be in the PublicList for @ {Argument Indirection}
go to post Robert Cemper · Mar 17, 2021 using SQL you can compare the last change between definition and compilation of classesa negative difference shows where recompilation is required.I used Posix-Timeformat for an easier compare SELECT def.ID, cmp.TimeChanged compiled, def.TimeChanged defined, to_char($piece(cmp.TimeChanged,',',1),'J')-to_char($piece(def.TimeChanged,',',1),'J') diff FROM %Dictionary.ClassDefinition def left outer join %Dictionary.CompiledClass cmp on def.ID=cmp.ID where NOT def.name %startswith '%' order by 4
go to post Robert Cemper · Mar 17, 2021 In SMP / Explorer you can getclass by name and its last date under routines the object by related name - - - -- - - - In addition in Studio, a class that is saved but not compiledis marked with + after the name while a changed class that is neither saved nor compiledis marked by * I have no idea if VSCode or Atelier have similar features.
go to post Robert Cemper · Mar 17, 2021 This list can be grouped into 3.5 categories: Installation and Configuration happens typically once and will not change under normal operation InterSystems IRIS license key Configuration Parameter File Databases Namespace interoperability settings Code management and change happens rarely and mostly not during full operation. the dependency of server environment might be required (mixed OS e.g. WIN - AIX) Custom code in %SYS namespace CSP, JS, and CSS files External linked libraries and custom shared libraries Almost Runtime changes Security settings (including users, roles, resources, services, and applications) Runtime changes Task Manager tasks Only the last 2 are critical for successful mirror failover and require dynamic handlingand the last requires also non-stop monitoring as it is not directly triggered by SysAdmin.
go to post Robert Cemper · Mar 17, 2021 Just any Select. e.g. SELECT 17+4 as BlackJack, NOW() as TimeToWinno table requiredor SELECT Top 5 * FROM %TSQL_sys.types
go to post Robert Cemper · Mar 17, 2021 You are right. I mixed it up with some other ALL ["CompileAll" ?]
go to post Robert Cemper · Mar 16, 2021 2 remarks: mapping your class to pseudo_namespace %ALL makes it available to all other namespaces except %SYS to keep your options for a bitmap valid you may take the approach shown in my article of the Adopted Bitmap The default of a storage global is ^Pck.ClassnameD .. and so on. But it can also be ^Pck.ClassnameD(%InterfaceName,$namespace) and the integer ID follows as you need. You just have to take care that %InterfaceName has some useful content. Which shouldn't be a problem. I used %name to bypass all issues with ProcedureBlock.
go to post Robert Cemper · Mar 16, 2021 OK: version is updated now.<Description> . . . is in moduel .xmlBut not visible with zpm "search -d -r" .e.g. https://github.com/rcemper/fast-JSON-formatting-IRIS-ZPM https://openexchange.intersystems.com/package/fast-JSON-formatting-in-IRIS?tab=history and my other 35+ packages
go to post Robert Cemper · Mar 16, 2021 explicitly PUSHING "publish release" doesn't show any reaction.and no change for zmp "search -d -r"What's the delay to be expected?
go to post Robert Cemper · Mar 15, 2021 There is a trick that may work for some pieces but requires very careful setup:- create a new database that can be part of the MIRROR- then you can map the components that are INDEPENDENT of the local instance to this DB Be warned:Identification and Isolation of these pieces can be quite tricky and sometimes also impossibleIn addition, this can make troubleshooting and maintenance (release update?) rather complicatedand you should do an in-depth evaluation if the extra effort values the achieved result.
go to post Robert Cemper · Mar 15, 2021 There is no explicit type Byte . In IRIS it's just an %Integer <256.The equivalent to a byte[] array is a String of data type %Binary To access the Byte values of the "array" use $A(your_binstring, position) Attention: position starts with 1
go to post Robert Cemper · Mar 14, 2021 Thanks for the inspiration for this articleUsing ClassQueries() as Tables
go to post Robert Cemper · Mar 12, 2021 It is not meant to replace one of the queries:do #1 or #2 or do both by UNION
go to post Robert Cemper · Mar 12, 2021 maybe a misunderstanding:I call both Class Queries as Tables and join them with UNIONwithout modifying the existing class queries
go to post Robert Cemper · Mar 12, 2021 Using Class_Queries like a table the SQL Statement may look similar to this example: select 'Q1' as Qry ,ID,name,SSN from sample.SP_sample_by_name() where name %startswith 'A' UNIONselect 'Q2','--',SSN,name from sample.employee_byname() where name %startswith 'K' with this result:
go to post Robert Cemper · Mar 11, 2021 DisplayToLogical converts external input to internal format.if you have an object everything is internal already.what would you expect to convert? DisplayToLogical is just not involved in that process.You may eventually look for LogicalToStorage - [a rare case]
go to post Robert Cemper · Mar 10, 2021 You are correct. I can confirm it.I was part of the process when DeepSee V1 was prepared.
go to post Robert Cemper · Mar 10, 2021 I'm full with you.And if you aren't under time pressure you get a close look at things that have become obsolete over time but never were removed.