If a user has the need to add a System Properties page, for most pages this can be done by adding the Property to the appropriate System Properties Category record on the system. This procedure is detailed in KB article How to add a System Property to a Properties Page.
However, a few specific modules or applications in the system use a non-standard properties page or method of creating and working with that modules internal, configurable properties. This article will describe some of these modules and how a property might be added to that application or module system properties page.
To begin with, it will be helpful to know which modules and applications use such a different mechanism. The following are some of the modules which are known to use a different method of working with properties or settings which might be associated to that particular module.
Modules Discussed in this Article
The following are the module and applications which use a non-standard method of dealing with properties and which are covered in this article:
Standard Change Properties
Service Catalog Properties
Import Export Properties
The following sections show information regarding specific system properties pages and how a property might be added to that page.
Standard Change Properties
The properties displayed on this page are actually stored in a special table specially designed for this purpose. This table is titled "std_change_properties" and contains exactly one record. This table has a field corresponding to each current property setting (as well as the normal table meta-data fields). These values do not correspond to an actual property as stored in the sys_properties table as one might expect.
When the system needs to access one of these specific properties, the system queries this special table and uses the value as needed in whatever task the system is performing. It is generally not advised to modify this table unless absolutely necessary. However, if this is necessary, adding a new property to this page would require adding a new field to the std_change_properties table. The form view corresponding to this table would also need to be adjusted to ensure the new field is displayed on that form as applicable. And, as always, the objects that use this new property would need to be modified to query for and use the object as necessary, as the existing values in this table are used in various workflow related objects.
Service Catalog Properties
The service catalog properties are also displayed in their own interface. This include a series of tabs in which individual system properties of similar purpose are grouped together.
Despite the fact that the properties themselves are displayed in a custom Service Catalog interface, the method to add these properties is similar. For the property to appear in this Service Catalog interface, it must be added to a specific Category which corresponds to one of the Tabs as found in this display. Adding the property to that Category will cause the property to appear in the corresponding tab. The order in which the property will appear on the page is based on the Order of that Property (as configured in the System Property to Category mapping table) relative to the other properties configured to appear on that same page. Furthermore, some tabs in the Service Catalog System Properties form may have multiple sub-tabs displayed.
The following chart displays the Tab Name and the corresponding Category Name to which the system property should be associated in order to allow it to appear on that Tab:
|Tab Name||Sub Tab||Category Name|
|Catalog Items||N/A||Catalog Items|
|Order Guides||General||Catalog Order Guides|
|Order Guides||Scriptable Order Guides||Catalog Scriptable Order Guides|
|Request Fulfillment||N/A||Catalog Request Fulfillment|
Selecting the MID-Server Properties page actually displays a standard record list in the ecc_agent_property table. These specific properties are thus not stored in the standard sys_properties table but instead in the ecc_agent_property table.
Thus, to add a new MID-Server property, simply browse to the MID Server properties record list and select New. Ensure to fill out the record form with all the appropriate information and save the record. This property will then be saved and added to the list of MID Server properties as shown in this list. Additionally, for the property to cause any configuration change on the MID-Server system, the appropriate modifications will be needed to the scripts and objects that query and use these configuration settings.
The Email Properties page uses it's own custom display page (email_properties.do). However, despite this fact, email properties are added in a similar way as for Properties pages that are displayed in the normal way.
As will be noticed, the Email Properties page is divided into two sections. On the left is the Outbound Email Configuration properties and on the right is the Inbound Email Configuration properties. To have the property appear in the list of properties on the left side of the page (Outbound Email), the property should be added to the Email Outbound Configuration System Properties category. To have the property appear in the right side list of properties (Inbound Email) it should instead be added to the Email Inbound Configuration System Properties category.
The properties will appear on the respective side of the form based on which of the categories it was added to, To determine the ordering of the property as displayed, this will be directly dependent on the value in the Order field of the System Property to Category mapping record relative to the other properties also associated to that same specific Category name.
Import Export Properties
The Import Export properties page is rendered using a system level dynamically generated page ($impex_properties.do). Although the properties referenced on the page are found in the sys_properties table, the actual format and text of the page is hard-coded in the system and cannot be modified or edited by an end user. However, since this properties page is referencing internal functionality of the system (Importing and Exporting of records in the system) this is not a functionality that should ever need modification or addition of new properties.
The Approval Engines menu link under the System Properties menu in the Menu Navigator displays the available Search Engine type for each table in the task table hierarchy.
The page is actually dynamically generated on the system from the "approval_engines" UI Page (sys_ui_page) record. The page does not simply render a list of properties, however, but rather runs some scripts upon page load. These scripts iterate the list of tables that are associated to task (which would thenceforth potentially use some type of Approval Engine). For each of these table types the system then checks to see if an existing system property is found on the system. The system property name corresponding to the Approval Engine used for that table should take the form: glide.approval_engine.<table_name>, where table_name is the Table Name for the specific table which should be associated to this workflow type. This page is designed to only display the Approval Engine Options for each specific table that is related to the task table (including the base task table). Thus, this page should only be used to display and allow selection of the configured Approval Engine to use for a new table in the task hierarchy that needs one.
To add a new row in this table, one would first create the new table which is extended from the task table or extended from one of the tables which already extends the task table. Once the table has been created as per a user's specific needs, including permissions and other supporting objects, a new property should be created in the sys_properties table. As mentioned above, this property should be created with the name glide.approval_engine.<new_table_name>. In addition to the name, the other fields on the systems property record should be populated as follows:
To add a property to an existing page for most other table types, the following KB Article details how that can be done: