#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

Question Jordan Everett · Oct 10, 2023

Hello! I just had a quick question for anyone out there with more experience on deploying Ensemble productions.

 

I'm currently trying to export my Ensemble production WITH the Business Partners so I don't have to rebuild or add to that table after I import my Ensemble Production. I know that this is a small thing and doesn't actually affect anything in the production in terms of performance, but I like to have it for better documentation.

 

I've tried including it in my export, but I'm unable to find it and I'm wondering if there is something obvious that I'm missing?

3
0 258
Question Michael Davidovich · Sep 20, 2023

When making a synchronous request to a custom business process and there's an error and  0 is returned, it seems that the response is not sent back to the custom business service.  Rather, a Ens.MessageHeader with IsError=1 is returned without a message body (which would normally be the response object).

I tried using ##class(Ens.MessageHeader).%OpenId($$$JobCurrentHeaderId).IsError to check the error status but I keep getting the node that $$$JobCurrentHeaderId compiles to is undefined.  There's clearly a Ens.MessageHeader object being sent back to the process, but I can't access it.

2
0 285
Article Megumi Kakechi · Sep 28, 2023 2m read

InterSystems FAQ rubric

In the sample below, an image file is encoded into a Base64 string in a class property, saved, decoded again with Base64, and restored to another file.

【Usage class】

Class User.test Extends %Persistent
{
Property pics As %GlobalBinaryStream;
}


