/ Installation  

Installation survival guide update 16.7 (and what's new!)

Hi there AppWorks fans,

Welcome to a new installment of AppWorks tips.

This time we do a brand-new installation of the new GA AppWorks platform version 16.7 (also known as version 16 EP7). This is available since Q4 2019, so we give it a chance to install it. So, here it is together with an update on the new features the are released in this version!

And why not do an upgrade on your current image?…That was an option, but I wanted to get rid of some things like…

  • The Documentum platform (as my image was rather heavy).
  • SVN that I moved to my local machine with Visual SVN Server.
  • The mail server (Postfix with Devecot) that I also moved to my local machine with hMailServer
  • And…There is a change that things might break when not correctly managed. It has to do with the multi-developer feature where the .cws source files have a split per building block!

To be honest I tried the upgrade on my image but failed with a stuck image and I wanted to continue my journey! I have it in backup and we might get a post on that one when I figured out what went wrong…I can tell you it was not the software upgrade itself, so probably something I did wrong in the first place.

Let me introduce you to the product page where you get some overview information about what is released, but we get in more detail in the end of this post on the most important updated.

Let get right into it…

My starting point is my own manual that you can find in the main installation menu. But I will give you an update on each step I did on the 16.7 installation.

  1. Oracle Virtual Box

Although it’s still the same version it might be time to upgrade to later version. You can do this from menu in to tool itself


Just follow the instructions or if you are lucky you get this message


  1. Creation of the VM image on Virtual Box

The steps still apply with an extra notion of the ‘Supported Environments’ PDF that can be found here


  1. Requesting an AppWorks license

Still the same and you can even use the same license file from a previous installation, but make sure you use the same full qualified domain hostname corresponding in the license file!

  1. Installing CentOS (minimal)

The same to be followed (watch the FQDN)

  1. Installing Java

Can be the same I only point now directly to the /usr/lib/jvm/java-11-openjdk- in my cat ~/.bash_profile

Also, the version can still be the same, but you probably get a later version now during installation. I run with java -version

openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)


  1. Installing TomEE

It’s also still the same but…

During my installation last year of AppWorks 16.6 there was only the version of TomEE 8.0.0-M2. Do NOT use this version for 16.7!!

Make sure to use the correct GA 8.0.0 version of TomEE found here since Sept. 2019. With this also make sure you point out to the correct installation location /opt/tomee/apache-tomee-plus-8.0.0


Why so sure about the 8.0.0 version?

I got an error after the first upgrade try-out: Unsupported TomEE version '8.0.0-M2'. Supported: [^8\.0\.[0-9]+$]

I put that information on https://regex101.com/

With input ^8\.0\.[0-9]+$ on test string 8.0.0-M2 it gives indeed no result!

Test string 8.0.0 does give result!

So…After some research I can tell you that the M-releases of TomEE are the Milestone-releases. And after my first installation (last year) there was no 8.0.0 release yet and 16.6 was OK with that. The ‘8.0.0’ is only available since last September. Looks like 16.7 does an explicit check now on that TomEE version.

  1. Installing PostgreSQL

Still the same (including the JDBC driver JAR file!)


  1. Installing CARS

Still the same installation procedure. Only the ‘direct link’ downlink is moved to here. I also go for the whole suite this time where also ‘OTDS’ and the ‘Gateway’ is including as both will be used on this site.

The version for CARS is still 2.6, but probably patched to work with the 16.7 AppWorks platform!

  1. Installing AppWorks

The same procedure to follow.

  • Make sure to pass the CLASSPATH variable within the setup where you made that ‘postgresql-42.2.5.jar’ file available.
  • Make note of the correct paths in your cat ~/.bash_profile
  • And…in all the screenshots you will see 16.7 in the header! 😏
  1. The final packages deployment

The same!

🆕 Update on the available changes in 16.7 🆕

With a new version of the platform we also get a lot of new functionality. This will give you a proper overview of the ‘new stuff’.

Team entity development…finally!

Breaking the large XML in several XML files (1 for each building block). This is better for the source control so multiple developers can work on 1 entity, but you still need to communicate about the building block you work on as a lock will still be in place on the source file. In AppWorks these files have XML content with the extension .cws. This also improves the publishing performance.

