go to post Robert Cemper · Oct 4, 2018 You hit the point %Boolean s an excellent example it can be TRUE, FALSe or NULLin Caché terms: 1, 0, ""Your example ^CODE("TNO","BIO",291,"AKI")) is partially misleading in that sense that a global subscript can NEVER be ""while the content of $LB() can be $LB(1,2,"",4) or $lb(1,2,,4) here you find your "undefined" again,similar to NULL in SQL (which is a different story)
go to post Robert Cemper · Oct 4, 2018 there is a major difference between 1) and 2)1) is also true if you have SET ^CODE("TNO","BIO",291,"AKI"))=""
go to post Robert Cemper · Oct 3, 2018 You could also use a Command Pipe (docs) and read directly from your OS using "../bin ccontrol list" or similarYou just do the usual OPEN + USE and READ whatever comes back.
go to post Robert Cemper · Oct 3, 2018 Check performance log and activity on your ESX or whatever your VM is running on. It looks like a performance problem of the virtual disk.
go to post Robert Cemper · Oct 3, 2018 this information is stored in ^|"%SYS"|SYS("Security","ApplicationsD")you could extract it by MERGE ^mySAVE=^|"%SYS"|SYS("Security","ApplicationsD") and then do any export of the global
go to post Robert Cemper · Oct 1, 2018 Thanks!One headache less in the discussion about the "right" way to write code.+a tiny piece for "creative freedom".
go to post Robert Cemper · Sep 28, 2018 Procedureblock =1 means ALL local variables except call parameters and %variables move to stackand return when you return from your method (=procedure)see Summary on Local Variable Scoping for more this memory operation is not free but nothing to get a headache upon
go to post Robert Cemper · Sep 28, 2018 Of course, if your utility classes are all ABSTRACT it is pure code. As any .MAC, just easier to read.OREF is just a special data type (object pointer) and not better or worse than any other variable.I 'd guess variable scoping and procedure block has much more (microscopic) influence on performance.My personal preference is to have only code tightly related to stored date in "object"-classes.Anything else outside that is not only related to this class.
go to post Robert Cemper · Sep 23, 2018 As IClassID seems to be numeric, did you try to force a pure numeric comparison ?eg. if +lClassID '= +rs.GetData(5) {or if (lClassID - rs.GetData(5)) {
go to post Robert Cemper · Sep 21, 2018 I use * X for linuX aiX uniX solaris and similar real OS.on Win* you just have to click on start caché in the cube
go to post Robert Cemper · Sep 21, 2018 BTW you can see the Content of Journal also from System Mgmt Portal
go to post Robert Cemper · Sep 21, 2018 In namespace %SYS there is the utility JRNDUMP that you may take as templatefrom terminal run DO ^JRNDUMP and see the contentIt is 800 lines hardcore COS.I wouldn't recommend it as you might not get what you are looking for if you aren't a very experienced COS system developer.
go to post Robert Cemper · Sep 21, 2018 Sorry Kevin,I concentrated on CPIPE.my code was Written for a FOR p=1:1:254 loop to find unused IP addresses in a specific subnet.in your case, ping might be something like set ping= "ipconfig"
go to post Robert Cemper · Sep 21, 2018 if it's grey your local instance on Windows is not started.There is no cube on *X as far as I know
go to post Robert Cemper · Sep 21, 2018 if installed without security it is sys or SYS depending on version
go to post Robert Cemper · Sep 20, 2018 $system.SQL.DAYOFWEEK(dateexp) is probably easier to usedateexp An expression that is a logical %Library.Date value, %Library.TimeStamp, %Library.PosixTime, or an $Horolog value.The returned values represent these days: 1 - Sunday, 2 - Monday, 3 - Tuesday, 4 - Wednesday, 5 - Thursday, 6 - Friday, 7 - SaturdayThe Caché default is that Sunday is the first day of the week.
go to post Robert Cemper · Sep 20, 2018 Journal is definitely a valuable source.BUT: It documents Global changes. It doesn't know about objects nor rows in tables.
go to post Robert Cemper · Sep 20, 2018 KevinYou can also use a Command Pipe (docs) and read directly from your OS using IPconfig (on Windows) or ifconfig (in Linux/ Unix)You just do the usual OPEN + USE and READ whatever comes back.As an example a handcrafted ping routinezping ; k empty s pipe="|CPIPE|" close pipe s ping="ping 10.10.12."_p open pipe:(ping):10 w $t," ",p,! for { use pipe read line use 0 set empty=$s($l(line):0,1:$i(empty)) q:empty>3 write:empty<2 line,! }