go to post Colin Brough · Aug 8, 2024 Sorry Sandeep, no real resolution. As I indicated, it was a development server and we scrubbed it and reinstalled Ensemble - haven't seen the issue since.
go to post Colin Brough · Jul 3, 2024 7 years after it was written, this comment helped us sort our problem - we are disabling components to prevent further attempts at processing on certain error conditions, and were struggling to get the EnableConfigItem() call to take effect immediately... Sorted now.
go to post Colin Brough · Jun 27, 2024 Say you have the same code (Production) running on different servers - for example, a local instance on a developers own machine, a test server used for system testing and a production server. Your code accesses an external web-service. The actual web-service will be different for each system - maybe a mock service for the developer, a test version of the web-service for the test system and a production version for your production server. Then the URL for accessing the web-service would be different for each one. In your code you have a setting on the business operation in your production that connects to the web-service. The value of this setting can be set from the System Defaults Settings page, and will contain different values between the servers. This allows you to separate out settings that will be the same across all servers, and settings that will differ between servers - settings that are the same on all servers can be set on the services/processes/operations themselves, settings that differ will be set via system defaults.
go to post Colin Brough · May 14, 2024 Not sure it counts as an answer, but what we did to step round this issue was to move the bulk of the functionality - where the error handling was required - into a new business process, leaving only the most basic "pass the trigger message along" functionality in the business service. Added an extra component to the production, but we can now see errors in the log when they occur, and they are passed appropriately to Ens.Alert.
go to post Colin Brough · Apr 9, 2024 Never mind, I'm an idiot. One of my colleagues found the issue - I thought I had, but I hadn't managed to add both: Property ReplyCodeActions As %String(MAXLEN = 1000); Parameter SETTINGS = "ReplyCodeActions:Additional,...." I think I'd added one to TNHS.SOAPclassExtra, hadn't worked, tried the other, but somehow failed to check both together...🙄 Working now.
go to post Colin Brough · Feb 14, 2024 Follow-up/solution: we can do: set message2 = message.%ConstructClone(1) and then use message for the XML generation and message2 for calls to GetValueAt, and that works OK. Still don't know why GetValueAt appears to change the content of the message...
go to post Colin Brough · Feb 13, 2024 Follow-up, as a quick and dirty check, I replaced the call to GetValueAt above with: set step1 = $PIECE(message.RawContent,"OBR|") set step2 = $PIECE(part1, "ORC|", *) set ReportId = $PIECE(part2, "|", 3, 3) This works before calling the XML generation code when GetValueAt doesn't - so GetValueAt is definitely doing something to the contents of the HL7 message....
go to post Colin Brough · Jan 19, 2024 Thanks Eduard, that answered my question without me having to ask it!
go to post Colin Brough · Jan 9, 2024 I'm interested in finding out more about the GitLab CI/CD pipeline options that might be available outside of the Cloud offering. We are currently Ensemble 2018.1, though hopefully moving to Iris soon. Our development workflow is: local development, VS Code + ObjectScript extension + management portal source control using git from VS Code to a an on-prem GitLab instance testing and deployment onto a shared dev server, a shared test server and ultimately a production server, but deploying code from the local dev server/GitLab to dev/test/prod servers via exporting classes, not integrated with GitLab. So we'd be really interested in the CI/CD options mentioned in the GitLab instance offered as part of the Iris/Health Connect Cloud - the dev, test and production deployment deployments. Is the stuff offered on the Cloud available on prem? Is there more information available somewhere about the CI/CD options in GitLab and integrating with Iris?
go to post Colin Brough · Nov 27, 2023 Thanks, helpful to explore another potential option. If I'm reading https://docs.intersystems.com/iris20233/csp/docbook/DocBook.UI.Page.cls?... correctly then we'd need to use the OnProductionStart method of the business process to run when the job is scheduled - and not sure that's obviously accessible in a BPL business process. There are otherwise no incoming messages to trigger action.
go to post Colin Brough · Nov 23, 2023 Can I clarify: "Run at a scheduled time" could mean either: Run during a designated period of time, thus making the service / business process available to be triggered at anytime during that period but not outside that period, or Run once at a specific time, and never otherwise be triggered. We are interested in the second of these - we want a batch job to run at 0800, at 1300, and at 1600 each day. When it runs it will scoop all the current labs results out of the database table where they have been accumulating, and send them on to the downstream system.
go to post Colin Brough · Nov 22, 2023 Thanks for this. Yes, Schedule is there in Ensemble 2018.1 as an additional setting. We will investigate and see whether its a suitable/cleaner alternative to Ashok's suggestion.
go to post Colin Brough · Nov 22, 2023 Thanks @Ashok Kumar , with a bit of tweaking that got us to where we needed to go. For clarity for anyone coming along and reading this later the steps would be: Create the BPL Business Process you want to call - at least have something in place you can call Create the HL7Task.Test class in ObjectScript from the example above - renamed as appropriate. The argument to CreateBusinessService is the name in the Production of the Service you will be calling (created below). Also you need to set pInput as a class suitable for use as a request, such as Ens.Request or (we used for an example) Ens.StringContainer Create the HL7.Feed.TriggerService class in ObjectScript from the example above, renamed as appropriate. In the Production, create a new service (whose name is that used in step 2), and whose class is the one created in step 3. Set the TargetConfigName on the service to the name of the BPL. Set the Pool Size to zero. Create a new scheduled task - run it in the appropriate namespace, and pick the class name from step 2 in the Task Type dropdown - and schedule as appropriate. Once all this is in place, you can call a BPL Business Process from a scheduled task.
go to post Colin Brough · Nov 14, 2023 Thanks Ben, helpful answer. Another reason to try and kick our organisation towards upgrading to Iris 😉
go to post Colin Brough · Oct 18, 2023 Keren, great, thanks - this has allowed me to see the content of the messages and I can dig further.
go to post Colin Brough · Oct 12, 2023 Thanks, yes, this is what it needed to be - got there myself, as it happens, but thanks. Documentation wasn't very clear.
go to post Colin Brough · Oct 10, 2023 I asked a related question a few months ago - I'll link to answers here. There is some overlap, eg Alex Woodhead's comparison tool, but hopefully helpful. Comparing code on running servers | InterSystems Developer Community |
go to post Colin Brough · Aug 11, 2023 Carmen, thanks, that's really helpful. If we need further information we'll reach out - as is so often the case, I'm doing some technical investigation for a development that may not ever be tackled, or may be tackled in a different way, or whose specifications will change wildly before we tackle it, or...!!!
go to post Colin Brough · Jul 18, 2023 For the sake of having an "accepted" answer on this post: we never got to the bottom of what was going on, and scrubbed and reinstalled Ensemble. Thanks for suggestions - some useful learning, even if we were never able to get to the bottom of what was going on.
go to post Colin Brough · Jun 12, 2023 Alex, thanks. Yes, license is still valid. And no, not possible to suspend before changing problem item - getting databases locking errors when I try. No idea how we managed to corrupt this quite so thoroughly!!