Hi there AppWorks fans,
Welcome to a new installment of AppWorks tips.
AWP 22.4 is available for Q4 2022. Let’s grab a beer and have ourselves an update on the new features for this version!
Let get right into it…
There will be no update in the main installation menu as I followed my own upgrade post to move from
22.4 for my RHEL image…It was the simplest upgrade there is because only the platform package required an updated. The Cars/OpenLDAP package is exactly the same version and also OTDS was still working after the upgrade; I didn’t check the OTDS version; It just works…Don’t fix it if it ain’t broken!
In this post we’ll review the (AppWorks Platform CE 22.4 Release Notes) delivered with the installation package. We’ll do a deeper dive on the newest functionalities delivered in this GA release. More information is also available in the release notes PDF.
🆕 Update on the available changes in 22.4 🆕
We all LOVE the ‘new stuff’…Here we go on the new GA release!
‘Dynamic workflow’ BB (GA version)
A quote from the release notes: Fully configurable to create and build dynamic workflows in the runtime. Now, business users can create case workflows during runtime.
I don’t further jump into this feature as most information is already covered in these 2 posts:
Let me ask you: Are your business users ready to build their own ‘Case’ workflows in runtime to cover their own process? Comment me as I would love to see this in practice and have a chat on this topic.
Low-code EIS Connector (GA version)
A quote from the release notes: Low-code developers can connect to the external systems, import their business objects as entities, and use them to build their applications just like a native entity created in AWP
There are now three ‘smells’ for the EIS connector
- Custom EIS connectors; covered in this post
- Predefined EIS connectors; I don’t know what this is…Something delivered from OpenText to connect something to anything?
- Low-code EIS connectors; it’s on my backlog as early Santa-Claus present for this blog site in December! 🎅 There is already some information available here.
The support of BBs? ‘Activity Flow’, ‘History’, ‘Email (template)’, ‘Security’, ‘Relationship’, ‘Title’, ‘Rule’. The big missing building block here is the ‘Web Service’ BB!
GIT as Source Control Management (GA version)
We covered this GIT feature already in the 22.3 update post. Now it’s here to stay…Lucky for us developers as SVN is OLD, and we want to be NEW! We are low-coders and expect to work with the latest and greatest feature-rich solutions. 💪
Let’s continue with the regular features that directly go GA…Hooray!
Open documents and emails on a new tab
Hmmmm…I was not aware the end-users could not use the
<Ctrl> to open documents and emails from the ‘Content panel’! So, an interesting feature for the multitasking end-user! We all love you! 😘 Why? Because there is no system/solution if the end-users can’t effectively work with it.
Email connector to use OAuth authentication for the classic mail protocols
We’re talking this option here:
So, when our mail server (like for example Postfix for RHEL) is OAuth enabled it would be possible to make it all happen. We played with Email connector before, but I will not dive into the OAuth enablement for a mail server in this post.
This is interesting information for an OAuth enabled Postfix mail server:
Extra note: From the user profile (in runtime) you can authorize an email provider to send emails on their behalf.
Configuration for Email Connector to move processed emails to a separate folder
Looks like currently all processed mails are deleted automagically!? I wasn’t aware of this; on the other hand, I don’t use the out of the box ‘Email connector’ that often. If you want to persist the emails, you can now configure a target folder to move the processed emails to. It must be an existing folder location (on the server, the XDS, or CMS?) and your administrators can verify data and track failures.
This is a setting done a magic YAML configuration file…I took the time to search it, but I wasn’t able to find it on my VM!? Let’s say, we ask OT support to tell the secret location of this file at the correct moment in time.
Hide layout panels using rule categories
Ohwww…That nice! Finally some business logic to show “content in context” for your entity layouts. For this feature, I dive into my ‘Case’ entity where I first create a new ‘Rule category’ with name
rc_toggle_can_use_mail. After this change, we can select this category on a layout panel:
Next step is to add a new rule
e_on_propchange_toggle_can_use_mail looking like this:
You can make it fancier with ‘real’ feature toggles from this post…In runtime, this is a live feature too! So, when you meet the criteria after changing a property, the panel is removed on the fly from the eye! So, what does this do with the responsiveness!? Well, everything scales like the panel wasn’t there in the first place. Nice “LESS” job! 😎
Nope, this is not working for a ‘Home Page Layout’ type of document!
Reorder Home page Layouts that appear in the hamburger menu
Is there more to say? Yes, it’s saved in the user preferences for the next session. Check out this query on the database
SELECT * FROM o2opentextentityidentitycomponentspersonalization;
With a row result like this:
Configure the discussion panel to show actual dates instead of elapsed time
Let’s apply the ‘Discussion’ BB to the ‘Case’ entity and add the corresponding panel in the
lyt_default with this new feature option:
Nothing more, nothing less…Next one!
Results list enhancements
The features on the ‘List’ BB for an entity are three-tiered:
Open items of results list in a new window in runtime; So, clicking an item with
<Ctrl>, it will open in a new tab! This is a great UX as normally I also use this key in an equivalent way during my own browser sessions searching for answers.
Persist results list scroll position when navigating between items; When moving back to a previous page, you don’t jump back to the top item of the result list, but you jump back to the previous position. This is an enablement option in your user profile:
Open a linked related item directly from the results list; Interesting! For this I create a ‘ToOne’ relation to the Identity ‘User’ with name
to_one_user from my ‘Case’ entity. On the ‘Create’ form, I make sure to select a user ‘Full name’ from a dropdown component. After this, we can do an option like this in the ‘Result’ BB:
In runtime, after selecting a related user, we see a new icon popping up in the list which opens the related entity (and works seamlessly with the
<Ctrl> key feature!):
Client error messaging enhancements
Simply click the error message to locate the problem and fix! This also works when the error is behind tabs! For this I update my ‘Create’ form for the ‘Case’ entity. These are the steps:
- Create a tab container with 2 tabs
- In the second tab, I create another 2 tabbed container
- The second tab of the nested tab container will have my
- In the settings panel of the
case_nameproperty, I make sure to apply an interesting pattern:
ZZ-999. So, 2 chars, a hyphen, and 3 numbers; So,
NL-123is valid input!
As cherry on the “Case”, I also put my form panel on the layout in a tab structure with the previous discussions panel. So, the field it gone, gone! 🙈 Time for a publication with a view in runtime like this (my case name is
Hmmmm…No error!? Let’s hit the ‘Form’ tab:
Ok…Click the error…Hmmm…Nothing happens!? Am I too optimistic with all my nested tabbing? It’s there, but not jumping to the field? This is how it looks when I click myself to it:
Well, I must conclude the feature works, but only after I removed the nested tab within the tab (so, only one level!). In most cases this should be sufficient (I guess!?)
When I move back to the ‘Discussions’ tab (after my change), and with the error in place, it also jumps my cursor to the correct field again! YOLO!! NEXT…
Improved business history panel
For this one, I add the ‘History’ BB to the ‘Case’ entity.
lyt_default, we can add the related history panel. After a publication, we can filter along in our new history-filter-enabled-panel:
My list is empty in the screenshot, but that’s a problem after my upgrade action on the local VM! During checking out the new features, I see errors passing by in my ‘catalina.out’;
The column 'S_PROXY' does not exist. So, it looks like the upgrade on my local VM is not 100% satisfied. On a brand new ‘Azure’ side-image, I don’t see this error!? “Stranger Things”! This error also pops up when opening the profile-page, but I didn’t tell you during that particular section of this post; I could grab a screenshot from another interesting partner-session! 🤗 Maybe this error is somewhere in the documentation, but I didn’t take the time to dive into it as the rest is working fine!
You read is correctly…I’m moving to the ‘Azure’ cloud with my images…It takes time to figure out how many advantages it brings me!? I struggle with the simple ‘snapshot’ principles which works different in ‘Azure’; Looks like it’s more on disk-level, instead of image-level like I currently do with my Oracle Virtual Box tooling. Let’s see where the ship will take us…
Configurable user interfaces for creating items for a ToOne relationship in a form
Let’s go back to the ‘Create’ form of the ‘Case’ entity and get into the properties of the ‘ToOneUser’ dropdown component. Make sure to mark the ‘Create’ action and select what should happen (open a form/layout):
- When you add multiple create options, you get a quick dropdown in runtime where the user can select the option which way to create a new related instance.
- When you select a layout, make sure the layout (from its properties) is marked with the option: “To create new items”
Build and deploy application image in Kubernetes using the init container
An interesting option to separate a custom solution from the standard AWP container. It was already possible to generate an AWP container including your solution as delivery in a project, but this will be a large delivery package! To make it small you can now build a minimalistic AWP-solution-init-container. During the deployment phase, it will first grab a standard AWP container from the OpenText registry container hub and deploy the small init-container over it.
If you understand Docker and understand the image layer principles behind it, you see this matches the principles for this new feature!
Deploy AppWorks Platform in case-insensitive mode for Oracle
Nice, but when is it the turn for PostgreSQL? I still have a backlog JIRA available stating:
As an end-user, I want to filter insensitive to my result lists so that I can get access to a correct filtered list.
We don’t have solution for now, but I always see the fanciest demo’s passing by from OpenText; it looks like they all run with an “MS SQL Server” database where insensitive mode is an option out of the box…
I did some research to get PostgreSQL in insensitive mode with plugins and extensions, but I never found if it’s a supported solution by OT!? Anyone with this specific experience in place…Any comment on this insensitive feature in welcome!
Support for renaming documents in OTCS
22.3 we got this feature already for Documentum! This is the first time a feature is DCTM-ready first, and later OTCS-ready! So, who’s your daddy now!?!? 😲
Java 17 LTS support
Sure, but I don’t break a winning team with Java 11 LTS. Have a look in the PDF “OpenText™ AppWorks Platform Supported Environments”:
Have a look here for all the Long-Term Support releases for OpenJDK.
Did I already mention the FooJay - friends of OpenJDK website…All interesting stuff, but that’s just me!
N/A…WHAT!?…Yes, all the good old stuff from previous releases is still available for this release! 🎉
That’s it for the new release…Playground 22.4 is open and ready to be used. A ‘DONE’ on this update post with a rich overview of the new GA features for this Q4 2022 release. Happy low-coding; I see you in the next post!
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 AppWorks guy”?