/ Release  

OPA 25.4 is GA; Right on time in the first weekend of Q4...Excellent job

Hi there “Process Automation” fans,

Welcome to a new installment of “Process Automation” tips.

The end of 2025 is nearby, but we have a final 2025 GA release to deal with first as “OpenText Process Automation” 25.4 (Q4 in 2025) is here. I did a quick glimpse on the release notes, and it’s not spectacular, but still interesting to get informed about it. With our current governance projects, we saw a lot of hotfixes passing by which could be the reason for this minimal release (?) as extra pressure was put out on the back-end development team of OPA.

Extend your knowledge (with some chocolate and chips) on the update of this new GA release…Here we go!


Let’s get right into it…

I do a fresh installation again (because Java 21 with PostgreSQL 17.X version movements, and we want to use the latest supportive CARS and OTDS 25.3); So, re-check the installation. This post reviews the OpenText Process Automation CE 25.4 Release Notes. We’ll jump through each feature one by one to figure out what value it brings, how it works, and how we can benefit from it.

The quick tag is also working again at #ProcessAutomation25.4!


🆕 Update on the available changes in 25.4 🆕

For this post I also installed OpenText Content Management (for the xECM parts). The closest version for OPA 25.4, is xECM 25.3 which was a struggle to get installed on my RHEL 8.7 OS. Why? Because xECM 25.3 requires RHEL 9.X which I concluded too late and made me upgrade my RHEL 8.7 to 9.0 and eventually even from 8.7 to 8.8 (faked) to 9.2…Yes, that’s an eXperience on itself which I leave for myself. BUT we can now continue with the features for OPA 25.4!


ReadOnly filesystem support for container-based deployment

Let’s first clear out that I’m not a proponent of putting big monolith platforms (like our beloved OPA or even xECM or Documentum) into Kubernetes pods! I do know these platforms are slightly separated in components, but still I find the load for what should be managed within a pod too high. Pods (or containers) are designed to support the microservices era and one pod needs to do one thing and do it at its best with scalability as a mindset. So, I’m not against it. I’m only against it when monolith platforms are put inside a box mostly by architectural decisions by people that just follow the buzzwords of the IT world.

So, that’s of my mind…let’s continue!

OPA supports deployment in Kubernetes environments with “enhanced container security” configurations. By default, the container file system is enabled for both the Read & Write operations. To follow enterprise security policies, you can modify this behavior to support read-only access. You can set the property readOnlyRootFilesystem to TRUE in the Helm chart of the containerized installation.

Read here about the more specifics on this niche settings.


Rule Enhancements

We get two enhancements in the ‘Rule’ building block…

Make Mandatory; It’s a new type of action that can make a field/section on a form “required” when a condition is met. Interesting as you always needed to fiddle around with two of the same fields (one required and one not) and putting categories with ‘Rule’ BB logic showing one of the two fields. This works smoother now!

This is a typical application UI type of rule you can create like this:

updat_001

Works nicely in runtime! So, when you fill in nothing, you’ll see an asterisk for requirement and a message; When you fill in a value, the asterisk is gone…This feels very solid and mature now. Good job!

Trigger BPM on cancel action in rule forms; We are now in control when an end-user cancels/closes a form action. Before cancelling/closing the state of the entity might already be changed, and this action can start a BPM cleaning damage already done.

It took a while before this option “snapped” as first I was thinking “This is possible with an ‘onDelete’ rule…right?” Yes, correct when you are in the initialization/creation phase of your entity instance and cancel it. This, my friend is when you do an action type of rule on an existing entity instance. Whatever the action is, you can now select an “advanced” feature flag to start a BPM on cancellation OR on closing; So, it doesn’t matter what type of form you use as modal dialog:

updat_002


Create reports on process, lifecycles, case, and dynamic workflow data using OpenText Intelligence

It’s been a while we had a glimpse on this feature. In that time “OpenText Intelligence” was named InformationHub (iHub) or earlier “Magellan BI & Reporting”…Later also “Magellan AI & Analytics”; I did a search in my own content and I can even find quotes like “AI and Analytics with Magellan because AppWorks (in that time) uses Magellan iHub for reporting and dashboarding”. So, a clear name was required which is now “OpenText Intelligence”

