getUdfData

Prev Next
Get
/sys-rest-api/jersey/v1/user-defined-fields

GET /jersey/v1/user-defined-fields — Get UDF Field Values

Overview

This endpoint returns all user-defined field (UDF) labels, their physical column names, and the current stored values for a specific record. You identify the record by passing the table name and its business keys. The endpoint works for any UDF-enabled table in CMiC — Projects, Jobs, Vendors, Cost Items, and so on — without any object-specific code.

Property Value
URL {base_url}/sys-rest-api/jersey/v1/user-defined-fields
Method GET
Produces application/json
Success Status 200 OK
Auth Basic (Authorization: Basic {credentials})

Notes

Authentication and authorization are required for all calls.

schemaName defaults to DA if not supplied. You only need to pass it if you are working in a different schema.

objectKey1 is always required. Additional keys (objectKey2 through objectKey10) are only needed when the table uses a composite key — for example, a Cost Item needs both Company Code and Item Code.

If the parent record does not exist in the database, the endpoint returns a 400 error. If no UDF definition exists for the table, it also returns a 400. The response will include an error code and a human-readable message in both cases.

Audit columns (createDate, createUser, updateDate, updateUser) are populated from the UDF value row itself, not from the parent table.


UI Navigation

User-defined fields are custom fields that are attached directly to the object they belong to. They appear on the object's own screen — there is no separate standalone navigation path for them. For example, UDFs for a Project appear on the Project record itself, and UDFs for a Job appear on the Job record.


Finders

The following finders are available to identify and retrieve a specific record.

This endpoint always returns a single record. There is no list mode — you must supply enough key information to identify exactly one parent record. The combination of tableName and the business keys is what acts as the finder.

Finder Parameter Required How It Narrows the Result
tableName Yes Tells the endpoint which UDF-enabled table to look in (e.g. PROJ, JCJOB, CIITEM, JCCOST). Every call must include this.
objectKey1 Yes The first (and often only) business key of the parent record. For a Project this would be the Company Code. For a single-key table this alone identifies the record.
objectKey2 Depends Required when the table uses a composite key. For a Project, this would be the Project Number. For a Cost Item, the Item Code.
objectKey3 through objectKey10 Depends Only needed for objects with three or more key parts. Most objects use one or two keys. Pass null or omit any slot you do not need.
schemaName No Defaults to DA. Only supply this if your data lives in a different schema.

Single-key example — retrieve UDFs for Job JOB-001 in company 01:

GET .../v1/user-defined-fields?tableName=JCJOB&objectKey1=01&objectKey2=JOB-001

Composite-key example — retrieve UDFs for Cost Item BOLT-123 in company 01:

GET .../v1/user-defined-fields?tableName=CIITEM&objectKey1=01&objectKey2=BOLT-123

If you are unsure what objectKey1 and objectKey2 mean for a given table, call the definition endpoint first:

GET .../v1/user-defined-fields/definition?tableCode=CIITEM_K

That tells you the label for each key slot before you make the data call.


Query Standards

Key Description
tableName Required. Identifies which UDF-enabled table to query.
objectKey1 Required. First part of the business key that uniquely identifies the parent record.
objectKey2 through objectKey10 Optional. Additional key parts for composite-key tables. Unused slots can be omitted.
schemaName Optional. Database schema. Defaults to DA.

Attributes

Response — Top Level

Field Type Description Example
schemaName String Schema that owns the table DA
tableName String Table the UDFs belong to PROJ
objectKey1 String First business key value MAIN
objectKey2 through objectKey10 String Remaining key values (null if unused) P001
objectKeyName1 String Column name behind objectKey1 PROJ_COMP_CODE
objectKeyName2 through objectKeyName10 String Column names behind remaining keys (null if unused) PROJ_NUM
fieldCount Integer Number of UDF fields returned 5
createDate String (ISO 8601) Date the UDF value row was first created 2025-03-10T09:00:00-04:00
createUser String User who created the UDF value row JSMITH
updateDate String (ISO 8601) Date the UDF value row was last updated 2026-06-01T14:22:00-04:00
updateUser String User who last updated the UDF value row BWILSON
fields Array List of UDF field entries — see below

Response — fields[] Array

