#Ensemble

23 Followers · 2.4K 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

Job Preston Brown · Aug 16, 2023

Looking for someone who has a proven resume with InterSystems and Ensemble Experience.

Ideal Qualifications: Ensemble Experience + working with InterSystems DTL for HL7 Transactions.

Work Type: Consultant at $50-$60/hour DOE

Job Location: Remote

Work Category: Healthcare

Responsibilities: work with InterSystems Ensemble Productions for HealthCare.

Qualifications: 3+ years working with InterSystems Ensemble.

US Citizens only.

If Interested: email pbrown@cybercodemasters.com with your latest resume reflecting InterSystems + Ensemble and provide your phone number.

0
1 271
Question Nezla · Aug 14, 2023

Hi Guys,

below is a javascript sample code in one of my methods in a CSP page where I'm loading some data from a global to a Javascript arrays, the problem is that if I call the method with do (d ..mymethod()) everything works fine but calling it with Job (J ..mymethod()) it seems that the javascript part is not working, is there a way to fix this?    

The reason why I'm using Job call because I need it to run in background and not to hold other processes.  

&js<
    Sensor='#(Sensor)#';
    maindatafx[Sensor].push(ConvertArr((Fdte),'#(FXData)#'))
linechartdatafx[Sensor

5
0 294
Question heng a · Aug 10, 2023

hi, I followed the example of the system and wrote a method to connect to an external database to obtain a result set, but I couldn't get the result. can anyone please help on this. image

image

image

/// correct
ClassMethod PersonSets(name As %String = "", state As %String = "MA") As %Integer [ ReturnResultsets, SqlName = PersonSets, SqlProc ]
{
		// %sqlcontext is automatically created for a method that defines SQLPROC

		// SQL result set classes can be easily prepared using dynamic SQL. %Prepare returns a
		// status value. The statement's prepare() method can also be called directly.
4
0 304
Question Colin Brough · Aug 9, 2023

We are about to embark on a development where we'll be taking HL7 messages and generating PDF reports from them. We are wanting to future proof our development efforts within the constraints of our currently deployed platform and future upgrade options. We are currently running on Ensemble 2018, though an upgrade to Iris is anticipated - at some indeterminate point in the future. We are aware of Zen Reports and InterSystems Reports (Logi) as technology options, but are also unclear on some details. A roadmap and guidance from those who've done this kind of thing before would be great!

3
0 251
Question Javier Gonzalez · Jun 1, 2017

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:

Set myObjectA = ##class(A).
9
1 1066
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 665
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 154
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 451
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. 

USER>set stmt=##class(%SQL.Statement).%New()

USER>set status=stmt.%PrepareClassQuery("%SYS.Journal.File","ByTimeReverseOrder")

USER>set rs=stmt.%Execute()

USER>while rs.%Next() { write rs.
1
1 529
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 231
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 ...

In IRIS, the caption names of business host and production properties are stored in

4
3 469
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 465
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
{
.
7
0 432
Question Colin Brough · Jun 6, 2023

One of our development Ensemble instances is misbehaving. We suspect we'll just need to reinstall it - which would be a hassle. Before we do, we wanted to check we weren't missing some kind of easy fix. The symptoms we are seeing:

  1. A Cache process is running at 100% CPU on one core of the server - its the TASKMGR process
  2. That Cache process resumes at 100% on Ensemble restart, and indeed after server reboot
  3. There might be evidence of corruption in the task schedule: there's a "next scheduled date" of 1840-12-31 00:05.
12
0 665
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 554
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 667
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 511
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 210
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.

4
1 583
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 380
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.

Class MyWork.
0
0 382
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 631
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 325
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 245
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 227
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.
0
0 421
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")

*Before version 2008.1, use $system.

2
2 839
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