Reports
- GET /api/reports/
Get the available report types.
Example response:
{ "alarm": { "description": "Counts the number of times each NC and TMAC alarm occurred on each machine selected, then calculates the amount of money TMAC saved as defined in cost savings estimation.", "params": { "end": { "data_type": "datetime", "name": "end", "required": true }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "datetime", "name": "start", "required": true } }, "result_type": "html", "tags": [ "production" ], "title": "Alarms" }, "billable_excess_capacity": { "description": "Compares the target and actual utilization of machines in terms of billable time", "params": { "end": { "data_type": "datetime", "name": "end", "required": true }, "interval": { "data_type": "str", "name": "interval", "required": false }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "datetime", "name": "start", "required": true } }, "result_type": "html", "tags": [ "financial" ], "title": "Billable Excess Capacity" }, "downtime": { "description": "Analyze machine downtime by reason", "params": { "end": { "data_type": "datetime", "name": "end", "required": true }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "datetime", "name": "start", "required": true } }, "result_type": "html", "tags": [ "production" ], "title": "Downtime" }, "goal": { "description": "Indicates whether each selected machine is expected to reach its part goal on the current day.", "params": { "machines": { "data_type": "list", "name": "machines", "required": true } }, "result_type": "html", "tags": [ "production" ], "title": "Goal Status" }, "kudos": { "description": "Ranks users by how many kudos their notes received during the selected time window.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "html", "tags": [ "personnel" ], "title": "Kudos" }, "machine_overview": { "description": "The total number of parts produced and the average cycle time per part for each day of the selected year for each selected machine.", "params": { "machines": { "data_type": "list", "name": "machines", "required": true }, "year": { "data_type": "int", "name": "year", "required": true } }, "result_type": "html", "tags": [ "production" ], "title": "Production Overview" }, "machine_runtime": { "description": "Breaks down the total runtime on the machines during the selected time window by process.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "machines": { "data_type": "list", "name": "machines", "required": true }, "shifts": { "data_type": "list", "name": "shifts", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "html", "tags": [ "production" ], "title": "Machine Runtime" }, "maintenance_training": { "description": "How many times each user has successfully completed each maintenance item and the average completion time (in minutes).", "params": {}, "result_type": "spreadsheet", "tags": [ "personnel" ], "title": "Maintenance training matrix" }, "margin": { "description": "The number of parts expected, number of parts produced, expected margin, and actual margin per machine for each day in the selected time window, as well as the total margin for the selected interval across all selected machines.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "interval": { "data_type": "str", "name": "interval", "required": false }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "html", "tags": [ "financial" ], "title": "Margin Report" }, "part": { "description": "The number of good and scrapped parts broken down by machine and program for each interval in the time range selected.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "interval": { "data_type": "str", "name": "interval", "required": false }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "spreadsheet", "tags": [ "production" ], "title": "Parts Report" }, "part_cycle": { "description": "A list of parts with details about their cycle time.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "spreadsheet", "tags": [ "production" ], "title": "Part cycle report" }, "production_summary": { "description": "Per-shift breakdown of part production, state history, and utilization.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "machines": { "data_type": "list", "name": "machines", "required": true }, "shifts": { "data_type": "list", "name": "shifts", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "html", "tags": [ "production" ], "title": "Production summary report" }, "state_history": { "description": "State history details for selected machines over a given timeframe.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "interval": { "data_type": "str", "name": "interval", "required": false }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "spreadsheet", "tags": [ "production" ], "title": "Machine State" }, "tmac_limit_suggestion": { "description": "Calculate TMAC wear and extreme limits based on historical work data.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "job": { "data_type": "str", "name": "job", "required": true }, "start": { "data_type": "str", "name": "start", "required": true }, "tool": { "data_type": "int", "name": "tool", "required": true } }, "result_type": "html", "tags": [ "tools" ], "title": "TMAC limit suggestions" }, "tool_alarm": { "description": "The number of TMAC alarms triggered by each tool", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "html", "tags": [ "tools" ], "title": "Tool Alarms" }, "tool_cost": { "description": "Shows the cost of each tool per part produced by each of the selected processes", "params": { "end": { "data_type": null, "name": "end", "required": true }, "interval": { "data_type": "str", "name": "interval", "required": false }, "processes": { "data_type": "list", "name": "processes", "required": true }, "start": { "data_type": null, "name": "start", "required": true } }, "result_type": "spreadsheet", "tags": [ "tools", "financial" ], "title": "Tooling cost" }, "tool_location_history": { "description": "Tools that have been used in a specific location in a machine", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "str", "name": "start", "required": true }, "tool_location": { "data_type": "int", "name": "tool_location", "required": true } }, "result_type": "html", "tags": [ "tools" ], "title": "Tool Location History" }, "tool_stock_out": { "description": "How long production can continue based on the stock of each inventory item that is currently in use.", "params": {}, "result_type": "html", "tags": [ "tools" ], "title": "Tool Stock Remaining Time" }, "tool_usage": { "description": "The number of replacements expected vs. the number of replacements made for each tool that was replaced on the selected machines during the selected time window.", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "html", "tags": [ "tools" ], "title": "Tool Usage" }, "tool_work": { "description": "TMAC work done by a chosen tool charted alongside its replacement history", "params": { "end": { "data_type": "str", "name": "end", "required": true }, "job": { "data_type": "str", "name": "job", "required": false }, "section": { "data_type": "int", "name": "section", "required": false }, "show_replacements": { "data_type": "bool", "name": "show_replacements", "required": false }, "start": { "data_type": "str", "name": "start", "required": true }, "tool": { "data_type": "int", "name": "tool", "required": true } }, "result_type": "html", "tags": [ "tools" ], "title": "Tool Work" }, "utilization_history": { "description": "Utilization of the selected machines charted over time", "params": { "absolute_utilization": { "data_type": "bool", "name": "absolute_utilization", "required": false }, "end": { "data_type": "str", "name": "end", "required": true }, "interval": { "data_type": "str", "name": "interval", "required": false }, "machines": { "data_type": "list", "name": "machines", "required": true }, "start": { "data_type": "str", "name": "start", "required": true } }, "result_type": "html", "tags": [ "production" ], "title": "Utilization History" } }
- Returns:
an object mapping report type IDs to objects, each with:
the
report_type
(same as the key)the
title
anddescription
strings of the reporta
params
array of parameter name stringsa
result_type
of “html” or “spreadsheet”- an array of
tags
that apply to the report (for visual grouping). These tags are currently used: financial
personnel
production
tools
- an array of
- POST /api/reports/(report_type)/run
Run the specified report.
Values for the parameters listed in the report type’s params should be sent in the URL as query parameters for GET requests or in the request body as a JSON object for POST requests (with
Content-Type: application/json
).Errors will be returned as an HTML page for GET requests or as a JSON object for POST requests.
Note
If a
machine_tags
parameter is provided, themachines
parameter becomes optional, and any list provided for themachines
parameter will be expanded to include machines having any of the tags specified in themachine_tags
parameter.- Returns:
an HTML document or Microsoft Excel workbook file. The
Content-Type
andContent-Disposition
response headers can be used to determine the result type.- Status Codes:
404 Not Found – if the report type is unknown
400 Bad Request – if any required parameters are invalid or missing
500 Internal Server Error – if there is an error while generating the report
- GET /api/reports/(report_type)/run
Run the specified report.
Values for the parameters listed in the report type’s params should be sent in the URL as query parameters for GET requests or in the request body as a JSON object for POST requests (with
Content-Type: application/json
).Errors will be returned as an HTML page for GET requests or as a JSON object for POST requests.
Note
If a
machine_tags
parameter is provided, themachines
parameter becomes optional, and any list provided for themachines
parameter will be expanded to include machines having any of the tags specified in themachine_tags
parameter.- Returns:
an HTML document or Microsoft Excel workbook file. The
Content-Type
andContent-Disposition
response headers can be used to determine the result type.- Status Codes:
404 Not Found – if the report type is unknown
400 Bad Request – if any required parameters are invalid or missing
500 Internal Server Error – if there is an error while generating the report
- GET /api/reports/scheduled
Get all existing scheduled reports.
- Returns:
an object mapping scheduled report ID to ScheduledReport object
- POST /api/reports/scheduled/preview
Get the next few times when the provided schedule would run.
- Query Parameters:
count (int) – how many future times to get (defaults to 1)
- Reqjson:
the scheduling fields of a ScheduledReport object
- Returns:
an array of
count
UNIX timestamps
- POST /api/reports/scheduled/(int: scheduled_report_id)/run
Run an existing scheduled report now.
- Status Codes:
404 Not Found – if the specified scheduled report ID is invalid
204 No Content – on success
424 Failed Dependency – if there was an error
- PUT /api/reports/scheduled
Create a new scheduled report.
- Reqjson:
a ScheduledReport object
- Status Codes:
201 Created – on success
400 Bad Request – if a required field is missing
- Returns:
the new ScheduledReport object
- PATCH /api/reports/scheduled/(int: scheduled_report_id)
Edit an existing scheduled report.
- Status Codes:
404 Not Found – if the specified scheduled report ID is invalid
- Returns:
the new state of the scheduled report object
- DELETE /api/reports/scheduled/(int: scheduled_report_id)
Delete an existing scheduled report.
- Status Codes:
204 No Content – on success
404 Not Found – if the specified scheduled report ID is invalid