Question Colin Brough · Oct 28 Java gone missing - but only from Ensemble! An interface running on Ensemble generates PDFs by building a command line and invoking c:\InterSystems\Ensemble\fop\fop.bat One day last week the PDF generation stopped working. The output from the .bat script says: #Debugging #Java #Ensemble 0 2 0 60
Question Colin Brough · Sep 27 Local Ensemble instance clashing with another application's local client We are doing healthcare interface development. Developers have Ensemble installed locally on their laptops - code will be developed locally then deployed to integration, test/UAT and ultimately production servers in due course. One of the other applications we are developing around happens to utilise an Iris desktop client to a remote Iris server. We want to have the application available on the developers laptops alongside the local Ensemble instance. #Debugging #Development Environment #Startup #Tips & Tricks #Ensemble #InterSystems IRIS 0 3 0 66
Question Colin Brough · Aug 30 Changing a Setting value on a schedule? I can START and STOP a business process via its Schedule setting. Is it possible to change the value of another Setting in an analogous way? I can imagine a SettingSchedule that could look like action:YYYY-MM-DDThh:mm:ss[,action:YYYY-MM-DDThh:mm:ss] But rather than just START or STOP, action could be "SET Setting = value", overriding whatever the normal value is. Is there an existing way of achieving this kind of functionality? #Tips & Tricks #Ensemble 0 4 0 108
Question Colin Brough · Aug 20 Business Process, pool size and external program call (FOP) via $ZF Question: can a business process with pool size > 1 invoke external programs in parallel via $ZF(-100)? We have a production that takes HL7 (ORU_R01) messages in and produces a PDF from each one for onward transmission to a document store. #Callout #Debugging #ObjectScript #Performance #Ensemble #Caché 2 2 0 64
Question Colin Brough · May 9 Business Service error handling - exception not visible in Log We have a custom business service that is triggered by a scheduled task. The service queries a table, iterates over the result set and sends a message on to a business process for each result. Happy path functionality is all fine. However, when there is an error detected in the business service code, neither throwing an exception nor returning an error %Status behaves as we'd expect. #Business Service #Debugging #Interoperability #ObjectScript #Testing #Ensemble 0 1 0 99
Question Colin Brough · Apr 8 ObjectScript inheritance, parameters and settings We are writing a custom Business Operation to interact with a downstream SOAP web-service. Classes for the SOAP operation were originally generated using the SOAP Wizard, then modified. This is functioning OK, but we'd now like to set the ReplyCodeActions setting on the operation and are struggling to make it visible via the management portal. How can we achieve this? The classes are structured like this: #Business Operation #ObjectScript #Caché #Ensemble #InterSystems IRIS 0 1 0 130
Question Colin Brough · Feb 13 Does GetValueAt on an HL7 message have side-effects? Does the GetValueAt method of an EnsLib.HL7.message object change the contents of the HL7 message? We want to do two things, given an incoming HL7 message, in our production: #Debugging #HL7 #ObjectScript #Caché 0 3 0 278
Question Colin Brough · Nov 21, 2023 Scheduled task or scheduled message to run a BPL How do we trigger a BPL Business Process on a time schedule? We are building a production that takes a steady stream of (HL7) lab results messages, processes them and stores them in a temporary database table. At scheduled points during the day (eg 0800, 1300, 1600) the database is queried and messages sent on to the downstream system. Aiming that the Processes to be implemented in BPL if possible - but we are having trouble triggering code in a BPL as a scheduled job. #Business Process (BPL) #Key Question #ObjectScript #Ensemble 0 12 0 551
Question Colin Brough · Nov 13, 2023 System Default Settings and TestingEnabled / LogGeneralTraceEvents We are successfully using System Default Settings to manage differences in settings across environments where the production and underlying code are otherwise identical. However, the TestingEnabled and LogGeneralTraceEvents settings don't appear to be settable via this mechanism. While we appear to be able to set them on the SDS page, they do not show up as selectable when resetting the settings on the Production Settings tab in the management portal - see screenshots below. #Management Portal #System Administration #Testing #Tips & Tricks #Ensemble 0 3 0 203
Question Colin Brough · Oct 17, 2023 Debugging a SOAP web-client Pointers please for debugging a SOAP web-client. We have several clients in different productions all accessing a web-service. We are trying to add another client in a new production, and its not working. The messages between the relevant Process and the SOAP web-client Operation are the same in the working and the non-working productions. But the web-service is reporting an XML parsing error to the non-working production. Here's the error as reported in the SOAP web-client Operation... #Business Operation #Debugging #SOAP #Studio #Caché #Ensemble 0 3 0 261
Question Colin Brough · Oct 6, 2023 Failed to instantiate WebClient class - SOAP out bound adapter We are trying to call a SOAP web-service from Ensemble, following the documentation here: Creating an Ensemble Web Client | Creating SOAP Services and Web Clients with Ensemble | Caché & Ensemble 2018.1.4 – 2018.1.8 (intersystems.com) #Debugging #SOAP #Ensemble 0 2 0 200
Question Colin Brough · Oct 5, 2023 Routing rule equivalence question 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. #Business Rules #Interoperability #Performance #Ensemble 1 2 0 206
Question Colin Brough · Aug 15, 2023 Zen reports documentation or learning material question We need to generate a PDF file from an HL7 message as it passes through an Ensemble production. Looking for examples, tutorials, documentation aligned to our scenario.We are currently using Ensemble (so can't use InterSystems Reports at the moment). Thinking Zen reports...We can get from HL7 to XML OK, following Introduction to InterSystems Health Connect - YouTube (see c.1:11:00-1:13:00) #HL7 #ZEN #Ensemble #Health Connect #HealthShare 1 2 0 146
Question Colin Brough · Aug 9, 2023 Reports roadmap 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! #InterSystems Reports (Logi) #ZEN #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 3 0 159
Question Colin Brough · Jun 6, 2023 Troubleshooting an Ensemble instance 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: #Debugging #DTL #Caché #Ensemble 0 12 0 430
Question Colin Brough · May 29, 2023 Handling Production class in source control Looking for advice on best practise (or at least reasonable approaches) for handling the Production class when utilising source control. (And perhaps wider advice around deployment.) #Deployment #Source Control #Ensemble 1 5 1 237
Question Colin Brough · May 18, 2023 CR/LF changes in DTL files causing load errors (#6301: SAX XML Parser Error) Is CR/LF changes to DTL files edited/committed to git via VS Code a known issue? We had an issue with exporting files from one server and importing on another, using XML code exported from Studio: ERROR #6301: SAX XML Parser Error. Turns out that issue was down to CR/LF changes made when transferring the XML from one server to the other. #Compiler #Debugging #Ensemble #VSCode 0 7 0 259
Question Colin Brough · Apr 20, 2023 Uninstalling Ensemble On a developer's laptop, having had two or three Ensemble installs with different settings/config changes made, and encountering unexplained errors compiling classes, wanting to scrub as much of the previous installs off the machine before doing any fresh installation... But can't find clear documentation on doing a complete uninstall! Have stopped the server. Am I safe to remove C:\InterSystems\Ensemble (for the instance installed into that folder)? #Debugging #Management Portal #Microsoft Windows #System Administration #Ensemble 0 6 0 486
Question Colin Brough · Apr 5, 2023 ERROR #6301: SAX XML Parser Error: XML or TEXT declaration must start at line 1, column 1 Exported contents of a namespace on one server (classes, include files and lookup tables). Importing that code into a newly created namespace on another server. Both servers Ensemble 2018.1, same build. Export was via InterSystems Studio. Export is around 18Mb in total (XML file sizes).When importing and compiling on the new server, getting errors as below - with #6301: SAX XML Parser error prominent - on a number of the imported files, all containing data transformations or business processes. #Compiler #Data Import and Export #Debugging #Ensemble 0 1 0 583
Discussion Colin Brough · Mar 10, 2023 Version naming best practise for code within a namespace In a healthcare setting we've an Ensemble namespace through which passes a key HL7 feed (the ADT feed from our PAS). It is split up, transformed and passed on to multiple downstream systems. We consider the feed going to each downstream system an interface. Each interface is developed as separately as possible - typically as a separate branch of our git repo (which we access via VS Code). #Change Management #Git #Release #Source Control #Ensemble #InterSystems IRIS for Health #VSCode 0 0 0 228