Upgrading to NexJ CRM version 23.02
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 23.02
To upgrade to NexJ CRM version 23.02:
- Before upgrading NexJ CRM, you must upgrade NexJ Studio or Eclipse and install the new plugin. For more information, see Setting up NexJ Studio.
- 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.
- 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.
- 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'slib
directory. Ensure that any references to jTDS location or version in your environment or properties files have been updated. - 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.
- Back up application server files.
- Back up all databases.
- Upgrade all databases.
- Upgrade the application servers.
Deploy the application.
Start the application and verify that it has deployed successfully.
After completing these steps, you can now run NexJ CRM version 23.02.
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.
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. As of NexJ CRM 22.09, when you enable the feature, all existing notes are converted to rich text automatically.
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.
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.
Updates for version 22.11
As part of the fix for ECRM-29258: SSO exposed to CSRF, the NexJ framework is verifying the contentType for requests to RPC endpoints and channels where mismatched usage of vulnerable types "application/x-www-form-urlencoded", "multipart/form-data", and "text/plain" are no longer allowed, and will trigger an "Unexpected request content type" error with HTTP status 415.
In cases where a vulnerable type in the request cannot be rejected due to being a matching contentType, the NexJ framework checks anti-CSRF tokens and if not successful, a "CSRF verification failed" error with HTTP status 403 or 404 will appear based on environment configuration.
All clients upgrading to 22.11 must verify all areas of application integration. If any of the above errors are encountered, please verify that the contentType of the request matches the associated end point.
Updates for version 22.09
There are no connection or attribute updates associated with version 22.09.
Updates for version 22.06
There are no connection or attribute updates associated with version 22.06.
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.
Your web server may return an HTTP response header that contains the web server information. If you want to hide the web server information from HTTP response headers, you should refer to the relevant configuration documentation for your web server (for example, Microsoft IIS 10).
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:
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:
- Search all
.filter
metadata files for the conjunction attribute (conjunction="..."
). - 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. - 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 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:
- Changing
(ilm:Lead'LEAD_SYSTEM_CLASSIFICATION)
to a value of(LeadClassificationEnum'get 'B2B)
in your source code. - 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 accepted 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:
|
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
- Upgrade notes
- Example environment settings for NexJ CRM deployment
- Creating channel connections
- Creating SOA connections
- Creating data source connections