Introduction
The page https://bmpi.atlassian.net/wiki/pages/resumedraft.action?draftId=2796781569 covers the knowledge needed to set up the majority of orders. Expanding on that, this page teaches reporting specialists to use batch orders.
Batch Orders in Depth
When editing batch orders, some properties in an order JSON can be “starred“, i.e. postfixed with *
. This is equivalent to selecting multiple values for a property in default mode. These are the properties that cause the batch orders to yield multiple reports. In most cases this can easily be set up using the default mode, for example when creating the same report for multiple portfolioIDs and languages. If a more detailed configuration is required, parameters* can be used. Parameters* contains an array of JSON objects:
Parameters* (In Default Mode) | Advanced Mode |
---|---|
[ { "portfolioId": "2041", "showTWR": false }, { "portfolioId": "2044", "showTWR": true }, { "portfolioId": "2090", "showTWR": true } ] | { "reportType": "sample_FOC_Report", "outputFormat": "word", "orderType": "manual", "parameters": { "reportLanguage*": ["en","de"], "reportingDate": "2020-11-30" }, "parameters*": [ { "portfolioId": "2041", "showTWR": false }, { "portfolioId": "2044", "showTWR": true }, { "portfolioId": "2090", "showTWR": true } ], "orderStatus": "active" } |
There are three simple rules for batch orders:Â
Any property name ending in a star
*
is an array which implies multiple (sub-)orders, with the (star-less) property iterated over its elements.If both
"parameters"
and"parameters*"
are present, each element of"parameters*"
produces one orders with"parameters"
merged in (or multiple ones, if sub-parameters are also starred) .The orders and executions created correspond to the cross product of all properties ending in a star.
The parameter portfolioId*
is only available for manually scheduled orders.
Parameters*
When using starred parameters in a batch order (e.g. portfolioId*
, reportLanguage*
), the result is a cross product of all values for those parameters. However, you may only want some of those combinations. To allow this, parameters* contains sets of parameters, rather than single values. Each of those parameter sets is treated like a single starred parameter. As an example, consider fund factsheets for a specific share class. Here, you may want to hide a particular section for retail clients but not for professional investors. Using parameters*, you can set this hide parameter to true only for retail clients. If a value is set under parameters*, the advanced mode has a corresponding property parameters*
. It is also possible to directly insert this property parameters*
in advanced mode.
As this is a setting specifically for batch orders, it is only available in the Report Order Management UI and when editing batch orders.
Examples: Configuring Batch Orders
Different parameters for each execution with parameters*
The below example creates six executions, with different parameters for each portfolio:
{ "reportType": "sample_FOC_Report", "outputFormat": "word", "orderType": "manual", "parameters": { "reportLanguage*": ["en","de"], "reportingDate": "2020-11-30" }, "parameters*": [ { "portfolioId": "2041", "showTWR": false }, { "portfolioId": "2044", "showTWR": true }, { "portfolioId": "2090", "showTWR": true } ], "orderStatus": "active" }
reportLanguage | parameters added via parameters* | |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
Use Case Fund Reporting: Create reports for one portfolio for multiple countries with the same order
The following order creates 3 x 3 executions with "jurisdiction"
set to "ch"
, "eu"
and "ru"
. (Hint: the parameter reportLanguage*
is not to be confused with the multi-lingual reporting feature using availableLanguages
)
{ "reportType": "sample_FundFactSheet", "outputFormat": "html", "orderType": "manual", "parameters": { "reportLanguage*": ["en","de","fr"], "portfolioId": "F0001", "reportingDate": "2020-11-30", "jurisdiction*": ["ch", "eu", "ru"] }, "orderStatus": "active" }
Starring segmentations
properties of object-type parameters (e.g.
filterSegmentation
.segments
) can’t be used with a *non-atomic parameters (object or array, e.g.
segmentations
) can be used with *
{ "reportType*": [ "fullReport", "shortReport" ], "outputFormat*": [ "pdf", "html" ], "orderType": "manual", "parameters": { "reportLanguage*": ["en","de"], "reportingDate": "2020-11-30", "filterSegmentation": { "id": "gugus", "segments": [], "" }, "segmentations*": [ [ "seg1", "seg2" ], [ "seg2", "seg3" ] ] }, "orderStatus": "active", "orderId": "ORD00003" }
0 Comments