CloverETL 4.5.0

CloverETL 4.5 adds another addition to the Salesforce connector family—the Salesforce Wave Writer.
It also introduces enhancements to the Event Listeners UI in the Server Console and adds options for restarting jobs
from the Executions History view with parameters.

This release does a bit of housekeeping too, removing now obsolete CTL1 support and backquote inline code.
Please check the Compatibility section for more details.

Recent Releases

Try it yourself

New features in 4.5

Salesforce Wave Connector

We're introducing new Salesforce Wave writer—a simple solution for loading data into Wave Analytics/BI platform.
You can create new datasets and append or update/insert data into existing ones.

Event Listeners overhaul

We've redesigned the user interface for Event Listeners in Server. It has been consolidated into a single module listing all listeners present
in the system for a better overview.

Restart job on Server; modify parameters if needed

You can now restart a job on a Server (useful for restarting failed executions) from the Executions History tab.
You can also change the parameters of the job (graph or jobflow) before restarting it.

In the Executions History view in the Server Console, you have the option to either restart a job using the same parameters it was first executed with or manually change the parameters before restarting the job.

Imagine a file listener starting a job. It passes a file path to the job as a parameter. Restarting such a job requires
knowing the exact parameters that the listener provided. With this update, you can easily reuse the starting parameters, modify them if you need to,
and restart the job.

Removed obsolete CTL1 + additional compatibility changes

We are completely removing CTL1 code from CloverETL.

This obsolete predecessor of the current CTL2 (CTL2 was introduced in CloverETL 3.0 in 2010) has long been deprecated, so we've now
moved to completely remove it from the product.

With this change, inline expressions in backquotes (e.g. "filename-`today()`.csv") are being removed as well, as
this syntax caused numerous issues. Instead, use dynamic parameters for on-the-fly calculations.

We're doing some long-awaited housekeeping in this release.
None of the changes should affect your everyday use of CloverETL.
However, we recommend going over the Compatibility section of this release.

Installation/Upgrade Instructions for CloverETL 4.5

To help you install or upgrade to this version, we've prepared a simple checklist:

Before You Upgrade

Be sure to check the "Compatibility" notes for ALL intermediary releases.
We mark all changes that can potentially alter the function of your existing transformations with a "Compatibility" label to make it easier for you.
You can safely ignore most of them, as we try hard to keep as much backwards compatibility as we can.
There's a comprehensive list of all releases that will help you get the information quickly.

Upgrade Designer and Server together. We always release Designer and Server together under a single version. It's highly recommended
to upgrade Server and Designer at the same time. Although using different versions of Designer to connect to Server might work, it is not generally supported.

There are no incremental patches. We don't release incremental patches. Every upgrade is in fact a full installation that, if installed over older version,
will automatically update whatever is necessary in your workspaces, sandboxes, and Server databases as needed.

Don't forget to backup.
Although none of the above upgrade steps requires explicit backup, we recommend you always back up your work. The upgrade will keep all your transformations,
jobflows, and configurations safe. However, as a good word of advice, it never hurts to have a backup.

Designer Upgrade

Install the new version of Designer.
You can install Designer over your existing installation. The process will automatically clean up the old version.
Don't worry, you will NOT lose your workspaces, graphs, and transformations. However, if you installed some additional plugins
to Designer (Eclipse plugins) you might need to reinstall them. Eclipse should automatically help you do that.
When you start the application, point it to your existing workspace directory. With some
major releases, we may notify you about upgrading the workspace to the latest version. In such cases, you won't be able
to use the workspace with previous versions. Thus, be sure to upgrade all Designers if you're sharing the workspace.

Activate the product on first start. You will need a new key as we issue new license keys for every new major version
(i.e. from 4.2 to 4.3). However, if you're on our maintenance program, we automatically renew the keys for you.
Just go to the download area again and copy/paste the license keys from there.
If you can't find the latest keys, please contact us to renew your product maintenance.

Plan for downtime. Upgrading Server requires downtime, so plan your upgrades in advance. If you're running multiple environments, upgrade the non-production installation first and run all your checks there first.

Follow step-by-step Server Upgrade Guide.
We've prepared detailed instructions on how to properly shut down Server and install a new one. Server will upgrade its database and sandboxes from any previous version automatically.

Activate the product on the login screen of Server Console. The license key changes with every major version
(i.e. from 4.2 to 4.3) and we automatically renew the keys for you. Just go to the download area again and copy/paste the license key from there.

Server

Now you can restart a job with the same input parameters (or you can change them before running the job). This greatly simplifies restarting jobs with parameters provided by Listeners or other parameter-driven automation.

There is now just a single Event Listeners module that consolidates all types of Event Listeners (file, graph, jms, …) into one unified UI for a better overview. This is a user interface update only; all your listeners will continue working without change.

Unfortunately, there's no automated conversion tool between CTL1 and CTL2. We recommend revisiting and rewriting any CTL1 code manually.

Inline CTL code in backquotes
(e.g. "filename-`today()`.csv") is no longer supported. This feature has been completely removed with CTL1. Backquotes
now resolve as ordinary characters and no longer produce warnings when used. This mainly affects MySQL query syntax which no longer requires escaping
with backslashes (although that syntax is still valid and is backwards compatible). As a replacement for inline code in backquotes,
use dynamic parameters.

Fixes

HttpConnector uses CloverETL engine default charset instead of the system default one. This is a backwards incompatible change, as the two defaults can be different. You can set the charset directly on the component or use the now default configuration parameter Defaults.DataParser.DEFAULT_CHARSET_DECODER in defaultProperties.

ExecuteScript no longer hangs on a process that cannot be killed within a given time limit. Instead, it now properly times out and finishes, but the background process remains active until it stops naturally or hangs there forever.

Unfortunately, there's no automated conversion tool between CTL1 and CTL2. We recommend revisiting and rewriting any CTL1 code manually.

Inline CTL code in backquotes
(e.g. "filename-`today()`.csv") is no longer supported. This feature has been completely removed with CTL1. Backquotes
now resolve as ordinary characters and no longer produce warnings when used. This mainly affects MySQL query syntax which no longer requires escaping
with backslashes (although that syntax is still valid and is backwards compatible). As a replacement for inline code in backquotes,
use dynamic parameters.

HttpConnector uses CloverETL engine default charset instead of the system default one. This is a backwards incompatible change, as the two defaults can be different. You can set the charset directly on the component or use the now default configuration parameter Defaults.DataParser.DEFAULT_CHARSET_DECODER in defaultProperties.