#Caché

30 Followers · 4.5K Posts

  

InterSystems Caché is a multi-model DBMS and application server. See more details here.

Documentation.

Question Conor Browne · Sep 19, 2017

Hoping someone can help.

I need to convert a timestamp from the following format (YYYYMMDDhhmmss e.g. 20160105125915) to UTC time in the same format.

I presume I need to convert it to the system format ( like $HOROLOG ) and then use something like ConvertTimeStampToHorolog or perhaps LocalWithZTIMEZONEtoUTC but not sure of the syntax.

Thanks,

Conor

8
0 4288
Question Mario Birk · Sep 21, 2017

Hello everybody,
we would like to be able to analyze a rather complex software application, which has been programmed in “M” for a number of years by different developers, by means of a tool.
Our goal is to find a starting point for a code refactoring process. In the long run we would like to gradually eliminate the code growth points.
Does anyone know of a tool that can help us to do this?
So far, we have only found "RE / m" etc. by George James Software, but we do not yet know if these tools will help.

Your support and suggestions will be greatly appreciated. Thanks.

4
0 430
Question Donald Bugbee · Sep 15, 2017

Hi all.

I have been using  a command pipe to open/run UNIX scripts for months without issue.  We recently installed the 2016 Caché Upgrade and now I'm getting the following error when opening the pipe:

<PROTECT> *OPEN[Q](|CPIPE|)

I assume some security or permission setting is to blame, but I'm not sure exactly what.  Here's the snippet of code...

s cpipename="|CPIPE|"
s filepath="/path/script"
​o cpipename:(filepath:"R"):10

Any feedback would be greatly appreciated!

4
0 718
Article Rubens Silva · Aug 9, 2017 9m read

Hello.
The idea of this post is to introduce Frontier: An abstraction layer that allows Rapid REST development.

REQUIREMENTS:

Why?

Have you ever found yourself dealing with repetitive tasks like mounting objects, serializing them and eventually handling multiple errors for multiple cases? Frontier can boost your development by making you focus on what really matters: your application.
 

Frontier is made to stop you from WRITE'ing by instead forcing your methods to return values.
It's designed to make you code clean, and you'll see the why pretty soon.

This is the Part 1, where you'll learn he basics about how to work with Frontier. That means at the end of this part you should be capable of 

creating GET requests without difficulties. Since this also serves as a way to introduce the framework, I'll be calling this part: Core concepts.

8
0 1791
Question Justin Wilson · Sep 15, 2017

Our application has a SOAP service that is currently exposed via the built-in Apache server inside of Cache.  I have configured the application to IIS instead so we can IP-Filter, however I no longer wish to have the management portal or other resources via the built-in Apache server.  How can I disable the built-in Apache server so internal resources no longer reply on that server and are instead routed via the IIS site?

I also want the management portal option via the right click on the cube to be pointed towards the IIS URL rather than the old Apache instance with a port number.

6
0 945
Question Murillo Braga · Aug 31, 2017

Hello guys,

I was wondering whether there is another alternative to extracting a certain string out from a bigger one, rather than using the function $piece.

Maybe regular expressions? Another specific function?

Example:

Big string:

NAD+SLA+++TextIsHereNAD+SLA+++TextIsHere

String I want to extract:

TextIsHere

Function I'm already using:

w $piece("NAD+SLA+++TextIsHereNAD+SLA+++TextIsHere","NAD+SLA+++",2) > Will ouput TextIsHere
w $piece("NAD+SLA+++TextIsHereNAD+SLA+++TextIsHere","NAD+SLA+++",3) > Will ouput TextIsHere

Thanks!

3
0 848
Question Jon Astle · Sep 15, 2017

Hi I am trying to tie all terminal logins in Cache so that rather than the user being presented with the Cache login and password the user is presented with my custom login page.

I can do this via a generic user so that once the generic user logs in they are presented with my Cache login page however is there a way to do this so that I can bypass the below login page and go straight to my login?

Node: myserver, Instance: CACHE
 
Username:
Password:
 

Thanks in advance

Jon

5
0 715
Question Kevin Furze · Sep 13, 2017