Field Type Description Example
fieldName String Human-readable label configured for this UDF slot Project Category
columnName String Physical column name in the UDF value table UEV_CODE1
value String Current stored value. null if nothing has been saved yet COMMERCIAL

Example

Request

GET {base_url}/sys-rest-api/jersey/v1/user-defined-fields
    ?tableName=PROJ&objectKey1=MAIN&objectKey2=P001
Authorization: Basic {credentials}

Response — 200 OK

{
  "schemaName": "DA",
  "tableName": "PROJ",
  "objectKey1": "MAIN",
  "objectKey2": "P001",
  "objectKey3": null,
  "objectKey4": null,
  "objectKey5": null,
  "objectKey6": null,
  "objectKey7": null,
  "objectKey8": null,
  "objectKey9": null,
  "objectKey10": null,
  "objectKeyName1": "PROJ_COMP_CODE",
  "objectKeyName2": "PROJ_NUM",
  "objectKeyName3": null,
  "createDate": "2025-03-10T09:00:00-04:00",
  "createUser": "JSMITH",
  "updateDate": "2026-06-01T14:22:00-04:00",
  "updateUser": "BWILSON",
  "fieldCount": 3,
  "fields": [
    { "fieldName": "Project Category", "columnName": "UEV_CODE1", "value": "COMMERCIAL" },
    { "fieldName": "Budget Flag",      "columnName": "UEV_CODE2", "value": "Y"          },
    { "fieldName": "Review Date",      "columnName": "UEV_DATE1", "value": null         }
  ]
}


Error Codes

HTTP Error Code Reason
400 SD-000375-ERR tableName or objectKey1 was not provided
400 SD-000376-ERR Parent record not found for the supplied keys
400 SD-000377-ERR No UDF definition exists for this table
500 — Unhandled database or server error
Security
HTTP
Type basic

Basic authentication

Query parameters
schemaName
string
ExampleDA
tableName
string
ExamplePOMAST
objectKey1
string
ExampleZZ
objectKey2
string
ExamplePZZ0000106
objectKey3
integer
Example1
Responses
200

OK

Headers
Content-Type
string
Exampleapplication/json
"{\n    \"schemaName\": \"DA\",\n    \"tableName\": \"POMAST\",\n    \"createDate\": \"2025-12-02T12:40:04-05:00\",\n    \"createUser\": \"SHAHIDWS\",\n    \"updateDate\": \"2026-06-16T20:29:17-04:00\",\n    \"updateUser\": \"YASHB\",\n    \"objectKey1\": \"ZZ\",\n    \"objectKey2\": \"PZZ0000106\",\n    \"objectKey3\": \"1\",\n    \"objectKey4\": null,\n    \"objectKey5\": null,\n    \"objectKey6\": null,\n    \"objectKey7\": null,\n    \"objectKey8\": null,\n    \"objectKey9\": null,\n    \"objectKey10\": null,\n    \"objectKeyName1\": \"POMST_COMP_CODE\",\n    \"objectKeyName2\": \"POMST_NUM\",\n    \"objectKeyName3\": \"POMST_RELEASE_NUM\",\n    \"objectKeyName4\": null,\n    \"objectKeyName5\": null,\n    \"objectKeyName6\": null,\n    \"objectKeyName7\": null,\n    \"objectKeyName8\": null,\n    \"objectKeyName9\": null,\n    \"objectKeyName10\": null,\n    \"fieldCount\": 4,\n    \"fields\": [\n        {\n            \"fieldName\": \"APITEST\",\n            \"columnName\": \"UEV_CODE1\",\n            \"value\": \"YashBhavsar\"\n        },\n        {\n            \"fieldName\": \"REMARKS1\",\n            \"columnName\": \"UEV_CODE2\",\n            \"value\": \"Hello243\"\n        },\n        {\n            \"fieldName\": \"NEWNAMES\",\n            \"columnName\": \"UEV_CODE3\",\n            \"value\": \"New1NameYash\"\n        },\n        {\n            \"fieldName\": \"REMARKS2\",\n            \"columnName\": \"UEV_CODE4\",\n            \"value\": \"Rijoe\"\n        }\n    ]\n}"
string
Copyright © 2024 CMiC All Rights Reserved