Sign-off API implementation in MRA

This page provides implementation details about the usage of the Sign-off API 1.0 library within MRA, focusing on configuration and included functionality. For documentation of the library itself, see Sign-off API.

Service implementations

SignOffService

The SignOffService class implements the ISignOffService interface, providing functionality for sign-off related methods.

The initiate method

Uses a SignOffProcessKey parameter to create a branch using the key as its name. The base branch is always master, and the service tracks the epoch of master that the branch was created from.

The approve method

Uses a SignOffProcessKey parameter to attempt to merge a Sign-off branch back into the master branch. The merge will be rejected if the master branch has had subsequent commits. If a merge is successful, the Sign-off branch will be dropped, to prevent performance issues inherent to holding branches in memory.

Due to the lack of a conflict resolution mechanism, tasks cannot be initiated and approved in parallel.

The export method

Parses a SignOffProcessInstanceExportDTO for the data necessary to create export orders through the Data Connectors library.

The service creates store-level (using ISearchFactsQuery objects) and aggregated (using MDX generated through Apache Velocity templates) export orders. Properties defined in the signoff.export.properties file are used to determine which fields are included in the export.

The endpoint returns a set of three export task IDs for the request.

The status method

Retrieves the Data Connectors export status for a set of Sign-off tasks. The statuses of the three export tasks are grouped into a single response containing the execution statuses and details about the result of the exports.

The kpis method

Returns Goal, Value and Status details for a list of filtered KPIs. The details are retrieved by executing a query against the running ActivePivot server.

SignOffRestService

The SignOffRestService class wraps the SignOffService in a set of REST endpoints.

SupportedAdjustmentsConfig

The SupportedAdjustmentsConfig class contains two Spring Beans that are autowired into the SupportedAdjustmentService, providing specifications for adjustments on scalar sensitivities and PnLs.

AdjustmentsExecutionConfig

The AdjustmentExecutionConfig class exposes executors for the two supported adjustment types. Both types use the same executor logic, which queries the datastore, clones the results and modifies the values to the input value.

The supported adjustments are add-ons, which aggregate directly with the unadjusted data. The adjustment input rows are tagged with the appropriate source and input type.

The adjustments are executed on a branch using the same key generator as the initiate and approve methods of the SignOffService.

An adjustment is set as failed if any of the following occur:

AdjustmentPivotConfig

The AdjustmentPivotConfig class adds a sign-off adjustment source-tagging dimension to the Sensitivity and PL cubes.

SignOffDatastoreCustomisations

Sign-off adjustment source-tagging datastore fields are added in the SignOffDatastoreCustomisations class, using the Accelerator Common Library and the Datastore Helper.

SignOffRestServiceConfig

The SignOffRestServiceConfig class adds the SignOffRestService and AdjustmentRestService services to the ActivePivot REST services.