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.
Can we use Functions and Methods with multiple parameters and refer objects by reference as parameters inside Routing rule ?
How do we handle DB related workflows in Business Rules ? How can we perform Response object based handling in Business Rules ? Can we try by extending methods with Ens.Util.FunctionSet and pass in the Context object from the rule as a parameter for certain functions ? Can we split the Business Operations into methods that can be used from the routing rules and create the message route request flow ?
I am currently trying to add a condition to a routing rule that uses the %Source property of a routing rule. Unfortunately I am getting compile errors when I use the "%", and if I get PROPERTY DOES NOT EXIST if I try and use any of field. I have tried referencing the messages as "Message." , "Record.", "FullRecordMapClassName." , "Document." . Does anyone know how to reference the properties of a record map in a routing rule, or if it is even possible? Thanks!
I have an interface that does not send me specific ID's, so I am scanning the AIL3.2 (Text) field for certain characters. The Routing rule is getting pretty big with all the OR statements. Is there a way that I can define what I am searching for in the data lookup table, and not have to scan the whole field that it does by default? Is there a way that I can simplify this?
I've inherited a business service that takes a large XML document with repeating elements, extracts them via %XML.Reader and chunks them into separate persistent objects for delivery to a EnsLib.MsgRouter.RoutingEngine-based routing rule. Unfortunately, the lack of GetValueAt() for the message's class leaves me without much in the way of complex decision-making options.
I wanted to know if there was a way to dynamic set a target in the rule send command. I have a assign property that uses the lookup table that I wanted return the name of the target value and then set the target to that property . When I set the target= _@tDestination there is a parser error.
Using the Rule Editor, I can open a routing rule and easily define an 'effectiveBegin' and 'effectiveEnd' date. I want to utilize this date feature for a "sub-rule" (i.e. rule #1) but not the entire routing rule therefore impacting all other rules. I also do not want to split and create a brand new routine rule just to send the message to the target business process. It would be ideal to keep it contained within this single routing class that was created.
I would like to block ADT_A18 and ADT_A47 HL7 2.3 messages with an empty MRG:1 field.
This is to prevent my current HL7 ADT router (Business process) sending blank Merges downstream.
I've attempted to create a business rule where this would return out the business role process. However the messages still loop though the other rules.
Is there anyway I an do a Constraint base on the file name? I only see things like source and document name and wanted to do routing base on file name?
I created a DTL to do HL7 mapping. The test function in the tools works the DTL perfectly but when used by the rule in my business process, the OBX segments are stripped and the MRN is gone. The assigning authority and ID type are added into the PID but the actual patient MRN is blank (3.1 value).
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.
It appears latest version of field test supports Rules. What does support of Ensemble rules in Atelier mean for Ensemble users? Does it mean compilation and development can now be done in new Studio? If yes, how indentation and aliment work with Atelier?
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?
this is catching me all the time, again and again...
Haven't worked with XML VDOC for some time, I can't figure out, what is the correct way of using Property path. Can someone please help me to refresh my memory.
Simple example: I have a class called Body, with Value and Topic properties. I created a XML Schema for this class and imported it into Ensemble. So i have a category called message, with Body as DocType structure and Name and Topic properties of Body complex type ($2:Value and $2:Topic are element names)
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'm working on some custom utility functions that I can utilize in Business Rules as well as other places. I saw this line in the docs:
For each function you wish to define, add a class method to your new function set class. There is no support for polymorphism, so to be precise, you must mark these class methods as final.