diff --git a/.agents/skills/inkreach-teable/api-reference/field-types.md b/.agents/skills/inkreach-teable/api-reference/field-types.md index 433042e..3bb1a75 100644 --- a/.agents/skills/inkreach-teable/api-reference/field-types.md +++ b/.agents/skills/inkreach-teable/api-reference/field-types.md @@ -320,6 +320,42 @@ inkreach-teable field create --table-id tblXXX --name "Delete" --type button \ --- +### Last Modified Time (tracked-field references) + +A `lastModifiedTime` field can track **only specific fields** instead of all of them, so +the timestamp resets when a referenced field changes but stays put on ordinary edits. +Write the references inside the `expression` option: + +```bash +# Track by field name — resets only when 流转状态 or 流转角色 change +inkreach-teable field create --table-id tblXXX --name "流转时间" --type lastModifiedTime \ + --options '{"expression":"LAST_MODIFIED_TIME([流转状态],[流转角色])"}' + +# Track by field id (mixed syntax also allowed) +inkreach-teable field create --table-id tblXXX --name "流转时间" --type lastModifiedTime \ + --options '{"expression":"LAST_MODIFIED_TIME({fldAbc123},{fldDef456})"}' +``` + +| Reference syntax | Meaning | +|---|---| +| `LAST_MODIFIED_TIME()` | Track **all** fields (default) | +| `LAST_MODIFIED_TIME([Name])` | Reference a field by its name | +| `LAST_MODIFIED_TIME({fldId})` | Reference a field by its id | + +**Key behaviors**: + +1. The expression is parsed server-side into `trackedFieldIds` (the field's effective + `options.trackedFieldIds`); the stored `expression` is normalized back to the canonical + `LAST_MODIFIED_TIME()` form while `trackedFieldIds` carries the references. +2. An unresolvable field **name** returns `400 Unknown field referenced in expression: `; + unresolvable `{fldId}` values are simply ignored (harmless — never match). +3. You can also set `options.trackedFieldIds` directly (an array of field ids); an explicit + `trackedFieldIds` wins over the expression when both are present. +4. Works on create **and** convert (`PUT /api/table/:tableId/field/:fieldId/convert` with + `{"type":"lastModifiedTime","options":{"expression":"..."}}`). + +--- + ## Smart Inference ### Type inference from `--name`