For example, if Relation is an embedded object in the Dispute custom object definition, the list display you select determines how Relation records appear within the block or section in each Dispute record.
TeamConnect always uses the editable list style to display embedded object records. See the non- editable hyperlinks of the Project column in the following image.
The user clicks either Edit (next to Relations) or the Edit button in the toolbar, and the editable display of the block appears, that is, the list changes from view mode to edit mode. See the object links of the Project column in the following image.
Displaying Embedded Records
Embedded object records can be displayed on a tab or within a block in the parent object record. They cannot be displayed in the All Services list. When you create embedded objects, you configure their records to be displayed either as search pages with different search views, or as editable lists as shown in the following image.
You may specify which embedded object record fields appear in the editable list. Users can then edit field values directly from the list and save the changes. That way, if a field value has to be edited in multiple records, users do not have to open each individual record to perform such edits.
Creating Embedded Objects
All embedded objects for a custom object can be created through the Embedded Objects tab of the respective custom object definition.
Tip: Creating an embedded object definition is similar to creating a custom object definition. For details, see Creating Custom Objects and the General Tab on Custom Object Definition Screens table.
Note: You can convert an embedded object definition to a child object definition if your design requires it. There are several cautions and considerations in doing so. See Converting an Embedded Object Definition to a Child Object Definition.
To create an embedded custom object
- Open the Embedded Objects tab of the appropriate parent custom object definition.
- Click new.
The General tab of a new embedded object definition screen appears with empty fields.
- Enter the following information:
- Name of embedded object and its plural form
- Unique code
- Icon image file
- If the embedded object definition has a main contact, set it as Contact-centric and specify the Role for that contact.
- Click save.
- Click the List Display tab and define the list's columns of information in the Editable List section of the List Display tab. For more information about defining editable lists, see Creating Results Display Columns.
- Continue defining the embedded object definition's properties as described in Creating Custom Objects.
- Click save.
You can access the new embedded object definition either from the parent object definition, or directly from the Object Definition List screen as described in Viewing Object Definitions.
Resulting user interface Changes
Whenever you create an embedded object for a custom object, the following takes place in the corresponding object screens in the Designer:
- A block named after the embedded object is created and becomes available for adding to the custom object views of the parent custom object definition. To add the embedded object's block, open General tab of the applicable object view and select it from the Add the block field.
- The embedded object becomes available in the Related Object drop-down list on the Filter Display and Results Display tabs of parent object search views.
- The embedded object becomes available on the Records tab of the parent object's templates.
- The embedded object becomes available as a related object in all applicable instances of Object Navigator. For details, see Using Object Navigator and Object Model: Read This First plus the additional reference tables this reference points you to.
- The name of the embedded object is added to the list of custom objects on the Rights tab of all user and group accounts. This means that in order for the end users to be able to use this object, the rights must be assigned accordingly.
Points To Remember
When creating an embedded object within a custom object, consider the following information:
- You can create multiple embedded objects for a single custom object.
For example, the Dispute object could have Allegation, Corrective Action, and Damage as its embedded objects.
- In the end-user interface, embedded object records are accessible through a separate page in the record page of the parent record. This page has the same name as the embedded object in the plural.
The embedded object's block is automatically added to the system view of the parent object. To display embedded object records, you must add the block to the object view used to display the parent object. For more details, see Creating Custom Pages.
- You can set the block for embedded object records to be displayed either as a search screen with different search views, similar to child object records, or as an editable list similar to batch screens used for sub-objects.
- When creating an embedded object, you must assign the appropriate rights for the embedded object to the users and groups, like you do to any custom object.
- Embedded object definitions can be created only from within their respective parent custom object definitions. You cannot create embedded object definitions from the following locations:
- End users cannot save an embedded object record unless they save its parent object record.
Defining Display for Embedded Object Records
Defining the editable list display for an embedded object is similar to defining the Results display for a search view.
Points To Remember
- If you want users to access records directly from an editable list, include a column with the Object Link system display key. When the user clicks the record hyperlink, it displays the record screen of the selected record. See Defining Object Links.
- When adding or editing a record, the column with the object link has no data entry fields or displays a non-editable hyperlink.
- Make sure to add columns for all fields required to create records of the selected embedded object, such as the Name field. For details on required fields, see Required Fields.
- You can include custom fields only from the Root category.
To define how embedded object records are displayed within their parent record
- Open the List Display tab of the appropriate embedded object definition.
- Define the desired batch screen for the editable list in the same way that you would define the Results display for a search view, using the instructions in Search View Results Display.
- Save the embedded object definition.
- Test the created display in the end-user interface.
Converting Embedded Objects to Child Objects
TeamConnect lets you convert embedded objects to child objects. Child objects and embedded objects are very different, so the conversion changes the way that the converted object displays and performs.
An embedded object is not independent of its parent object and does not have tabs on which to enter information. Embedded objects are only accessible through the parent object.
A child object, though not fully independent of its parent object, has its own set of tabs, such as Phases, Phase Transitions, Templates, and Security. When you convert an embedded object to a child object, all of the tabs that are typical to a child object are now available.
Before You Convert
Before you convert an embedded object to a child object, ensure that you have Object Definition Update rights.
What is Not Retained?
Access rights are not retained. You must assign rights to the object as if it were being newly created.
What Are the Prerequisites for Conversion?
You must perform the conversion at a time when no ordinary users are logged in to TeamConnect.
To convert an embedded object definition to a child object definition
- In the Designer, click Go to, and then click Object Definitions.
- In the Object Definitions list, expand the parent or child object definition that contains the embedded object that you want to convert.
- Click the embedded object.
The embedded object opens to its General tab.
- Click Convert to Child object definition.
- A confirmation message appears. If there are existing records for the embedded object definition, the record count is shown. If there are a large number of records, you are advised that the confirmation process may require an extended period of time.
- Click OK on the confirmation message if you are sure that you want to convert this object. Wait for the process to complete.
The former embedded object is now a new child object and displays the tabs that apply to all child object definitions.
- Click any tab to enter additional information.
- Save or Save and Close the record.
The new child object is displayed under its parent object in the Object Definition list view.
Note: If you convert an object, and then view it before you save it, you may still see properties that applied to the object before you converted it. To ensure a complete conversion, save the converted object before you view it.
Note: If conversion fails due to an application server crash or other major error, it can be re-run later, and will resume with any records that were not completed in the previous run.
After the conversion, a status message is added to the system log. The new child object now has the following properties:
- A default assignee role named Default with tree key DEFA
- An "All <name of embedded object, such as "~All matters">" search view is set as search across objects
- A default search module with result columns (Opened On and Main Assignee) and criteria (name and number string)
- A templates folders under Root\System\Object Definitions\<name of embedded object, such as "matter">\
- The "Create a Copy" group rights
- All project rule types (user invoke custom action, audit, etc.)
- The Parent required and Do not display in menu check-boxes are checked on the General tab of the object definition
- In the Designer, the following tabs are now available for the new child object:
- Phase Transitions
- Assignee Roles
- Search Views
- Embedded Objects
- In the TeamConnect user interface, the following pages are now available for the new child object: