Export defines a set of dataset properties, which will be exported to a spreadsheet file along with the values of respective indicators. Each export must be referenced from it's parent view.

Export counts in all active filters and the map selection.

Syntax

This is one of the exports from the Retail Solution Demo. As you can see, a good description is important.

{
    "name": "customer_ids_export",
    "type": "export",
    "title": "List of Customer IDs",
    "description": "Returns client IDs, Districts, Wards and indicators available in the view into CSV file.",
    "content": {
        "properties": [
            "baskets.client_id",
            "district.districtname",
            "ward.wardname"
        ]
    }
}


{
    "url": "/rest/projects/yufqzxkbiecj7jot/md/exports/g3v603i8m3tre30g",
    "dumpTime": "2018-01-30T13:48:17Z",
    "version": "8",
    "content": {
        "id": "g3v603i8m3tre30g",
        "name": "customer_ids_export",
        "type": "export",
        "title": "List of Customer IDs",
        "description": "Returns client IDs, Districts, Wards and indicators available in the view into CSV file.",
        "content": {
            "properties": [
                "baskets.client_id",
                "district.districtname",
                "ward.wardname"
            ]
        },
        "accessInfo": {
            "createdAt": "2017-11-13T14:12:57Z",
            "modifiedAt": "2018-01-30T12:48:18Z"
        },
        "links": [
            {
                "rel": "self",
                "href": "/rest/projects/yufqzxkbiecj7jot/md/exports/g3v603i8m3tre30g"
            }
        ]
    }
}

Additional syntax examples

Export allows to set default output settings - output filename, file type, file format and header format.

{
    "name": "transaction_ids_export",
    "type": "export",
    "title": "List of Transaction IDs",
    "description": "Returns transactions ID, postcodes, lower super output areas, middle super output areas and value of indicators available in the view into a file.",
    "content": {
        "properties": [
            "codepoint_plg.msoa11nm",
            "codepoint_plg.lsoa11nm",
            "codepoint_plg.postcode",
            "baskets.basket_id"
        ],
        "output": {
            "type": "file",
            "format": "xlsx",
            "filename": "Transaction IDs.csv"
            "header": "basic"
        }
    }
}


Key description

content

KeyTypeOptionalityDescriptionConstraints
propertiesarray

array of dataset properties, which will be present in the exported file

{datasetName}.{datasetProperty}
outputobjectexport output settings

content.output

KeyTypeOptionalityDescriptionConstraints
typestring

output type (at the moment, only file is supported)

[file]
formatstringfile format[csv, xlsx]
filenamestringcustom filename

(a-zA-Z0-9 _-)(.csv|.xlsx)

headerstringheader format[basic, export, template]

Visual representation

All project exports can be viewed in the export dialogoue. This dialogoue can is accessible by clicking the Menu button in the top left corner (), and selecting Export.

Exported file in a spreadsheet editor


Preventing duplicate records

(warning) It is a good practice to also include the primary key in the export definition, otherwise it can lead to duplicate records in the result of the export process. The duplicate records can occur because the dataset's columns and metric values needs to be joined and if there is no primary key, then the join is performed using all available columns. And if any of the columns contains some NULL values, the join process is not able to correctly match the records, because of the NULL values inequality. 

Let's have an example. We have a dataset of branches like this:

branch_idbranch_namecity
10Branch PraguePrague
20Branch LondonLondon
30Branch New YorkNULL

The correct definition of the export would look like this:

"content": {
    "properties": [
        "branches.branch_id",
        "branches.branch_name",
        "branches.city"
    ]
}


In this case the metric values are correctly joined based on the primary key branches.branch_id. The result would look like this:

branch_idbranch_namecitynumber_of_employees
10Branch PraguePrague100
20Branch LondonLondon250
30Branch New YorkNULL300


The incorrect definition of the export would look like this:

"content": {
    "properties": [
        "branches.branch_name",
        "branches.city"
    ]
}


In this case the metric values needs to be joined using columns branches.branch_name and branches.branch_city, because there is no primary key defined. And because the column city contains NULL value on the third row, the records are not correctly matched in the case of "Branch New York" and it results to duplicate records.

The result would look like this:

branch_idbranch_namecitynumber_of_employees
10Branch PraguePrague100
20Branch LondonLondon250
30Branch New YorkNULLNULL
NULLNULLNULL300