If you're not already committed(smiley) to using Git, you might consider the Deltanji source code management tool from my employer, George James Software. One of its features is the ability to manage deletion of code components (e.g. classes, routines, files, lookup tables, HL7 schemas etc) and propagate those deletion downstream in whatever workflow  you have configured (e.g. DEV, QA, STAGING, LIVE).

The documentation is misleading about this.  It says:

When you upgrade Caché to a new version, existing Query Plans are automatically frozen.

And later:

The earliest upgrade that performs this operation is an upgrade to 2017.1.0.

What it needs to say is:

The earliest upgrade that performs this operation is an upgrade from 2016.2.0.

The docs do use 2016.2 as the "from" version in their example, but not in a way that communicates how this nice feature won't help with upgrades from pre-2016.2 versions.

@Brendan Bannon - please draw this to the attention the InterSystems documentation team.

Above I've deliberately linked explicitly to the 2017.2 doc rather than to "latest" because I hope that in due course the latter will get corrected.

A bit more info on the answer from @Jeffrey Drumm

Here's how the relevant part of the 'Environment, Documentation and Proxy' section of Studio's Tools\Options dialog starts out:

In this state I can use the standard 'SOAP Wizard' add-in but it is served by the private web server of my Cache server installation. I'm testing from the Windows desktop this runs on.

I also have an instance of IIS on that Windows host, and the IIS is correctly configured to serve Portal and documentation pages from both http://localhost/ and https://localhost, plus from http://localhost/cache111 and https://localhost/cache111

Back in the Studio Options dialog I set the checkbox and start trying some value-pairs in the now-active Address and Port fields. Here are my results:

AddressPortResult of launching add-in
localhost80Success
localhost443White page, presumably because HTTP is requested from 443
localhost/cache11180CSP Error page, which reveals that the CGI variable CACHE_URL has the malformed value http://localhost:80/cache111:80/isc/studio/templates/SOAPClientWizard.csp
https://localhost443Works from Studio 2017.2.1 but fails from Studio 2014.1.1 and displays a page headed "Navigation to the webpage was canceled".
https://localhost/cache111443Fails from Studio 2014.1.1 as above. Gives CSP Error page from Studio 2017.2.1, which reveals that the CGI variable CACHE_URL has the malformed value http://localhost:443/cache111:443/isc/studio/templates/SOAPClientWizard.csp

Note too that if we enter a value for Address but leave Port blank the dialog files a value of 80 in the Port field. This can be seen when the dialog is reopened.

Conclusions from above:

  1. Templates and add-ins can be served from a server other than the Private Web Server as long as they are served from the root.
  2. Studio 2017.2.1 can fetch templates and add-ins using HTTPS when correctly configured. This is not true of some earlier versions of Studio.

No, a variable name cannot contain the underscore character, because that character is the concatenation operator. If it was allowed in a variable name, how would we interpret this, for example?

WRITE TICK_TOCK

Is it concatenating variables TICK and TOCK, then writing out the result? Or writing the value of a single variable named TICK_TOCK.

If the utility you refer to is expecting you to supply data values in variables whose names match the SQL column names, then the developer of the utility hasn't accounted for the fact that SQL column names can contain underscores but Caché variables can't. So the utility needs fixing.

I assume you are using Caché on Windows, and you are launching Terminal from the Cube on the local desktop of the PC where Caché is running.

In this case the security settings of the %Service_Console service (System > Security Management > Services) are what you need to adjust.

Enabling only "Unauthenticated" will mean that you don't get prompted for username/password, and your Terminal session will report $username="UnknownUser". But the security settings for UnknownUser will also have to allow that account to get to the programmer prompt. If they don't, your Terminal session won't start.

Enabling only "Operating System" will mean that provided a Caché user account exists that matches the Windows account you are logged into the desktop as, your Terminal session will report that username as its $username. Again, the Caché account will need sufficient permissions to get to the programmer prompt.

First, using my moderator superpowers I have moved this out of the Developer Community Feedback group (intended only for feedback about the DC platform) and into the Cache group.

The <NETWORK> error code hints that your Cache instance is involved in some ECP networking. Maybe that is having a problem. Check cconsole.log at both ends of the connection(s) for clues.

In general though, I suspect your issue is too site-specific for DC members to be of much help. I recommend you open a support ticket with InterSystems WRC.

I'm not aware of a way to do this directly. But in the case of routines (and classes) shown in Atelier Explorer (AE) these are files on your local filesystem. When I switch to the Project Explorer (PE) view, a right-click on a project gives me an option to "Show in Local Terminal", with a sub-option "Terminal". Choosing this gives me a new Terminal tab in another Eclipse pane. I'm working on Windows, and this Terminal gives me a Windows command shell in the root local directory of my project. There I can issue a suitable DIR command, e.g.

dir /s /o-d

For an equivalent on the server I suggest using Management Portal, which can be quickly launched from the context menu of a connection in the Server Explorer (SE) view. Once in Portal you can use System Explorer\Routines, and click on the Date header to sort the list by last modification date/time.

I assume you're using 1.1.391 (the latest public release), and that the " - MGH" indicates you have defined an Eclipse working set with that name and selected it (e.g. in the dropdown menu from the down-arrow on that dialog).

For the benefit of others who may not have found this dialog yet, it's on the standard "Navigate" menu and also the standard toolbar (white "C" in blue circle).

It apparently searches the filenames within your projects (optionally limiting this to projects in your current working set), but I haven't yet found a way to make it take the package into account in its lookup, nor to display it.

I am interested to know more about the "Workspace matches" part of your screenshot. So far I haven't managed to get this on mine.

And can someone explain the rather cryptic "TZ = TimeZone" part of the dialog text?

See Robert's answers. The %File.Writeable(...) method's underlying implementation ($zutil(140,12,filename,2)=0) is apparently not able to determine whether or not a directory is writeable, despite the method doc stating "Return true if the file/directory is writable and false if it is not"

See this older doc for $zutil(140) information.

You could try raising the issue with InterSystems WRC, but my guess is they'll say it's a bug in the comment on the method.