Document toolboxDocument toolbox

Working with Report Orders: Advanced Features

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 fully take advantage of Cinnamon’s customizability features.

Working with JSON in Report Orders

Usage of JSON format

Internally orders are represented in JSON format. The advanced mode and some specific parameters in default mode allow you to directly set parameters as JSON. The editor for this provides several features to help with the editing process. For example:

  • Mismatched brackets, commas etc. are highlighted.

  • Alt+Shift+F automatically formats the order.

  • Extended search functionality. Click on the editor field to make sure it is focused. Then, press CTRL+F to make the search appear at the top right of the editor field. There, you can not only make a simple search, but limit the search to match full words only, consider casing or even do a “regular expression” search.

If the order JSON is modified in a way that makes it invalid, e.g. by having mismatched brackets, Cinnamon will prevent you from saving the order.

Advanced mode

The advanced mode shows the full JSON representation of the order, and lets you edit it directly. It can be used both in the Ad Hoc ordering and Order Management UIs. To enter the advanced mode, click the tab advanced mode at the top in either of those screens. To exit, click on the tab default view. Any changes made in the advanced mode are immediately reflected in the default view and vice versa.

Below is the same order twice, once viewed using the default mode and once using the advanced mode:

Comparing advanced and default mode - An order in default mode
Comparing advanced and default mode - Same order in advanced mode

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. It is available both in the Ad Hoc and Report Order Management UIs. 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.

Using Draft Objects

By default, orders use the published versions for all objects (i.e. segmentations, report types,… ). To test out the drafts you created, go to the advanced mode. There either set the parameter "useDrafts": true in JSON or click the toggle below the JSON editor.

Examples: Comparing Different Kinds of Orders

Note: Since both parameters* and additional parameters are reflected in the advanced mode view, examples on this page are based on the advanced mode unless otherwise specified.

Ad hoc vs. stored orders

 

Ad Hoc Order

Stored Order

 

Ad Hoc Order

Stored Order

Example

{ "reportType": "sample_TwoPager", "outputFormat": "pdf", "parameters":{ "portfolioId": "E0002", "reportingDate": "2019-03-31", "reportLanguage": "en" } }
{ "reportType": "sample_TwoPager", "outputFormat": "pdf", "orderType": "scheduled", "scheduling": { "availabilities": [ {"availability": "eventDriven"} ], "frequency": "monthly", "startDate": "2018-01-01" }, "parameters": { "reportLanguage*": ["de", "en"], "portfolioId": "E0002" }, "orderStatus": "active", "orderName": "E0002 monthly two pager EN" }

Created in

Ad Hoc Order UI

Report Order Management

Triggered by

User

User or automatically

Manual vs. Automatic Scheduling vs. Once

 

Manual

Automatic

Once

 

Manual

Automatic

Once

Example

{ "reportType": "sample_TwoPager", "outputFormat": "pdf", "orderType": "manual", "parameters": { "reportLanguage": "en", "portfolioId": "E0002" }, "orderStatus": "active", "orderName": "E0002 monthly two pager EN" }

 

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

 

Batch

Non-Batch

Example

This order results in 4 reports; one for both portfolios in either language.

Created in

Report Order Management

Report Order Management

Triggered by

User or automatically

User or automatically

Reference: Order Properties

These properties configure the general report order.

Property

Type

Description

Examples / Values

Required

Can use star

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"

YES

YES

outputFormat

string

Select the format of the output (pdf creates word & pdf)

word, pdf, json

YES

YES

parameters

See separate table: https://bmpi.atlassian.net/wiki/spaces/CRDOC/pages/2881159181/Working+with+Report+Orders%3A+Advanced+Features#Order-Level-Parameters

YES

YES

orderStatus

string

The status of the order: Can be active or inactive. Inactive orders are not considered for scheduling.

"active", "inactive"

NO

NO

orderType

string

Whether the order should be considered for automated scheduling or will be scheduled manually.

"scheduled", "manual"

NO
(Set to scheduled by default)

NO

orderName

string

The name of the order.

"E0002 monthly two pager"

NO

NO

printerName

string

The printer to use for printing. Only applicable if the output format is set to 'print'.

 

NO

NO

priority

number

The priority of the execution in the production queue. Lower number is higher priority.

 

NO

NO

scheduling

See separate table: https://bmpi.atlassian.net/wiki/spaces/CRDOC/pages/2881159181/Working+with+Report+Orders%3A+Advanced+Features#Scheduling-Parameters

Required for automatically scheduled orders but not for ad hoc orders and manually scheduled orders

NO

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.

 

NO

NO

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

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

Whether texts are resolved (translated and filled with argument values)

 

resolveValues

boolean

Whether values should be resolved (formatting for numbers and dates)

 

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.

 

useDrafts

boolean

Whether to use draft objects.

 

addDebugData

boolean

Wether to add debug data to the abstract report

 

addDataAccessStatistics

boolean

If true, every access to a base information from the data source is captured into a statistics

 

Scheduling Parameters

mandatory: parameters are mandatory for automatic scheduling based on data availabilities.

Property

Description

Type

Examples / Values

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
mandatory

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 day

  • weekly: schedule every Friday (select other days of the week in frequencyPoints).

  • 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 is daily and frequencyPoints = [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 and frequencyPoints = [2], scheduling will be weekly every 2nd day (Tuesday) of the week.

  • If the frequency is monthly and frequencyPoints = [1,2,4,6], scheduling will be monthly and it will produce reports only on Jan, Feb, April and June.

  • If the frequency is quarterly and frequencyPoints = [1,3], scheduling will be quarterly and it will produce reports only on first and third quarters.

  • If the frequency is half-yearly and frequencyPoints = [1], scheduling will be half-yearly and it will produce reports only on the 1st half year.

  • If the frequency is yearly and frequencyPoints = [2020,2021], scheduling will be yearly and it will produce reports only for 2020 and 2021 (should rather be done via startDate, endDate of the order)

availabilities
mandatory

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