Page History
...
As it is important that also system set attributes are indexed, this cannot be a database operation, and a filled runtime profile is needed. For filling the runtime profile, a migration flow is needed that loads the needed information so that the rule engine can derive all values. Once that is done, a service is needed to indicate that the current profile should be indexed, and that it belongs to an existing aggregate. The Service call type: AQ_Aggregate_Update service with the CreateNewVersion
to FALSE
is sufficient for this purpose in most scenarios. These scenarios are
...
In the next section the steps that are needed to use the migration service are described. These steps can be skipped if you are not interested in the scenario in which this service is useful, and you can use the Service call type: AQ_Aggregate_Update instead. The last section of this article describes how to model the flow which you need to model for indexing aggregates.
Step-by-step guide to add the migration service
UI Text Box | type |
---|
Info |
This service is not a standard service, and it is not part of the AquimaLibrary. You have to ask for the code at support@blueriq.com and add the definition to the globals manually. |
- In Studio add a custom service named named
AQ_Aggregate_Index_Migrate
- The service definition looks like this:
The AggregateId is always required.
The aggregate version is optional. In case this is not specified, the latest version of an aggregate will be indexed. This service has the following parameters:Parameter Direction Value Data Type Description Fill AggregateType Input Module Element Aggregate Select the aggregate that you want to update. Required AggregateId Input Expression Integer Please provide the attribute containing the ID of the aggregate entry to index. Required AggregateVersion Input Expression Integer If a specific version of the aggregate needs to be updated. If not provided then the latest one is updated. Optional StoreInstances Input Expression - Multivalued, Multivalued results Entity Specify the starting point instance(s) used for storage. Optional Event Name Event Type Description AppException Cancel The service takes this exit if indexing failed for some reason.
Step-by-step guide to model the migration flow
- A project that wants to index the aggregates has to create an exposed migration flow.
- This flow should be called for every aggregate Id in the database. It can be passed as a parameter in the URL, and retrieved from there with the BB_SetRequestParameters service.
- In this flow you then call the Service call type: AQ_Aggregate_Read to to load the existing aggregate into the profile. It might be needed to also load referenced aggregates in order to obtain a complete profile.
- The next step is to use the
AQ_Aggregate_Index_Migrate
or Service call type: AQ_Aggregate_Update service to update the aggregate index.
...
Info |
---|
The code to query the database, to select the applicable Ids, and passing them one by one to the exposed flow is left to the project team. |
...
. |
...
UI Expand | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
|
...