Cache 2016.2.1

the system offers $LISTNEXT as a way of looping  in $LISTs and the documentation says this is much more efficeint than writing

for i=1:1:$LISTLENGTH(myList) { set value = $LIST (myList,i) }

I want to walk backwards in the list,

is there a $LISTPREVIOUS or do I have to use the followng syntax to achie

 for i=1:-1:$LISTLENGTH(myList)

kevin

4
0 644
Question Ricardo Baehr · Sep 12, 2017

Hi guys
Im trying to use an API running in AWS API Gateway.
This API is over https and i am using the SSL/TLS config of Caché.

set httpRequest = ##class(%Net.HttpRequest).%New()
set httpRequest.Server = server
set httpRequest.Https=1
set httpRequest.SSLConfiguration = "SSLPadraoAdapcon"

do httpRequest.SetHeader("Content-Type","application/json")
do httpRequest.EntityBody.Write(json)
do httpRequest.
5
0 1391
Question Kumaresh Ram · Sep 10, 2017

In which global cache class codes are storing in cache DB?

For example, Routine codes are storing in ^ROUTINE global.

situation: Need to read line by line and need to replace one string to another string in class files(.cls file) using programming.

Need to replace Property type in class files using programming i mean via programming to edit the class files

4
0 736
Article Maks Atygaev · Jul 18, 2017 7m read

MonCaché — MongoDB API implementation based on InterSystems Caché

Disclaimer: This article reflects author's private opinion and has no relation to the official position of InterSystems.

IDEA

The idea of the project is to implement basic MongoDB (v2.4.9) API features for searching, saving, updating and deleting documents in a way that will allow the use of InterSystems Caché instead of MongoDB without changing the code on the client side.

MOTIVATION

Perhaps, if we take an interface based on MongoDB and use InterSystems Caché for data storage, we may see a performance boost.

14
0 1959
Question Manoj K · Apr 1, 2017

Hi

I tried to access one server to another server in Cache Rest Service, I tried 

Parameter HandleCorsRequest = 1;

and

<Route Url="/data/:first/:second" Method="GET" Call="GetData" Cors="true"/>

But not working,

Can anyone tell me the solution??

Thanks in advance!!

5
1 1738
Question Anil Mathew · Sep 12, 2017

I have an xml file that it send over a SOAP client. The following is the soap log.  

How do I get rid of the namespace "s0:" from the SOAP Body

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://www.w3.org/2003/05/soap-envelope'>
  <SOAP-ENV:Header>
              .
   </SOAP-ENV:Header>
​  <SOAP-ENV:Body>
   <OTA_HotelRatePlanNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:s01="http://www.
2
0 1191
Article Athanassios Hatzis · Sep 12, 2017 3m read


Introduction

Have you noticed that what ever the model and data structure in databases we cannot escape from the fundamental principle of managing data allocation space with references, i.e. pointer based logic, memory addressing ? Isn’t this the fundamental mechanism of programming languages too ? The problem I see with all these modern NoSQL databases, especially graph databases is that they provide a higher level abstraction for the end developer but they hide and lock completely the access to the low level storage and retrieval mechanism including indexes.

5
0 644
Question Sean Connelly · May 10, 2017

I'm looking at adding multilingual support to a couple of open source projects I'm working on. The solutions are already developed in CSP so I am not looking for alternative approaches.

I'm wondering what would be the best approach for CSP and separate JavaScript files.

Initially I was wondering if I should bake the default system language text at compile time, or provide the end user with a language selection option at run time.

I came across $$$TEXT reading the docs...

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.

20
0 643
Question Ruslan K · Aug 23, 2017

When I add a parameter to dataCombo for loading it on runtime and the property editable set to 0, dynamically loading content for dropdown through parameter works fine.

But, when I set editable to 1, to implement user search in dataCombo, loading through parameter is not working, it is loaded all rows, but I need loading on some parameter. It don't see the parameter, when editable is 1.

Is it normal behavior of dataCombo? But how about user search in dataCombo on this case? When editable is 0, we can't enter any character in dataCombo.

2
0 393
Question Soufiane Amroun · Sep 11, 2017

