Interoperability

Syndicate content 10 

I'm connecting to a remote device using TCP. It has a binary protocol.

set host = ""
set port = ""
set io = $io
set device = "|TCP|7000"

set timeout = 2
open device:(host:port:"M")
use device:(/IOT="RAW")
read string:timeout

use io
zzdump string

The problem is when reading from it, I get a 0A (also known as 10 or \n or linefeed) byte, which terminates the read.

Expected output:

0000: 42 00 7B 0A 11

But I get this output:

0000: 42 00 7B

How can I fix that?

 

Some additional info:

  • read completes in 0.1 seconds despite 2 seconds timeout.
  • $zb contains the value of 0D
Last answer 28 February 2019
0 1
0

comments

51

views

0

rating

Hi All,

I created a Business Operation to Integrate with Amazon S3.
I have used HTTP Outbound Adapter for the same. Used Get method of Adapter Class.
Basically in a request I want to send Unique File Name and File and in Response I want to get Version ID and if operation was successful, then set flag to true.

I have created a class for request in that I have two properties, as shown Below :
   

    Property fileName As %String;
    Property file As %GlobalBinaryStream;

This is in my Operation Class
 

            set pResponse = ##Class(SaveFileResponse).%New()
            set fileName = pRequest.fileName
            set file = pRequest.fil

Last comment 4 February 2019
0 2
0

answers

138

views

0

rating

Hello Cache Developers:  I was curious if anyone has ever created a TWAIN interface to their Cache Application?   I am new to TWAIN and hence the reason for this question.  From what I understand, TWAIN is software used by various digital imaging software and TWAIN provides an API for applications to call to be able to import images into their application.   I work with a healthcare application and was wondering what types of things are required for a Cache Web Application to call the TWAIN API to be able to load images into a Cache table.    Any input, sample code, or suggestions is appreciated.   Thanks and Have a Great Day!    Happy Coding.

Last answer 27 January 2019 Last comment 29 January 2019
0 3
100

views

+ 1

rating

Hi,

I need to route a message synchronously to multiple targets using a routing rule.

In IRIS I built a general routing rule set, made up of a couple of rules. For one Rule in particular, and based on a common condition, I want to send the incoming message to 2 different targets. (no transformation is used)

I can select, in the single SEND action, multiple target names, or, I can create consecutive SEND actions, one after the other, each sending to their specific target.

The issue I have is that I want to do this routing synchronously, and only send the document to the second target, after the first target has finished processing (returns some response).

I know that - rather than using a routing rule, I can use a Business Process, however, I was hoping to avoid that if I can.

Any ideas how to send synchronously from a generic routing rule ?

Thanks - 

Steve 

Last answer 21 November 2018
0 1
0

comments

62

views

0

rating

Hi,

I ran into the Issue https://hibernate.atlassian.net/browse/HHH-10620. The workaround  described at https://community.intersystems.com/post/support-java-hibernate-5 worked for me. I'm using Hibernate Version 5.3.2.Final.

It would be nice if someone from InterSystems could fix the the problem in Hibernate. That was mentioned in https://community.intersystems.com/post/support-java-hibernate-5 but it doesn't seem to have happened.

Last answer 13 November 2018 Last comment 13 November 2018
1 2
109

views

+ 1

rating

Hi All,

Actually, I'm developing few restful API's. I want to create a authentication tokens and display it on my login restful API. If I'm using CSP sessionId, how can I validate the session Id's in another or continues restful API's. else, is there any other approach to handle this task. 

My Primary goal is, I have to integrate 2 different front end applications. One is Zen framework another one is web pages from Python. 

If any lead, it would be appreciated. 

Thanks,

Arun Kumar Durairaj. 

0 1
0

answers

0

comments

97

views

0

rating

Ive been asked to investigate Intersystems Cache' for a new software initiative and was hoping to be able to download a limited-use or dev license to kick the tires but I need it for a couple of specific OS builds.  AIX and Linux (CENTOS).  I don't see a place to download specific versions, other than Windows, various builds of Unix and that's about it.  Can someone give me some guidance on how to make sure I'm downloading the right item to build some test instances with?  

thank you in advance :)

tom

Last answer 7 September 2018
0 3
0

comments

137

views

0

rating

I want to call java method and return $lb structure from it.

JDBC jar seems to contain relevant class -  com.intersys.jdbc.CacheListBuilder, but so far I only managed to return a string that looks like a list.

