Question
· Jun 1, 2017
Casting JSON

I'm doing a REST service. A method has as body parameter a JSON corresponding to a class A.

In my production I have class A so that I retrieve the parameters using a dynamic object, such that:

Set body = ##class(%DynamicObject).%FromJSON(%request.Content)
Set myObjectA = ##class(A).%New()
Set myObjectA.Id = body.Id
Set myObjectA.Name = body.Name
Set myObjectA.Date = body.Date
Set myObjectA.Salary = body.Salary

I would like to know if I can avoid doing the manual mapping, doing a casting, since I am sure that FromJSON will return a class A. Something like this:

0 9
1 980

Hi all, This is a bit embarrassing, and not that critical. I have a local instance of Caché 2016 on my computer, for playing around with. I was attempting to set up two-factor authentication on this instance, and I thought I simply disabled all users except for my own user and enabled two-factor for this user. The next time I tried to login to the Management portal, I received a Server Availability Error:

http://localhost:57772/csp/sys/UtilHome.csp

0 9
0 2.6K
Question
· Jun 14, 2017
SQL Query for Range

Hello,

I have a question related to running an SQL query for range of data.

I am running a query like:

Select A,B from table_name where A>=12345 AND A<=12390

- Where A and B are my two of the properties under the mentioned table/class definition

- A is an integer property

Question: The result of the above query does not return me all the values between the mentioned range of integer though I do have all the values in that range. I see that some of the values are missing in result.

0 9
0 505
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.6K
Article
· Dec 7, 2017 3m read
Asynchronous REST

In this article I'd like to discuss asynchronous REST and approaches to implementing it.

Why do we need asynchronous REST? Simply put - answering the request takes too much time. While most requests usually can be satisfied immediately, some can't. The reasons are varied:

  • You need to perform time-consuming calculations
  • Performing action actually takes time (for example container creation)
  • etc.

The solution to these problems is asynchronous REST. Asynchronous REST works by separating request and real response. Here's an example, let's consider the following simple async REST broker:

3 9
0 1.8K

Hello,

I have a DB server (ser-app-db) where cache is installed as server.

I have a Web server (ser-app-w) where cache is installed as web server and configured as CSP gateway.

I followed the configuration guide (https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY...) and ser-app-w perfectly display the CSP and CLS pages.

But that's not working for my REST service, for exemple with the REST sample:

0 9
0 1.4K

Overview

Encryption of sensitive data becomes more and more important for applications. For example patient names, SSN, address-data or credit card-numbers etc..

Cache supports different flavors of encryption. Block-level database encryption and data-element encryption. The block-level database encryption protects an entire database. The decryption/encryption is done when a block is written/read to or from the database and has very little impact on the performance.

With data-element encryption only certain data-fields are encrypted. Fields that contain sensitive data like patient data or credit-card numbers. Data-element encryption is also useful if a re-encryption is required periodically. With data-element encryption it is the responsibility of the application to encrypt/decrypt the data.

Both encryption methods leverage the managed key encryption infrastructure of Caché.

The following article describes a sample use-case where data-element encryption is used to encrypt person data.

But what if you have hundreds of thousands of records with an encrypted datafield and you have the need to search that field? Decryption of the field-values prior to the search is not an option. What about indices?

This article describes a possible solution and develops step-by-step a small example how you can use SQL and indices to search encrypted fields.

5 9
2 1.8K
Question
· Nov 8, 2017
Node.js version

Does anyone know where to find a cache.node that works with Cache version 2016.1.1.108.0? I am currently getting this:

Error: Unable to load shared library C:\InterSystems\TryCache\bin\cache.node''

I am using Windows 7 Pro + SP1.

Thanks!

0 9
0 647

To simplify the upgrade processes and to keep up with industry standards, we decided to make Atelier only available as an Eclipse plugin. Those of you who are currently using a standalone Atelier client will not be able to upgrade to a later version.

