Upgrading from 3.0 to 3.1

Overview

The upgrade to IBM Financial Services Workbench 3.1-Preview is supported from the earlier version 3.0.

To upgrade IBM Financial Services Workbench from the previous version 3.0 to 3.1-Preview, just follow the steps in the Upgrade steps section below.

If upgrading from a version prior to 3.0, please first perform a complete upgrade to the previous version 3.0 including installation of 3.0, and then continue with the steps in the Upgrade steps section.

Note: In any case you have to upgrade the Solution CLI only once to the latest version (5.0.2).

Breaking changes

IBM Financial Services Workbench 3.1-Preview brings also some technical alignments that may lead to existing projects not working any longer. This section will give you an overview of the breaking changes and how to solve issues related to them.

TypeScript Low-Code projects

Integer, Decimal and Date used to be string type. Now Integer has the native Javascript (BigInt) type, Decimal now has BigNumber type from bignumber.js and Date now has the native Javascript Date type.

Tip: It is recommended to clone/pull all your low-code projects to fix the usage of those types if needed. Most of the parts can be easily identified by running fss compile, check the showed problems one by one and fix the type usage accordingly. In case you need to make mathematical operation between bigNumber and bigInt you will need to cast the bigInt using Number(yourBigInt)
  const myBigNumber = new BigNumber(19);
  const myBigInt = BigInt(4);
  const sumOfBigNumber = myBigNumber.plus(myBigNumber);
  const sumOfBigInt = myBigInt + myBigInt;
  // notes the casting of BigInt to number with Number()
  const sumBigNumberWithBigInt = myBigNumber.plus(Number(myBigInt));

Integration namespace will be accessed through this.apis like the following.

  // integration namespace operation call.
  const getCustomerResponse = (await this.apis.Customerapi.CustomerApi.getCustomer(prop1, prop2, prop3)).data;
  
  // previous usage to call integration namespace operation.
  const getCustomerResponse = await this.apis.customerAPI.getCustomer({customer_ref: this.input.customerID}).body;
Tip: Notice the use of namespacePrefix instead of apiDependencyName, removal of () in both namespacePrefix and the tagName also the return value are type safe now.

Migrate Java low-code projects

All existing low-code projects with implementation language Java need to be updated in the Git repository due to a known issue. There is only the root level pom.xml file that has to be changed.

Search for the parent attribute and change it according to the following snippet:


<parent>
    <groupId>de.knowis.cp.sdk</groupId>
    <artifactId>cp-framework-managed-sdk-parent</artifactId>
    <version>4.0.7</version>
    <relativePath>
        ./.framework/repo/de/knowis/cp/sdk/cp-framework-managed-sdk-parent/4.0.7/cp-framework-managed-sdk-parent-4.0.7.pom
    </relativePath>
</parent>

Migrate Integration namespace

User's using IBM Financial Services Workbench 3.0 and prior had the functionality to have more than one API dependency in an integration namespace. From IBM Financial Services Workbench 3.1, a user will only be able to have one API dependency for an integration namespace. For every new API dependency, a new Integration namespace has to be created.

Migrate Steps

It is suggested to have one API dependency for an integration namespace from IBM Financial Services Workbench 3.1 onwards. Hence, user's having Integration namespace with multiple API dependencies will be seeing the first API Dependency for the integration namespace in the General tab and a warning message on the right side of the page (above the Integration namespace details section).

The following steps are suggested to migrate the old API dependencies into individual integration namespaces:

  1. The user can click on the warning message which will open a sidebar card API Dependencies with the list of all existing API dependencies.

  2. A table listing all the API dependencies will be shown with three-dots-menu for each of the API dependencies.

  3. Use the three-dots-menu on the right side of a table row and click on Info. This will open a detailed View of the selected API dependency.

  4. In the Info view download the API specification file by clicking on the file name. Make sure to also copy the DEV binding if one exists in order to use it when recreating the namespace.

  5. Go ahead and create a new integration namespace.

  6. Create an API Dependency using the downloaded API specification file and if it exists the DEV binding.

  7. Repeat step 3 to 6 for all the API dependencies.

Attention: The user will be able to use the older API dependencies without migrating but won't be able to add any new dependencies to an existing integration namespace (having more than one API dependency).