Hi,

I am new to Cache' MV but have extensive experience with other Pick flavors especially Unidata.

I need to determine the impact of adding several indexes to a large file with over 51,000,000 records.

On other systems, I could use FILE.STAT, ANALYZE.FILE and shell to the OS to determine how large the index file was.

None of those seem to be available in Cache' MV. Shelling to the OS just tells me the size of CACHE.DAT.

What is the best way to determine what the disk impact would be if I added an index (CREATE-INDEX) to a file?

TIA,

Steve

0 4
0 465
Question
· Jul 21, 2017
Ens.StreamContainer

Hi All,

I am fairly new to Ensemble and I wanted to know I have inbound business service (EnsLib.File.PassthroughService) which is looking for pdf files once it finds a pdf file (within the business process) it needs to find the associated xml file which would be in the same directory. Once both of these files are found they need to be sent to the business operation and deleted from the source (EnsLib.File.PassthroughOperation).

0 9
0 1.5K

Good day,

I would like to know how to detect in Caché ObjectScript if data saved in string is number and furthermore, if it's type is integer.


I maybe found a solution:

set value = "44.2d3"

try{
set status = $INUMBER(value,"")
if ('$FIND(+value,".")){
w "your variable: '"_value_"' is number and integer"
}else{
w "variable is number but no integer"
}
}catch(e){
w "variable is not number"
}

0 10
0 2K

Globals, these magic swords for storing data, have been around for a while, but not many people can use them efficiently or know about this super-weapon altogether.

If you use globals for tasks where they truly shine, the results may be amazing, either in terms of increased performance or dramatic simplification of the overall solution (1, 2).

Globals offer a special way of storing and processing data, which is completely different from SQL tables. They were first introduced in 1966 in the M(UMPS) programming language, which was initially used in medical databases. It is still used in the same way, but has also been adopted by some other industries where reliability and high performance are top priorities: finance, trading, etc.

Later M(UMPS) evolved into Caché ObjectScript (COS). COS was developed by InterSystems as a superset of M. The original language is still accepted by developers' community and alive in a few implementations. There are several signs of activity around the web: MUMPS Google group, Mumps User's group), effective ISO Standard, etc.

Modern global based DBMS supports transactions, journaling, replication, partitioning. It means that they can be used for building modern, reliable and fast distributed systems.

Globals do not restrict you to the boundaries of the relational model. They give you the freedom of creating data structures optimized for particular tasks. For many applications reasonable use of globals can be a real silver bullet offering speeds that developers of conventional relational applications can only dream of.

Globals as a method of storing data can be used in many modern programming languages, both high- and low-level. Therefore, this article will focus specifically on globals and not the language they once came from.

14 10
0 2.4K
Article
· Oct 18, 2016 7m read
Macros in the InterSystems Caché

In this article I would like to tell you about macros in InterSystems Caché. A macro is a symbolic name that is replaced with a set of instructions during compilation. A macro can “unfold” in various instruction sets each time it is called, depending on the parameters passed to it and activated scenarios. This can be both static code and the result of ObjectScript execution. Let's take a look at how you can use them in your application.

9 3
0 2.3K
Question
· Jul 20, 2017
Cursor placement

Greetings,

What methods are available to position a cursor on a screen to begin writing as not to disrupt other areas of the screen? I have used ?# , ie: ?5 but this is destructive from the let to character 5. I would like to enter a command that will position at row,col and then start writing? Can I create a window in a window type display to write text and then when done viewing, remove it?

Please advise,

Thanks in advance for everyone's time.

0 2
0 328

Greetings,

If given a global, how can I discover information on that global? More specifically, how can I discover how many indices it contains? ie: ^G(1,2,3,4,5) How can I discover that there are 5 subscripts within the Global ^G if I did not already know.

Please advise, and thanks in advance for everyone's time.

0 3
0 365
Question
· Jul 12, 2017
Database Wildcards

Greetings,

How do I organize a wildcard search with respect to a database search?

Example of what I am trying to do: s x=$o(^G("ABC","A*",x))

Trying to navigate through the ^G global for all occurrences of "ABC", and "A*" ("A"+wildcard) but I am new to M and don't know positively how to do this. Perhaps I don't use an "*" at all, rather; another convention altogether.

Please advise.

Thanks in advance for everyone's assistance.

0 2
0 544

Good day, I would like to find out the size of Caché ObjectScript variable in order to guarantee that my program will not leak, equally in terminal and Caché globals. For example how huge number I can store in that variable ? And what happen in Caché when variable will leak ? How is this behavior treated? (how much memory is reserved for common variable?)

Thanks in advance for your answers.

0 2
0 690

Hi,

Can you please tell us how to create xsl file for CCD to SDA conversion using XSLT.

What will be the prerequisites.

I have tried to create an xsl file for the given xml given belowusing XSLT transform Wizrad:

<?xml version="1.0" ?>
<s1 title="s1 title attr">
  <s2 title="s2 title attr">
    <s3 title="s3 title attr">Content</s3>
  </s2>
</s1>

using the stylesheet below:

0 2
0 1.2K

Hello community,

I would like to know answer to the question: What would be an optimal way to connect an Ensemble and a pure Caché server? Optimally in such a way for the Caché system to be able to fire Ensemble processes and the Ensemble server to call Caché server functions.

0 1
0 348

I'm aware of two ways to get list of files in a dir:

set dir = "C:\temp\"
set rs = ##class(%File).FileSetFunc(dir, , , 1)
do rs.%Display()

and:

set dir = "C:\temp\"
set file=$ZSEARCH(dir_"*")
while file'="" {
   write !,file
   set file=$ZSEARCH("")
}

Yet they bot return only files and directories in a current directory, but not files in subdirectories.

I suppose I call one of these recursively, but maybe there's a better solution?

1 25
1 3.9K

Is there any methods/ways through which will get to know whether any of the Unit Test cases is/are failing in the Terminal with status as either 0 or False in case of Failure & 1 or Ture in case of Test Passes (we are getting an url of the csp page with the report which has the passed failed status) as we need to send this failure status to Jenkins for the Build to Fail (where in we have acheived this part in making the build failure/success based on harcoded boolean)

0 2
0 707

Hello,

I’m creating a REST API service but I need to convert my object in JSON.

The Class “A” is extended from another Class “B”:

Class message_B Extends Ens.Request
{

Property ClientId As %String(MAXLEN = "");

Property mesagge As %String(MAXLEN = "");

}
Class message_A Extends message_B
{
Property idDate As %String;

Property Datetime As %String;

Property time As %String;

​}

When I use:

0 7
0 2.1K