Updates Management

Administration Page Application/Contract Syracuse/Collaboration Class updates Representation update

Update is a function that can be used to patch Sage X3 endpoints that is easier than the traditional patch process. This function allows for one-click updates. The way it works is that you upload the updates supplied as a ZIP file, creating an update record in the process. You can then modify the list of endpoints and the folders you want to update.

Two operations are possible with update records:

  • Update testing, which makes sure that the update can be installed.
  • Update application, which updates the selected endpoints and returns a log file.

This function is also executed in asynchronous mode. It applies the update to each folder in the list.

You can use this function if your Sage X3 version is at 2019 R4 or newer. This update feature, also called “easy update,” brings the environment to the latest release even if you have skipped a patch. You can use the Test update action to perform an impact analysis before applying the patch.

For example, if your environment is still at 2019 R4 and you want to patch to the latest release (2020 R4 for example), you can apply the single corresponding ZIP file that contains all the elements needed to update to the latest release, regardless of the origin release. You do not need to patch each version since 2019 R4.

NOTE: If you are updating your customer environment with and add-on or any bespoke development patch (using the previous patch format), or if the current Sage X3 version is prior to 2019 R4, you must use the Patch integration function (PATCH) located in Development > Utilities > Patches > Patch integration. For versions prior to 2019 R4, you must update each patch individually and in order without skipping one. For example, you cannot update 2019 R1 to 2019 R4 without first updating to 2019 R2 and then updating to 2019 R3.

In this situation, use the Patch test function (PATCHT) located in Development > Utilities > Patches > Patch test to perform an impact analysis before applying each patch.

Information associated to updates

Update

This box allows you to upload the update file. You can drag and drop a file or use the file explorer. The update file is a zipped file. It contains a list of directories and files as defined in the appendix.

As soon as the archive is uploaded, the application displays a description of the update.

Version

Displays the version number of the folder after the update.

Dependency

Displays the minimal version number required for a folder before you can apply the update.

Description

Displays a description of the update.

Scheduled

Displays at which time the update will be applied after you schedule the operation.

Release Note

Displays a link to the release note associated to the update.

Status

Displays the global status of the operation. Successful means that the update was successfully applied to each folder.

Patches

An update can contain several patch lists, some of which can be optional. This array contains the following information:

Name

The name of the patch

Description

A more detailed description of the patch

Mandatory

This check box defines whether the patch is mandatory or not.

Apply to endpoints

This grid can be filled with multiple selections from the Endpoint (Administration > Endpoints) list. You can click the arrow next to the reference folder to display the list of folders it contains:

For each folder, you can:

  • See the current version of each folder, the latest update date, the status, or even a link to display the trace when the patch is already applied.
  • Delete folders if you do not want to patch them. The folders within the folder you want to delete will also be deleted from the list.

You might want to deactivate the update on some folders when:

  • The folder is obsolete but has not been deleted yet.
  • The folder is rarely used and its update can be postponed.

Caution: Make sure that postponing the update of a folder will not make it unusable.

Operations available on a patch

Test update

This function is executed in asynchronous mode. It tests whether the conditions required to apply the patch are fulfilled for each folder in the list. It also checks the version dependencies. A popup displays the progress of the execution:

Apply update

This function is also executed in asynchronous mode. It applies the update to each folder in the list.

Technical details about patch testing or application

Execution order

Updates are applied level by level, starting with the top folder. Folders at the same level are updated in parallel. Folders that are lower in the hierarchy are updated after that.

Resuming a patch application after an error

If the application of the patch fails for any reason, the corresponding error status is displayed on the corresponding folders.

If the error is linked to an inconsistency on a folder, you have to fix it before you can try to apply the patch again. To restart the patching process, go back to the patch application (or refresh the page) and launch it again. The system automatically restarts and applies the patch, starting from where it stopped before.

Appendix: format of the patch archive

The patch archive contains:

  • A tree of folders containing patch files. The first level of the tree has the same name as the archive.
  • A configuration file (udpate.json) that contains metadata describing the content of the archive. This file has to be stored in the first folder of the archive.

Below is an example of such a file:

{
    "name": "X3_ProductUpdate_9.0.17",
    "version": "9.0.17",
    "dependency": "9.0.16",
    "description": "Update 9.0.17",
        "releaseNote":"Release note.pdf",
    "patches": [{
        "name": "Syracuse 9.0.17",
        "description": "Import files for Syracuse",
        "type": "Syracuse",
        "mandatory": true,
        "path": "SYRACUSE"
    }, {
        "name": "X3 9.0.17",
        "type": "X3",
        "mandatory": true,
        "path": "FILPATCH",
        "description": "Patch for X3 (standard)"
    }, {
        "name": "TESTBRA",
        "type": "X3",
        "mandatory": false,
        "path": "TESTBRA",
        "legislation": "BRA",
        "description": "Patch for BRA"
    }]
}

Where:

name

Uniquely identifies the update. It is used as a key in the database. Its format is as follows: char(30), X3 code format, uppercase, no special characters, no whitespace.

version

The version of the product after the integration of the update.

dependency

Defines on which version of the product the update can be applied.

description

Open field.

releaseNote

Contains the path of the file containing the release note in the archive. In this example, it is stored in the same folder as the update.json file.

patches

Collection that describes the patches contained in the archive.

name

Uniquely identifies the patch. It is used as a key in the database. Its format is as follows: char(30), X3 code format, uppercase, no special characters, no whitespace.

description

Describes the purpose of the patch.

type

Defines the type of checks to be performed for this patch: X3, HR, GX, IND, DIV, HRH, HRO, or DOC.

mandatory

Mandatory aspect of this patch (true/false).

path

Indicates the path of the directory containing the files that make up the patch.

legislation

If this attribute has a value, it indicates that the patch does not have to be applied on folders that do not manage this legislation.