This page explains the changes required to migrate to the stated version of Atoti Sign-Off.Documentation Index
Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
Use this file to discover all available pages before exploring further.
Migrate to 6.0.1
Upgrading from version 6.0.0 See Atoti Sign-Off 6.0.1 Release Notes.Headline announcement
- Persisting full scope paths: Full scope paths are persisted to the JPA layer to allow handling of scopes with slicing and non-slicing hierarchies.
- Customized sign-off status feed: The sign-off status feed member for “in review” representation can be customized on the application server.
Using full scope paths in persisted data
Older versions of Atoti Sign-Off did not include the full scope path for definitions that were saved to the JPA layer. As of this version, full scope paths will be used. For example, if you have a definition on the slicingBook level, the old path would look like:
6.1.0, we have added a migration endpoint. The reason for adding an endpoint rather than a
script is that we need to connect with the application server to get the full scope path.
You only need to run the migration if you are using persisted data as your golden source of Atoti Sign-Off data. If you are using files as your golden source
of data then you do not need to run the migration.
- Start your application server.
- Start Atoti Sign-Off with the
6.0.1-migrationSpring profile to include the endpoint and override default validation. - Run the migration endpoint. You can do this via Swagger by executing the POST request at
<base URL>/sign-off/rest/v2/migrate/sign-off-definition-scopes. The migration endpoint retrieves the full scope paths from the application server and updates the definitions if necessary. - Restart the application server and Atoti Sign-Off as normal (without the
6.0.1-migrationprofile) to view your updated definitions and proceed as normal.
Configuration properties
Properties added
signoff-activeviam
| Property Name | Comment | Value |
|---|---|---|
sign-off.application.settings.feed-member-coordinate.member | Defines the members for the Sign-Off hierarchy. | [TOTAL REVIEWABLE] |
Configuration
Configuration properties
Properties added
signoff-activeviam module| Property | Default value | Description |
|---|---|---|
sign-off.workflow.approver-can-be-same-as-previous-user | false | When enabled, the approving user can be the same as the previous user in the workflow. |
sign-off.application.overlapping-scopes.allowed | false | True if users are allowed to create definitions on overlapping scopes, false otherwise. |
Configuration files
Files modified
RestApiProperties.java
Updated properties:| Key | Comment | New Value | Old Value |
|---|---|---|---|
statusEndpoint | Updated the default value. | /activeviam/pivot/rest/v9/ping | /sign-off/enabled |
UI settings
Updated properties:| Key | Comment | New Value | Old Value |
|---|---|---|---|
availableApplicationServers | Cube-specific module settings are no longer needed. | string[] | {[serverName: string]: {[cubeName: string ]: {// Cube-specific module settings go here}}} |
| Key | Comment |
|---|---|
filteredApplicationCubes | This is fetched from the server and set in application.yml. |
adjustmentCommentLevel | Used by dashboard widgets that have been removed. |
adjustmentFiltersLevel | Used by dashboard widgets that have been removed. |
adjustmentIdLevel | Used by dashboard widgets that have been removed. |
adjustmentInputLevel | Used by dashboard widgets that have been removed. |
adjustmentLiveFromLevel | Used by dashboard widgets that have been removed. |
adjustmentLiveToLevel | Used by dashboard widgets that have been removed. |
adjustmentReasonLevel | Used by dashboard widgets that have been removed. |
adjustmentsServerNameLevel | Used by dashboard widgets that have been removed. |
adjustmentStatusLevel | Used by dashboard widgets that have been removed. |
adjustmentsWorkflowStatusLevel | Used by dashboard widgets that have been removed. |
adjustmentTypeLevel | Used by dashboard widgets that have been removed. |
adjustmentUserLevel | Used by dashboard widgets that have been removed. |
adjustmentValidFromLevel | Used by dashboard widgets that have been removed. |
adjustmentValidToLevel | Used by dashboard widgets that have been removed. |
adjustmentCubeSettings | Used by dashboard widgets that have been removed. |
allowedStatusForArchive | Allowed actions are now fetched dynamically from the server. |
allowedStatusForDelete | Allowed actions are now fetched dynamically from the server. |
allowedStatusForEdit | Allowed actions are now fetched dynamically from the server. |
allowedStatusForPublish | Allowed actions are now fetched dynamically from the server. |
areWorkflowButtonsHidden | Allowed actions are now fetched dynamically from the server. |
availableRoles | This is fetched from the server and set in application.yml. See sign-off.workflow.roles. |
failedStatuses | Used by dashboard widgets that have been removed. |
fields | This is fetched from the server and set in application.yml. |
isValidFromFieldDisabledForAdjustments | This is always disabled. |
signOffButtonInformation | This is fetched from the server and set in application.yml. See workflow.configuration. |
signOffInstanceAsOfDateDimensionName | Used by dashboard widgets that have been removed. |
signOffInstanceAsOfDateHierarchyName | Used by dashboard widgets that have been removed. |
signOffInstanceAsOfDateLevelName | Used by dashboard widgets that have been removed. |
signOffInstanceKeyDimensionName | Used by dashboard widgets that have been removed. |
signOffInstanceKeyHierarchyName | Used by dashboard widgets that have been removed. |
signOffInstanceStatusDimensionName | Used by dashboard widgets that have been removed. |
signOffInstanceStatusHierarchyName | Used by dashboard widgets that have been removed. |
signOffInstanceStatusLevelName | Used by dashboard widgets that have been removed. |
signOffRoleActionMap | Allowed actions are now fetched dynamically from the server. |
signOffStatusProgress | Used by dashboard widgets that have been removed. |
signOffWorkFlowMap | This is fetched from the server and set in application.yml. See workflow.configuration. |
startDailyProgressStatus | Used by dashboard widgets that have been removed. |
taskDefinitionCategoryDimensionName | Used by dashboard widgets that have been removed. |
taskDefinitionCategoryHierarchyName | Used by dashboard widgets that have been removed. |
taskDefinitionCubeName | Used by dashboard widgets that have been removed. |
taskDefinitionNameDimensionName | Used by dashboard widgets that have been removed. |
taskDefinitionNameHierarchyName | Used by dashboard widgets that have been removed. |
taskDefinitionWorkflowStatusDimensionName | Used by dashboard widgets that have been removed. |
taskDefinitionWorkflowStatusHierarchyName | Used by dashboard widgets that have been removed. |
taskInstanceCubeName | Used by dashboard widgets that have been removed. |
application.yml
New properties:| Property Name | Comment | Value |
|---|---|---|
| activiti.datasource.properties.hibernate.default_schema | The default schema used by the Activiti datasource. | sign-off |
| application.datasource.properties.hibernate.default_schema | The default schema used by the Application datasource. | sign-off |
| application.rest-apis.MR.mdx-endpoint | A rest endpoint that can be called to execute MDX queries on the server. (MR) | /activeviam/pivot/rest/v9/cube/query/mdx |
| application.rest-apis.MR.cubes.Var-ES Cube.as-of-date-level | The full level used to determine the As-Of-Date of the VAR-ES Cube on the server. (MR). | [Dates].[Date].[AsOfDate] |
| application.rest-apis.MR.cubes.VaR-ES Summary Cube.as-of-date-level | The full level used to determine the As-Of-Date of the VaR-ES Summary Cube on the server. (MR). | [Dates].[Date].[AsOfDate] |
| application.rest-apis.MR.cubes.Sensitivity Cube.as-of-date-level | The full level used to determine the As-Of-Date of the Sensitivity Cube on the server. (MR). | [Dates].[Date].[AsOfDate] |
| application.rest-apis.MR.cubes.Sensitivity Summary Cube.as-of-date-level | The full level used to determine the As-Of-Date of the Sensitivity Summary Cube on the server. (MR). | [Dates].[Date].[AsOfDate] |
| application.rest-apis.MR.cubes.PLCube.as-of-date-level | The full level used to determine the As-Of-Date of the PLCube on the server. (MR). | [Dates].[Date].[AsOfDate] |
| application.rest-apis.MR.cubes.PL Summary Cube.as-of-date-level | The full level used to determine the As-Of-Date of the PL Summary Cube on the server. (MR). | [Dates].[Date].[AsOfDate] |
| application.rest-apis.MR.cubes.MRCombinedCube.as-of-date-level | The full level used to determine the As-Of-Date of the MRCombinedCube on the server. (MR). | [Dates].[Date].[AsOfDate] |
| application.rest-apis.FRTB.mdx-endpoint | A rest endpoint that can be called to execute MDX queries on the server. (FRTB) | /activeviam/pivot/rest/v9/cube/query/mdx |
| audit-log.datasource.properties.hibernate.default_schema | The default schema used by the Activiti History datasource. | sign-off |
| spring.h2.console.enabled | When set to true, the H2 console is available. This is useful for investigating JDBC connections. Disabled by default. | false |
| spring.application.name | Spring property for the application name. Used by the notification service to identify the source server for each notification. | Atoti Sign-Off |
| spring.activiti.database-schema | The schema used by the Activiti databases. | sign-off |
| sign-off.workflow.roles | The list of roles for workflow participants | USERS,MANAGERS |
| Old Property Name | New Property Name | Comment | New Value | Old Value |
|---|---|---|---|---|
activiti.datasource.url | activiti.datasource.url | The URL of the Activiti datasource. | jdbc:h2:file:./sign-off-activiti;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS "sign-off"; | jdbc:h2:file:./sign-off-activiti;DB_CLOSE_DELAY=-1 |
application.datasource.url | application.datasource.url | The URL of the Application datasource. | jdbc:h2:file:./application-sign-off;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS "sign-off"; | jdbc:h2:file:./application-sign-off;DB_CLOSE_DELAY=-1 |
audit-log.datasource.url | audit-log.datasource.url | The URL of the Audit Log datasource. | jdbc:h2:file:./audit-log;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS "sign-off"; | jdbc:h2:file:./audit-log;DB_CLOSE_DELAY=-1 |
workflow-types | sign-off.workflow.configuration | Describes the workflows as a pair of key and approvers | e.g. [{"dummy-workflow": {"key": "sign-off-process-instance.dummy-workflow", "participants": "approvers"}}] | e.g. [{"dummy-workflow": "sign-off-process-instance.dummy-workflow"}] |
Datastores
Modified stores
| Modification | Store | Field | Type | Description |
|---|---|---|---|---|
| Deleted | SignOffProcessDefinition | MEASURES | list of string | This column has been removed because it is not used. |
Other changes
Spring Boot compliance
Atoti Sign-Off now aligns more closely with Spring Boot best practices in our aim to move towards using Spring Boot Starters to ease migrations.Configuration properties
Atoti Sign-Off now uses Spring Configuration Properties to help externalize configurations for users. You can see a full list of the provided properties in the Configuration Properties section.Adjustments locations and input fields
These two adjustment fields are now Lists instead of Sets. This impacts the following classes and services that may affect your implementation:
Workflow-related:
SignOffProcessInstanceWorkflowService.javaAuditableAdjustmentDefinitionDTO.javaAdjustmentExecutionDTO.java
AdjustmentsDefinitionEntity.javaAdjustmentsFiltersConverter.javaAdjustmentsInputConverter.javaIAdjustmentDefinition.javaAdjustmentExecutionEntity.javaIAdjustmentExecution.java
Status manager service
TheISignOffWorkflowStatusManager lets you implement a service to define the statuses that relate to specific categories.
Current methods with a default implementation in DefaultSignOffWorkflowStatusManager are:
getLiveDefinitionStatuses(): returns a list of definition status considered live.getPendingApprovalTaskStatuses(): returns a list of task status considered pending.
Workflow task actions
A unique way is now used to execute common workflow task actions (e.g. approve, reject, request approval …) and custom actions. It allows greater flexibility and easier extension of current set of actions. To extend the task actions, see Adding Custom Workflow Tasks.Using Atoti Sign-Off with older solutions
Atoti Sign-Off 6.0 is a major upgrade but can be compatible with older solutions with some adjustments. This section guides you through the steps to make your solution compatible with Atoti Sign-Off 6.0. We shall include sample changes specific to Atoti Market Risk version 5.4.2 and Atoti FRTB 5.3.4, but the general steps apply to any server that connects with Atoti Sign-Off.Steps to use Atoti Sign-Off
The steps to use Atoti Sign-Off are the same as in the Getting started guide. Note that depending on the Atoti Server version of the solution you are running with Atoti Sign-Off, you may need to update the propertyapplication.rest-apis.<server>.mdx-endpoint in your application.yml file.
If your Atoti Server version runs with a different version of the API than the default set in Atoti Sign-Off (/activeviam/pivot/rest/v9/cube/query/mdx) for Atoti Server 6.1,
you will need to update this property.
See the Atoti Server API documentation for the correct version.
Connecting with Atoti Market Risk 5.4.2 & Atoti FRTB 5.3.4
With Atoti Market Risk 5.4.2 and Atoti FRTB 5.3.4, which runs with Atoti Server6.0, you need to update this property in Atoti Sign-Off:
Steps to use the Atoti Solution
Migrate adjustments services
For UI compatibility,adjustments-services version 4.1 or higher is required.
See Adjustments Services 4.1.
You will need to:
- Update your dependency artifact’s
groupIdandversiontocom.activeviam.solutionsand4.1.0respectively. - Update your code to use a
ListinAdjustmentRequestDTOandSupportedAdjustmentDTOwhen setting yourfiltersandinput. - Update your code to replace use of
NamedValueDTOs from dependencies (e.g.com.activeviam.apps:sharedalso known as the common library).
Connecting Atoti Market Risk 5.4.2 & Atoti FRTB 5.3.4
In Atoti Market Risk 5.4.2 and Atoti FRTB 5.3.4, the dependencycom.activeviam.apps:shared is using version 2.0.6-AS6.0
and 2.0.3-AS6.0 respectively which depend on adjustments-services version 4.0.0.
Your code may call methods in dependencies that use NamedValueDTO which has changed in adjustments-services version 4.1.0.
You should replace calls to ExecutionFunctionalComponents::parseInput with calls to a local method to your project to complete its purpose.
ExecutionFunctionalComponents::parseInput
ExecutionFunctionalComponents::parseInput
ExecutionFunctionalComponentsConfig for instance.
Then you should replace the calls to ExecutionFunctionalComponents.java::parseInput with it in:
AdjustmentsExecutionVaRConfigAdjustmentsExecutionPnLConfigAdjustmentsExecutionSensiConfig
AdjustmentExecutionConfig for instance and make it static.
Then you should replace the calls to ExecutionFunctionalComponents::parseInput with it in this same class.
Migrate Sign-Off API
To ensure that the API contract between the Atoti solution and Atoti Sign-Off is respected, check that the Sign-Off API is upgraded to the version required by your Atoti Sign-Off version. You can find the correct version in the Dependency versions section of the Release notes. For Atoti Sign-Off 6.0.0 you need to upgrade to4.2.0.
See Sign-Off API 4.2.
You will need to:
- Update your dependency artifact’s
groupId,artifactandversiontocom.activeviam.solutions.signoff-api,signoff-api-liband4.2.0respectively. - Implement the
ISignOffRestService::enabledmethod. This method is used to let Atoti Sign-Off know that the server is up and running. - Remove calls to
getMeasuresinSignOffProcessInstanceExportDTO: Themeasuresfield has been removed in Sign-Off API4.2.0.
Connecting with Atoti Market Risk 5.4.2 & Atoti FRTB 5.3.4
In Atoti Market Risk 5.4.2 and Atoti FRTB 5.3.4, you may remove calls to thegetMeasures method in the SignOffProcessInstanceExportDTO class by extending the SignOffService with a CustomSignOffService class.
CustomSignOffService
CustomSignOffService
SignOffServiceConfig.
SignOffServiceConfig
SignOffServiceConfig
6.0.x.