It looks like this in your SVN source control.


This is a valid question to ask: “How is this handled/migrated when you already have a project where the files are not yet spitted?”…The answer: “When you upgrade the workspace; the project will be automagically split up for you”.

Runtime changes…The expensive name for the ‘front-end’ changes

  • New card view as a list with nice icons
    • Open a list building block on your entity and go to the ‘Card View’ tab


Select your template and select to corresponding properties for the template fields. The property you select must meet the criteria of the field (hover over the question marks), but a ‘Logo’ for example can only applied on a property of the type ‘Image’. And a good question: “How can we create these templates ourselves?”.

This screenshot shows the front-end on how to switch to the card view (after publication of the entity change)


  • Linked validation messages will let you jump right to the correct form location
  • Share-action button with permission as building block, but now also on content level!


After the security building block and the sharing building block are in place (both for the entity itself and its related ‘content’ building block!) you can do things like this:


  • Type-a-head for filtering on an ‘enable autosuggest’ option on a dropdown in a form


    This is only available when you drop a relation on the form of type ‘To one’. So, in my case the ‘ToDo’ entity that is related to one ‘Member’ entity. You also need to update the presentation of that form item to type ‘Drop list’ as you can see in the screenshot!

  • Grid sorting options (Sort by default column and the default order ASC/DESC)


Low-code time changes…That’s a fancy word for us developer working with the ‘Explorer’ or the old name ‘CUSP’. To make it more complex…I also hear the term ‘Design-time’

  • Form type selection (when you create a new form)
    • Autosave (is the classic variant)
    • Cancellable dialogs that don’t change something persistent (gives transactional control)


  • Rules with ‘send email’ as an action (based on email template building block). Normally done by triggering a BPM


  • Theming

    • With CSS Entity. A new ‘Advanced’ tab is made available for direct CSS editing.


    • Also, more styling is made available on global forms level


  • Application configuration (‘Solution variables’ 2.0)

    • Solution variables from the admin panel is still valid, but this is next level stuff…

    • In design-time you can use the ‘Application configuration’ action.


      With a set of building blocks where the properties can be used for the ‘old’ solution variables. These can now be edited with a form from the runtime perspective. We make a separate post out of this functionality


    • From the /app/admin panel you can give input in the ‘Configuration properties’ section


    • These configuration properties can then be read out from a ‘Rules’ building block by another entity that reuses the configuration data (e.g. config.AppWorksProject.Properties.Variable)


  • Custom coding…now we’re getting somewhere, but we’ll try this out in a separate post…It’s on the backlog!

    • You need ‘JavaScript’ and some ‘XML’

    • Create a (homepage) layout with a result list that related to a ‘List’ building block (nothing fancy here)

      • In the layout screen there is a ‘Panel customization’ container where an option is available ‘Customize panel’


      • Select the JavaScript file (e.g. my-control.js) and add the XML extensions configuration (it’s just an example!) and both look a bit like this:
    #JavaScript part

    const template = document.createElement('template');
    template.innerHTML = `
    :host { display: block; }
    .my-header { margin-right: 10px; }
    <div class="my-header">

    class MyControl extends HTMLElement {
    //getters and setters

    constructor() {
    actionComplete() { ... }
    connectedCallback() { ... }
    disconnectedCallback() { ... }
    generateView(...) { ... }

    customElements.define('my-control', MyControl);

    #XML part

    <tag-name>my-control</tag-name> //relates to the javascript filename
    <properties> //relates to the column names of the result list
    <startDate>DateStart</startDate> //The text within the tag equals column-name!
    • This kind of customization can also be applied on a form where it is called ‘Customize presentation’


And this give it a greatly earned ‘DONE’ on the installation update for 16.7 as well for the overview of the new features for this GA EP7 release. New items are placed on the backlog to create posts out of it and you already see that there is a lot improvement in this version where we can start to play with. It also gives a nice inside that the OpenText R&D department on AppWorks is high on the priority list…good stuff to know!

Don’t forget to subscribe to get updates on the activities happening on this site.