Please go to the Atelier Download page or see the sections below for the detailed instructions about installing Eclipse and the Atelier plugin. Feel free to reach out to support or leave a comment down below if you have any questions.

5 9
0 1.7K
Question
· Dec 15, 2017
cache operator

In if condition what is the difference between specifying the single operator and double operator? For example, what is the difference between (&& and &) or (|| and !)

0 9
0 797

Hello,

I'm currently exploring alternatives to CSP/services and ODBC/Sql Maps for access to Caché. I'm not seeing a library which would interest me, so am considering creating one myself.

Does 'CacheConnection' in C# use RPC of some sort, or a defined protocol to communicate with Caché, or does it do so over telnet with scripted commands? I would assume the former. If so, is this a publicly documented protocol that can be implemented by library developers?

Any guidance in this area would be appreciated.

0 9
0 835
Question
· Sep 14, 2017
Conflict Resolution Wizard

Hi

When trying to sync a class to the server where the server class has been updated by another user, I, as expected, get the Conflict Resolution Wizard.

I can then use the wizard to copy code from the server side to my local copy using the arrows also as expected.

But when I have integrated the remote code into what I think is my local copy how do I save it so that it gets integrated into my local copy and synchronised to the server.

0 9
0 591

hi-

Can someone give me an example of how to JOB a class method that requires an array of values to be passed to it by reference.

This is what I tried, but am getting compile errors because of the .params

job ##class(%SYSTEM.OBJ.FM2Class).All(.params)::5

Any thoughts on how to accomplish this, the simplest way. I would like to avoid writing all of this to some global and having to write some wrapper to pick it up and then call the class method, which I certainly could do. but is this the only way to do it?

0 9
1 1.6K

Hy.

I set up cache in container, which is working fine. But when accessing managment portal the default user was alway Unknown user and no username or password were required. So i disabled the Unknow user in the Security section, but now i keep getting an error access denid.

0 9
0 3.5K

I was looking at the OrefToArray^%occRun in the %CSP.ErrorLog page in version 2016. However, we're on version 2014, and that method does not seem to exist yet. I would love a good way to swizzle out the info in the %request, %session, %response objects for the error log for my own error page, in version 2014. I don't want to have to go through and get all the properties manually, but I will if I must. Any other good way already written?

Thanks,

Laura

0 9
1 599

In addition to its general security, Caché offers SQL security with a granularity of a single row. This is called row-level security. With row-level security, each row holds a list of authorized viewers, which can be either users or roles. By default access is determined at object modification Some time ago I became interested in determining row-level security at runtime. Here's how to implement it.

4 9
0 814

I am looking for experience of people running Veeam with Caché databases.

Tips/Tricks/General questions like; what Veeam features are you using, what your backup cycle looks like, where does your data end up, what recovery/integrity checks you do, what sort of compression/dedupe you get.

Also what questions _you_ have and what problems you might be trying to solve.

0 9
0 2K

Hello experts,

I’m working on an "Sort After" (]]) bug that I traced back to some weird behavior in ObjectScript. Perhaps someone can enlighten me…

The problem is as follows:

Let’s say we have:

Set A = “1.0”
Set B = “2.2”

If you execute the command ‘Sort After’ (]]), you get the following:

W A]]B
​1

…Which is wrong, A does NOT sort after B. The output should be 0.

If you set A and B to numeric values, it correctly outputs false (0):

set A = 1.0
set B = 2.2
​W A]]B

0

0 9
0 492
Question
· Nov 16, 2017
Caché service does not start

Help, after a day of coding, I wanted to backup my files. I found out that alle of my 3 instances of caché refuse to start.

the error says: cstart-exe-fout (112 Service for Caché instance did not start).

Is there a way to solve this? (off course the management portal does not work either.)

I think there has been a power interruption as the battery from my laptop does not work, and the power went off before

shutdown.

Thanks in advance!

0 9
0 5.9K