Article John Murray · Aug 17, 2017 1m read

Here's one way to determine if a class is mapped (i.e. it is in a package whose definitions come from a database other than the default code database for the current namespace):

SAMPLES>w ##class(%Library.RoutineMgr).IsMapped("Cinema.Film.cls")
0
SAMPLES>w ##class(%Library.RoutineMgr).IsMapped("%iKnow.Objects.Source.cls")
1
SAMPLES>

If you pass a by-ref second argument to IsMapped you can also discover what database the class definition is stored in:

0
0 693
Article John Murray · Aug 15, 2017 1m read

DC readers running Caché etc on Windows, configuring the Telnet service to use SSL/TLS, and using the Caché Telnet client (CTerm.exe) to make the Telnet connections may like to know that there's a fault in 2017.1 and 2017.1.1 which prevents CTerm.exe from establishing the secure connection.

Workaround is to use a pre-2017.1 kit to install on your client machines (e.g. 2016.2.2), or to fetch the bin\cconnect.dll from an earlier version (I used 2016.2.2) and use it as a replacement for the 2017.1 / 2017.1.1 copy.

0
0 599
Article John Murray · Jun 29, 2017 1m read

When posts are displayed on the DC homepage they only show the first part of each post. This part is known as the teaser, or the trimmed version. The DC software does its best, but without being given any hint by you it can sometimes produce teasers that are of limited value, e.g. "Hi!"

When composing your post, the Preview button lets you see what the teaser will look like. For example, here's the preview of an initial version of this post:

And if you want to take control, put the cursor at the point you want the teaser to end, then click this button on the editor toolbar:

0
0 485
Article John Murray · Jun 21, 2017 1m read

Recently I was conducting a remote support session with a site. The desktop they were sharing with me was on a PC configured with German as the native language. Since my German is rather rusty, and virtually non-existent when it comes to computing terms, I was glad to be able to switch the Portal session into English.

This is done from the page that appears when you use the About link:

All I needed to remember was that the About link is the second one, and the language selection dropdown is at the foot of that page.

0
0 437
Article John Murray · Jun 12, 2017 1m read

I recently helped a site investigate a problem that appeared after they upgraded their Windows instance of Caché from 2015.1 to 2017.1. A terminal session launched from the server's desktop cube was unable to run OS-level commands using the $ZF(-1) function. For instance, using the no-op command "REM" as follows:

write $zf(-1,"rem")

was returning -1, indicating that the Windows command could not be issued.

7
1 1803
Article John Murray · May 4, 2017 1m read

It's good to see growing participation in DC. However, sometimes I think that responses posted as Answers to Questions would be better classified as Comments. For example, the respondent could be seeking clarification about the original question (e.g. "What Caché version are you using?"), or perhaps following up someone else's answer or comment.

1
0 294
Question John Murray · Apr 27, 2017

Using Chrome on my Android mobile I can't seem to get to a specific submenu option. For example in the screenshot below I use the menu button to bring up the first-level menu. Then I tap on "COMMUNITY". The second-level menu appears briefly, but doesn't give me time to tap the entry I want ("FEEDBACK") before it decides to take me to the page headed "Connect with Members".

Am I missing a trick, or is this a bug?

2
0 397
Article John Murray · Apr 24, 2017 1m read

If your application is raising <PROTECT> errors and you're finding it hard to work out why, here's a way to get additional information.

First, if auditing is not already enabled, turn it on:

Then use "Configure System Events" (highlighted above) and locate the event named %System/%Security/Protect. In the screenshot below I used the Filter field to do this (type "protect" - highlighted below - and press TAB):

1
0 2824
Article John Murray · Apr 13, 2017 1m read

I only recently noticed the presence of a local database named CACHE alongside the more familiar CACHESYS, CACHELIB, CACHETEMP and CACHEAUDIT.

A bit of digging through the documentation archive led me to conclude that the CACHE database arrived in 2010.2, where the release notes say:

 

Note the lack of an accent on the words I have highlighted.

1
0 563