go to post John Murray · Aug 25, 2016 I'm subscribed to the article: Are there different levels of subscription? Specifically, you asked if I am "subscribed to changes in content".
go to post John Murray · Aug 25, 2016 The "could not attach to target" message makes me wonder if you're having problems using Studio to debug CSP pages. In that case you might be interested in trying the Serenji debugger from George James Software as an alternative. It offers a different way of debugging CSP pages.John MurrayGeorge James Software
go to post John Murray · Jul 28, 2016 That's what I suspect. And if correct then it's about time the UI and documentation caught up.
go to post John Murray · Jul 25, 2016 As an addendum I'd like to point out that since Wine is available for OS X you can now also run Serenji on OS X. See https://wiki.winehq.org/MacOSX for how to get Wine going on this platform.I have edited the original post to reflect this.John
go to post John Murray · Jul 21, 2016 If you want a complete, closely integrated source control solution that's simple to add to your Caché / Ensemble environment, please take a look at our product Deltanji. This is ready for the approaching "new world" of Atelier, but equally happy working with older versions right back to 2009.1.John MurraySenior Product EngineerGeorge James Software
go to post John Murray · Jul 14, 2016 Not answering your questions, but are you aware of the SetFlags and SetQualifiers methods of %SYSTEM.OBJ ? These can be used to set namespace-specific defaults as well as systemwide defaults. Maybe they'll let you ensure "u" behaviour for certain namespaces even if you remove the "u" flag from Studio's settings.
go to post John Murray · Jul 13, 2016 By "not available" Eduard means that InterSystems doesn't publish the source code (i.e. the INT or MAC). Only the OBJ is available, which is what executes when the code you are looking at runs.
go to post John Murray · Jun 30, 2016 I don't need it, but my experience is that InterSystems consistently maintains a very high standard of technical and professional competence among its staff, so knowing that the author of a post or a response is a member of ISC staff may be useful to readers.Additionally, an ISC person may find it helpful in the event that someone whose name they do not recognize as being a colleague posts something that might benefit from follow-up through internal channels.Think of it as equivalent to the way in which Global Summit badges usually give a discreet indication that the wearer is a company employee.
go to post John Murray · Jun 29, 2016 Joel, I suggest you also add the Atelier tag to this posting. At the moment it's only tagged "Git" and I only found it by accident.
go to post John Murray · Jun 23, 2016 Glad to hear that System Defaults are working for them. My main gripe with that mechanism is how cumbersome Portal's UI is for making the setting in the right place. Added to that, it's just too easy for someone to adjust a setting directly, filing the new setting into the production class where it (a) overrides the System Default and (b) propagates when the class gets transferred.
go to post John Murray · Jun 22, 2016 Out of interest, are all other settings of the production's configuration items identical between DEV and PROD? Or are you using System Defaults successfully to ensure that, say, hostname/port of outbound target system is different in DEV versus in PROD?Many Ensemble sites that use our Deltanji source control tool to propagate code from DEV to PROD choose to exclude the production class itself from that workflow. Some maintain multiple variants of the class, e.g. one for DEV and another for PROD, versioning each variant only within its own environment, and using a diff tool such as Beyond Compare (which Deltanji integrates with) to propagate applicable production changes from DEV to PROD.
go to post John Murray · Jun 21, 2016 Or provided you can read and understand ObjectScript you could set up our Serenji debugger and then replay a message, stepping through the INT code.
go to post John Murray · Jun 21, 2016 Their client app is a GUI built in MSM-Workstation, correct? And presumably this app is talking to Caché using the InterSystems VisM.ocx, right?Assuming VisM.ocx dispatches a double-precision value using the correct datatype, maybe MSM-Workstation's COM handling code doesn't deal with that datatype correctly.Can they test VisM.ocx in a different client to see if it works there when retrieving their double-precision property?
go to post John Murray · Jun 21, 2016 Maybe modify the simplified rule you showed above, so it includes only the first of the 3 constraints. Then repeat with only the second. Then with only the third. Does this pinpoint only one constraint failing? Or do all three fail independently?What Ensemble version are you using?
go to post John Murray · Jun 14, 2016 As well as the suggestion of using a process-private global, Tim flags up an important point here. The $ORDER technique only enumerates public local variables.
go to post John Murray · Jun 14, 2016 Here's a sneaky way to use a NEWable and SETtable system variable to cache your "safe" variable name in: new $etrap set $etrap=";"_..GetNewVarName() ; semicolon prefix makes the $ETRAP into a valid line of code (i.e. a comment) set @$extract($etrap,2,*)="" set @$extract($etrap,2,*)=$order(@@$extract($etrap,2,*)) You need more than one "safe" variable? Use subscripts of the one you've grabbed: set @$extract($etrap,2,*)@(1)="Some more info I need to store"
go to post John Murray · Jun 14, 2016 I use Serenji. I can start interactive application debugging direct from the Terminal prompt. For a CSP or Zen based web app I can launch my pages in the browser and immediately start stepping through code, or running to soft breakpoints (no changes needed in my source). I can attach to background processes. I can set conditional breaks (e.g. break when variable ABC is set to value 123) or delayed breaks (e.g. stop the tenth time I get to this point). And with the Ensemble edition I can replay sessions command-by-command in a uniquely powerful way.Disclosure: I created this tool in 1998 and continue to maintain and support it, so you should probably look to others for a more objective opinion of its value. Or try it free for 30 days.
go to post John Murray · Jun 13, 2016 For many years now we at George James Software have offered a free set of command line extensions that are implemented this way.See also this DC article for some discussion about whether it might be wiser to start your custom commands etc with ZZ rather than only Z.
go to post John Murray · Jun 9, 2016 I think your code is vulnerable to a <MAXSTRING> error in the case of records with a large number of long values. How about this instead, which might be a bit faster too? set crc = 0 for i=1:1:in { set crc = $zcrc($char(i#256)_in(i), 7, crc) } return crc Prefixing the input string to each $zcrc call with a character derived from the argument position number is intended to prevent us getting an unchanged CRC in the event that a substring has been removed from the beginning of one argument and appended to the previous argument (or removed from the end of one argument and prepended to the next argument) The #256 is probably overkill because (a) you might be on a Unicode instance of Caché and (b) it might not even be possible to pass more than 255 arguments to the method (I haven't investigated).
go to post John Murray · Jun 7, 2016 Deltanji Solo Edition would be an straightforward way of adding source control to the SAMPLES namespace, and it's free.