Many of the terminal based utilities use '^' <enter> to return to the previous field.  In older versions of the Cache utilities  it really depends on who the developer was who wrote the program as well as which area of the product the program was writtren for. There isn't necessarily consistancy between the developers or functionality of the programs.

Most interactive utilities are now accessed through the %SYSTEM package which is accessed using the notation $system....

e.g. set status=$system.Status.Error(5001,"This is a general Error")

Various configuration items can be accessed through this package and the classes therein.

Another package worth noting is %Dictionary that gives you access to all aspects of class definitions, methods, properties, compiled classes etc...

and finally the package %SYS contains may more system related classes

The only other comment is that many system functions require you to be in the %SYS namespace in order to execute the function you require and will also require that you have sufficient roles assigned to your user account to perform such actions.

I'm glad you resolved your issue. For the record there is another approach you could use and that is the %Library.ResultSet (or %ResultSet) class.

You can use this class to run Class Queries or Dynamic SQL

Here is an example from the Class Documentation with some liberal editing from myself

	Set result=##class(%ResultSet).%New("%DynamicQuery:SQL")
	Set sc=result.Prepare("SELECT %ID, Name, Salary FROM Sample.Employee WHERE Salary > ?")
	If $$$ISERR(sc) Do $system.Status.DisplayError(sc) Quit
        // Get the first 10000 rows
	Set sc=result.Execute(10000) If $$$ISERR(sc) Do $system.Status.DisplayError(sc) Quit
        // To get all rows call the Execute Method with no parameter
	While result.Next(.sc) {
		If $$$ISERR(sc) Quit
		Write result.Data("Name"),result.Data("Salary"),!
	If $$$ISERR(sc) Do $system.Status.DisplayError(sc) Quit

It is most likely that you are trying to do a POST but by default the browser is invoking a GET. An alternative to POSTMAN is  Advanced REST Client for Chrome which can be invoked from within Chrome or you can download a Windows version as well. It is useful as you can save data to Google Drive and therefore make the data available to other devices that support chrome.

I would suggest that adding the %All role, though it would work, is a bit like crushing a nut with a sledgehammer. It effectively opens the door to any unwanted intruder to gain access the Cache/Ensemble/IRIS. For the purposes of a demo test application %All role will work however the deve;loper should be aware that there are more appropriate security mechanisms available to handle user authentication.

You can't use $get or $data on an object property. What you should do is as follows,

If $IsObject(ref) {set ^AK(1)=ref.Title}

Else {set ^AK(1)=""} // or whatever you want to do if ref is not an object

You could also do this:

If $IsObject(ref),$l(ref.Title) {set ^AK(1)=ref.Title}

Else {set ^AK(1)=""} // or whatever you want to do if ref is not an object or ref is an object but the property title is null



WRC helped answer this:


Here is the code to build into your TablePane form:


ClientMethod onloadHandler() [ Language = javascript ]
myVar1 setInterval(zenPage.IntervalRefresh,1000);

ClientMethod IntervalRefresh() [ Language = javascript ]

var table zenPage.getComponentById('TableName');
//Optional if Snapshot is used

Note that the line table.executeQuery() is only required if your TablePane uses snapshot mode



If you specifically wanted to make use of the Sample Classes in an Ensemble context then I would suggest one of two approches:

1) Export the Sample Classes and Data and import them into the ENSDEMO namespace though bear in mind that were you to reinstall Ensemble the ENSDEMO database might be replaced

2) The better approach would be to create a new database/namespace which will automatically inherit the Ensembele mappings and then import the SAMPLES classes and data into that new namespace/database

Here are a couple more hints:

1) Review your code for $$$LOGINFO,  $$$LOGWARNING, $$$LOGERROR and $$$TRACE statements. Remove those that might have been useful during development and testing

2) If you create temporary globals make sure they are mapped to CACHETEMP

3) Depending on the nature of your application is there transactional data that can be summarized for future analysis and purge the original class data. For example: I have a production that processes Pharmacy Prescriptions. When I unpack the HL7 OMP message I create a hierarchy of parent-child classes objects that consisting of data from the HL7 message as well as  chunk of of other data, flags, etc... Once the order has been processed most of this data becomes irrelevant and so I extract the salient data, Patient ID, Prescription ID, Item Code, Quantities ordered and Quantities Dispensed and an overall Order Status. I write this to an archive class and purge the original data after 7 days.