One aspect of source code management is how to deal with the almost inevitable need to upgrade your Caché or Ensemble platform to a newer InterSystems release.

It's long been my experience that InterSystems does a very good job of maintaining backward compatibility. Code that works correctly on, say, 2012.1 is very likely to work correctly on, say, 2015.2 without any modification.

0 10
0 521

In response to a comment on his posting about source control hooks and Atelier Bill McCormick used the example of Studio's SOAP Wizard and talked about providing more information about how Atelier will support this kind of extension.

My Atelier (1.0.116) has a Tools menu with an Add-Ins option and a "Soap Wizard" (sic) submenu.

Is there any information available to us yet about how we can add our own add-ins of this kind?

2 7
0 449
Article
· Mar 14, 2016 3m read
Source control and the production class

When you create an Ensemble production your namespace acquires a new class definition. For example here is what the class that defines the Demo.Loan.BankUSProduction production in the ENSDEMO namespace looks like when opened in Studio:

2 3
0 661

If I have defined a class query in one of my classes and I want to use that query from a method of another class, what are the pros and cons of using the %SQL.Statement interface versus the %Library.ResultSet interface?

I believe %SQL.Statement is the newer interface.

So if the old way is:

USER>s rs=##class(%Library.ResultSet).%New("%Library.File:FileSet")
 
USER>s sc=rs.Execute("c:\s\","*.txt")
 
USER>w sc
1
USER>while rs.%Next() {w !,rs.Data("Name")}

...

then the new way is:

2 12
0 1.6K

In this posting I want to raise the profile of a feature that arrived in 2009.1 but is perhaps not very well known.

It is sometimes useful to make certain packages, globals or routines available to all of your namespaces. Of course you can add the necessary mappings whenever you create a new namespace, but here's a simpler way.

6 6
0 1.3K

If your Ensemble environment is actually a HealthShare one, here's a snippet of information that I wasn't able to find in the documentation.

When a namespace is HealthShare-enabled it gets some mappings added to it in order to fetch stuff from the HSLIB database. The most obvious mapping is a package mapping that gives your namespace all the HS.* classes.

0 4
0 410

Suppose I want to create an Eclipse plugin designed to be added to Atelier, and my plugin needs to perform some processing on the server that the current Atelier project is configured to connect to.

Is there a way I can use the connection credentials that have already been entered by the user? I don't really want to make them enter these again into my own plugin.

1 8
0 485
Article
· Mar 6, 2016 2m read
Who does Windows think I am?

When my COS code is executing in a Caché process it might want to interact with the host operating system. For the purpose of this post I'm focusing on a Windows host, but much of it applies to other host OS platforms as well.

A common example of host OS interaction is when my process wants to read from or write to a file. What credentials will apply when Windows is checking whether or not to allow me access to the file?

To answer that we need to consider another question. How did our process start?

3 6
0 960

If you've got more than one developer on a project, do you each work in your own namespace? Or do you all use a common namespace?

Through my work at George James Software I have encountered many different Caché and Ensemble development setups. At risk of over-generalizing, the older and more established users of InterSystems technologies seem more likely to have all their developers working in a common namespace, whereas the newer 'converts' tend to favour giving each developer their own namespace.

2 7
0 777
Article
· Mar 4, 2016 1m read
Getting my head around a class model

There's plenty of goodness in the %-packages InterSystems supplies, and it seems that every new version of Caché brings something new. The browser-based class documentation (a.k.a. Documatic) generally provides a good level of information, but on the basis that "a picture is worth a thousand words" I sometimes want a diagram.

For example, when trying to navigate the %Dictionary package for a project that needed to find out about class definitions, here's one of the UML class diagrams I created.

3 7
0 1.5K
Article
· Mar 3, 2016 2m read
Class Projections and Projection Classes

The purpose of this post is to raise the profile of a powerful mechanism that has long been available to us, and to open a discussion about ways in which it can be used or abused.

You can read more detail about the mechanism here. To summarize, your class definition can use the Projection keyword to reference one or more projection classes. A projection class can implement methods that get invoked at key points in the lifecycle of your class.

8 18
0 1.4K
Discussion
· Mar 3, 2016
Anyone using Visual Studio Code?

Is anyone in the fine community of developers who work with ISC technologies looking at Microsoft's Visual Studio Code offering?

One of Bill McCormick's recent posts about Atelier referred to Visual Studio being considered the best IDE. Granted, Code is far less of a tool than VS, and probably always will be. But it claims to be open source and cross-platform, i.e. Linux and OS X as well as Windows.

8 26
3 5K

Announcing Deltanji 6.0, the latest version of the well-respected George James Software source control product formerly known as VC/m.

Deltanji comes in four editions, including Solo which is quick to install on Caché or Ensemble (2009.1 or later), easy to get started with, and perpetually free.

Deltanji runs within the environment whose code it is managing, integrating closely with Studio and Portal, and storing code versions in a CACHE.DAT database.

1 2
0 355