Difference between revisions of "System Objects"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
 
Line 1: Line 1:
===About {{Typenolink}}s===
==About {{Typenolink}}s==
The ''System Objects'' are built into the foundations of the platform. They're optimized for high performance and functionality.  
The ''System Objects'' are built into the foundations of the platform. They're optimized for high performance and functionality.  


Line 23: Line 23:
::*By contrast, {{Type|}}s provide a ''Details'' link to open the record for viewing
::*By contrast, {{Type|}}s provide a ''Details'' link to open the record for viewing


==Type Identifiers and Customization Capabilities==
{{:System Object Types}}
{{:System Object Types}}

Latest revision as of 19:48, 25 September 2013

About System Objects

The System Objects are built into the foundations of the platform. They're optimized for high performance and functionality.

System objects are customizable, but some functionality is fixed. (Custom Objects, in contrast, are created by platform developers. They are fully configurable, and become available when custom applications are developed or installed.)

Property Limitations

The following Property options are not available in System Objects:

  • Display Styles - Only Sectional Layout and Horizontal Tabbed Layout are supported
  • Record Locator can not be changed
  • Cannot make an object Active or Inactive
  • Inactive objects are not used in an application
  • Data in an Inactive object cannot be viewed, edited or deleted
  • Cannot set the object to be Web Enabled;
Note: Web Enabled objects can use the Web Forms tool
  • The Help URL is set by default, and cannot be changed

Other Considerations

  • Object Inheritance is not supported
  • Lookup fields to System Objects do not include Record Selection Criteria or Post-selection Javascipt
  • System Objects cannot be deleted, but can be hidden from view
  • Fields associated with the Record Id are clickable in System Objects
  • Clicking the link to an Account Name, Contact Name, or other System Objects opens the record for viewing
  • By contrast, Custom Objects provide a Details link to open the record for viewing

Main System Objects

The main System Objects are listed here, showing the names that appear in the UI, along with the object-type identifiers used in the APIs.

System Object
(As shown in the UI)
Object Identifier
Reference Information Customization Capabilities
Access Profiles ACCESSPROFILE REST API:accessProfile Resource
Application Access APPLICATION_ACCESS REST API:applicationAccess Resource
Case cases REST API:record Resource Virtually unlimited ability to Customize Objects
Task tasks REST API:record Resource Virtually unlimited ability to Customize Objects
Role ROLE REST API:role Resource none
User USER REST API:user Resource
  • Manage User Fields
    • Create new fields
    • Modify labels of existing fields
Team TEAM REST API:team Resource
User Team USER_TEAM REST API:userTeam Resource none

Notepad.png

Note:
USER_TEAM is the Junction Object that allows a User to belong to multiple Teams, and a Team to have multiple Users.

Related System Objects

These system objects are related to records in other objects. By default. these objects are not visible as independent entities in the UI, because end users and even designers have little need to see them. In general, then, the records they contain are seen only when viewing the records they are related to.

They can be made visible when needed, however, and they can be accessed programmatically.

System Object Object Identifier Reference Information
Attachments attachments In each record, the Multi Object Lookup field related_to references the object and record that the item relates to. For example: "cases:345rjkz921", where 345rjkz921 is the ID of a record in the cases object.

Learn more:

History history
Tasks tasks

Considerations:

  • Add Attachments and Tasks to those objects, respectively.
    (When an item is added or removed, an entry is automatically added to the history of the referenced record.)
  • Search those objects to get a list or records. Filter the list to get the items that relate a particular record.
  • Add Private Notes to the History object directly, specifying the category field with value="29"
  • To get a list of Private Notes attached to a record, search the History object. Filter the list to:
  • Return only those items where the related_to field matches the record of interest
  • Return only those items where the category field has the value 29.

Notepad.png

Note: If you go to Global Picklists, select the History Category, and scroll down to "added a note", you can see that the value is 29.

Learn more:

  • See the Java Code Samples for sample code that works with Related System Objects
  • Java record handling APIs to search and manage records
  • REST record Resource to search and manage records using REST APIs using an external program or JavaScript
    (Use the same patterns as in the Java code samples.)

Viewing "Hidden" System Objects

Developers who are working with the Related System Objects generally need to inspect their fields and properties. Developers may also need to view the records they contain, when debugging. The procedures for doing so are described below.

The same procedures apply to other System Objects that are hidden by default: Users, Teams, and the User_Team object. (A variety of other System Objects are working behind the scenes, as well. You'll see them as you follow these procedures.)

Thumbsup.gif

Tip:
You can easily add Fields to the Users object, and add Rules to both Users and Teams, without going to these lengths. See the Customization Capabilities for the main system objects, earlier on this page.

To make a hidden System Object visible:

  1. GearIcon.png > Customization > Resource Sharing
    • Application: Your App
    • Resource Type: Objects
  2. Move the System Object from the Available column to Selected
  3. Click [Save]
The object now appears in the list of objects that are part of the current application, where it's fields and other properties can be inspected--including the object name. (The object ID is also available in the Object Properties but in most all of the APIs, the object name works just as well as the ID, and it's a lot more readable. (There are only a few APIs that require the object ID. Those are carefully noted.)
Generally, that's all of the information you'll need to write your code. But sometimes, it's helpful to view the records in that object--mostly for debugging. That can be done, as well.

To view the records in a System Object:

  1. Make the object available as a tab:
    • GearIcon.png > Customization > Objects > {object} > Object Properties
    • Click [Edit]
    • Check the box: Available as a Tab
    • Click [Save]
    The object is now one of the choices that will be available when you set Tab Preferences, next.
  2. Make the tab visible:
    • GearIcon.png > Customization > Preferences > Tab Preferences
    • Add the object to the Tab Preferences for your role
    • Click [Save]
    • Refresh your page
The object now appears as a tab in the UI, and its records can be viewed.

To view data in fields that aren't shown:

  1. Make a new form or edit an existing form
  2. Add the fields you want to see
The data is now visible when you view a record using that form.

Standard Object Fields

These fields are predefined in all Objects. They:

  • Created automatically when an object is created.
  • Populated automatically when a record is added or updated in the GUI.
  • Required when a record is added or updated using an API.
Label Field Name REST Search Name Display Type Description
Object ID object_id object_id Number Unique identifier for the object. (This field is always present, but is only displayed when examining Object metadata (the data that defines the object).
Record ID id id Number Unique record identifier
Owner owner_id OWNERID String Unique identifier of the record's owner
Created By created_id CREATEDID String Unique identifier of the user who created the record
Date Created date_created DATECREATED String Date the record was created:
Modified By modified_id MODIFIEDID String Unique identifier of the user who last modified the record
Date Modified date_modified DATEMODIFIED String Date the record was last modified:

See also: Standard Parameters