#Ensemble

23 Followers · 2.3K Posts

InterSystems Ensemble is a complete and easy-to-use integration platform that enables users to connect people, processes, and applications in record

time.

Learn more

Documentation

Question Erin Dolson · Jul 23, 2019

Hi all,

I'm working on a routing rule for Ens.Alert. I'd like to add some text to the email alert but I'm having trouble formatting the text. I want a new line after the original alert with my own text. I will attach a screenshot. Looking at the "assign" line, I'm looking for what I need to use in place of  "\r\n" to make a new line. 

(I had troubles uploading the screenshot, but the only thing that is missing in the picture is the end of the sentence and an ending ")

Best,

Erin

6
0 661
Question Jimmy Christian · Aug 7, 2023

Greetings.

I have a scenario in ENSEMBLE, where a business process router A is dependent on another business process router B.  If B shuts down for some reason, A has to be disabled as well.

Do i need to write a custom process for B and call the call back method onShutdown or something?

Any suggestions would be appreciated.

Thanks,

Jimmy Christian.

0
0 153
Question Daniel Lee · Aug 1, 2023

I would like to search for all messages where their body size is greater than 3MB. 

I have searched through the common Header and body properties and I have not found a size property. I have looked at the extended properties but I am unsure if any of the extended classes allows me to find the Doc size. 

I have stepped through most of the body property classes related to messages or documents that have an exposed property that filters by document or message size. 

Is there a way to do this within the Message Viewer or Terminal? 

Thank you in advance. 

Dan 

4
0 441
Article Mihoko Iijima · Jul 20, 2023 4m read

InterSystems FAQ rubric

You can search for a specific global variable in the journal file using the ByTimeReverseOrder query of the %SYS.Journal.File class and the List query of the %SYS.Journal.Record class.

The role of each query is as follows.

A) %SYS.Journal.File query of the ByTimeReverseOrder class

You can get the journal file name. Results are returned in descending order of journal file name. 

1
1 518
Question Yone Moreno · Jul 27, 2023

Hello,

We have created a New User but we do not know how to allow it to see Message's content:

What role or permission we should add to allow it?

We have already added:

We have also read:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

What role or permission we should add to allow it?

2
0 226
Article Jeffrey Drumm · Jul 24, 2023 2m read

When creating custom Business Hosts, it's often necessary to add properties to the class for additional settings that will be used in the initialization or operation of the host. The property name itself isn't always very descriptive, so it's an advantage to have a custom caption display with the field.

In Caché, it was fairly straightforward:

TEST> Set^CacheMsg("EnsColumns","en-us","<property name>") = "<caption>"

But It involves a bit more effort in IRIS ...

4
3 462
Article Satoshi Hosoi · Jul 27, 2023 1m read

InterSystems FAQ rubric

Whether the value of a local variable is an OREF or not can be determined using $IsObject(). Let v be the variable you want to check,

$IsObject(v)=1// v is an OREF$IsObject(v)=0// v is not an OREF$IsObject(v)=-1// v is an OREF but does not point to a valid object

Note that $IsObject(v) will give an UNDEFINED error if v is undefined.

To avoid UNDEFINED errors, it is recommended to use $Get like this:

$IsObject($Get(v))
0
0 459
Question Guilherme Koerber · Jul 19, 2023

Hello community,

I am developing a call that contains some properties in an Ens.Request class like this:

