UDefField Table (146)
Definition table for user-defined fields; one row in this table corresponds to one generation of one field. The user defined fields that are in use, and earlier versions of user defined fields. ColumnId refers to the field type; see UDXXXSmall or UDXXXLarge for the referring ID. Preferences prefsection='System', prefkey='CurrentUdefVersioncontact' (or CurrentUdefVersionperson, project, sale), gives you the current version of user defined fields. prefkey='AdminUdefVersion<...>' gives you the current version that's being edited. If Current version = admin version, no editing has been done since the last Publish of user defined field was performed.
Fields
Name | Description | Type | Null |
---|---|---|---|
UDefField_Id | Primary key | PK | |
ownerTable_id | ID of owning table (contact, person, project) - this is not the actual tableNumber, rather it's an enum | UShort | |
tabOrder | Tab order value, sets the field processing sequence | UShort | |
fieldType | Field type: 0 = leadtext only, 1 = Edit, 2 = CheckBox, 3 = dropdown, 4 = listbox | UShort | |
listTableId | The table ID of the source table for lists: kTableAssoc, kTableContInt or whatever | TableNumber | ● |
UDListDefinition_id | List to use for populating dropdown or listbox | FK UDListDefinition | |
columnId | The ID of the database column this field corresponds to | FieldId | |
textLength | Length (in characters) of a text field, 0 for other types | UShort | ● |
fieldDefault | Optional default value for String fields | String(254) | ● |
indexed | Is this field indexed? 0 if no, index no. if yes | Bool | ● |
mandatory | 0 = no, 1 = yes (field must be filled out) | Bool | |
readOnly | 0 = read/write, 1 = readonly (don't combine with mandatory 8-) ) | UShort | ● |
tooltip | Optional tooltip text for this field | String(254) | ● |
fieldLabel | The label (lead text) | String(254) | ● |
labelLeft | X pixel coordinate of label | UShort | ● |
labelTop | Y pixel coordinate of label | UShort | ● |
labelWidth | label width in pixels, 0 = 'enough' (from font) | UShort | ● |
labelHeight | label height in pixels, 0 = 'enough' (from font) | UShort | ● |
fieldLeft | X pixel coordinate of field | UShort | ● |
fieldTop | Y pixel coordinate of field | UShort | ● |
fieldWidth | field width in pixels, 0 = 'enough' (from font) | UShort | ● |
fieldHeight | field height in pixels, 0 = 'enough' (from font) | UShort | ● |
version | Definition version number; ALL fields get new version whenever layout is updated. | UShort | ● |
lastVersionId | UDefFieldId this field had in the previous version, 0 = field is new in this version | FK UDefField | ● |
page1LineNo | Line no on View Page 1, used if MDO flags are OFF. 0 = this field is not visible on page 1 | UShort | ● |
registered | Registered when | UtcDateTime | |
registered_associate_id | Registered by whom | FK associate | |
updated | Last updated when | UtcDateTime | |
updated_associate_id | Last updated by whom | FK associate | |
updatedCount | Number of updates made to this record | UShort | |
udefIdentity | Unique number used to track field identity across layout changes | Id | ● |
hideLabel | Hide the label if 1 | Bool | ● |
justification | Justification - 0 = default, left, right, center | Enum UdefJustification | ● |
progId | Programmatic ID, for use by software that needs to find a particular field. Carried over like udefIdentity across generations. Use a Company.Product.Field format to avoid naming conflicts; the Company name SuperOffice is reserved. | String(254) | ● |
formatMask | Formatting mask, can be whatever the controls understand (currently nothing :-)) | String(254) | ● |
shortLabel | Short name to be used in Archive headings and on page 1. If blank, the fieldLabel will be used everywhere. | String(254) | ● |
Version
The UDefField table contains many versions of the same field. When you publish a new udef field layout, a new version is created.
The version that is currently used by the SOCRM client is stored in a user preference.
OwnerTable
UDefField contains an ownerTable ID, which table is this user defined field for.
This field is an enum, unlike all other owner Table IDs in the database. It does not use the table ID listed in the dictionary.
- UDefContact = 7
- UDefPerson = 8
- UDefProject = 9
- UDefSale = 10
- UDefTemp = 11
- UDefAppointment = 12
- UDefDocument = 13
FieldType
- 1 = Number
- 2 = Short text (up to 39 chars long)
- 3 = Long text ( 40 to 200 chars long)
- 4 = Date (for dates 1970 - 2036, stored as Long value)
- 5 = Unlimited date (for dates 0001 - 9999, stored as string)
- 6 = Check box (stored as 0/1 in long field)
- 7 = Drop-down (listtableid determines which list. If listTableId = 136 then this is a user-defined list and all items are stored in the
UDList
table withUDList.UDListDefinition_ID = udeffield.UDListDefinition_id
) - 8 = Decimal - actually double - that is 80 bits IEEE floating point.
ProgId
The Prog-id can be used to tag fields that are used by your application with a known value, so that you can easily find the udef fields you need. This may also be set from the Admin client. Must be unique per version+ownertable
Indexes
Fields | Types | Description |
---|---|---|
UDefField_Id | PK | Clustered, Unique |
ownerTable_id | UShort | Index |
Relationships
Table | Description |
---|---|
associate | Employees, resources and other users - except for External persons |
text | Long text fields from all over the system |
UDefField | Definition table for user-defined fields; one row in this table corresponds to one generation of one field. The user defined fields that are in use, and earlier versions of user defined fields. ColumnId refers to the field type; see UDXXXSmall or UDXXXLarge for the referring ID. Preferences prefsection='System', prefkey='CurrentUdefVersioncontact' (or CurrentUdefVersionperson, project, sale), gives you the current version of user defined fields. prefkey='AdminUdefVersion<...>' gives you the current version that's being edited. If Current version = admin version, no editing has been done since the last Publish of user defined field was performed. |
UDefFieldGL | User group link table for UDefField, for MDO item hiding |
UDListDefinition | List table that contains the list of user-defined lists, as well as system-defined lists. The list items are stored in the UDList table. |
Replication Flags
- Replicate changes DOWN from central to satellites and travellers.
- Copy to satellite and travel prototypes.
Security Flags
- Sentry controls access to items in this table using user's Role and data rights matrix.