#Caché

30 Followers · 4.6K Posts

  

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

Documentation.

Question Pavithra Rajamohan · Oct 13, 2020

Hello,

I am trying to create a HL7 message (REF_I12 message) using variables extracted from a Dynamic Object and need some advice about segment creation issues that I am having. Some background info: I receive a JSON response from an API call and used %FromJSON to convert the response to an Dynamic Object. Some of the items in the response are repeated such as NOKName, NOKrelationship.

Using the methods suggested in this post (https://community.intersystems.com/post/advice-about-json-conversions-and-reading-outputs-dynamic-objects

3
0 931
Article Jin Kim · Oct 15, 2020 5m read

Hello Developers!

Previously, I shared with you all a handy operational analytics dashboard you can build to visualize key message processing metrics, such as number of inbound/outbound messages, average processing times, etc.

This time around, I’d like to walk you through an enhanced log monitor using a workflow many of you are already familiar with – working with alerts as messages inside a production, creating routing rules to filter and route alerts, and using pre-built components like the email adapter to send notifications at a granular level.

0
1 736
Question Davidson Espindola · Mar 3, 2017

Hi, all

I have the following problem in generating a PDF report in ZEN, which has many items, a general total of approximately 30,000 items, but gives an error, I can generate a report with a maximum of 8,000 items, which may be wrong.

4
0 1703
Question Nora Hutchison · Oct 14, 2020

–  I want to “copy” a file to another, appending if the file already exists. The below code works, except it overwrites the new file, rather than append.  The documentation says CopyFile will append

//Both files exists, so we can combine them
                               
                 set tsc=##class(%File).CopyFile("D:\Files\Out\Vigilanz\AD_Lawson10132020.txt","D:\Files\Out\Vigilanz\employee10132020.txt"
                                if $$$ISOK(tsc)
                                {
                               

2
0 754
Question Scott Roth · Oct 9, 2020

I noticed when creating Record Map's within Ensemble that it is creating a Persistent cache table as it translates the file and puts it into the Record Map data structure.

I was wondering if there was a way to add a column to the cache table that is Hidden from the record map, but is a calculated date value on when that record was inserted? 

From time to time I have gotten questions about what was valued in the incoming data stream, and I thought it would be helpful to add a date so I can sort on by which date that record came in on.

4
0 364
Question Rodrigo Souza · Oct 8, 2020

Hi everyone, i'm using a render server to make pdf output with zen report and everything was fine till recently i've been getting this error message and i have no idea what it means, i'd be very thankfull if someone could help or got into the same situation.

Error message:

ERROR #5001: net.sf.saxon.trans.XPathException: org.apache.fop.fo.ValidationException: "fo:table-body" is missing child elements. 
Required content model: marker* (table-row+|table-cell+) (See position 817:-1)

This error seems to be "random" if i try to render the same report without changing a single thing it works.

4
0 726
Question Salma Sarwar · Oct 6, 2020

Hi

I would like to create a new message of a particular type and append various segments programmatically.  I have started with the following snippet.  What I am currently finding difficult is to define a segment of a particular segment structure.  I would like to append a pid segment of 2.3.1 to my message.  I know I could you the importfromstring but I wanted to know whether there was a better way of achieving this.

Set tOutputMessage = ##class(EnsLib.HL7.Message).%New()
Set target.DocType="2.3.1:DFT_P03"

#Dim tPID As EnsLib.HL7.Segment

tPID.

2
0 902
Article Henrique Dias · Oct 6, 2020 2m read

What is npm-iris? 

N.P.M stands for "No Project Mess."

N.P.M. is a Project & Task Management app that uses InterSystems IRIS and Bootstrap 4.

No Project Mess is created to help developers and small business companies to reduce complexity in their daily problems, with a simple and intuitive projects and tasks management software. 

It offers different views for your tasks, from a spreadsheet, kanban, calendar, or even Gantt!

0
0 474
Question Norman W. Freeman · Oct 1, 2020

If a global node contains special characters, (eg : a line returns), it will be displayed like this in Portal ("System > Globals > View Global Data" panel) :

^A(1) = "this is"_$c(13,10)_"a test"

I would like to export global data to a txt file using a similar format.

I already wrote the main code (that loops on all nodes and dump them to file), the problem is how to handle special characters.
For the moment I replace them manually one by one. It works, but it's far from perfect :

set text = ... //get global data
set text = $replace(text,"""","""""") //double the quotes
set text = $replace(text,$c(13),"""_$c(13)_""") 
set text = $replace(text,$c(10),"""_$c(10)_""")
...
5
0 2078
Question Yone Moreno · Oct 2, 2020

Hello,

We would need your help:

We are processing a HL7 message.

Its OBX segment has 4318 characters

1) We get the OBX with the following line of code:

set textoCompleto = request.GetValueAt("5:3.2")

When we output its length with:

$$$LOGINFO("textoCompleto: "_textoCompleto)

It shows:

     $LENGTH(textoCompleto): 3497

 - So as we see it is being shortened

2) We get the OBX with the following line of code:

When we output its length with:

1
0 452
Question Lionel Woods · Sep 30, 2020

Trying to extract "x, y", and only the "x" is being extracted because the "," is the separator  

The ":"  is set to extract everything after this 

"Working Example": xyz,

"Not  Working Example": "x,  y",

$EXTRACT($P($P(pData,",",78),":",2),2,$L($P($P(pData,",",78),":",2))-1)

Any ideas on how to extract the whole field on the example with the "," in the field

6
0 686
Question MohanaPriya Vijayan · Oct 1, 2020

Hi Community,

I have a property in a class, properties Initial Expression set to 1 Property Test As %Status [ InitialExpression = "1" ];, while updating the property we have set to 0 through code. If I look the field in Logic Mode its shows 0 but in Display and ODBC mode why it shows, ERROR #00: (no error description). Does this Error cause any problem? What are the reasons for this error #00? Kindly help.

Thanks in advance.

2
1 560
Question Ruslan K · Oct 1, 2020

Hello!

I have installed windows 10 and cache 2018.1.0.184.0

I run terminal not from cache cube but through localDemon.exe (for report outputting from my programs to excel).

All worked fine but after some time error occured "Cannot load supporting modules"  (in attached file) and localDemon.exe is not launching.

But terminal from cache cube is still launching without problems (but from it reports are not working, localDemon.exe is required)

I thought it is windows defender or antivirus put some  localDemon.exe module to quarantine but quarantine is empty.

2
0 342
Article Chris Stewart · Apr 17, 2017 4m read

So, one day you're working away at WidgetsDirect, the leading supplier of widget and widget accessories, when your boss asks you to develop the new customer facing portal to allow the client base to access the next generation of Widgets..... and he wants you to use Angular 1.x to read into the department's Caché server.   

There's only one problem:  You've never used Angular, and don't know how to make it talk to Caché.

23
3 5239
Question Gunwant Kapade · Oct 1, 2020

Hi All,

I hope all are good.

I would like to know that whether InterSystems will support LDAPS or not. I have idea about LDAP but not about LDAPS. Please suggest me If anyone has any documents or links.

Thanks and Regards, Gunwant

1
0 351
Question Guilherme Emmerick · Sep 23, 2020

I need to get a file in a directory and when clicking on the download button, this file will be downloaded on the client side.

</head>
<csp:class super="%CSP.Page,Relatorio.GeraCSV">
<body> <input type="button" value="Gera Relatório" onClick="#server(..serve())#"> </body>

ClassMethod serve() As %Status
{
set name = "C:\Users\gpemm\Desktop\myfile.csv"
    #dim sc As %Status = $$$OK
    #dim %response As %CSP.Response
    kill %request.Data
    set %request.Data("STREAMOID",1)= ##class(%CSP.StreamServer).Encrypt(##class(%CSP.StreamServer).GetOidForFile(name))
    if ##class(%CSP.StreamServer

2
0 685
Discussion Evgeny Shvarov · Sep 28, 2020

Hi developers!

Want to discuss with you the case of %Status.

If you familiar with ObjectScript you know what is it. I'd love to hear the history of the case why it had appeared in ObjectScript but it turned out that almost every system/library classmethods return %Status and there is a whole set of tools to deal with it.

What is does it gives you the responsibility to check the value or %Status of every system method you call.

E.g. if you save the data of the persistent class,  you should never call like this:

do obj.%Save()

you need to call:

set sc=obj.%Save()

if $$$ISERR(sc) do // something or quit.
19
0 1325
Question Ruslan K · Sep 15, 2020

Hello!

I do some http get request. And this is its response

+----------------- general information ---------------
|      oref value: 5
|      class name: %Net.HttpResponse
| reference count: 3
+----------------- attribute values ------------------
|    ContentBoundary = ""
|        ContentInfo = ""
|      ContentLength = 1220
|        ContentType = "text/json"
|               Data = "6@%Stream.

5
0 1577
Question Ben Anderson · Sep 23, 2020

I've run into an issue where job IDs are being retained through multiple calls. My team is doing a rewrite of our system that allows VB6 apps and web apps to directly interact with our Cache databases.

The new process has those applications calling into a WebAPI which then calls into the routines.

In one example of the issue we're having, the VB6 app calls into our api which then does the routine call. The Cache routine I'm working with has a load linetag that loads data into a temporary global called ^SORT($J). Upon completion, the process returns back through the api and the VB6 app.

2
0 309
Discussion Evgeny Shvarov · Sep 21, 2020

Hi Developers!

Recently we discussed the naming convention on packages we deploy and even made some choices.

Here I want to have a conversation on the naming convention for unit tests.

Of course, we wish every good library has unit tests. Here is the documentation and some good articles(one, two, three) regarding it on the Developer Community.

Let's decide on the naming of UnitTests packages?

The suggestion is that unit test classes will all start with the UnitTest package name.

E.g. if your library's class name is:

johndoe.lib.class

The related unit test class will be:

UnitTest.johndoe.lib.class

What about folders?

The suggestion is that unit test classes will live separately from source classes, e.g. in /tests directory.

Here is the example of a repository with unit tests that are named and placed according to the proposal.

What do you think?

6
0 488
Question Mark O'Reilly · Sep 15, 2020

Hi:

I have the following method in a buisness operation that works on localhost but not on our server . I think it's how the firewall is set up but i was wondering if there is a known way around this. It can't correlate XML as it returns a "The browser did not send any authentication information" error. I tried adding in username and password to http request to no avail. We could do a c# proxy on a server but i'm wondering if there is a known way to fix this error within intersystems. As a developer we don't have too much control over our Intersystems TIE server.

1
0 350
Question Norman W. Freeman · Sep 23, 2020

When you export entities like classes, routines, globals in Cache Studio, you usually end up with XML files that looks like this : 

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
    <Class name="base.monitoredpage">
        <Abstract>1</Abstract>
        <Super>%CSP.Page</Super>
        <TimeCreated>63439,41357.461462</TimeCreated>
        <Parameter name="ENCODED">
            <Default>0</Default>
        </Parameter>
        ...
8
0 1526
Question Glenn van Bavel · May 4, 2017

Whenever the Windows SNMP Service restarts, the snmpdbg log says the following. 

13:08:59 :Attempting initial TCP connection(s) with 1 Cache instances ...
13:08:59 :Get connection with ENSEMBLE on port 1972
13:08:59 :Connection refused on port 1972, check if Cache instance ENSEMBLE is started.
13:08:59 :Cache iscsnmp.dll initialized for 1 configs

Ensemble and all productions are running. I've set up Caché SNMP agent on many other servers in our company and those are working fine. However this one server won't budge. 

Does anyone have any idea what the problem may be here? 

Regards,

Glenn

10
0 1396
Question John Lisa · Jul 20, 2020

Hello,

I posted in another thread a short while back regarding accessing (extracting) data from the Cache' database.

I am now told that the (healthcare) system is IDX Groupcast. The kick off project has not started yet but I would like to do some 'homework' and see the data model. I couldn't find too much about this in a Google search. Would anyone have a link or advise for doing some preliminaries? I am already versed in SQL server.

Thanks,

John Lisa

8
0 726
Question Ahmad Bukhtiar · Sep 23, 2020

Any syntax help, i want to check different msg types and then reach out to the value in that particular segment. Here is example, i want to get SSNNumber from a method. Trying to use NOTIN, and Lookup

Class Training.RulesFunctionSet Extends Ens.Rule.FunctionSet

{

ClassMethod getEmiratesId(pHL7 As EnsLib.HL7.Message) As %String
{
SET msgType = pHL7.GetValueAt("MSH:MessageType.TriggerEvent")
 

IF msgType NotIn "A39,A40,O01,O11,O09,R01" {
return pHL7.GetValueAt("PID:SSNNumberPatient")}

IF msgType In "A39,A40" {
 return pHL7.GetValueAt("PIDgrp(1).

5
0 801
Question Rodrigo Mori · Sep 17, 2020

I am trying to create a Procedure in Caché, but this message is showing:

<UNDEFINED>frmit+118^%qaqpsq *mt("v",1)

This is the procedure:

CREATE PROCEDURE testebi.sp_cargainicial()
BEGIN
    INSERT INTO testebi.Fato_Atendimentos (
    PK_OsProcedimento )
    SELECT ID
     from dado.TblOsProcedimento    ;    

    UPDATE testebi.Fato_Atendimentos as A SET PrimeiraOS = 1
    FROM 
    (select min(convert(int,data)) data, paciente 
    from dado.arqordemservico
    group by paciente) as b
    WHERE a.fk_paciente = b.paciente and  a.fk_Data  = b.

2
0 385