Difference between revisions of "System Object Types"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
 
(43 intermediate revisions by the same user not shown)
Line 1: Line 1:
=== Main System Objects ===
__TOC__
== Main System Objects ==
The main {{Type}}s are listed here, showing the names that appear in the UI, along with the object-type identifiers used in the [[API]]s.
The main {{Type}}s are listed here, showing the names that appear in the UI, along with the object-type identifiers used in the [[API]]s.


:{| border="1" cellpadding="5" cellspacing="0"
:{| border="1" cellpadding="5" cellspacing="0"
!System Object<br/>(As shown in the UI)
!System Object<br/>(As shown in the UI)
!Object Type Identifier<br/>
!Object Identifier<br/>
!Reference Information
!Reference Information
! Customization Capabilities
! Customization Capabilities
|-
|-
|[[Case]]||<tt>cases</tt> || [[REST API:record Resource]] || Virtually unlimited ability to [[Objects|Customize Objects]]
| [[Access Profiles]] || <tt>ACCESSPROFILE</tt> || |[[REST API:accessProfile Resource]] ||
|-
|-
|[[Role]]||<tt>ROLE</tt> || [[REST API:role Resource]] || none
| [[Application Access]] || <tt>APPLICATION_ACCESS</tt> || [[REST API:applicationAccess Resource]] ||
|-
|-
|[[User]]||<tt>USER</tt> || [[REST API:user Resource]]  
| [[Case]] || <tt>cases</tt> || [[REST API:record Resource]] || Virtually unlimited ability to [[Objects|Customize Objects]]
|-
| [[Task]] || <tt>tasks</tt> || [[REST API:record Resource]] || Virtually unlimited ability to [[Objects|Customize Objects]]
|-
| [[Role]] || <tt>ROLE</tt> || [[REST API:role Resource]] || none
|-
| [[User]] || <tt>USER</tt> || [[REST API:user Resource]]  
|
|
* Add [[User Fields|Fields]]
:
* Modify labels of existing fields
* APIs
* Use a restricted set of [[Event Rules]] and [[Scheduled Rules]]
** [[Java API#Objects]] to manage USER records (one of the standard [[System Objects]])
** [[getLoggedInUserInfo]] to get information on the current user
:
* Manage [[User Fields]]
** Create new fields
** Modify labels of existing fields
:
* Manage [[User Rules]]
** Create login rules
** Use a restricted set of [[Event Rules]]  
** Set up [[Scheduled Rules]]


|-
|-
|[[Team]]||<tt>TEAM</tt> || [[REST API:team Resource]]
|[[Team]]||<tt>TEAM</tt> || [[REST API:team Resource]]
|
|
* Use a restricted set of [[Event Rules]] and [[Scheduled Rules]]
* Manage [[Team Rules]]
** Use a restricted set of [[Event Rules]]  
** Set up [[Scheduled Rules]]


|-
|-
Line 29: Line 48:
{{Note|<br><tt>USER_TEAM</tt> is the [[Junction Object]] that allows a User to belong to multiple Teams, and a Team to have multiple Users.}}
{{Note|<br><tt>USER_TEAM</tt> is the [[Junction Object]] that allows a User to belong to multiple Teams, and a Team to have multiple Users.}}


===Related System Objects ===
==Related System Objects ==
These 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 can be see only by viewing the records they are related to.
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.


They can, however, be accessed programmatically:
:{| border="1" cellpadding="5" cellspacing="0"
:{| border="1" cellpadding="5" cellspacing="0"
!System Object
!System Object
!Object Type Identifier
!Object Identifier
! Reference Information
! Reference Information
|-
|-
Line 41: Line 61:
| attachments
| attachments
| rowspan="3"| In each record, the [[Multi Object Lookup]] field <tt>related_to</tt> references the object and record that the item relates to. For example: <tt>"cases:345rjkz921"</tt>, where <tt>345rjkz921</tt> is the ID of a record in the <tt>cases</tt> object.
| rowspan="3"| In each record, the [[Multi Object Lookup]] field <tt>related_to</tt> references the object and record that the item relates to. For example: <tt>"cases:345rjkz921"</tt>, where <tt>345rjkz921</tt> is the ID of a record in the <tt>cases</tt> object.
''Learn more:''
:* [[History object]]


|-
|-
Line 51: Line 74:
|}
|}


==== Viewing the Related System Objects and other "Hidden" System Objects ====
'''Considerations:'''
For developers who are working with the Related System Objects need to make them visible, both to inspect their properties and to view the records they contain (generally while debugging). The same process applies to other System Objects that are hidden by default: Users, Teams, and the User_Team object.  
:* Add Attachments and Tasks to those objects, respectively.<br>(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 <tt>related_to</tt> field matches the record of interest
::* Return only those items where the <tt>category</tt> field has the value <tt>29</tt>.
 
{{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 [[Java API:Record Handling|record handling]] APIs to search and manage records
:* REST [[REST API:record Resource|record Resource]] to search and manage records using REST APIs using an external program or JavaScript<br>(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.


{{Tip|<br>You can add Fields to the Users object with going to these lengths.<br>You can also add Rules to Users and Teams.<br>''Learn more:'' [[#Main System Objects|Customization Capabilities]] for the main system objects}}
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.)


'''To view a Related System Object:'''
{{Tip|<br>You can easily add Fields to the Users object, and add Rules to both Users and Teams, without going to these lengths. See the [[#Main System Objects|Customization Capabilities]] for the main system objects, earlier on this page.}}
:--4 steps
:--after step __???__, object fields visible
:--after step 4, records are visible


==== Adding and Accessing Related System Object Records ====
'''To make a hidden System Object visible:'''
'''Considerations:'''
# '''[[File:GearIcon.png]] > Customization > Resource Sharing'''
:* Add attachments and tasks to the appropriate object.
#* '''Application:''' ''Your App''
:* Inspect those objects to get a list. Filter it to get the items that relate a particular record.
#* '''Resource Type:''' ''Objects''
:* Add private notes to the History object, specifying the category field with value="29"
# Move the System Object from the '''Available''' column to '''Selected'''
:* To get a list of private notes attached to a record, inspect the History object. Filter it to:
# Click '''[Save]'''
::* Return only those items where the <tt>related_to</tt> field matches the record of interest
 
::* Return only those items where the <tt>category</tt> field has the value <tt>"29"</tt> (a string).
: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:'''
# Make the object available as a tab:
#* '''[[File: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.
#:
# Make the tab visible:
#* '''[[File: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:'''
# Make a new form or edit an existing form
# Add the fields you want to see
: The data is now visible when you view a record using that form.


'''Learn more:'''
==Standard Object Fields==
:--Java Code Samples
{{:Standard Fields}}
::--link back here to view the Related System Objects
: Java record APIs to search and manage records
:--Java REST record Resource to search and manage records using REST APIs<br>(Use the same patterns as in the Java code samples.)

Latest revision as of 23:58, 3 August 2015

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