Starting with the release of Strategy ONE (March 2024), dossiers are also known as dashboards.
The Browsing API within the Strategy REST API returns JSON structures similar to the following, for individual metadata objects returned by the API:
{
"name": "Balanced Scorecard",
"id": "DBFC517111E56C3A18EE0080EF85F392",
"type": 55,
"description": "This document shows a complete balanced scorecard, along with a graphical strategy map at the bottom. The targets for the KPI's come from an external data mart and are incorporated using a report built in Query Builder.",
"subtype": 14081,
"extType": 0,
"dateCreated": "2015-10-06T20:29:36.000+0530",
"dateModified": "2016-08-13T01:02:54.000+0530",
"version": "1BCD06B5415E36EA3060319633B3BAAE",
"acg": 255,
"viewMedia": 268435695,
"owner": {
"name": "Administrator",
"id": "54F3D26011D2896560009A8E67019608"
}
},
{
"name": "The 2014 BNY Mellon Boat Race",
"id": "371E250C11E5BEFB00000080EF85899C",
"type": 55,
"subtype": 14081,
"extType": 0,
"dateCreated": "2016-01-20T03:53:10.000+0530",
"dateModified": "2016-08-13T01:03:17.000+0530",
"version": "DD4785C447F7858EEAF7AF9D8A975A80",
"acg": 255,
"viewMedia": 1879056553,
"owner": {
"name": "Administrator",
"id": "54F3D26011D2896560009A8E67019608"
}
}
/**
* Mapping of the EnumDSSXMLViewMedia bits from Strategy WebSDK
*/
const EnumDSSXMLViewMedia = {
DssXmlViewMediaReserved: 0x00000000,
DssXmlViewMediaViewStatic: 0x00000001,
DssXmlViewMediaViewInteractive: 0x00000002,
DssXmlViewMediaViewEditable: 0x00000004,
DssXmlViewMediaViewFlash: 0x00000008,
DssXmlViewMediaExportExcel: 0x00000010,
DssXmlViewMediaExportPDF: 0x00000020,
DssXmlViewMediaExportHTML: 0x00000040,
DssXmlViewMediaExportFlash: 0x00000080,
DssXmlViewMediaExportExcelPlainText: 0x00000100,
DssXmlViewMediaExportCSV: 0x00000200,
DssXmlViewMediaExportPlainText: 0x00000400,
DssXmlViewMediaViewAnalysis: 0x00000800,
DssXmlViewMediaCustomSQL: 0x00001600,
DssXmlViewMediaHTML5Dashboard: 0x00002000,
DssXmlViewMediaExportMSTR: 0x00004000,
DssXmlViewMediaPrivate: 0x00008000,
DssXmlViewMediaAvailableServeAsModel: 0x00010000,
DssXmlViewMediaExportPhone: 0x00020000,
DssXmlViewMediaExportTablet: 0x00040000,
DssXmlViewMediaExportJSON: 0x00080000,
DssXmlViewMediaStatic: 0x08000000,
DssXmlViewMediaAll: 0x7FFFFFF
};
var DOCUMENT_TYPES = Object.freeze({
"DOSSIER": EnumDSSXMLViewMedia.DssXmlViewMediaHTML5Dashboard,
"RSD": EnumDSSXMLViewMedia.DssXmlViewMediaViewStatic})
/**
* Get default mode from given viewMedia
*/
function getDefaultViewMode(viewMedia) {
const defModePosition = viewMedia >> 27;
if (defModePosition == 0) {
return 0;
}
return EnumDSSXMLViewMedia.DssXmlViewMediaViewStatic << defModePosition - 1;
}
/**
* Map the documents default view media to the type of document, which can be Dossier or RSD.
*/
function getTypeFromViewMedia(viewMedia) {
var defaultViewMedia = getDefaultViewMode(viewMedia);
if (!defaultViewMedia) {
return null;
}
if(defaultViewMedia & EnumDSSXMLViewMedia.DssXmlViewMediaViewAnalysis |
defaultViewMedia & EnumDSSXMLViewMedia.DssXmlViewMediaHTML5Dashboard) {
return DOCUMENT_TYPES.DOSSIER;
} else if(defaultViewMedia & EnumDSSXMLViewMedia.DssXmlViewMediaViewStatic) {
return DOCUMENT_TYPES.RSD;
}
return null;
}
/**
* function to determine if a provided view media is for an rsd
* @param viewMedia
* @returns {boolean}
*/
function isRsd(viewMedia) {
return getTypeFromViewMedia(viewMedia) == DOCUMENT_TYPES.RSD;
}
/**
* function to determine if a provided view media is for an dossier
* @param viewMedia
* @returns {boolean}
*/
function isDossier(viewMedia) {
return getTypeFromViewMedia(viewMedia) == DOCUMENT_TYPES.DOSSIER;
}