go to post John Murray · Nov 6, 2019 Release notes for 2019.1.1 and 2018.1.3 list these issues among the fixes. Announcements are: https://community.intersystems.com/post/intersystems-iris-and-iris-healt... https://community.intersystems.com/post/health-connect-201911-now-available https://community.intersystems.com/post/cach%C3%A9-and-ensemble-201813-r...
go to post John Murray · Nov 6, 2019 It's confirmed that I will be attending. The organizers have generously added me to the early evening "Beer & Bytes" demo sessions on Tuesday and Wednesday. I will demonstrate editing and debugging ObjectScript with Visual Studio Code using Serenji .
go to post John Murray · Oct 22, 2019 Kyle, I guess you missed it when I told you this 2.5 years ago here https://community.intersystems.com/post/where-am-i-adding-extra-informat...
go to post John Murray · Oct 1, 2019 The Serenji extension from George James Software works all the way back to Cache 2008.1 (that's not a typo).
go to post John Murray · Sep 20, 2019 A bit more about my session "Falling in love with Visual Studio Code": According to the 2019 StackOverflow Developer Survey, Visual Studio Code is number 1. More than 50% of those surveyed said they use it. Why is it so popular? Why do I like it? Why do you?
go to post John Murray · Aug 27, 2019 To use the debug features of Serenji you will need a keyfile issued by us at George James Software. Free evaluation keyfiles are available on request, normally lasting 30 days. On the Extensions section of VSCode, select the Serenji extension and follow the link in the "Installation" section to get full instructions.I'm guessing you opened a CLS file that implements your API, which I assume is a REST one. For debugging we use InterSystems' native debug support, which operates on the INT code that your class compiles into. Depending on how you compile your class, that INT code might not have been retained. After all, it is "intermediate" code from which the runtime OBJ code gets generated. The documentation I pointed you to above explains how to keep INT code.With Serenji VSCode's F9 key (Toggle Breakpoint) currently only operates when you are in an INT file. It's on our roadmap to add support for the setting of breakpoints in CLS source.Also on our roadmap is the addition of a mechanism to let you debug the web gateway's server-side process that services your Postman request. Meanwhile you may be able to use Serenji's 'Existing Process' debug configuration to attach to the right server-side process, but it's challenging to pick the right one. Alternatively, use the 'ClassMethod' debug configuration and call directly the server-side classmethod that implements the method in your REST API.
go to post John Murray · Jul 12, 2019 Incidentally, did the VMS directory you ran your ComplexDelete("MEMBER_EXTRACT.*;*") on contain any files other than MEMBER_EXTRACT.* ones? Because if it did, my hunch is they all had their latest version deleted by that call because of how the semicolon gets treated as a delimiter of wildcard patterns.
go to post John Murray · Jul 12, 2019 The ComplexDelete classmethod uses the FileSet query: ClassMethod ComplexDelete(filename As %String, Output return As %Integer) As %Integer { Set resultset=##class(%ResultSet).%New("%File:FileSet"),return=0 Do resultset.Execute(..GetDirectory(filename),..GetFilename(filename)) Set exit=1 For { Quit:'resultset.Next() Set file=resultset.Data("Name") Set r=$$$FileDeleteRet(file) If r,exit Set exit=0,return=r } Quit exit } The problem is, that query treats ";" as a delimiter separating multiple search patterns. You could replicate the method but specify another delimiter (e.g. comma) when you Execute the query to get the resultset (untested code): Do resultset.Execute(..GetDirectory(filename),..GetFilename(filename),,,",") Maybe someday ISC will enhance ComplexDelete to take an optional delimiter argument.
go to post John Murray · Jul 12, 2019 Bear in mind that local variable arrays can hold orefs but PPGs cannot: SAMPLES>w $zv Cache for Windows (x86-32) 2017.2.2 (Build 865U) Mon Jun 25 2018 11:10:00 EDT SAMPLES> SAMPLES>s oP=##class(Sample.Person).%OpenId(1) SAMPLES>w oP.Name Gallant,Yan N. SAMPLES> SAMPLES>s LocalArray(1)=oP SAMPLES>s ^||PPG(1)=oP SAMPLES>w LocalArray(1).Name Gallant,Yan N. SAMPLES>w ^||PPG(1).Name W ^||PPG(1).Name ^ <INVALID OREF> SAMPLES>w $isobject(^||PPG(1)) 0 SAMPLES>w ^||PPG(1) 1@Sample.Person SAMPLES> SAMPLES>w LocalArray(1) 1@Sample.Person SAMPLES>w $isobject(LocalArray(1)) 1 SAMPLES>
go to post John Murray · Jul 10, 2019 After a couple of maintenance releases this week we're now up to version 3.0.5. The recent changes:Improve performance when opening documents from namespaces containing a large number of items.Switch to Explorer view after 'Add Folder to Workspace' command.Make 'Never' option of license message work as designed.Check keyfile on initial connect.Key request email body lacked linebreaks.Add a clipboard-copying alternative to the option that attempts to compose a key request email.Add client DN to message when certificate check fails.Avoid affecting MRU records of a connected Deltanji.Support binary web app files.Cater for text files without terminator on final line.Malformed serverAddress setting prevented Serenji from connecting to Deltanji.Skip web apps that have a dispatch class defined.Web app files in subdirectories more than one level deep were not listing.When not using Cache authentication, userid in new document template was wrong.Web app files written into an unmanaged namespace via the pkg:// notation were being set readonly.Clear previous VSCode Problems entries when fixing CSP compile errors.Fix unreliable behaviour when ephemeral ports are being used.
go to post John Murray · Jun 12, 2019 Maybe the lack of line indent in Marc's post confused you. Try this: %Split(List,Array,del) ;;liberating a VB function S del=$G(del,"|") Do ##class(%ListOfDataTypes).BuildValueArray($lfs(List,del),.Array) Q 1
go to post John Murray · Jun 6, 2019 Maybe this is what the OP is means by 'gitflow'https://nvie.com/posts/a-successful-git-branching-model/@Fred Gustafsson is this what you guys use?
go to post John Murray · Jun 5, 2019 Wanna see the current results before you vote? Just log out of DC. Then view the poll. When you're ready to cast your vote, log in again
go to post John Murray · May 29, 2019 If you want your Ensemble development team to work collaboratively in shared namespaces on a common server Git probably isn't a good choice for source control. Are you committed to using Git? Have you looked at our Deltanji product? It's integrated with Studio, and with Atelier, and also with our Serenji extension for Visual Studio Code. It's able to handle code deployment as well as versioning. It also supports scenarios where developers work in their own namespaces (whether on a shared server or on their local machines).
go to post John Murray · May 22, 2019 I agree, but unfortunately Portal's edit forms for config items always apply settings into the production class (the XData block). Even worse, Portal ignores the source control status of the production class, so you can't prevent these changes. Portal users have to go elsewhere to add/edit System Defaults values. It's far from obvious, nor is it easy. And because they don't have to (i.e. the users can just make the edit in the Portal panel and save it) nobody does. We raised all this years ago, but so far it's remained unaddressed See also https://community.intersystems.com/post/system-default-settings-versus-p...
go to post John Murray · May 21, 2019 Folder within VSCode? Or folder on your local disk, that you could browse using Windows Explorer or macOS Finder in order to see a set of textfiles containing classes, routines etc?
go to post John Murray · May 21, 2019 Please clarify what you are referring to when you say "client-side code".
go to post John Murray · May 21, 2019 I've checked that it compile, is synchronized server-client and vice versa.Is this referring to when you're using the Serenji extension? If so, understand that there is no client-side copy of your code (so no synchronization involved). Serenji works directly on your server-side code.It's good. Only I'm missing the intellisenseYes, Serenji doesn't yet do a good enough job of providing Intellisense. It's on our roadmap.