So, from what we know of an OPA solution, we can open the /app/admin portal and export a blueprint (a ‘.datadesign’ file) that you can further process in “OT Intelligence Analytical Report Designer” (not for now). This file now also contains data about ‘Process data’, ‘Case data’, ‘Lifecycle data’, ‘Dynamic workflow data’, and ‘Task data’. Highly fascinating as that means we can now create knowledge-worker-decision reports that are directly visible within a layout of and entity layout instance. Or create a dashboard with reports that make this data visible for a broader (“management”?) audience.

updat_003

This is a copy from an export of my project where all these data topics got a quick implementation. This is the full export (for what it’s worth…)

NOTE: I see (again) BIRT stuff passing by!? It’s a long story with a backlog item about “BIRT”…Not directly in context with “OT Intelligence”, but in context of (again!) reporting over the relative BIRT connector in OPA; working with ‘.rptdesign’ files…It’s not for now, but it brings me back to “the elder” colleagues and this specific site to deep dive on it.


I wasn’t aware this was a thing, but I’m also not an end-user. The search functionality within user and group drop-down lists has been refined by prioritizing the exact matches at the top of the list.

updat_004

Previously (this is a view from another project), when a user entered a name, exact matches were often displayed after several unrelated results, requiring additional scrolling to locate the intended entry. This is indeed annoying when you have an extensive list of “Antal Bos” entries, and your exact match is not at the top…weird!?:

updat_005

For your information; I find this ‘Autosuggest’ dropdown field terrible to work with as what you fill in is suddenly gone and the results show sometimes even other weird things! Tell me about your eXperiences in the comments section below…

How do you create such dropdown?

  • First you add a ‘toOne’ relation to the identity ‘Person’ entity.
  • Next, you add the relation to a form (It’ll be a search-icon)
  • Change the search-icon to a drop-down and enable the autosuggest option:

updat_006


Dynamic workflow enhancements

Again, two enhancements in the ‘Dynamic workflow’ building block…Before this post there was “Blood, sweat, and tears”; because of the full setup for xECM over business workspaces. I followed my own posts again, and I’m glad I’ve documented it all; I see they are still extremely helpful (also for myself)! I’m amazed everytime how everything glues together over proper configuration where one mismatch brings you in a desert of misery, but we made it again! 😅

Notify groups in a task; This is a feature totally unclear for me where on earth to set it!? Eventually I gave up after too long of R&D time from my side…If you have a clue where to look? Let me know in the comments!

This is a copy directly from the release notes:

1
2
3
4
5
6
7
Dynamic workflow functionality has been enhanced to provide greater control over 
task notifications, when integrated with OpenText Content Management for
Government (Extended ECM for government). When adding a task, users can now enable
the Notify assigned users' flag. When this flag is enabled, notifications are sent
to either assigned user or all the members of an assigned group, overriding
individual notification preferences. This ensures that critical task updates are
communicated effectively to all the relevant stakeholders.

Reading the feature itself tells me that when you add a new task (I guess to a group; consolidated from OTDS), you can enable a ‘Notify assigned users’ flag (which I could not find in the documentation). So, my first guess is here, when adding a new task:

updat_007

This will show the next screen where I expect to have that setting available (but nothing!?):

updat_008

And YES, I do have the ‘Notification’ BB applied to the ‘DynamicWorkflows’ related entity with the ‘Add Task’ In-App notifications enabled with also a fresh instance of the dynamic workflow.

Adding a task to a running dynamic workflow instance (like I do above) or adding it to the template has the same result.

I do have xECM up and running with a ‘Case’ entity that creates a business workspace…If that’s “Extended ECM for government” is still a remaining question? I guess it is, but xECM has so much side-track-names that even I don’t understand it anymore? I know you have “Content Management” with the xECM module enabled, but these flavors pass by at the support site of OpenText:

updat_009

You let me know what we’re talking about here? I continue life…

Attach documents to dynamic workflow from business workspace; This feature is one of the reasons to let me install xECM 25.3 (the other reason is “instance roles” which will be a different post!). Now, make sure you have an entity ready with xECM (meaning a working ‘Business workspace’ BB). Add the ‘Dynamic workflow’ BB to it and publish:

