Asset maintenance
Retrieve maintenance descriptions
/a/AssetMaintenances_getDescriptions
Resolve maintenance descriptions for a batch of recurrence IDs.
When to use this endpoint
Use AssetMaintenances_getDescriptions to annotate job-list rows that belong to legacy asset maintenance schedules without making one request per recurrence.
Authentication and permissions
The request must establish an authenticated tenant through signed API-key fields or a CRM session. The handler checks tenant context but performs no page, role, or feature-permission check.
The PHP session write lock is released before the database query so concurrent requests from the same CRM session are not held behind this lookup.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
rids | Array of integer strings | Yes | Native request array of recurrence IDs. Values are integer-converted. A JSON-encoded string is not decoded and can cause a runtime type error. |
Example request
$descriptions = FM_api('AssetMaintenances_getDescriptions', [
'rids' => ['879027', '879031'],
]);
Example response
[
{"recurrence_id": "879027", "name": "Filter service"},
{"recurrence_id": "879031", "name": "Safety inspection"}
]
Errors and unusual responses
| Response | Condition |
|---|---|
{"error":"not logged in"} | No authenticated tenant context is available. Invalid signed credentials can be rejected by the dispatcher before the handler runs. |
{"error":"missing or invalid parameter: rids"} | The rids key is absent. |
Runtime type/database error | rids is not an array, or is empty and produces an empty SQL IN list. |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- Missing recurrence IDs are omitted. Input duplicates do not create duplicate rows unless duplicate maintenance data already exists.
- Results have no guaranteed order and are not aligned positionally with the request.
- Active state, asset state, and feature access are not filtered. There is no pagination or explicit batch-size limit.
See it in Fieldmotion
CRM1
Open the main Jobs list with recurrence rows visible. CRM1 batches their recurrence IDs, calls AssetMaintenances_getDescriptions, and adds any returned maintenance label beneath the job reference.
CRM2
No production CRM2 caller was found.
Related endpoints
AssetMaintenance_getDescriptionsis the single-ID equivalent.AssetMaintenances_listlists maintenance IDs rather than recurrence IDs.