Forms
Find Job forms that contain a table
/a/Form_listFormsWithTable
Find Job-form definitions with a direct reference to a selected table.
When to use this endpoint
Use as a reverse lookup before inspecting or replacing table references. CRM1’s duplicate-table merge uses this after Form_areFieldsEqual; this call itself changes nothing.
Authentication and permissions
The request must authenticate with signed API-key fields or a logged-in CRM session and is scoped to the authenticated tenant.
The handler performs no form, department, owner, or page-permission check unless the page below says otherwise. CRM navigation may impose additional UI-only access rules.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | Integer-compatible form ID | Yes | Positive integer-converted table ID to find in subform fields. The target table need not exist for this scan. |
Example request
$parents = FM_api('Form_listFormsWithTable', ['id'=>'1042']);
Example response
{"ok":1,"form_ids":["1088","1090"]}
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: id"} | ID absent/null or converts below 1. |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- Scans all type=0 Job forms, including archived definitions. Only top-level fields with type=subform and extras.values equal to the requested ID match; nested references and non-Job forms are not traversed.
- Each parent is appended once even if several fields reference the table. IDs retain database scalar types; no ordering, pagination, maximum or name projection is provided.
- This scans fields directly; it does not read or repair cached meta.form_parents. Stored fields must decode to iterable field definitions; malformed storage has no structured recovery contract.
- No direct mobile app/m-service caller for this RPC was found. Mobile form definitions arrive through m’s syncDownloads form channel, not this endpoint.
Side effects
- Read-only; no history, cache invalidation, file write, URL fetch or report rendering.
See it in Fieldmotion
CRM1
Forms table merge (widgetMergeTables) calls Form_listFormsWithTable for each duplicate before retargeting parent fields and job data. Inspect this RPC during that workflow.
CRM2
No direct caller found. Form editing and table loading use shared mapped/batch APIs.
Related endpoints
Form_areFieldsEqualcompares definitions before the merge workflow.Form_countJobscounts active jobs using a main form or cached Job Table parents.