【When importing】

  set x=##class(User.test).%New() // create a new object

  // prepare an image
  set file=##class(%File).%New("c:\temp\Mii.png")
  do file.Open("RUK\BIN\")
  for {
       if file.AtEnd=1 quit
       // Convert image to Base64 format in chunks of 1024 bytes
       set cnt=file.
2
2 732
Article Mihoko Iijima · Oct 5, 2023 1m read

InterSystems FAQ rubric

On Linux, use the iris command to execute a routine or method from a shell and get the return value.

For more information,  please refer to the document "About Instance Connections".

An example of a command is as follows.

iris terminal instname [arguments]

The return value of a shell script can be specified using a special variable using the Terminate() method of the %SYSTEM.Process class when the process ends, rather than by specifying an argument in the QUIT or RETURN command that is specified when a routine or method ends. Use the method of returning a value to $?

2
1 577
Question Corentin Blondeau · Oct 2, 2023

Hello,

I have a method in an operation wich return a list of %String (listId).
I call it multiple time in a Business Process and want to have all the lists I get put into one.
Not having "set context.listIdProcess = callresponse.listId" , but a way to add the elements of listId in context.listIdProcess.

There is an other way than append each element of the list?


Thanks for yours answers,
Corentin

7
1 352
Question Nezla · Sep 22, 2023

Hi Guys,

I've this client method in my Zen page which looks good and compile fine:

I first tried calling  this clientmethod in %DrawHTML() like : var res=zenPage.getNewPrinters(); but for some reason didn't work not sure why I even tried simplifying my clientMethod with simple code like just showing alert but still this call didn't work

So now I'm  trying copying the code of my clientmethod to %DrawHTML()  but I'm getting a compilation error not sure why everything is the same so why is this code is raising a compalation error when placed between &js<> and working fine in my clientMethod?

3
0 481
Article Mihoko Iijima · Sep 21, 2023 1m read

InterSystems FAQ rubric

The meaning of each timeout value is as follows.

1. [Server response timeout]

If IRIS/Caché processing (routine or query execution) does not finish within this set time, the browser will return an error.

For example, if this value is 60 seconds and it takes 90 seconds to execute a routine/method/query, an error will occur.

2. [Queued request timeout]

For each IRIS/Caché server configured in CSP/REST, you can limit the number of processes that can run CSP/REST concurrently.

2
0 635
Question Nezla · Sep 14, 2023

Hi Guys,

I've an fileupload and button that executes   Upload() clientmethod to upload files in my database and everything works fine when I run the application in the server where it is located, but if I run it from a client machine the %OnSubmit class method doesn't get invoked when form.submit() get executed so how can I fix this?

I can always use <submit> button but the thing is that I need the current form to close after submitting the form but adding  &js<window.

1
0 230
Article Mihoko Iijima · Sep 14, 2023 1m read

InterSystems FAQ rubric

It can be retrieved using the schema INFORMATION_SCHEMA.

INFORMATION_SCHEMA is a system schema and is not displayed by default in the SQL menu of the Management Portal.

The method to display it is as follows.

  1. Open Management Portal → System Explorer → SQL menu.
  2. Check "System" on the left of the schema drop-down.
  3. Select INFORMATION_SCHEMA from the schema dropdown.

The SQL to get the ID, field name (COLUMN_NAME), data type (DATA_TYPE), description (DESCRIPTION) for the specified table (Sample.Human) is as follows.

0
1 681
Question Nezla · Sep 13, 2023

Hi Guys,

I've a popup zen page to upload files using the input tag and submit button as below :

<html>
<input type="file" size="80" name="FileStream" class="button" id="fileUpload" />
</html>
<!--imageclickbutton id="btnUpload" caption="Upload" width="90" height="30" onclick="zenPage.

2
0 364
Discussion Sylvain Guilbaud · Sep 11, 2023

Currently, the SQL privileges (SELECT, INSERT, UPDATE, DELETE) are managed at the tables level, which can be very tedious when you have to administer many roles in an organization, and need to keep them sync with a constantly evolving data models.
By managing privileges at the schemas level, will allow to give SELECT and other DML privileges to *all* or *several schemas* to a role|user, fixing the need to manually synchronize the new tables|views to the roles.

If you agree, I invite you to vote for this idea.

6
0 361
Question Emil Odobasic · Sep 6, 2023

Hello everyone!
I need to build something that will receive a REST request. As of now I have tried my luck with using an EnsLib.HTTP.InboundAdapter. But i am not so sure how I am supposed to configure it to be able to receive the REST request together with the JSON body.
I have specified the OnProcessInput in the adapter so that it receives a GlobalCharacterStream. However, I have not had any good luck finding out to actually make the request to the EnsLib.HTTP.InboundAdapter. 
I would be really thankful if you could let me know if it is possible for an EnsLib.HTTP.

8
0 502
Question Cedric Montanuy · Sep 1, 2023

Hello, 
as i'm trying to develop a operation and its methods (SQL adapter), I'm running into issues when i run my test class. 
I have the class i want to test in the very same folder as my test class. 
I followed the tutorial in the documentation. 
When i run the test class, i get the following message error : 
LogStateStatus:0::ERREUR #5002: Erreur Cache: <METHOD DOES NOT EXIST>zTestAdd+1^unitTests.testMyClass.1 *myMethod,Package.BO.MyClass  
Here is my test class (heavily inspired bythe documentation :-) :
 

Class unitTests.testSqlInscription Extends %UnitTest.

3
0 451
Question Nezla · Sep 8, 2023

Hi Guys,

In my Zen page I've a grid with a list of uploaded images and it's working fine when running from the Server where the application resides where I can just click to an image and my code displays the image in a second screen (MSDS.Image.StreamServer.cls) ,

 

but the problem if running the page from a client machine (internet), I get this annoying extra steps with the file downloaded as .cls then I'll have to click open and choose a program .

1
1 306
Article Mihoko Iijima · Sep 7, 2023 1m read

InterSystems FAQ rubric

You can avoid the error by specifying a stream object as the argument of %ToJSON() used when generating a JSON string from a dynamic object.

A code example is below.

USER>set temp=##class(%Stream.TmpCharacter).%New()

USER>set jsonobj={}

USER>set jsonobj.pro1=["a","b","c","d"]

USER>set jsonobj.pro2=["あ","い","う","え"]

USER>do jsonobj.%ToJSON(temp)

USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}

See also the documentation for details.

1
0 654
Question Smythe Smythee · Aug 23, 2023

Hi Community ,

I am using %Date Property for defining one csv source message class .Please refer below class

Class CSVtoHL7. Inputfile.Record  Extends  ,(%XML.Adaptor, Ens.Request, EnsLib.RecordMap.Base) [ Inheritance = right, ProcedureBlock ]

{

Property ID As %Integer;

Property LastName As %String;

Property FirstName As %String;

Property MiddleName As %String;

Property DOB As %Date;

Property Gender As %String;
}

Please refer to data transformation class

XData DTL [ XMLNamespace = "http://www.intersystems.com/dtl]
{
<transform sourceClass='CSVtoHL7.Inputfile.RecordtargetClass='EnsLib.HL7.

14
0 749
Article Rizmaan Marikar · Aug 30, 2023 5m read

Wanted to share something I learned recently while working on a problem. We needed to add and change some Business Hosts in one of our edge productions.

In the past, we simply added the production class to CCR and then spreading it around. But there was a problem because different developers were working on different things, and we only wanted to include only the relevent production changes onto the CCR. 

Here's a little piece of code that can help add new things to an existing production:

class HSEDGE1PKG.
0
2 275
Question Scott Roth · Jul 8, 2019

Way back when during our Siemens LCR days we had to limit the number of characters in OBX.5 to a length of 75. That was back when we had eGate.

Now I need to do the reversal of that and take loop through a string length and split the string up into multiple OBX or NTE based on a certain length. In reading documentation $EXTRACT can do this if you know the exact length, but in this case we don't. 

So how would one loop through a string and say every 75 characters create a new OBX or NTE segment?

Thanks

Scott

7
0 3129
Question ED Coder · Jul 31, 2019

Hi,

I have a ORU message, which has a EVN segment that I want to remove and send the message across.

I tried to clone the request as below:

s newreq = request.constructClone

s changreq = newreq.RemoveSegmentAt("EVN")

Set request  = changereq

but it fails. Is there a way that I can safely remove a segment and pass it on?

Would appreciate your help in this

Regards,

Eric

13
0 2238
Question Smythe Smythee · Aug 8, 2023

Hi community,

I am trying to map  <assign value='source.{ORCgrp(1).RXE:7.1}' property='target.{ORCgrp(1).RXE:7.1}' action='set' /> in data transformation 

My input value for source RXE isRXE:7.1 will be like Keep orders~New orders  ~       ~ new orders

 After mapping i am getting only First repetition  value i,e is only Keep orders value  

I have tried using $EXTRACT like this <assign value='$EXTRACT(source.{ORCgrp(1).RXE:7.1},1,*)' property='target.{ORCgrp(1).RXE:7.1}' action='set' /> in data transformation  still getting First repetition value in target message

 

How to get full 7.

3
0 272
Article Mihoko Iijima · Aug 17, 2023 1m read

InterSystems FAQ rubric

It can be obtained using AllFields query of %SYS.ProcessQuery class.

For the details, please refer to the document Process (Job)【IRIS】Process (Job).

An example of execution in the terminal is as follows.

USER>set stmt=##class(%SQL.Statement).%New()
USER>set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
USER>write st   // you can call %Execute() when st = 1
1
USER>set rset=stmt.%Execute()
USER>while rset.%Next() { write rset.%Get("JobNumber"),"-",rset.%Get("Pid"),"-",rset.%Get("OSUserName"),"-",rset.%Get("CurrentDevice"),"-",rset.%Get("Routine"),"-",rset.
2
1 517
Question Yone Moreno · Aug 16, 2023

Hello,

First of all thanks for reading this question, and thanks for your time, trying to help us.

We would need to find a value inside the first element of a list, which is a property inside a Request Message.

The Message is:

Class Mensajes.Request.Farmacia.Seflogic.InformarSalidasOBMIRequest Extends Ens.Request
{

Parameter RESPONSECLASSNAME = "Mensajes.Response.Farmacia.Seflogic.
3
0 258
Question Jordan Everett · Aug 18, 2023

Hello!

I'm currently trying to setup a SFTP Ensemble production to handle all of my SFTP transactions. It's been going well, but I'm currently running into an issue where it is saying it is unable to exchange encryption keys. Error Below:

 

Unable to exchange encryption keys [80101005] at Session.cpp:238,0' matched ReplyCodeAction 1 : 'E=R' resulting in Action code R

 

Any advice on getting around this would be appreciated.

3
0 553
Question Stella Ticker · Aug 16, 2023

I created a web service and used the Studio SOAP Wizard to generate a client from the WSDL file of the service. But the client is throwing the error as shown below

 WebServiceClientClass '' could not be instantiated, or the WebServiceURL Location could not be determined

What have I missed?

Is there a better way to create a client?

2
0 387