Question Rubens Silva · Jul 27, 2017

Hello.
I'm having difficulties trying to figure (if possible) how to  create an URL that also matches query parameters.
I tried:
 <Route Url="/:namespace/test(\?id\=):id" Method="GET" Call="Test"/>
 <Route Url="/:namespace/test?(id)=:id" Method="GET" Call="Test"/>
 <Route Url="/:namespace/test?id=:id" Method="GET" Call="Test"/>

But none of these worked.

Is it possible when using %CSP.REST or am I restricted to using route parameters?
Thank you.
EDIT:
 

Forget about the "id" parameter name. It's a bad sample: normally id are by definition, able to be hierarchically included in the URI.
Think on id as bein

5
0 2626
InterSystems Official RB Omo · Jul 27, 2017

July 27, 2017 – Alert: Linux Defects Can Corrupt Mirror Copies of Journal Files

InterSystems has encountered defects in Linux which can corrupt copies of journal files that are generated on a mirror backup or async member; this occurs only in certain specific configurations. The original mirror journal file created on the primary member is not affected.

The risk is only exposed in Caché, Ensemble, and HealthShare distributions beginning with version 2017.1.0. The risk only exists on Linux and only if a backup or async mirror member is configured to use the rtkaio library.

The rtkaio library is di


0
0 707
Question Eduard Lebedyuk · Jul 26, 2017

I have tried to create Ensemble SOAP passthrough operation following this guide.

Here's my production configuration (after steps 1-4):

