Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7
printablefalse

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.

Set up and trigger a batch order

To set up a batch order, click on new order or open an existing scheduled order. Then, switch the “Batch Order” toggle to on.

Image Added

Some properties now accept multiple values. Among those are reportType, reportLanguage, as well as the parameters under “Additional settings”. If the order is scheduled manually, you can also select multiple portfolioIDs. Let’s look at one manually scheduled order as an example. Select English under report language. Then, click the dropdown again and select German. Now add three portfolioIDs. Fill in the required fields and save the order.

Image Added

You now see an overview of the reports that will be created whenever this order is executed in a table below. There is one row for each of the expected reports, alongside the parameters that will be used for that execution. If there are more parameters than fit the table, click on the three dots on the right to view all parameters. Let’s consider our previous example. A total of six reports will be produced: One for each of the portfolioIDs in both English and German.

Image Added

Clicking the arrow on the right navigates you to a detail view of that expected execution. Here, you can trigger an execution of just this report, without running the whole batch. If desired, you can also adjust the parameters beforehand.

Image Added

Analogous to a normal stored order, a batch order can be triggered manually. To start the batch, select a reporting date and click “execute batch”. Cinnamon will then produce all the reports for this batch order and show them to you.

Image Added

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

Code Block
languagejson
[
  {
    "portfolioId": "2041",
    "showTWR": false
  },
  {
    "portfolioId": "2044",
    "showTWR": true
  },
  {
    "portfolioId": "2090",
    "showTWR": true
  }
]
Code Block
languagejson
{
  "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: 

  1. Any property name ending in a star * is an array which implies multiple (sub-)orders, with the (star-less) property iterated over its elements.

  2. 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) .

  3. The orders and executions created correspond to the cross product of all properties ending in a star.

Info

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:

Code Block
languagejson
{
  "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

en

"portfolioId": "2041"

"showTWR": false

2

de

"portfolioId": "2041",

"showTWR": false

3

en

"portfolioId": "2044",

"showTWR": true

4

de

"portfolioId": "2044",

"showTWR": true

5

en

"portfolioId": "2090",

"showTWR": true

6

de

"portfolioId": "2090",

"showTWR": true

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)

Code Block
breakoutModewide
{
  "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 *

Code Block
breakoutModewide
languagejson
{
  "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"
}