Hi world, i work actually on an intersystems project , my question is :

i've my Rest class that receive an HTTP request from a client side , i want to know how extract data from this http request , for example : date , id_client and measures taken by the client ( i need to extract  a weight value catched from a connected scale to my smart phone via bluetooth ) .

Thank you

4
0 490
Question Athanassios Hatzis · Aug 29, 2017

Hi,

I am experimenting with Cache-Python binding.  In the following piece of Python code

import intersys.pythonbind3

conn = intersys.pythonbind3.connection( )
conn.connect_now('localhost[1972]:SAMPLES', '_SYSTEM', '123', None)
samplesDB = intersys.pythonbind3.database(conn)
p10 = samplesDB.openid("Sample.Person",'10',-1,-1)

p10.run_obj_method("PrintPerson",[])

I am opening the 10th record of Sample.Person class and then I am calling an object method (PrintPerson). 

Method PrintPerson()

  {

    Write !, "Name: ", .

14
0 973
Article Chris Stewart · Sep 8, 2017 3m read

a.k.a..  "The World of Widgets Returns!" or "Paternity leave damages Instructional Series momentum"

In our last lesson, we combined 2 separate classes to appear as the same property.  We now have the ability to Update our Widget catalog, but what if we want to Create a Widget?  Thankfully, we've already done 90% of what we need, just by implementing Edits

As we mentioned when creating the REST Services for PUT and POST, the only real difference between creating and updating a record is whether we are passing in an existing ID or creating a %New

0
0 1071
Question Razvan Prepelita · Sep 8, 2017

My scenario is:

I have a Cache method that

call a REST -> JSON -response  > INSERT/UPDATE the source table of a DeepSee Cube -> Update the Cube only for this change -

I want to view in .NET Application the changes. For that I want that this method should be executed at a defined interval.

Or maybe the solution is a Refresh button in .NET page. is there any way to access a Cache method from .NET?

Any idea how to do it?

1
0 494
Question Laura Cavanaugh · Aug 10, 2017

I have a <tablePane> element with OnCreateResultSet and OnExecuteResultSet methods; autoExecute is "false" but the OnCreateResultSet and OnExecuteResultSet methods are nevertheless called on page load.

I want the user to be able to press a button to submit the parameters, then have this button call tablePane.executeQuery() to execute the query.

autoExecute is simply igonored.  We're on 2014.1.3 with plans to upgrade to 2016 soon.

Are there more settings I need to set? Or is this attribute simply ignored?

5
0 424
Question Hans Rietveld · Aug 29, 2017
Caché Version String: Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2016.2.1

 

We have a mirrored Ensemble system (110,  backup and 210, primary). At one time (14:00) there is a disruption in the production. The messages are not being processed. 

Looking at the pButtons (every 10 seconds) I see the following abnormal at the WDphase


and the backup

The different values of WDphase are:

0: Idle (WD is not running)

5: WD is updating the Write Image Journal (WIJ) file.

7: WD is committing WIJ and Journal.

8: Databases are being updated.

3
0 909
Article Nathan Ng · Sep 7, 2017 4m read

Introduction

Twilio is a great tool for programmatically initiating and managing phone calls. In this example we'll go over basic account setup, create a Cache Class to manage our interaction with the Twilio API, and initiate a phone call from the Cache Terminal.

The full Class used in this example is available on GitHub as well.

Setup

  1. Create an account on twilio
  2. Add a new phone number under the Manage Numbers Page.
    • This will be the number you call from.
  3. Add a new caller ID under the Verified Caller IDs Page.
    • This will be the number you call to.
0
1 1093
Article Ben Spead · Sep 6, 2017 1m read

This 'feature' have been around for a long time, but I don't see any articles on it so I thought I would make everyone aware.

A method is provided to customize the appearance of the Cache cube icon in the system tray so different instances can be visually distinguished.  When csystray.exe, the Cache/Ensemble cube program, starts, it will look for files named "up.ico" and "down.ico" in the \bin directory below the instance installation directory.  If these .ico files are present, csystray.exe will load the icons and display them in place of the default blue and gray Cache/Ensemble cube icons.

5
1 1430