Class Passthrough.Production Extends Ens.Production{XData ProductionDefinition{<Production Name="Passthrough.Production" LogGeneralTraceEvents="false"><Description></Description><ActorPoolSize>2</ActorPoolSize><Item Name="PassthroughOperation" Category="" ClassName="EnsLib.SOAP.GenericOperation" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule=""><Setting Target="Adapter" Name="HTTPServer"
3
0 736
Article David Loveluck · Jul 26, 2017 3m read

What is APM?

I am talking about Application Performance Management at global summit, and several people have asked what that means so it is time for a bit of an explanation.

APM or Application Performance Management (sometimes referred to as Application Performance Monitoring) has a very good (if complicated) explanation on Wikipedia but to me it just means looking at performance from the users’ point of view and the level of service provided to them.

The ‘user’ in this context could mean a line of business owner who is paying for the application or it could mean someone in front of a screen usin

0
1 799
Question sansa stark · Jul 26, 2017

Hi All, I tried to connect Crystal report with Cache 5.0 Its Show Crystal Report error as "The report you requested requires further information." How to resolve the issue in C#.

1
0 668
Question Sébastien Demoustiez · Jul 25, 2017

Hello,

I try to create an ECP between to CACHE server.

The ECP is working, the remote DB is created and the namespace is created and linked on the remote DB.

The table appears on the server but when I try to access I get this message:

ERREUR #5540: SQLCODE : Message 400 : Process 4076 failed to compile Cached Query Class %sqlcq.###.cls6 with these errors: ERREUR #5002: Erreur Cache: <COLLATION NOT SUPPORTED>getdependencyclasses+54^%occDepend SQLTEXT: SELECT ...

My servers have different cache version: 2016.2 and 2015.2, perhaps that's my problem ?

Thanks in advance

Sébastien

3
0 1025
Question Chris Bransden · Jul 25, 2017

Hi! I am trying to automatically populate an array property of cash amounts keyed by currency ("GBP", "USD", etc). This property needs to be NOT stored on the database and visible via SQL and the cache object. 

Here's my attempt. Ultimately the array will be populated based on the the some child classes, but for now I'm just hardcoding it:

Property Amounts As array Of %Numeric [ SqlComputeCode = { set {*} = ##class(ContainerSize).GetTotalAmounts()}, SqlComputed, Transient ];
ClassMethod GetTotalAmounts(thisID) As %Collection.ArrayOfDT{set arrAmounts=##class(%Collection.ArrayOfDT).
4
0 794
Announcement Evgeny Shvarov · Jul 24, 2017

Hi, Community!

Recently we announced Developer Community Meetup in Cambridge, MA. Let me describe what is it. 

Meetup it's a one evening event where you can enjoy some sessions by presenters (today InterSystems engineers, tomorrow you can be a presenter) and chat with local developers and InterSystems developers, engineers and product managers (depends on who is in town) and discuss your problems, experience, and success with InterSystems technologies.

InterSystems would provide the place, technical sessions, some food and beverages. 

We think the Developer Community would benefit from it.

0
0 323
Article Eduard Lebedyuk · Oct 18, 2016 7m read

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.

3
0 2534
Article Fabian Haupt · Sep 2, 2016 2m read

By now it's a commonplace how to implement a basic REST API in Caché and there is good documentation about it here: REST in Caché

A question that comes up from time to time is:

How can I make a parameter in my REST url optional?

Simply put, is it possible to create a URL map in Caché that maps a URL like this:

http://server/API/object///old

While this might look odd, this is actually a valid URL. You can read the details in RFC3986 section 3.3.

The framework provided by %CSP.Rest actually allows us to create maps that match the above URL. In the above referenced documenation this is only ment

1
1 2897
Question wx fg · Jul 18, 2017

hi

  I query large mount of rows from one table with JDBC, and will prompt <store> error.  I found that it was out of process memory (default 16M, max 49M in version 2010.2) .

  so my question is : how to release memory for large  mount of rows  query? or how to resolve this error?

24
0 1061
Question CM Wang · Jul 21, 2017

I get a third party routine which outputs some messages to standard output during execution.

Is it possible that I could direct the messages to other device so my terminal would never see this messages?

Thanks.

1
0 741
Question Russell Knight · Jul 20, 2017

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.

2
0 389
Question John Murray · Apr 27, 2017

Using Chrome on my Android mobile I can't seem to get to a specific submenu option. For example in the screenshot below I use the menu button to bring up the first-level menu. Then I tap on "COMMUNITY". The second-level menu appears briefly, but doesn't give me time to tap the entry I want ("FEEDBACK") before it decides to take me to the page headed "Connect with Members".

Am I missing a trick, or is this a bug?

2
0 427
Question Pravin Barton · May 2, 2017

It would be nice if there were a permalink displayed for each comment. That way I could bookmark or send a link to a specific comment. I can see links to my own comments in the My Account page, but I don't see any way to get permalinks for other people's comments.

3
0 266
Question Laura Cavanaugh · Jul 17, 2017

I have a query string that I am creating programmatically, based on some user inputs.  The user might search on 5 fields, or 8 fields, or no fields.

In my sql statment, some of these fields require parameters in the %Execute statement.

For example:

if user picks lastname, sql = "select * from person where lastname = ?"

if user also picks age, sql = "select * from person where lastname=? and age > ?"

I then have these lines of code to create my result set:

set statement = %SQL.Statement

statement.%Prepare

resultset = statement.%Execute(param1, param2)

-- but it might be 

resultset = statement.%execute(pa

28
0 23060
Question Steve Pisani · Jul 19, 2017

Hi,

Is it possible to use the value of a column that is populated by its own subquery,  in the WHERE clause of the outer-query ?

The following fails (it does not parse syntactically):

SELECT A, B, (SELECT S1 FROM Table2) "C" FROM Table1 WHERE C>10

I guess I could wrap it up as in inner query of it's own - this way (which works) :

Select * from 
(SELECT A, B, (SELECT S1 FROM Table2) "C" FROM Table1)
where C>10

but I was wondering if there was some syntax in the original snippet that I could do instead.

Thanks - Steve

3
0 849
Question Barry Davis · Jul 18, 2017

Hello! So, my knowledge on the Cache database is extremely limited, and I was hoping I could find some assistance here. I'm connecting to the DB via ODBC. The table(s) I'm interested in are named as such nameYYYYMMDD. So each day, a new table is created with logs. We'd like to grab these records each day, for the previous day's logs. 

My question is, since the table name changes every day, how can I go about automating this? Can I craft a variable that is the table name plus some date functions and use that? Failing that, it might be possible to create a new table and copy the data over, but I

2
0 747
Question Maarten Van den Vreken · Jul 18, 2017

Hi all,

I was wondering if there is any way to trigger the compilation of a class based on the compilation of another (unrelated) class. For example:

Class 1 = test.class

Class 2 = test.class.type.one

Class 3 = test.class.type.two

Every time class 2 or class 3 is compiled in Studio I would like to have class 1 automatically compiled as well.

The reason I need this is because class 1 has a method with CodeMode set to objectgenerator which generates some code based on what is found in classes 2 and 3.

8
2 865