Table of Contents |
---|
Introduction
Aimed at reporting specialists, the advanced mode provides more detailed control over the ad hoc orders as well as scheduled orders. It allows users to directly view and edit the JSON representation of an order. This page provides an in depth description along with many examples on how the advanced mode can be used.
Using the Advanced Mode
In the detail view of a scheduled order or in the ad hoc order, click the tab advanced mode. You now see the JSON representation of the order. The editor provides several features to help with the editing process:
Mismatched brackets, commas etc. are highlighted.
Alt+Shift+F formats the order.
Extended search functionality. Click on the editor field to make sure it is focused. Then, press CTRL+F
Example Orders
Simple ad hoc order
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"parameters":{
"portfolioId": "E0002",
"reportingDate": "2019-03-31",
"reportLanguage": "en"
}
} |
Simple manually scheduled order
orderType = manual
orderStatus and orderName are set
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"orderType": "manual",
"parameters": {
"reportLanguage": "en",
"portfolioId": "E0002"
},
"orderStatus": "active",
"orderName": "E0002 monthly two pager EN"
} |
Simple automatically scheduled order
orderType = scheduled and has scheduling property.
orderStatus and orderName are set
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"orderType": "scheduled",
"scheduling": {
"availabilities": [
{"availability": "eventDriven"}
],
"frequency": "monthly",
"startDate": "2018-01-01"
},
"parameters": {
"reportLanguage": "en",
"portfolioId": "E0002"
},
"orderStatus": "active",
"orderName": "E0002 monthly two pager EN"
} |
Order scheduled once
Automatic scheduled order but:
start and end date are set to the same day
frequency = daily
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"orderType": "scheduled",
"scheduling": {
"availabilities": [
{"availability": "eventDriven"}
],
"frequency": "daily",
"startDate": "2018-01-01",
"endDate": "2018-01-01"
},
"parameters": {
"reportLanguage": "en",
"portfolioId": "E0002"
},
"orderStatus": "active",
"orderName": "E0002 monthly two pager EN"
} |
Batch Orders
The advanced mode allows a greater deal of flexibility for batch orders. In the JSON representation, some properties in an order can be “starred“, i.e. postfixed with *
. These are the properties that cause the batch orders to yield multiple reports. In simple cases this can easily be set up using the default mode, for example when creating the same report for multiple portfolioIDs and languages. What is unique to the JSON representation, is that multiple sets of parameters can be configured with parameters*
. This allows for a fine granular configuration for each of the resulting reports.
Batch Order Rules
There are three simple rules:
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.
Batch Order Examples
Simple batch order example
Batch order with multiple portfolioIDs and languages. The following order creates 6 executions.
Table of Contents |
---|
Introduction
Aimed at reporting specialists, this page introduces concepts that can be used to utilize the full extent of Cinnamon’s parameters. This can be achieved by directly editing the JSON used internally to represent a report order.
Advanced mode
The advanced mode allows you to edit the full JSON representation of an order directly. If the JSON here is modified in a way that makes it invalid, e.g. by having mismatched brackets, Cinnamon will prevent you from saving the order. To enter the advanced mode, click the tab advanced mode in the detail view of a scheduled order or in the ad hoc order. The editor provides several features to help with the editing process:
Mismatched brackets, commas etc. are highlighted.
Alt+Shift+F formats the order.
Extended search functionality. Click on the editor field to make sure it is focused. Then, press CTRL+F
To exit the advanced mode, click on the tab default view at the top. Any changes made in the advanced mode are also reflected in the default view.
Additional parameters
The setting “Additional parameters”, found in the default mode under Additional Settings > Other Customizations,contains a JSON of parameters that otherwise have no input field in the UI. This allows you to set arbitrary parameters. In the advanced mode, the parameters inserted using this setting can be found under parameters
alongside the parameters that can be set in the UI. Conversely, if such an arbitrary parameter is added to parameters
in the advanced mode, it will show up under Additional Parameters in default mode.
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.
Info |
---|
Since both parameters* and additional parameters are reflected in the JSON representation, all examples in this page are based on the advanced mode. |
Batch Orders in Depth
In the JSON in the advanced mode, some properties in an order 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:
Default mode | Advanced mode | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|
There are three simple rules:
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.
Examples: Different Kinds of Orders
Ad hoc vs. stored orders
Ad Hoc Order | Stored Order | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Example |
|
| ||||||||||
Created in | Ad Hoc Order UI | Report Order Management | ||||||||||
Triggered by | User | User or automatically |
Manual vs. Automatic Scheduling vs. Once
Manual | Automatic | Once | ||||
---|---|---|---|---|---|---|
Example |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reportLanguage
portfolioId
en
2041
de
2041
en
2044
de
2044
en
2090
de
2090
Different parameters for each execution with parameters*
The below example creates six executions, with different parameters for each portfolio:
language | json |
---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
)
|
reportLanguage
parameters added via parameters*
en
"portfolioId": "2041"
"showTWR": false
de
"portfolioId": "2041",
"showTWR": false
en
"portfolioId": "2044",
"showTWR": true
de
"portfolioId": "2044",
"showTWR": true
en
"portfolioId": "2090",
"showTWR": true
de
"portfolioId": "2090",
"showTWR": true
Created in | Report Order Management | Report Order Management | Report Order Management |
---|---|---|---|
Triggered by | User | Automatically when data of sufficient quality is available | Automatically on the requested date |
Batch vs. Non-Batch
Batch | Non-Batch | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Example |
This order results in 4 reports; one for both portfolios in either language. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 *
language | json |
---|
| ||
Created in | Report Order Management | Report Order Management |
---|---|---|
Triggered by | User or automatically | User or automatically |
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 | ||
---|---|---|
| ||
{ "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" |
Reference: Order Properties
These properties configure the general report order.
Property
Type
Description
Examples / Values
Required
Can use star
reportType
string
The type of the report defining the structure of contents
"Fixed Income Two-Pager"
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
outputFormat
string
Select the format of the output (pdf creates word & pdf)
word, pdf, json
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
parameters
See separate table: https://bmpi.atlassian.net/wiki/spaces/CRDOC/pages/2881159181/Editing+Orders+with+the+Advanced+Mode#Order-Level-Parameters
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
orderStatus
string
The status of the order: Can be active or inactive. Inactive orders are not considered for scheduling.
"active", "inactive"
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
orderType
string
Whether the order should be considered for automated scheduling or will be scheduled manually.
"scheduled", "manual"
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
orderName
string
The name of the order.
"E0002 monthly two pager"
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
printerName
string
The printer to use for printing. Only applicable if the output format is set to 'print'.
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
priority
number
The priority of the execution in the production queue. Lower number is higher priority.
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
scheduling
See separate table: https://bmpi.atlassian.net/wiki/spaces/CRDOC/pages/2881159181/Editing+Orders+with+the+Advanced+Mode#Scheduling-Parameters
Required for automatically scheduled orders but not for ad hoc orders and manually scheduled orders
Status | ||||
---|---|---|---|---|
|
orderId
string
The id of the order. Ad hoc orders do not have an id. The id is automatically generated and only needs to be passed if an already existing order is supposed to be updated.
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
Order Level Parameters
These generic parameters configure the report to be produced. These core parameters are available for all versions of Cinnamon. More parameters are available depending on the Cinnamon solution used.
Parameter
Type
Description
Examples / Values
portfolioId
string
The id of the portfolio, consolidation or other business object to report about.
“E0002”
reportingDate
Date
The date to to report about. Has to be formatted as "YYYY-MM-DD".
“2019-03-31”
reportLanguage
string
The language to report in.
“en”
availableLanguages
string[]
The language to generate abstract report in.
[“en”, “de”]
reportTitle
string
The title of a report.
“E0002 Quarterly report”
reportSubtitle
string
The subtitle of a report.
“Q1 2019”
profile
string
Name of the used profile. The profile configures all parameters needed by solution specific blocks
“equityProfile”
resolveTexts
boolean
resolveValues
boolean
resolveCharts
boolean
Whether charts should be resolved to SVG.
validateSchema
boolean
Whether data hub query responses should be validated by the corresponding JSON schema
verifyRules
boolean
Whether data hub query responses should be validated by the corresponding [[Validatable.verified]] function
refreshCache
boolean
Whether the report production should forcefully refresh all cache entries visited.
Scheduling Parameters
Status | ||||
---|---|---|---|---|
|
Property
Description
Type
Examples / Values
startDate
Start date of the scheduling.
Date
2021-01-01
endDate
End date of the scheduling.
Date
2021-12-31
frequency
Status | ||||
---|---|---|---|---|
|
Frequency of the scheduling.
Can be fine tuned by selecting only specific points in time via frequencyPoints.
one of the below strings:
daily
: schedule every dayweekly
: schedule every Friday (select other days of the week infrequencyPoints
).monthly
: schedule at the end (ultimo) of every month.quarterly
: schedule at the end of every quarter, i.e. 03-31, 06-30, 09-30 and 12-31.half-yearly
: schedule at the end of every half year, i.e. 06-30 and 12-31.yearly
: schedule at the end of every year, i.e. 12-31
“daily”
frequencyPoints
Selection of points, where the report should be scheduled
If the
frequency
isdaily
andfrequencyPoints
= [15,20,21,22], scheduling will be daily and it will produce reports only on 15, 20, 21, 22 of the given month.If the frequency is
weekly
andfrequencyPoints
= [2], scheduling will be weekly every 2nd day (Tuesday) of the week.If the
frequency
ismonthly
andfrequencyPoints
= [1,2,4,6], scheduling will be monthly and it will produce reports only on Jan, Feb, April and June.If the
frequency
isquarterly
andfrequencyPoints
= [1,3], scheduling will be quarterly and it will produce reports only on first and third quarters.If the
frequency
ishalf-yearly
andfrequencyPoints
= [1], scheduling will be half-yearly and it will produce reports only on the 1st half year.If the
frequency
isyearly
andfrequencyPoints
= [2020,2021], scheduling will be yearly and it will produce reports only for 2020 and 2021 (should rather be done viastartDate
,endDate
of the order)
availabilities
Status | ||||
---|---|---|---|---|
|
List of data availabilities the reports should be created for.
SchedulingAvailability[]
: array of minimum data availabilities triggering this report order to schedule an execution having availability
set as one of
unpublished
eventDriven
signedOff
Code Block | ||
---|---|---|
| ||
[
{"availability": "eventDriven"},
{"availability": "signedOff"}
] |
Reference: Different Kinds of Orders
The minimal examples below outline the differences between the various kinds of orders:
Ad hoc vs. scheduled orders
manual vs. automatic scheduling
batch vs. non-batch orders
Ad hoc / scheduled order
Trigger
Batch?
Minimal Example
UI used for creation
Ad hoc
Manual
No
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"parameters":{
"portfolioId": "E0002",
"reportingDate": "2019-03-31",
"reportLanguage": "en"
}
} |
Ad Hoc Order
Ad hoc
Manual
Yes
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"parameters":{
"reportLanguage*": ["de", "en"],
"portfolioId*": ["E0002", "E0001"],
"reportingDate": "2019-03-31"
}
} |
Ad Hoc Batch orders are not foreseen. However, Cinnamon will still create the reports and they can be found in the Executions UI. This can be used in exceptional cases.
Scheduled
Manual
No
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"orderType": "manual",
"parameters": {
"reportLanguage": "en",
"portfolioId": "E0002"
},
"orderStatus": "active",
"orderName": "E0002 monthly two pager EN"
} |
Report Order Management
Scheduled
Manual
Yes
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"orderType": "manual",
"parameters": {
"reportLanguage*": ["de", "en"],
"portfolioId*": ["E0002", "E0001"]
},
"orderStatus": "active",
"orderName": "E0002 monthly two pager EN"
} |
Report Order Management
Scheduled
Automatic
No
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"orderType": "scheduled",
"scheduling": {
"availabilities": [
{"availability": "eventDriven"}
],
"frequency": "monthly",
"startDate": "2018-01-01"
},
"parameters": {
"reportLanguage": "en",
"portfolioId": "E0002"
},
"orderStatus": "active",
"orderName": "E0002 monthly two pager EN"
} |
Report Order Management
Scheduled
Automatic
Yes
Code Block | ||
---|---|---|
| ||
{
"reportType": "sample_TwoPager",
"outputFormat": "pdf",
"orderType": "scheduled",
"scheduling": {
"availabilities": [
{"availability": "eventDriven"}
],
"frequency": "monthly",
"startDate": "2018-01-01"
},
"parameters": {
"reportLanguage*": ["de", "en"],
"portfolioId*": ["E0002", "E0001"]
},
"orderStatus": "active",
"orderName": "E0002 monthly two pager EN"
} |
} |
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
)
Code Block |
---|
{
"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 | ||
---|---|---|
| ||
{
"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"
} |
Reference: Order Properties
These properties configure the general report order.
Property | Type | Description | Examples / Values | Required | Can use star | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
reportType | string | The type of the report defining the structure of contents | "Fixed Income Two-Pager" |
|
| ||||||||||||
outputFormat | string | Select the format of the output (pdf creates word & pdf) | word, pdf, json |
|
| ||||||||||||
parameters | See separate table: https://bmpi.atlassian.net/wiki/spaces/CRDOC/pages/2881159181/Editing+Orders+with+the+Advanced+Mode#Order-Level-Parameters |
|
| ||||||||||||||
orderStatus | string | The status of the order: Can be active or inactive. Inactive orders are not considered for scheduling. | "active", "inactive" |
|
| ||||||||||||
orderType | string | Whether the order should be considered for automated scheduling or will be scheduled manually. | "scheduled", "manual" |
(Set to scheduled by default) |
| ||||||||||||
orderName | string | The name of the order. | "E0002 monthly two pager" |
|
| ||||||||||||
printerName | string | The printer to use for printing. Only applicable if the output format is set to 'print'. |
|
| |||||||||||||
priority | number | The priority of the execution in the production queue. Lower number is higher priority. |
|
| |||||||||||||
scheduling | See separate table: https://bmpi.atlassian.net/wiki/spaces/CRDOC/pages/2881159181/Editing+Orders+with+the+Advanced+Mode#Scheduling-Parameters | Required for automatically scheduled orders but not for ad hoc orders and manually scheduled orders |
| ||||||||||||||
orderId | string | The id of the order. Ad hoc orders do not have an id. The id is automatically generated and only needs to be passed if an already existing order is supposed to be updated. |
|
|
Order Level Parameters
These generic parameters configure the report to be produced. These core parameters are available for all versions of Cinnamon. More parameters are available depending on the Cinnamon solution used.
Parameter | Type | Description | Examples / Values |
---|---|---|---|
portfolioId | string | The id of the portfolio, consolidation or other business object to report about. | “E0002” |
reportingDate | Date | The date to to report about. Has to be formatted as "YYYY-MM-DD". | “2019-03-31” |
reportLanguage | string | The language to report in. | “en” |
availableLanguages | string[] | The language to generate abstract report in. | [“en”, “de”] |
reportTitle | string | The title of a report. | “E0002 Quarterly report” |
reportSubtitle | string | The subtitle of a report. | “Q1 2019” |
profile | string | Name of the used profile. The profile configures all parameters needed by solution specific blocks | “equityProfile” |
resolveTexts | boolean | ||
resolveValues | boolean | ||
resolveCharts | boolean | Whether charts should be resolved to SVG. | |
validateSchema | boolean | Whether data hub query responses should be validated by the corresponding JSON schema | |
verifyRules | boolean | Whether data hub query responses should be validated by the corresponding [[Validatable.verified]] function | |
refreshCache | boolean | Whether the report production should forcefully refresh all cache entries visited. |
Scheduling Parameters
Status | ||||
---|---|---|---|---|
|
Property | Description | Type | Examples / Values | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Start date of the scheduling. | Date | 2021-01-01 | |||||||||||
| End date of the scheduling. | Date | 2021-12-31 | |||||||||||
| Frequency of the scheduling. | one of the below strings:
| “daily” | |||||||||||
| Selection of points, where the report should be scheduled |
| ||||||||||||
| List of data availabilities the reports should be created for. |
|
|