Class Linx.Omni.Operation.Apigee.Fidelidade.Msg.ProcessaVendaReq Extends Ens.Request
{

Property Bandeira As%String(MAXLEN = "");Property CodigoLoja As%String(MAXLEN = "");Property CpfCliente As%String(MAXLEN = "");Property ListaItens As list Of Linx.Omni.VO.Origem.Fidelidade.ProcessaVendaFidelidadeNew;
Storage Default
{
...

I am creating a new request and calling it as follows (I removed some code snippets for better visualization):

7
0 423
Article Gevorg Arutiunian · Mar 29, 2020 2m read

Now the Classes/Rutines/DeepSee files will be automatically exported to the working directory after saving or compiling and files will be automatically deleted .

<iframe src="https://www.youtube.com/embed/B1pmqAQqd4M" frameborder="0" allowfullscreen> </iframe>

Installation

To install isc-dev , you just need to download and import the file isc-dev.xml from last release. Some ways to import isc-dev .xml file:

  • Go to Management Portal -> System Explorer -> Classes -> Import and select the XML file.
  • Drag the file over Studio.
  • Terminal command:
NS>do $system.OBJ.Load("yourpath/isc-dev.xml","ck")
NS>zpm
zpm: NS>install isc-dev

How to enable this feature:

  • After importing the class in the target namespace, run the following method to set up the working directory:
NS>do ##class(dev.code).workdir("/path/to/your/working/directory/src/")
  • Go to Management Portal -> System Administration -> Configuration -> Additional Settings -> Source Control.
  • Select the target namespace and set the dev.FileManExtension class as the main one and save it.
  • Try to create a new class in the studio and save/compile it
  • Enjoy!
4
2 551
Article Mihoko Iijima · Jul 13, 2023 2m read

InterSystems FAQ rubric

It can be obtained by using the Size query of the system-provided %SYS.GlobalQuery class.

See the sample code below for usage examples.
*Please check the class reference for specifying columns and parameters.

 set dir="C:\intersystems\iris\mgr\user" // IRIS.DAT(or CACHE.DAT) folder
 set rs = ##class(%ResultSet).%New("%SYS.GlobalQuery:Size")
 do rs.Execute(dir) // You can also specify a mask with the 3d parameter
 while (rs.Next()) { 
   set gname= rs.Get("Name") // global name
   set gsize= rs.Get("Used MB") // global size (MB)
   write gname," : ",gsize,!
 }
0
2 661
Question Michael Lundberg · Jul 4, 2023

Hello!

In a transformation (DTL) I create an XML and pass it to an EnsLib.EDI.XML.Operation.FileOperation.

The receiver does not accept an empty tag (eg <Analysis/>) that is created automatically
if the tag has no values ​​in underlying tags. I have tried with action='remove' in transformation
and other things but it only clears the content.

I need to remove the tag completely. Appreciate if anyone has a tip?

Sincerely, Michael Lundberg

6
0 493
Question Francis Tejano · Jul 8, 2023

Hi folks, does anyone got the .sef file for the D93A EDIFACT (INVOIC specifically)?

Setting it up to an old customer but I lost my copy of it as I used it a long time ago.

Would be so helpful if anyone have it.

Thanks

0
0 207
Question Doug Strzalko · Jun 30, 2023

I need to create a routing rule where I've got to check for the value of "-" in field 5 of a repeating RQD segment, if the "-" is found in any of the RQD-5 I want to send it to a transform, if the rule doesn't find a "-" in any of the RQD-5 I want to send it to another transform.

Unfortunately we are running an older version of Ensemble and the foreach function is not available. 

The other thing to add is the transforms are writing the output to a flat file so my business process is using the EnsLib.MsgRouter.RoutingEngine class.

Sample message:

4
1 577
Article Hiroshi Sato · Jul 6, 2023 1m read

InterSystems FAQ rubric

The InterSystems ObjectScript language does not allow you to define methods of the same name with different arguments. It is generally classified as a programming language called a dynamic language.

In ObjectScript, you can freely control which arguments are used when executing a method, so unlike languages ​​such as Java, which are not dynamic programming languages, there is no need to strictly distinguish methods by the number of arguments at the compilation stage.

0
1 375
Article Mihoko Iijima · Jun 29, 2023 3m read

InterSystems FAQ rubric

For volatile tables (tables with many INSERTs and DELETEs), storage for bitmap indexes can become inefficient over time.

For example, suppose that there are thousands of data with the following definition, and the operation of bulk deletion with TRUNCATE TABLE after being retained for a certain period of time is repeatedly performed.

0
0 379
Article Hiroshi Sato · Jun 22, 2023 1m read

InterSystems FAQ rubric

Countermeasures against SQL injection have been published on various websites, but we believe that it is possible to prevent SQL injection in applications using InterSystems SQL as well as other RDBMS by implementing these countermeasures appropriately. In addition, InterSystems Data Platform (hereinafter referred to as IRIS) incorporates several measures that make SQL injection more difficult than general RDBMS.

0
0 625
Question Scott Roth · Jun 20, 2023

Had an issue on Friday where a vendor added an additional field in the middle of a row of one of our record maps. This threw the mapping off when I take the record and try to map it into HL7 and caused massive amounts of errors in our EMR because the data was wrong.

Is there a way that I can add validation on the Business Service to say if the fields are off to fail, stop, and alert on the Business Service?

2
1 324
Question Brian Hunsicker · Jun 15, 2023

How do I determine the size of an X12 message within the Rule Editor?  I should add this is for HealthConnect or Ensemble.

The FullSize property always shows 122, and the FullSizeGet method isn't available within the Rule Editor.

Our vendor can't handle messages over 500,000 characters, so I need to write those to another queue for later processing, and to get the interface into they're system from crashing.

Thanks,

2
0 244
Question Nezla · Jun 15, 2023

Hi guys,

How can I get the list of printer in client Zen page?

We currently use an ActivexObject call "MSDesign.WebLabel" to get the list of printer loaded in a dropdown in our Zen pages:

        webControl = new ActiveXObject("MSDesign.WebLabel");
                  if (webControl!=null) printers = webControl.getPrinters();
and this will give us a list of printers available in client machine but this does work in Edge or Chrome, is there a tool or simple code that I can use to get me the list of printers available?

Thanks 

2
0 226
Article Megumi Kakechi · Jun 15, 2023 1m read

InterSystems FAQ rubric

Query cache can be purged programmatically using the Purge* methods of the %SYSTEM.SQL class.

*For details of each method, please refer to the following documents.

%SYSTEM.SQL class【IRIS】

%SYSTEM.SQL class

① When deleting all query caches in the system

Do $SYSTEM.SQL.PurgeAllNamespaces()


② When deleting the query cache in the namespace

// delete all cached queries in namespace
Do $SYSTEM.SQL.Purge()
// when deleting the query cache specified by date
// the following deletes the cache not used in the last 30 days

Do $SYSTEM.SQL.Purge(30) 
0
0 412
Article Hiroshi Sato · May 25, 2023 2m read

This is an article on the InterSystems FAQ site.

 1. Export API

a. Use $system.OBJ.Export() to specify individual routines to export. For example:

do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)

The format to specify is routine name.extension, and the extension is mac, bas, int, inc, obj.

Errors during export are stored in errors.

See the class reference %SYSTEM.OBJ for details on $system.OBJ.Export().

b. Use $system.OBJ.Export() even when exporting with wildcards. For example:

do $system.OBJ.Export("*.mac",c:\temp\allmacroutines.xml")
2
2 822
Question Smythe Smythee · Jun 13, 2023

Hi Community,

I am new to CDA to CDA transformation in ensemble, Can anyone explain how  Match,Select,Varibel,Attribute,Copy,Method Will work in CDA transformation using xslt stylesheets

Smythee

0
0 214
Article Mihoko Iijima · Jun 8, 2023 1m read

InterSystems FAQ rubric

Since SELECT ... FOR UPDATE is implemented in many RDBMS as a method of explicit row lock acquisition, I think there are many cases where this function is used.

This syntax is not an error for InterSystems products, but it does not acquire row locks as expected.

This article will show you how to achieve equivalent functionality.

DECLARE CURSOR C1 IS
SELECT Name FROM Person WHERE Name LIKE 'A%' FOR UPDATE
OPEN C1
LOOP FETCH C1 INTO name 
... show name
... EXIT the LOOP when finished
END LOOP
CLOSE C1
0
0 394
Article Hiroshi Sato · May 18, 2023 2m read

InterSystems FAQ rubric

Using the Config.Configuration class and SYS.Database class methods, you can create and register a namespace database from the terminal.

Below is a series of execution examples that create database file /CacheDB/AAA/cache.dat and register database AAA and namespace AAA in the configuration file (cache.cpf).
* Execute in the %SYS namespace. *

* Make sure that this script runs as the user  that is used for all IRIS processes to ensure that the directory has appropriate ownership and permissions *

3
0 535
Question Callum Mellows · Jun 7, 2023

Hi All.

Had an empty Ensemble namespace (interoperability enabled) which the customer had requested renaming before beginning development, so was wondering about best practice to achieve this.

I saw on the docs (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…) that this can be done with management portal and terminal commands but it seemed simpler to just create a new namespace and delete the old. The way I did this was to create a new namespace using 'Copy from' the existing, then delete the old one.

my questions are:

2
0 338
Question Nezla · Jun 6, 2023

Hi Guys,

I'm using the below code to download, extract files in a file directory then save data into a global, and remove the file directory as not needed anymore, but the issue is that the class(%File).RemoveDirectoryTree is not deleting, also tried class(%File).RemoveDirectory and same thing.

I'm suspecting that maybe because the process is still considering the file or the directory is opened or still in use !? I also tried to run the class(%File).RemoveDirectoryTree("D:\SpaceSense2014\LIVE-SPACESENSE\NodeJS\FFTData_20019082")  from the terminal and still nothing ?

5
0 382
Question Nezla · Jun 6, 2023

Hi Guys, I'm resending this because I sent on the weekend and looks like it has not been noticed much 

I'm not that familiar in using Javascript in Zen pages, so basically we have a priting utility (app) that requires us to add a bit of JavaScript call to facilitate printing from our Zen pages as below:

So I added XData link pasted the required script, is this the correct way?

2
0 356