NexJ Logo

Upgrading to NexJ CRM version 22.04

Before you upgrade

Before upgrading, you must update the environment files, back up and update the application servers, and back up and upgrade the databases for your deployment. Also, ensure that you have upgraded your metadata model. For more, see Upgrading models.

NexJ strongly recommends clearing or truncating the NJSession table for any upgrade that requires a reseed. 

As a best practice, NexJ also recommends that you upgrade the push redirector to match your application framework version when you upgrade the application.

For assistance to upgrade from a previous version of NexJ CRM, contact your NexJ representative.

Upgrading to version 22.04

To upgrade to NexJ CRM version 22.04:

  1. Before upgrading NexJ CRM, you must upgrade NexJ Studio or Eclipse and install the new plugin.  For more information, see Setting up NexJ Studio.
  2. If you use Apache Ant to deploy your application, ensure that you are using Apache Ant 1.10.5 and that the ANT_HOME variable in the System Variables list is set to the correct Ant folder.
  3. Push redirector configuration is required for reminders and notifications. If you have not configured push redirector, configure it. For more information, see Configuring push notification.
  4. If you are using Microsoft SQL Server, copy the jtds-1.2.2-9.jar database driver file from the < NEXJ_PLUGIN>\ext folder to your project's lib directory. Ensure that any references to jTDS location or version in your environment or properties files have been updated.
  5. Update the environment file or the server and connections files with any other changes required to support new functionality. For more information, see Connection and attribute updates.
  6. Back up application server files.
  7. Back up all databases.
  8. Upgrade all databases.
  9. Upgrade the application servers.
  10. Deploy the application.

  11. Start the application and verify that it has deployed successfully.

After completing these steps, you can now run NexJ CRM version 22.04.

Transport Layer Security (TLS) protocol versions prior to 1.2 are deprecated. If you update your web server to support TLS 1.2, you must update your Microsoft Exchange servers to support TLS 1.2 as well, otherwise push notifications and real-time inbound sync will no longer work.

Upgrading your JDK or JRE

If you upgrade your Java SE (JDK and JRE) from version 8 to version 11 as part of your upgrade of NexJ CRM, you must recreate your keystores.

Java SE 11 uses updated encryption and MAC algorithms, which offer better security, but which are incompatible with previous versions. You can view details concerning this change in the java.security file by looking at the security properties starting with keystore.pkcs12.


Connection and attribute updates

When you upgrade NexJ CRM, you must update the environment file or the connections file for your deployment to reflect new structures and support new functionality. Review the update information for all versions between your current deployment and your new one. 

After updating the environment file, use the Database Schema Tool in NexJ Studio to issue the create command for your data sources. This generates the appropriate SQL scripts that should be provided to your database administrator.

In a test or development environment, you can use the Data Load Tool in NexJ Studio to issue the recreate command for your data sources. To execute this command, you must have the appropriate security and permissions configured on the database.

Consult with your development team to confirm whether additional customized channels have been added to your project.

Updates for version 22.04

There are no connection or attribute updates associated with version 22.04.

Updates for version 22.03

Enabling users to display more records in data tables

As of NexJ CRM 22.03, you can enable users to display 20 or more items in all data tables using the Items per page drop-down in the user interface by configuring the global pageSizeMultiplier attribute. For more information, see Example environment settings for NexJ CRM deployment. You can also use the optional table view multiplier property to enable users to display 20 or more items in a specific table. For more information, see Table.

Hiding the Apache Tomcat server version on HTTP error pages and hiding Tomcat error reports

As of NexJ CRM 22.03, you can hide the Apache Tomcat server version number on HTTP error pages using the hideErrorValveServerInfo attribute in your environment file. You can also hide the presentation of the Apache Tomcat server error report when an error occurs using the hideErrorValveReport attribute. For more information, see Example environment settings for NexJ CRM deployment.

Enabling rich text for document notes

As of NexJ CRM 22.03, you can include rich text in documents created on the Document Manager workspace or added to a contact, opportunity, or service request. Rich text allows your documents to contain formatting such as bold or italic fonts, bulleted or numbered lists, images, or tables. This feature is enabled by setting the crm.document.richTextEnabled environment variable to true in the environment or properties files, and then you must convert existing notes to rich text by logging in to NexJ Admin Console, clicking the Batch Broker button, and running the BatchUpdatePlainCovertToHTMLCommand batch job with the class argument set to Document. Due to the performance of the batch job, it is recommended that you run the job on a smaller subset of data with a where clause on the batch job. For example, the following batch job will only process the data edited from 2022-01-01 to 2022-08-19:

Batch job where and class values example

If the crm.document.richTextEnabled environment variable is not specified with the value true in the environment or properties files, only plain text is supported. For more information, see Example environment settings for NexJ CRM deployment.

Updates for version 22.01

There are no connection or attribute updates associated with version 22.01.

Updates for version 21.12.1.0

The logging framework in NexJ CRM has been upgraded from Log4j version 1 to Log4j version 2 in the 21.12.1.0 release, and the syntax for configuring logging has changed. For more information, see Migrating from Log4j 1 to Log4j 2.

Updates for version 21.12

Upgrading the metadata model in 21.12