Here's my java code:

package isc.poi;

import com.intersys.jdbc.CacheListBuilder;
import java.sql.SQLException;

public class Test {

    public static String Test() throws SQLException
    {
        CacheListBuilder list = new CacheListBuilder("UTF8");
        list.set(123);
        list.set(456);
        list.set("\"abc\"");

        return list.toString();
    }
}

And Cache part

Last answer 27 August 2018 Last comment 27 August 2018
0 1
109

views

0

rating

I'm working on a task where I need to apply journal file records to another database. I can't use Journal.Restore class methods as I need to perform some data transformation, therefore I'm reading journal file record by record using %SYS.Journal.Record API.  

It seems that there are only few journal records that I need to process, namely:

Type TypeName
6    SET
7    KILL
8    KILLdes
9    ZKILL
10   RemoteSET
11   RemoteKILL
12   RemoteZKILL
14   BitSET

No problem, while I'm just curious: which COS command could provide KILLdes record? I've met it only once in the context like this:

KILLdes ^SYS("Task","TaskD",1006,"EmailOnError",1)

I can't imagine that Caché is smart enough to recognize the command series

Last answer 7 June 2018 Last comment 7 June 2018
0 3
145

views

0

rating

Hi - has anyone successfully used the python binding on a mac. I carried out the install instructions per InterSystems documentation and it fails completely. 204 warnings and 9 errors. Obviously this was never tested by InterSystems. Is it even worth pursuing?

Thanks

Last answer 5 June 2018 Last comment 6 June 2018
0 3
211

views

0

rating

Hello,

 

I am looking for ObjectScript implementation of crypt-compatible function, that generates md5 salted hashes (output is in the form of $1$salt$hash). From what I understand it uses its own spin on md5 algorithm:

 

https://en.wikipedia.org/wiki/Crypt_(C)
http://php.net/manual/en/function.crypt.php
http://www.gnu.org/software/libc/manual/html_node/crypt.html

 

 

Does Cache have something like that built in?

Has somebody here seen it implemented somewhere?

 

Thanks.

 

 

Added:

I have found description of the underlying algorithm here: https://www.vidarholen.net/contents/blog/?p=32

 

Last answer 28 September 2017 Last comment 29 September 2017
0 2
206

views

0

rating

Hi.

It is easy to receive JSON representation or dynamic Array from %ListOfDataTypes:

set l=##class(%ListOfDataTypes).%New()
do l.Insert("a")
do l.Insert("b")
do l.Insert("c")

set arrStr=l.$toJSON()
zwrite arrStr
set arr=l.$compose([])
zwrite arr

How to make backward conversion? How to receive %ListOfDataTypes from dynamic Array an JSON string?

I've tried

SAMPLES>set list = ##class(%ListOfDataTypes).$fromJSON("[""a"",""b"",""c""]")

%FromObject+21^%Library.RegisteredObject.1 *%Exception.General Compose Compose %FromObject Unable to map from %Library.Array instance to %Library.ListOfDataTypes

and

