4.6 MDF Fields, Associations, Search, and Security
Key Takeaways
- Default maximum lengths are 255 for String and Translatable, 38 for Number, and 21 for Decimal.
- Valid Values Source holds the code of the referenced picklist, generic object, or foundation object.
- Composite associations create parent-child relationships; the child must use From Parent effective dating and can have only one parent.
- Join By Column associations cannot be defined for custom MDF objects.
- New custom MDF objects must be secured, and switching an existing object from No to Yes cannot be reversed.
4.6 MDF Fields, Associations, Search, and Security
Quick Answer: Each MDF field has a data type and attributes such as visibility, required, Valid Values Source, UI Field Renderer, transient, and Private or Sensitive Information. Associations link objects: Valid When for independent objects and filtering, Composite for parent-child records, and Join By Column (not for custom objects). Security sets whether an object is RBP-secured, its permission category, and optionally an RBP subject user field.
Fields
Field names must be unique within the object, including association names. Custom fields are prefixed cust_ automatically. Choose Details next to a field to see all attributes.
Data Types
| Data type | Notes |
|---|---|
| String / Translatable | Text; translatable values can be entered per language. Default max length 255. |
| Number / Decimal | Integers or decimals, displayed per the user's locale. Default max length 38 and 21. |
| Auto Number | System-generated; should always be read-only |
| Boolean | Yes or No |
| Picklist | Values from an MDF picklist |
| Generic Object | Reference to another MDF object |
| Foundation Object | Reference to a legacy EC foundation object, such as Location |
| User | Any active or inactive user |
| Date / DateTime / Time | Dates and times |
| Attachment | File upload |
| Data Source | Pre-delivered fields only |
Key Attributes
- Valid Values Source: for Picklist, Generic Object, Foundation Object, and Data Source types. Enter the code of the referenced item: the picklist code, or an object code such as Country.
- Required and Visibility (Editable, Read Only, Not Visible).
- Default Value: not every data type supports it.
- Hide Old Value: hides the struck-through previous value in effective-dated history.
- Decimal Precision and Show Trailing Zeros for decimals.
- Include Inactive Users: User fields only; default No.
- UI Field Renderer: changes UI behavior. displayPickListWithoutExternalCode hides the code of picklist values, and displayGOWithoutExternalCode hides the external code of generic objects. These are pre-delivered values; misuse causes errors.
- Transient: the value is not stored but calculated at runtime, usually by a rule. Age from date of birth is the classic example.
- Help Text: translatable instruction shown with an icon.
- Private or Sensitive Information: displays asterisks (*****) until the user selects the field and confirms they want to see it.
- Status: Active or Inactive. A customer-defined field cannot be set inactive.
- Rules: field-level rules, triggered when the value changes (onChange).
- Field Criteria: restricts possible values based on related fields, as in cascading picklists or filtered generic objects.
- Condition / Condition Values: shows or hides the field depending on another field's value.
- Database Field Name: read-only. For foundation-object filtering you look up the InternalCode database field here (Section 6.4).
Associations
Associations define a relationship between two objects: two generic objects, or a generic object and an EC foundation object. Multiplicity is One to One or One to Many. A Location has only one Geozone (one-to-one), while a Division can relate to many Business Units (one-to-many).
| Type | Behavior | Example |
|---|---|---|
| Valid When | Both objects have their own lifecycle. Used to build hierarchies and filter values. | Division valid when a Business Unit is selected |
| Composite | Parent-child: the child cannot exist without the parent. The child must use From Parent effective dating, and a child can belong to only one parent. | Picklist values under a picklist; country-specific child objects of Legal Entity |
| Join By Column | One-to-one reference between a source column on one object and a destination column on another. Not allowed for custom MDF objects. | Pre-delivered objects only |
Search Fields and Business Keys
- Searchable fields define which fields are used to find records across the application. You can reference fields of associated objects, for example cust_country.code. For picklist fields, add .label, for example cust_IncPlan.label.
- Business key fields are combinations of fields that uniquely identify a record.
Security
Security controls who can view, edit, or import and export an object or field, based on RBP roles.
- Secured: all new custom MDF objects must be set to Secured = Yes; saving a new object as not secured raises an error. Objects with From Parent dating and existing custom objects keep their setting. Changing an existing object from No to Yes is irreversible. SAP says not to use the Custom option.
- Permission Category: the RBP area where the object appears, typically Miscellaneous Permissions.
- RBP Subject User Field: any User-type field used to set the target population, so permissions can be granted for "records about my team".
- CREATE Respects Target Criteria: makes the Create permission honor target restrictions. Position Management uses this (Section 11.2).
Since release 2605, several standard objects are secured by default for new customers, for example Hire Date Correction, Fallback Event Reason Configuration, Alternative Cost Distribution, and the Document Generation objects.
Creating Records
After saving the definition, grant permissions (for example Miscellaneous Permissions > Company Car: View Current, View History, Create, Insert, Correct, Delete, Import/Export). Log out and in, then create records in Manage Data > Create New. Manage Data also shows records pending approval. When a field's data type changes, the system warns that existing data in that field will be deleted.
Worked Example from THR80: Company Car
| Setting | Value |
|---|---|
| Code | comp_car (becomes cust_comp_car) |
| Effective Dating | Basic |
| externalCode | Data type User, label Employee Name (so the object can later appear as a profile card) |
| externalName | Visibility Not Visible |
| Custom fields | model (String, required), year (Number), purchase_date (Date, required) |
| Security | Secured = Yes, Permission Category = Miscellaneous Permissions |
A consultant creates a child object to hold country-specific fields and links it to Legal Entity with a Composite association. Which requirement applies to the child object?
An administrator tries to save a new custom MDF object with Secured = No. What happens?
A field of type Picklist should show only the label of each value, without the external code. Which attribute is used?