I have a general query in regards to developers experience on extracting data from cache databases and the most efficient way to do so. I work with a number of clients who have applications with cache databases and require the data off the host system and onto data warehouse platforms for research and analysis. Often they require the data in source state which means the extracts are often simply a table scan of the entire database table without any aggregation or manipulation.
We at George James Software recently released a new version of Deltanji, the native source code management tool for Caché, Ensemble and HealthShare.
Version 6.1 includes several enhancements, including easy creation of labels. Bulk transfer of large codesets is also now available from the browser UI.
A perpetually free "install and go" Solo Edition of Deltanji is available. Licenses can be purchased for other editions that provide more advanced code management and deployment features.
Deltanji is compatible with Atelier. It can also manage external files.
I am happy to share the news that Zen Mojo 1.1.2 has been released. This release includes a critical fix for Firefox that we had to get out as fast as possible. No other changes are included to allow easy upgrades. We recommend upgrading to this release if you are running on Zen Mojo 1.1.1.
All upcoming Caché and Ensemble releases will ship with Zen Mojo 1.1.2.
does anybody know how to differentiate ZSOAP failures when using %SOAP.WebClient? I would need to know what error condition occurred, e.g. authorization failed, endpoint timeout etc.
All I get on failure is an ZSOAP exception which does not seem to explain anything specific.
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.
It would be convenient to be able to fetch the whole query result in one operation instead of looping through every row. A fetch_all() method or something similar would provide this functionality I guess. Is there a reason why this is not implemented?
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";
Hello community; this may seem odd, but I need to know if there's any way we could be using callin functions from a C application without knowing? e.g. if other developers created some C programs that call in to Caché that we don't realize are running. Is that possible? If so, where would I look to see these programs? Perhaps the server's task manager?
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:
With a routine like this one, you can quickly calculate how many lines of code you are working with. And it is not only for routines, it works for classes because remember that classes generate routines !
At Global Summit back in April, in his keynote speech, John Paladino mentioned that improvements to our documentation search were being made. You might have wondered, since things seemed to go quiet, whether anything was really happening. Well, we had an internal demo of some of the upcoming features recently, and the new capabilities look really cool – searching documentation has been frustrating for InterSystems staff too! So, I thought it might be good to pass on a few details to give a taste of what is coming. Of course, InterSystems will be putting together much better information
So, currently in the habit of keeping all users forever, up to over 5000... ? is what if we decided to start deleting old users who have been gone from the company, how would it affect any account level information? notes, payments etc.... Is there any documentation anywhere that would answer this or describe this process or maybe best practices??
Sorry if this seems stupid but i am working on a proof theory for work.
The goal of this writing was to illustrate how to restore backup before the patch would be applied. The alert notes that:
The risk can be avoided by applying journals from the beginning of the journal file that was switched to at the start of the backup, rather than accepting the default of starting from the journal marker position.
Having non-patched Caché 2015.1.4, I ran sample database backup and restore just to get where I should answer "No". Collecting journal info from the backup log:
A few people wrote to me asking about the infrastructure behind the Atelier Server implementation. Its neat and a worthwhile story to share so I am writing it up here as a post on the community. I want to go in to a little detail on why it was needed and then I will outline in detail how we went about implementing this.
As some customers recently received new license keys, I received some questions why their new license does not seem to work, other than the expiration date being reached. So far I was able to solve all of them with this short list of things to look at.
This text is a continuation of my article where I explained the structure a Caché database. In this article, I described the types of blocks, connections between them and their relation to globals. The article was purely theoretical. I made a project that helps visualize the block tree - and this article will explain how it works in great detail.