Recently I came across a very strong statement to the effect that InterSystems.Data.CacheClient.dll library works fast because it does not open a TCP/IP connection, instead it works in the same process as a database. It made me pause for quite some time. Firstly because .Net Managed Provider, which utilises this library, opens TCP/IP connection to the database (and it is stated in the documentation "Using .NET and the ADO.NET Managed Provider with Caché"). And secondly, because as far as I know only eXtreme applications attach themselves to the process.
I want to generate a list object of routines from the ^$ROUTINE global without directly reading the [^$ROUTINE] global.
E.G. I want to create an array/variable/object with names of all routines that start with "ABC" so that an application process can use each routine name as input for a subsequent process.
I have 3 classes defined to model the team/team-member/employee relationship, where each employee can belong to multiple teams, each team can have multiple employees, and one and only one team member is a team leader:
Is there a better way to iterate through all properties of an object than the following? Perhaps without needing to open a definition of the class but directly against the object?
I was looking at the ENSDEMO namespace in our Ensemble server. In the class Demo.REST.DirectoryOperation, there is a line that uses the macro $$$URLENCODE. I would like to know exactly what does this macro $$$URLENCODE() do. Specifically what value does it. Unfortunately, I can't find anything about this macro in the Ensemble Documentation.
Hello. When you export and then import a table of data, is the import smart enough to figure out if a row already exists in the new namespace, and if so update the row rather than just save/add the row?
For example, we have a table in DEV, and the same table in QA. The DEV table has more fields than QA. When we moved up the class, the field definitions went with the table into QA, so now the table definition is the same in both.
The purpose of this post is to ask for everyone's thoughts and input around the use of transient, SQLCalculated/Computed properties within persistent classes.
This approach allows for extra data values needed in SQL queries to be available without having to join to other tables.
Very simple/basic example to illustrate the topic:
Let's say I have a persistent class named ICDAutoCodeDefn to hold ICD Auto-Coding definitions, such as:
I would like to integrate SQL into our ObjectScript routines in order to illustrate how SQL can be used to minimize development time. However, there are two questions I have.
How does one iterate through the results of a SELECT statement?
How to post and get data using php. I'm using a php external url. In the body in parsing the request as xml and when i execute this using fiddler it response the result as xml but when i consume it in classmethod it fails. I don't have a wsdl file how can i work it out?
I have created a asp web service and it is hosted in our internal server. How can i consume that web service in cache class method? It is a soap web service with xml input and xml output. It works fine in all the browser.
I am calling a custom class in my transformation and brings back a base64, but my hl7 is doing a carriage return after about 70 characters of the base64. Any ideas how to work around this?
Here's an easy one for you; before I spend another hour looking for the answer, how do you convert %ArrayOfDataTypes to an array (that could, say, fit into the %session.Data array, or maybe just some array named info()), and of course back again?
Hi All,
when I ran the Command to make a folder in particular directory its not working in terminal,but when i run the same command in studio output block it create the folder.
Used command:
S cmd="mkdir E:\DIRECTORY"
O cmd:"QR":10
Suggest Please.
Is there any way to track the 'last modified by' cache user name and datetime of last modification for a class or routine definition [Track Last Code Changes]?
I have created a class that extends %Persistent and %Populate and have set the various POPSPEC attributes of my properties to control how the properties are populated. However, when I compile the class and try to run the Populate() method it tells me the method isnt defined.
Don’t use Python built into Mac. Because of System Integrity Protection (SIP) you will not be able to access the libraries that the InterSystems Python binding requires. The Python build into the MAC has baked in what libraries it can use.
Install another Python. Don’t put this other ahead of Mac Python on path since this could break things. Apple regards its Python as part of the its OS, and may use that Python in its system operations.
This Python will not be installed into the protected area.
When we write unit test cases for cache object script code using %UnitTest.TestCase, what is the best way to write code to identify code coverage?
So, let say my unit test case hit all 10 lines of code of a method for a given class. So, unit test coverage should be 100% for that. But, using line-by-line coverage [(%Monitor.System.LineByLine] getting wrong percentage, because it also includes code comment/documentation as part of code. So, practically we can not ever achieve 100% of code coverage by using this API.
I have a persistent class where I am logging each CCDA I receive. I want to store all of the providers associated to that CCDA (many to one). In a relational database, I would have a child table with a foreign key to the primary table. I'm guessing the equivalent to Cache would be
1. Create a custom class (ProviderList) with the properties I want to store.
2. Add the class as a property of my CCDA persistent class.
Property Providers as Array of ProviderList (SQLProjection = "table/column";
Here you have an easy way to write and execute COS code from your unix scripts. This way one does not need to write routines or even open Studio or Atelier. It can be an option for simple and small actions for instance things like installation tasks or compiling.
See sample bash script (compile.sh) to compile classes: