Hey Developers,
New video is already on InterSystems Developers YouTube channel:
InterSystems Ensemble Business Process Language (BPL) is a language used to describe executable business processes within a standard XML document.
Hey Developers,
New video is already on InterSystems Developers YouTube channel:
Process Mining( http://en.wikipedia.org/wiki/Process_mining) is becoming more and more popular in IT industry. I wonder that since all processes are stored and managed in IRIS/Health Connect, any one hs developed similar functions on IRIS? Thx!
I am trying to use EnsLib.SQL.Operation.GenericOperation for retrieving (multiple) rows. But I am looking for a way to handing a StreamContainer returned by the operation, in my business process such as receiving it in the Context object and packing it to a request to call another business operation.
Does anyone have sample code to do this?
Thanks.
A few months ago, Jose and I were discussing the article Video Smart Data Services (Vision & Demo) from @Amir Samary and during that discussion, we started wondering what kind of feature would be nice to have on a future IRIS solution.
One of the desired features is to have an IRIS iPaaS solution as I questioned here in this comment.
These last months gave me the opportunity to work with different projects and technologies, and put me in touch with applications like Tray.io or Workato, and now I can see how great an IRIS iPaaS solution could be.
Hi, I am glad to announce another submission to OpenExchange and the current contest, the FHIR Pseudonymization Proxy. The FHIR Pseudonymization Proxy adds a transparent pseudonymization layer to any existing FHIR server, enabling clients to perform queries on the FHIR server – which may contain personal identifying information – and receive an on-the-fly pseudonymized version of the data.
The proxying mechanism is realized with the IRIS for Health platform through an interoperability production, BPLs and DTLs, and the FHIR interoperability adapter.
I am using the EnsLib.File.PassthroughService class in the business service, this business service will accept a text file from a location and pass it through to the BPL as a stream. I have been trying to work with the BPL in the GUI and I have been reading the documentation and trying to get it to work but I can not I continue to get errors and I am not sure why.
I will attach the Photos of what I have been trying, I think there is a problem with my call action because when I try and trace the message the context of the file does not even make it to the business operation.
I have a Business Service that reads a file from a folder and sends it as a string to a Business Process. In the business process, I need to add a string to the end of the file string that is coming into the Business Process. I am trying to do this in object script in studio and I am struggling to figure out how to add the string to the end of the other string. I am still new to studio and object script I have been reading up on the documentation and I am not sure what is the best way to accomplish this.
Any help would be greatly appreciated.
Hi Community,
This article is aimed at developers implementing DICOM productions, specifically for cases with third-party endpoints that cannot handle the DIMSE timeout themselves.
For DICOM applications, the DIMSE timeout is a maximum time to wait for the next DICOM request (-RQ) or a response to a request (-RSP), after an association has been established. Unlike the ARTIM (association establishment) and TXTIM (data transfer) timeouts, the DIMSE timeout lives at a higher level than individual PDUs, with the application-level request/response logic.
I am still trying to track down orphaned messages and have noticed that when we have Business Rules that send to a Business Process that some times there is an orphaned message that is generated as result of that send.
Once a week we are attempting to load an XML file from Workday into a MS SQL table using JDBC and Store Procedures. There is approx 102999 records in this XML file. We are struggling with processing the entire file within a reason amount of time. We feed the XML through a BPL to then populate values in a stored procedure then call the stored procedure through a Business Operation. I have tried splitting out the Business Operations to make two calls, but we still continue to see an issue loading the XML into MS SQL.
I work as an Integration Engineer for United States Department of Veterans Affairs (VA). I work on a Health Connect production which processes many RecordMap files. I do not fully understand RecordMaps and I wanted to develop an application for the Interoperability contest where I could learn more about working with RecordMaps. I browsed InterSystems documentation for inspiration on how to start. I was happy to find CSV Record Wizard. I had created a CSV file for my Analytics contest entry. I wanted to use it to test the CSV Record Wizard. It was not obvious how to use it.
Some of you might not be aware of this "Known Issue/Limitation" when defining a BPL-based Business Process.
And those who are not might have encountered this (somewhat "unpleasant" error):
New to Health Connect so please forgive me if this is a stupid question! Is there a specific error code returned when a user initiates an abort from the jobs tab of the business host? I want to be able to treat the Abort as Completed due to our complex business process. Currently, hitting abort just retries the message to the same business operation. Want I want to do is provide the error code used by the Abort (if there is one) and treat it as OK
Thanks in advance.
I have a handful of EnsLib.HL7.MessageRouter sending an HL7 message to a single Business Process (Ens.BusinessProcess).
In the OnRequest method, I am declaring pRequest as EnsLib.HL7.Message
What I need to do is determine which HL7 Router sent any given request to my BusinessProcess.
To do this, I know that I need to fetch the SourceConfigName property from the Ens.MessageHeader of the Request, but I am not sure how (or if) I can fetch this data from within the OnRequest Method.
Does anyone have any pointers?
Bill Casey
Hi,
While starting newly created production I am getting below error:
17:14:05.498:Ens.Director: ERROR <Ens>ErrProductionSuspendedMismatch: Production 'Training.NewProduction' was suspended, a new production of a different name can not be started.
Please note that I can start and stop 'Training.NewProduction' successfully but still the status of the Training.NewProduction' is suspended.
Thanks
I have a BPL Business process which always processes messages - mainly it waits for responses since downstream systems are seriously async.
I need to update this process.
Wwould the existing instances of this Business Process complete correctly after the update?
My BPL changes would result in:
Both changes are in the middle of the process, so there are S/OnResponse methods before and after my change.
What if it's only a new S method? What if it's only a new OnResponse method?
Hi! I am working on a project where I use record map to transform a flat file and split it into two output text file and in the future will need to split four output files.
I only want to use one target business operations instead of multiple. Is there a way to set the output file and the target folder path in my business process class?
Any advice on how I can achieve this or is this possible? Thanks!
Hi,
I have multiple processes in a production. How can I link process to multiple categories?
Thanks
Hi,
After cloning "http://github.com/intersystems/Samples-Integration-RedLights" sample code I imported sample production from /home/project/Samples-Integration-RedLights/data/EndStateProduction.xml file to my local system.
Now I am getting the error "ERROR #5021: Directory '\home\project\shared\Samples-Integration-RedLights\data\SampleFiles\' does not exist." in my service.
While modifying the Directory path I am getting below error :
"A JavaScript exception was caught in function function SecurityError" : Blocked a frame with origin "http://localhost:52773" from accessing a cross-origin frame.
Hello All,
I am exploring Ens.Alert to generate alerts for Server exceptions.
I noticed that in the business operation, if you have your code inside try/catch and if your catch doesn't explicitly invoke $$$systemerror then Ens.Alert is not invoked.
Similarly, in the Business process if you have <catchall> then Ens.Alert is not invoked on error. How can I invoke Ens.Alert from <catchall> ?
Another thing I noticed is, if I dont catch exceptions in BO and BP and have "Alert on error" ON for both, if there is an error in BO, 2 alerts are generated for same error, one from BO and one from BP.
I am calling a business rule from one of my business processes and I noticed that when the business rule reports an error that the business process calling that rule just stops without any errors. Resultingly it fails to trigger the scope - catch-all construction that is surrounding the business rule. I know that it is possible to view the errors in business rules in the business rules log, but I really like to push an error message to Ens.Alert or something similar when my business rules report an error. How do I achieve that?
Hi all.
I'm currently working with a system needing results from a lab system, and they can only accept a single OBR per R01 message.
The R01s from the source have multiple OBRs, so I need to be able to send a message per OBR.
I found a similar post where the example was using a BPL, however there's some additional trickery processing that I already have working within an ObjectScript Business Process and would like to avoid trying to recreate in a BPL.
Any sample code will be greatly received ![]()
Productions often need to receive REST requests.
Here's how to do that.
1. Create proxy Service:
/// Empty BS we would use to send Produciton requests
Class production.ProxyService Extends Ens.BusinessService
{
}2. Add it to production as RESTService (or any other name).
3. Write your rest broker (docs, more docs)
4. In your handler method create the message and call target BP/BO like this
Include Ensemble
Class test.REST Extends %CSP.REST
{
XData UrlMap [ XMLNamespace = "http://www.intersystems.Hi, I think it's a simple question this at the end of something fairly complex
I've a DTL to go to a target class in context
.png)
I get the error CLASS DOES NOT callrequest=##class(context.ConnectDocumentRequest).%New()'
I attempted to add code to initate the context with
set context.ConnectDocumentRequest =##class(Penn.EDT.Messages.ConnectDocumentRequest).%New()
I know there is something basic i am missing but have not seen covered in any tutorials i have done.
I see an example using Assign I tried assigning my context as
$CLASSMETHOD("Penn.EDT.Messages.
Hi,
Is there any objectscript command available to start or stop production from object script?
Thanks
I'm looking for a way to get the message header ID for the current message in a Request to a Business Process.
I've located some code that gives me what I need, but it runs the risk of violating the "abstraction layer" ISC has in place around such things. And while I very much appreciate their efforts at keeping things simple for me ... well, sometimes you just have to dig through the guts to get what you want.
Is there a documented, deprecation-resistant method for getting at %Ensemble("%Process").%PrimaryRequestHeader.%Id() from within a BP?
Hello,
I am trying to figure out if we can extend a business process in IRIS. My Use Case is that I am developing RESTful Interfaces and my each REST Interface needs to go through certain processes before getting to the actual action.
e.g. I have 2 REST Interfaces, GetPatient and GetEncounter. Both of these need to invoke "GetToken" Business Operation to go to the Authentication server to get an authentication token before they go ahead and hit the Business Operation to Get the data i.e. Patient or Encounter.
Does anyone know how to disable the auto-refresh in Healthshare, especially for Message viewer , Business process designer, DTL editor pages?
These pages in management portal refresh every 15min( i.e. as per the session time out setting) . I tried to set the following two configs to disable the auto refresh but both had no impact.
set ^EnsPortal("DisableInactivityTimeout","Portal") = 1set ^%SYS("Portal","EnableAutoRefresh") = 1
Thank you for your help.
Mary
This article is a continuation of this post.
In the previous article, we discussed business operations' creation from the components required for system integration.
In this article, you will learn how to create a business process that calls the two business operations you have defined in the sequence order.
The business process acts as the coordinator (command center) of the process.
I am working on automating to pick all the jobs running particular business process and kill them by using a routine. Though I was able to kill the jobs/PID on server by using (sudo kill jobid) and by using