SAMPLES>write arr.$compose(##class(%ListOfDataTypes).%New())
 
zcompose+44^%Library.AbstractObject.1 *%Exception.General Compose Compose %FromObject Unable to map from %Library.Array instance to %Library.ListOfDataTypes
Last answer 30 June 2017 Last comment 8 February 2016
0 3
680

views

+ 2

rating

I am looking for a general overview of how you would attach a document to a patient record in healthshare.  For instance, an Advance Directive or Living Will.

 

Here are some starter questions:

  1. What format is required, if any?  Can it be a PDF or DOC?
  2. How can/should it be submitted?  HL7? XDS.b?  Embedded in a CCD?

Sorry for the open endedness.  Any info would be helpful while I research this.

Last answer 9 March 2017 Last comment 16 November 2016
0 0
209

views

0

rating

Hello community,
 

I'm triing to use perl with Caché on CentOS 7.

  • Caché is installed and working
  • Reading doc for perl module
  • Adding path of Caché/bin in PATH and LD_LIBRARY_PATH as suggested in doc
  • Creating mMakefile (perl Makefile.PL)
  • Success at compilation (make)
  • Fail at test (make test). And return the following message:

Can't load 'blib/arch/auto/Intersys/PERLBIND/PERLBIND.so' for module Intersys::PERLBIND: libcbind.so: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 190.
 at test.pl line 10.

The test are a simple file that try to load the module in perl and connect to Caché.

But it doesn't pass the module importation.

After digging a little, when loading the module compiled (PERLBIND.so) crash. Perl return that after the return of the library. No because he can't get it

Last answer 30 January 2017 Last comment 31 January 2017
0 1
262

views

0

rating

Recently I came across a very strong statement to the effect that InterSystems.Data.CacheClient.dll library works fast because it does not open a TCP/IP connection, instead it works in the same process as a database. It made me pause for quite some time. Firstly because .Net Managed Provider, which utilises this library, opens TCP/IP connection to the database (and it is stated in the documentation "Using .NET and the ADO.NET Managed Provider with Caché"). And secondly, because as far as I know only eXtreme applications attach themselves to the process. Besides, CacheClient for the most part just implements the functionality of the Caché system and user classes. And in .Net Managed Provider architecture Caché Object Server is responsible for connection to a database.

So who is right and who is wrong? Is it correct to state that CacheClient.dll operates in the same process as a database or is it just inapplicable? Will be really grateful for your thoughts and input.

Last comment 16 January 2017
0 5
0

answers

712

views

+ 1

rating

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? 

Thanks --Laura

Last answer 17 October 2016 Last comment 17 October 2016
0 2
168

views

0

rating

Using Node.js with Caché - Introduction says the following:

The cache.node module is the Node.js interface for the GlobalsDB kit, which can be obtained from the GlobalsDB download page (http://globalsdb.org/downloads/). The Node.js interface can be used with either Caché or the free GlobalsDB database.

The installation kit includes detailed documentation on how to install and configure the cache.node module.

Last answer 5 August 2016 Last comment 5 August 2016
0 1
491

views

0

rating

I have a MySQL server with "posts" table.

I also have a Caché server with "downloadedposts" table. 

They are connected from Caché to MySQL via SQL Gateway

I want to keep Caché table synced with MySQL one  (MySQL "posts" table is a master copy), so periodically Caché queries MySQL server and downloads data. So far so good, and if a record appears or changes in MySQL table, Caché downloads the changes.

The problem I'm encountering is that sometimes rows would be deleted from  MySQL "posts" table.

How do I synchronize deletions?

Last answer 27 June 2016 Last comment 24 June 2016
0 1
566

views

+ 2

rating

Hello WRC.

Is possible to obtain a node-cache modul for the nodeJS ver.4.4.4. and actual Caché 2015... ?

And what is the expected outlook of this.

A note about this new portal: If I put into "search box" some text with dot like .js or .css ( for example: test.js )  , I obtaint error page. Try it.

Of course, this "Developer Community" is nice, the right way.

Nice day for all, Jan Krestyn

 

Last answer 17 June 2016
0 1
0

comments

260

views

0

rating

Hello,

I am trying to use %ZEN.proxyObject to send out in JSON format so I do:

    set tProxyRequest = ##class(%ZEN.proxyObject).%New()
    set tProxyRequest.notanumber = "28001"
    set tProxyRequest.aboolean = "true"
    
    set tBody = ##class(%GlobalCharacterStream).%New()
    do ##class(Ens.Util.JSON).ObjectToJSONStream(tProxyRequest,.tBody,"aelotwu")
    w tBody.Read()

and I get:

{
        "aboolean":"true",
        "notanumber":28001
}

But I want this:

{
        "aboolean":true,
        "notanumber":"28001"
}

 

Help please !

Last comment 17 February 2016
0 6
0

answers

597

views

0

rating

Hi,

We do have a production including a SOAP.OutboundAdapter that make a request to a .NET WCF Service. The response from that service vary in size. When it come to large one, we talk about maybe 8000 records (with 6-8 attributes per record) in xml, the adapter always give a timout. Even if we put a high number of seconds or set -1. After 1 1/2h still nothing get back. It's just standing there and waiting for ever.

Our .NET developer have look at it (on the WCF-service)  and from ther point of view they say that it seems like Ensemle can't handle such big responses.

In .Net it.s possible to put the property "maxReceivedMessageSize" when they expecting large size responses.

Is it possible to do the same in ensemble or is it another best practise to solve this problem?

Sincerely, Michael Lundberg

 

 

 

Last comment 12 February 2016
0 3
0

answers

224

views

0

rating