UpdateRecord

Prev Next
Patch
/sys-rest-api/jersey/v2/user-extension

PATCH /v2/user-extension — Update Record

Overview

This endpoint updates an existing row in any UE table. The request body follows the same shape as POST — tableCode, an optional dateFormat, and a data map containing the object keys and the UDF fields to update. The API resolves the parent record, validates the fields, and runs the UPDATE. On success it returns the updated row re-queried from the database.

Property Value
URL {base_url}/sys-rest-api/jersey/v2/user-extension
Method PATCH
Consumes / Produces application/json
Success Status 200 OK
Auth Basic (Authorization: Basic {credentials})

Notes

Authentication and authorization are required.

The request body and data map requirements are identical to POST. tableCode is required, objectKey1 is required, and at least one non-key UDF field must be present in data — if you send nothing but object keys there is nothing to update and the request is rejected with a 400.

Key resolution works the same way as POST. The object key values in the request are used to find the parent record via ORASEQ. The authoritative key values are then re-fetched from the base table, so the WHERE clause of the UPDATE always uses the exact values as stored in the parent.

All UDF field values are validated and normalised by the database (LOV, case, date format) before the UPDATE runs. If any field fails, the whole request is rejected.

Required key fields for the UE table are loaded from da.sd#ue_table_fields and used to build the WHERE clause of the UPDATE statement. UDF fields go into the SET clause.

dateFormat defaults to YYYY-MM-DD if not supplied.

After a successful update the row is re-queried and returned in the response.


UI Navigation

User Extension tables are attached to the parent object's own screen in CMiC. There is no standalone navigation path. This endpoint is the API equivalent of editing and saving UE fields on an existing object record.


Request Body

Field Type Required Description
tableCode String Yes UE table code to update (e.g. CIITEM_K).
dateFormat String No Oracle date mask for date fields in data. Defaults to YYYY-MM-DD.
data Map Yes Must include objectKey1 (and additional keys for composite-key tables) plus at least one UDF field to update.
data.objectKey1 String Yes First business key of the parent record.
data.objectKey2 through objectKey10 String Depends Additional keys for composite-key objects.
data.{UDF_FIELD_CODE} String At least one required UDF field value to update. All supplied fields are written; fields omitted from the request are left unchanged.

Attributes

Response — 200 OK

Field Type Description Example
status String Always success on 200 success
tableCode String UE table code that was updated CIITEM_K
rowsAffected Integer Number of rows updated (normally 1) 1
message String Confirmation message Successfully updated 1 row.
data Map The re-queried updated row. Column names prefixed with table code. System columns excluded.
data.{TABLECODE}_COMP_CODE String Company Code key column 01
data.{TABLECODE}_ITEM_CODE String Item Code key column BOLT-123
data.{TABLECODE}_{UDF_FIELD} String Updated UDF field value (normalised) A
data.UE__IU__UPDATE_DATE String (ISO 8601) Row last update timestamp 2026-06-30T15:00:00-04:00

Example

Request

PATCH {base_url}/sys-rest-api/jersey/v2/user-extension
Content-Type: application/json
Authorization: Basic {credentials}
{
  "tableCode": "CIITEM_K",
  "dateFormat": "YYYY-MM-DD",
  "data": {
    "objectKey1":      "01",
    "objectKey2":      "BOLT-123",
    "UDF_RATING":      "b",
    "UDF_REVIEW_DATE": "2026-07-15"
  }
}

Response — 200 OK

{
  "status": "success",
  "tableCode": "CIITEM_K",
  "rowsAffected": 1,
  "message": "Successfully updated 1 row.",
  "data": {
    "CIITEM_K_COMP_CODE":       "01",
    "CIITEM_K_ITEM_CODE":       "BOLT-123",
    "CIITEM_K_UDF_NOTES":       "Approved by Engineering",
    "CIITEM_K_UDF_RATING":      "B",
    "CIITEM_K_UDF_REVIEW_DATE": "2026-07-15T00:00:00-04:00",
    "UE__IU__CREATE_DATE":      "2026-06-30T10:30:00-04:00",
    "UE__IU__UPDATE_DATE":      "2026-06-30T15:00:00-04:00"
  }
}

Note: UDF_NOTES was not included in the PATCH request so its existing value "Approved by Engineering" is unchanged. UDF_RATING was normalised from "b" to "B".

Error — Nothing to Update (400)

{
  "error": "No fields (besides key fields) have been provided to update."
}


Error Codes

HTTP Error Code Reason
400 SD-000380-ERR Request body is null or empty
400 SD-000381-ERR Request body is not valid JSON
400 SD-000375-ERR tableCode is blank or missing
400 SD-000382-ERR data map is null or empty
400 SD-000376-ERR Table code invalid or parent record not found
400 IllegalArgumentException No objectKey1 in data; no non-key fields provided; a UDF field does not exist; UDF validation failed
500 — Unhandled database or server error — auto rollback
Security
HTTP
Type basic

Basic authentication

Body parameters
object
Example{ "tableCode": "CIITEM_K", "data": { "objectKey1": "CL02", "objectKey2": "SAND", "NUMBEROKEY": "10", "CLTEST": "123" } }
Responses
200

OK

Headers
Content-Type
string
Exampleapplication/json
"{\n    \"status\": \"success\",\n    \"tableCode\": \"CIITEM_K\",\n    \"rowsAffected\": 1,\n    \"message\": \"Successfully updated 1 row.\",\n    \"data\": {\n        \"COMP_CODE\": \"ZZ\",\n        \"ITEM_CODE\": \"DIESEL\",\n        \"NUMBEROKEY\": \"22\",\n        \"AAA\": \"HelloCMIC\",\n        \"UE__IU__CREATE_DATE\": \"2026-06-24T21:48:19-04:00\",\n        \"UE__IU__UPDATE_DATE\": \"2026-06-25T15:25:06-04:00\",\n        \"CLTEST\": null\n    }\n}"
string
Copyright © 2024 CMiC All Rights Reserved