John Murray · Mar 8, 2016 go to post

Certainly looks strange that you can browse namespaces on the Server Explorer tab but the new project wizard says it can't find any. I don't see your symptoms on mine, but I'm connecting to a Windows instance of 2016.2. My Atelier "About" box shows version 1.0.107. Is yours that version too?

John Murray · Mar 9, 2016 go to post

Existing users of our Deltanji source code management tool, which runs natively inside Caché / Ensemble / HealthShare, may want to start using Atelier without having first to re-engineer their source control. I foresee a need for an Atelier user to be able to interact with a Deltanji dialog and then trigger a server-side action.

John Murray · Mar 9, 2016 go to post

Nicki, did you paste the wrong thing as your second image? Under the title "studio:" I'm seeing an Atelier "Create a New Project" dialog screenshot.

John Murray · Mar 9, 2016 go to post

That worked. I guess the Developer Community application ought to do a better job with content expiration or something in order to make sure we see the correct images.

John Murray · Mar 9, 2016 go to post

I can confirm that the 64bit Windows Ensemble download link is working for me.

John Murray · Mar 9, 2016 go to post

Tiago,

Do you mean that when you are writing output from the server (e.g. from a source control class) you want to be able to control the colour of that text? I have never discovered a way of doing that, but let's see if anyone at ISC knows of an undocumented feature there.

John Murray · Mar 10, 2016 go to post

Was that repository URL pre-populated in your Atelier?

Maybe the response Dmitry gave to this post I created in the Atelier community will help you.

John Murray · Mar 10, 2016 go to post

Thanks for sharing this detailed information Jamie. I noticed that the headers have links to a wiki on GitHub, but they're unreachable to me and presumably to other non-ISC folk.

John Murray · Mar 10, 2016 go to post

Hermain, I think yours predates the point where ISC implemented the ability to update Atelier from within Atelier. I suggest you download the latest kit and install that. Thereafter you ought to be able to update from within. But bear in mind I'm not an ISC person, so my advice might be incorrect.

John Murray · Mar 11, 2016 go to post

One caveat about transferring globals between namespaces / instances using XML format is that by default when you load the XML into the target namespace the global(s) in your XML file will be pre-killed. In other words, it's a "replace" operation rather than a "merge" one. This may be exactly what you want in many situations, but if you've been used to using other utilities to export and import globals then it's different.

To override this behaviour, add the "/mergeglobal=1" qualifier during your import, for example as the second argument (qspec) to $system.OBJ.Load(), which is of course the Load classmethod of %SYSTEM.OBJ.

See more qualifier documentation here.

John Murray · Mar 11, 2016 go to post

Thanks for putting so much time and effort into this Mike.

Would you be willing to offer the examples etc as PDF downloads as an alternative to .docx files?

Maybe also worth deleting the "Sample Page" item from your site.

John Murray · Mar 11, 2016 go to post

What version of Ensemble / HealthShare is running its webserver at chft-eprtiedev.xthis.nhs.uk:57772 ?

John Murray · Mar 11, 2016 go to post

That's interesting to know. It means that my experiment can become:

USER>s oResult=##class(%Library.File).FileSetFunc("c:\s\","*.txt")
 
USER>while oResult.%Next() {w !,oResult.%Get("Name")}

...

And now static code analysis that detects classmethod references can spot the use of the secret FileSetFunc method within the class that implements the query I'm using.

John Murray · Mar 14, 2016 go to post

AFAIK only the owner of the class (set using the Owner keyword on the class, defaulting to _SYSTEM) has automatic rights to invoke all of the SQL stored procedures that the class implements (as classmethods with the SqlProc keyword). Anyone else who needs to be able to invoke them will need the right granting to them, either directly or via a role.

John Murray · Mar 14, 2016 go to post

I think a "GRANT EXECUTE ON SCHEMA xyz TO roleA, roleB" should be sufficient to give users with roleA or roleB the ability to run any stored procedure defined by any class in your xyz package, even classes / procedures that you haven't yet written.

John Murray · Mar 14, 2016 go to post

If your READ from wrappercomp raises an error (e.g. end of file) you don't have anything in place to catch this error, CLOSE wrappercomp and USE olddev once more. I suggest you add some code (for example a TRY/CATCH block) to do this, and also to tell you what the error was. That information might help you find out why the wrappercomp pipe didn't work as you expected.

John Murray · Mar 15, 2016 go to post

Thanks for the feedback Ben.

I'm familiar with System Defaults, and we actively try and promote their use when we talk to Ensemble users about this issue. However, the way that Portal defaults to filing configuration item settings into the class means that it's all too easy to do this by accident. In contrast, to add/edit a System Defaults type of setting requires significantly more effort within the UI. Surely a better job could be done here?

I expect Prodlog 94592 already has the name of George James Software all over it, as we've been lobbying on this issue since the very beginning. While we wait, we've devised some techniques that allow Deltanji to leverage the OnConfigChange classmethod that a 2012.1+ production class can be given. You can read about them here.

John

John Murray · Mar 15, 2016 go to post

Hmm, I intended the above to be a comment on Jon's question, not an answer. Not sure how it ended up as an "Answer".

John Murray · Mar 15, 2016 go to post

At analysis time you can choose which packages to include. The webapp whose time-based graphical output I showed above doesn't let you filter a whole-namespace analysis to view only the stats for a single package. But the Structure101g Studio tool gives a lot more power. For example, here's a drilldown into the top-level packages:

Overall bar length is code size. The red portion is the XS of the package.

John Murray · Mar 16, 2016 go to post

I'm not advocating making your live environment the first one you upgrade. Upgrade a QA environment initially, and do enough testing there to be confident that your app works.

John Murray · Mar 16, 2016 go to post

I take your point about keeping up with the technology curve, but it's no good the next release of your app using all the whizzy new features of the latest Caché version if you're not able to deploy it to your customers until they can be coaxed to upgrade. Yes, you can use the new features as a carrot to entice them to upgrade, but meanwhile you probably have support commitments to them that mean occasionally patching the app release they're currently using.

John Murray · Mar 16, 2016 go to post

That's certainly a useful tip. I wonder if it would have helped in a situation we assisted an Ensemble site with last year. They'd upgraded their DEV and QA environments from 2013.1 to 2015.1 but their LIVE was still on 2013.1. Then they amended an HL7 schema in DEV, exported it, imported it to QA, verified it worked, and finally loaded it to LIVE, where it broke the production.

The cause turned out to be a change made in 2014.1 and documented in a bullet point here. Yes, they had been unwise not to retain a QA or pre-live staging environment on the exact Ensemble version that LIVE was running.

John Murray · Mar 16, 2016 go to post

Interesting that my browsers (FF and Chrome) stack the two "Related Topic" fields vertically:

Maybe your screenshot is from a newer version of DC?