Business rules are the part of InterSystems Ensemble production solution which allow nontechnical users to change the behavior of Ensemble business processes at specific decision points.
Have a question about the new Rule Editor within 2024.1... How are you able to edit the Target, it shows greyed out and when I click on the field it does not allow me to edit the field.
I would like to understand before I give my team a presentation tomorrow about if we should upgrade or not. Thanks
We are in the process of upgrading to 2023.1 for InterSystems Health Connect, and the Business Rule Engine editor is very difficult to use compared to 2022.1. It's difficult to scan over the rules as it all looks the same style with barely any distinction between rules, constraints, conditions, whens etc. There's also tonnes of whitespace, and searching on the page is hit and miss (using Ctrl + F) . I can see the previous editor is still available when you modify the URL, but I'm wondering if we can set it to be the default editor, and if this is something supported.
When testing a new routing rule, one frequently encountered problem is that messages that seem like they should be getting routed to a target component are not getting routed. This article aims to describe how to determine why the message didn't get routed.
1. Check the Event Log for the router to make sure there wasn't an error evaluating the rule or running any transformations referenced by the rule. If there was, debug that error first.
Is there a difference in outcome between the two screengrabs below?
In both cases, when certain conditions are met, a transformation is called and the output sent on to two targets. In the first case we surmise the transformation is called twice, and the output of the first run sent to the first target, the output of the second run to the second target. In the second case we surmise the transformation is called once, and the output duplicated and sent to the two targets.
Ran into an issue this morning, that I am having a hard time trying to track down what might have caused the issue. We have a Business Rule that sends HL7 ADT to a Business Process that inserts the data into a MS SQL Server using a Custom Business Operation (SQL Outbound Adapter).
I have a rule to throw a message when there is an error. I want to prevent send the email if the origin of the error is the API to send the email
This is my rule
Now, If there is any error in any process, it works, but if there is an error in MyProduct.BO.SendEmail it is trying to send the error again, and it is a infinite loop.
Is there any way to check what is the origin and don't process if the origin is MyProduct.BO.SendEmail?
We have a case where we have 1 message coming in, but then sending two messages out to the same location. Even with FIFO sometimes the messages get out of sequence depending on what is need to be done to the message in the DTL before send. Is it possible to call sleep or Halt or write some kind of a function to put a pause in a routing rule between two sends?
I need to route a message synchronously to multiple targets using a routing rule.
In IRIS I built a general routing rule set, made up of a couple of rules. For one Rule in particular, and based on a common condition, I want to send the incoming message to 2 different targets. (no transformation is used)
I can select, in the single SEND action, multiple target names, or, I can create consecutive SEND actions, one after the other, each sending to their specific target.
Thing is, in rule 2, the operation succeeds, the message reachs BO HL7, but in rule 1 it does not go through. In rule 1, I have two different conditions, but they are linked by an OR and one of the conditions is simply IF 1=1.
Do you guys have any clue on why rule 1 does not reach BO HL7?
We have a situation where we want to detect and ignore documents/records at the earliest possible point based on certain criteria. We have an existing "CDA Preprocessor" in the workflow which is an XSL transform. This is what our contractors are planning to utilize to "filter" these documents. This doesn't really make sense to me. I see XSLT as a way to manipulate the contents of a document and filter certain peices of data. In my brain, I would use an Ensemble business rule to detect the criteria and route the document as necessary.
I am creating a new rule as per screen shot below but my when condition is not matching. Please can anyone help me to understand as what could be the issue? I tried to get trace value for PV1.3.1 segment but it's returning null value.
I'm trying to use the assign option within a ruleset. I can trace the value with no issues but when I try to assign the same value to a variable of Namespace I get an error. Ideally I would like to use a variable instead of repeating the Piece repeatedly throughout the rules.
I've been working on a very basic Interoperability production in my computer. I followed one of the examples in the courses and created a TEST.FileRouterRoutingRule, but when trying to edit this rule, it takes me to the Rule Editor Login Page, where I can't get in (Not even with the _SYSTEM credentials) - Is this functionality unavailable in the community edition?
We are pretty new to Ensemble and we are considering on using a default setup for our production. Let me explain the situation. We have one sender that sends HL7 ADT messages to our system. We have 60+ other systems that need to recieve ADT messages. We where thinking on a few ways on how to do the setup.
We have a customized doctype with iterated PIDgrp, so I have a rule that needs to evaluate the pv1:3.1 value to decide which operation the HL& message should go, so I debugged the value in the rule and it definitely should go to the when #2 but it just won't. so did I do anything wrong or it is just the InterSystems doesn't like the iteration value here? I only need to evaluate the first pv1:3.1
Is it possible to generate INFO level logging events from within a routing rule?
TRACE level events and debugging are easy enough, but we have a case where we have a rule where we want to log messages that are not routed for further processing in the event log as INFO events - in production tracing will be turned off, so TRACE level events won't be visible.