As part of the fix for AFL-6583, there are some additional considerations after upgrading the metadata model. You should:

  1. Search all .filter metadata files for the conjunction attribute (conjunction="...").
  2. For each occurrence, determine if the attribute was defined deliberately within the project to meet a specific use case. If it was defined deliberately, ensure that your custom use case is tested and verified. Otherwise, remove the conjunction="..." definition from the corresponding filter attribute.
  3. Verify known project-specific filter-related use cases.

Running an application with the AJP Tomcat connector

As of NexJ CRM 21.12, when you are using NexJ Model Server, and after upgrading Apache Tomcat, the secretRequired attribute for the AJP Connector is true by default, and requires you to either specify a secret or set secretRequired to false. In addition, for testing and production environments that are not within a DMZ network, the ajp.connector.address property needs to be set to all associated IP addresses in the environment file (for example, ajp.connector.address="0.0.0.0"). Without this, an error may occur when running an application with AJP configured. For more information, see Configuring Tomcat connector properties.

Seeding sample data based on application type

As of NexJ CRM 21.12, you can use the applicationType property in your environment file to determine the type of configuration data (for example, users, contacts, households, and custom fields ) that will be seeded into NexJ CRM for on-premise deployments or NexJ CRM for Wealth Management (NexJ CRM deployed in the Cloud). The property's value can be either "ecrm" for on-premise CRM or "wm" for Wealth Management. Both application types have their own set of sample data, which will be seeded in only if the sampleData property is also set to "true". If the applicationType property is not found, the system assumes a default of "ecrm".

Updates to enable the en_US locale

If you want to enable the new en_US locale, follow the procedure described at

For more information, see Enabling en_US language support.

Updates for version 21.09

There are no connection or attribute updates associated with version 21.09.

Updates for version 9.9

Configuring servers for cross-server SSO

As of NexJ CRM 9.9, an extension of the existing NexJ single sign-on (SSO) system supports use cases with multiple NexJ servers. 

For more information, see Configuring servers for cross-server SSO.

Updates for version 9.8

Using Integrated Lead Management

As of NexJ CRM 9.8, a new legacyLeadsEnabled property has been added to the environment file, which defaults to true, and specifies that you will use the legacy leads functionality that was available prior to the 9.X releases. If you want to use the leads functionality that enables leads to be treated as entities, and that is provided with NexJ CRM 9.8 in the classic UI only (released with 8.X), you must set the property to false. If you are using the UI provided with 9.8.X releases, leave the property as true.

NexJ CRM does not support upgrading deployments that are currently running the legacy leads functionality to the 9.8 leads functionality, and this exercise should be done as part of a services upgrade. Also, NexJ does not support toggling between the new 9.8 leads behavior and legacy leads behavior. If a legacy lead object is not properly upgraded (by services team in projects where they want to upgrade from legacy leads to the 9.8 leads functionality), attempting to edit it or dock it using the 9.8 UI will result in an error being thrown.

As of NexJ CRM 9.8.2, you can configure your system to support converting leads to companies instead of contacts to support a business-to-business model by:

  1. Changing (ilm:Lead'LEAD_SYSTEM_CLASSIFICATION) to a value of (LeadClassificationEnum'get 'B2B) in your source code.
  2. Recreating the database.
    You may need to turn off sample data at the environment flag level at this stage in NexJ Admin Console, as the sample leads are expecting a leads to company configuration.

For more information about setting the lead mode for your deployment, see Setting the lead mode.

Update for CORS support

You can enable Cross-Origin Resource Sharing (CORS) headers to be set on an application server response to allow requests from other origins, and from which a browser should permit loading of resources.

The origin must be defined in the environment file as follows to be acccepted as a valid CORS origin on the server:

<Hosts>
   <Host name="cors-origin" trusted="true" url="http://localhost:3000"/>
</Hosts>

The URL will be matched against the request origin for an exact full match (no wildcard or regular expression can be used).

Update for Oracle Database 19c support

If you are deploying Oracle 19c database on a production system, ensure your adapter is set to "Oracle" and not "Oracle11g" in the environment file.

Maintaining NexJ single sign-on authentication

The existing NexJ single sign-on solution must be explicitly added to the environment file if you want to maintain this authentication. While the solution has not changed, the configuration pattern has been altered to better facilitate alternative authentication options in the future. A sample snippet of the environment file configuration is shown below:

<Mixins>
      ...
      <Mixin namespace="http://www.nexj.com/ns/sso" version="1+"/>
      ...
</Mixins>

The <Mixins> tag is the first child element of the <Environment> tag. If one already exists then the <Mixin> tag can be slotted in as a sibling, otherwise the full <Mixins> tag should be added.

Updates for version 9.7

There are no connection or attribute updates associated with version 9.7.

Updates for version 9.6

There are no connection or attribute updates associated with version 9.6.

Updates for version 9.5

stuckThreadThreshold attribute for logging web requests

This new environment file attribute enables logging for NexJ Model Server web requests that run longer than the set threshold (measured in seconds) when it is set with a positive integer. For more information, see Detecting long-running web requests.

Updates for Microsoft Exchange Online OAuth support

If you are moving to OAuth authentication for Exchange Online, follow the required procedure described at Using Microsoft Exchange Online with OAuth authentication.

Related topics