updat_010

In runtime, you can then (as ‘Developer’ or when connected to the role ‘Dynamic Workflow User’) create a new instance of your entity and start a new workflow…

updat_011

…hit the new feature button…

updat_012

…and now watch this:

updat_013

NICEEEEE! 😎

updat_014

…One hour later…

Hitting the start button of my workflow, gives me a weird ‘Contents’ error…After research, I get to the conclusion to add the ‘Content’ building block (NOT to the parent entity; Also, NOT to the relative ‘LifecycleTask’ entity), but add it to the relative ‘DynamicWorkflows’ entity!

After this I get my next error which is a ‘NullPointerException’…Directly in runtime which is great for your end-users!? This is the stack-trace:

1
2
3
4
5
6
7
8
9
10
11
12
Caused by: java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:233)
at java.base/sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:296)
at java.base/java.nio.file.Path.of(Path.java:148)
at java.base/java.nio.file.Paths.get(Paths.java:69)
at com.opentext.cordys.entityCore.elements.contentElement.folder.FolderFinder.getItemFromFolderPath(FolderFinder.java:36)
at com.opentext.cordys.entityCore.elements.contentElement.folder.FolderFinder.find(FolderFinder.java:32)
at com.opentext.cordys.entityCore.elements.contentElement.soap.LinkDocumentService.performContentLink(LinkDocumentService.java:209)
at com.opentext.cordys.entityCore.elements.dynamicWorkflowElement.DynamicWorkflowUtil.initateDynamicWorkflowCaseInstance(DynamicWorkflowUtil.java:189)
at com.opentext.cordys.entityCore.elements.dynamicWorkflowElement.DynamicWorkflowUtil.saveFlow(DynamicWorkflowUtil.java:116)
at com.opentext.cordys.entityCore.elements.dynamicWorkflowElement.RestStartWorkflow.saveFlow(RestStartWorkflow.java:34)
at com.opentext.cordys.entityCore.elements.dynamicWorkflowElement.RestStartWorkflow.doPost(RestStartWorkflow.java:49)

The solution (and one to never forget again):

updat_015

Now for the final question! How can we review those attachments again once the workflow runs? Well, so far we’ve learned that they are saved/linked in the ‘Contents’ building block of the dynamic workflow instance! Aha…So, we just need a list of dynamic workflow instances as separate ‘Results’ panel to our case.

Watch and learn in these quick steps:

  • Add a ‘List’ to the relative ‘DynamicWorkflows’ entity
  • Add a ‘Layout’ to that same entity (with ‘Content’ and ‘Preview’ panel) AND mark it for “viewing items in full screen”
  • Add this list as ‘Result’ panel to the layout of your ‘Case’ entity

At this moment, you have this view in runtime (I know it’s a bit messy, but I got a little stuck on it!):

updat_016

Now you can open the dynamic workflow instance and with your layout (which shows the content), you’ll have a view like this:

updat_017

Watch that “link” icon which indices the content is not saved twice!
It’s time to move on to the next feature…


Content Enhancements

Just a convenience update where you can configure the content panel to open a folder by default when the layout with content panel is loaded. Again, end-users always needed to first click that annoying first “Default” folder before they could update any content!

It’s this option you’re looking for (when you have the ‘Content’ BB applied to your entity):

updat_018


Discontinued and deprecated features

The streak (🔥🔥) is broken with a discontinuation for Java 17; We move to Java 21 with our fresh installation. ‘Brava 16 EP7 Update 9’ is discontinued, but we move already to Intelligent Viewing. There is also deprecation for PostgreSQL 13.X; Another reason for a fresh VM installation with PostgreSQL 17.


That’s a “DONE” on OpenText Process Automation Platform 25.4; The playground is open on further consumption with interesting new features for this Q4 2025 release. Have a great weekend, and we see each other next week, with another topic at “Process Automation Tips”.

Don’t forget to subscribe to get updates on the activities happening on this site. Have you noticed the quiz where you find out if you are also “The Process Automation guy”?