=Creating Custom Fields – Step by Step={{ Banner-UnderConstruction }}
===Overview===
Custom fields can be created at any time, and associated with any one of a list of objects: UTA records (at any level), contacts, companies, and roles. They can be accessed and controlled via links on the Global Settings page or on the Entity Settings Page within a UTA, and that's also where they can be created.
====Locating and Viewing a Custom Field====
To see a list of all custom fields, navigate to Global Settings-->System tab-->Custom Fields. From here, you can search for, and view, any custom field; click on any of the column headings to sort by that column.<br /> [Example: click on Last Modified to see the most recently modified field.] If you already know to which type of object the field is attached, you can search directly on either the applicable settings page under '''Configuration''', or on the entity settings page within the appropriate UTA.
* Example: for an Organization custom field, you can navigate directly to the Configuration icon-->Global Settings-->Organizations-->Custom Fields.
* Example 2: for a UTA level 2 custom field, you can access the custom fields from within the UTA itself. To do this: select the cogwheel to access the UTA Settings, then select the level 2 tab, followed by the Custom Fields link.
This page is also where you can view all Deleted Fields--simply click on the Deleted Fields button in the top left-hand corner. From the Deleted Fields list view, you can either '''Restore''' or '''Purge''' any field: just select the checkbox next to the desired field, then click either the '''Restore''' (clock) or '''Purge''' (garbage bin) button, and when the confirmation window appears, select 'yes' or 'no'.
====Creation and Setup====
When creating a new custom field, it's a good idea to keep in mind the field's intended function: what kind of data will it be handling, and who will need to use it?
These answers will directly affect how the field is set up.
To create a new custom field, navigate to the appropriate location (UTA, role, organization settings or Contact settings) and then select the New Field button, which looks like a plus sign: '+'.
The New Custom Field screen will then appear.
The below table shows where each associated custom field can be created:
{| class="wikitable"
|-
||'''Entity'''
||'''Location'''
|-
||UTA: L1, 2 or 3
||UTA settings > Object Tab > Custom Fields
|-
||Role
||Menu Icon > Roles and Security > User Roles > Edit Role > Custom Fields tab
|-
||Organization
||Menu Icon > Global Settings > Organizations tab > Custom Fields
|-
||Contact/User
||Menu Icon > Global Settings > Users tab > Custom Fields
|}
Only three fields on this screen must be populated before you can save your new field:
-Field ID (populated automatically)
-Field Type
-Field Name
'''Field Type''': this choice will determine how the field will handle (and possibly manipulate) the data it will hold. For a complete list of all custom field types, see the table on the [[Custom Fields]] page.<br />
'''Note''': to see all available field types when creating a new custom field, enable '''Advanced Options''' on the top right of the display.<br />
'''Field Name''': This should be unique (to simplify locating it at a later date) and can only contain alphanumeric, underscore, or dash characters.
Once these three settings are populated, you can '''Save''' your new field, or add further specifications.
'''Note''': please visit [[Custom Fields General Information]] to see the more common custom field settings.
<!--=Creating Custom Fields – Step by Step=
In this example you will add [[Custom Fields|custom fields]] to the employee [[Role|role]], however; the attributes of the [[Custom Fields|custom fields]] are the same, regardless of the object.
[[Image:Creating_custom_fields_1.png]]
There are three types of [[Custom Fields|custom fields]] that you can associate with a [[Role|role]].
* '''Base Custom Fields''' – these fields are always associated with the [[Role|role]].
* '''UTA Custom Fields''' – these fields are only used when you associate a contact with the [[Role|role]] in the context of a [[Universal Tracking Application]].
The [[Custom Field|custom field]] list is displayed – currently blank.
[[Image:Creating_custom_fields_2.png|1000px|link:|1000px]]
4. Click the '''New Field''' tab.
The '''New Custom Field''' window is displayed.
[[Image:Creating_custom_fields_new_custom_field_4.png|800px|link:|800px]] This window consists of the following settings:
This window consists of the following settings:-->
<!--
==General Settings==
* '''Field Type''' - defines the content type for the field.
* '''Field Name''' – the name for the [[Custom Field|custom field]]. This name will also function as the caption unless the caption is set.
* '''Description''' - a general description for the custom field
==Display==
* '''Display Order''' - determines the order in which the fields will be displayed on the page. The display order will start at the number 10 and increment by 10 for each [[Custom Field|custom field]]. The display order can be changed at any time without affecting any data.
* '''Tab Name''' – by adding a tab name, the [[Custom Field|custom field]] will be displayed on a tab of the same name at the top of the form. This technique reduces the length of the page. You can use multiple tabs and each field will be displayed under the associated tab.
* '''Caption''' – an alternative caption to the field name. If a caption is set it will be displayed rather than the field name.
* '''Caption Location''' – define how the caption will be displayed . Options include '''"Left of Field", "Above Field", "No Caption", and "Hide Caption"'''.
* '''Instructions''' – define text that will appear under or alongside the caption. Is displayed even if Hide Caption is chosen for '''Caption'''.
==Options==
The '''Options''' field displayed below the field type will change depending on the field type selected.
The '''Options''' field displayed below the field type will change depending on the field type selected.
[[Image:Creating_custom_fields_options_5.png|link:]]<br />
''Options for text and select type fields''
* The '''Mandatory''' check box is displayed for text and select type fields, and controls if data is mandatory in that field.
:** If you enable '''Mandatory''' for '''Text''' type fields, the [[User|user]] will have to enter a value into the text box.:** If you enable '''Mandatory''' for '''Select''' type fields, the [[User|user]] will NOT be able to save the record without selecting a value other than the first value.
* '''Appear Mandatory''': Makes the field appear as through it required even though "Allow Empty" is selected.
* '''Searchable''' - the '''Searchable''' check box is used to make the field value appear in the system search.
* '''Track Changes''' – this setting is used to indicate that all changes to the value in field should be tracked. This tracking includes the original and replacement value, the [[Username|username]] and the date/time that the change was made.* '''Enable [[KML|KML]]''' - allows KML data (for mapping applications) to be used.
* '''Disable Quick Edit''' - checking this box will disable the '''"Quick Edit"''' feature.
* '''Disable Field from Global Search''' - this option is used to make the field value appear in '''[[Global Search|Global Searches]]'''.
* '''Enable Map Service''' - displays the map icon next to the field name. This icon will launch the [[User|user’s]] selected map service and display a map of the content of the field – provided a valid address is stored in the field.* '''[[Enable Translation Service|Enable Translation Service]]''' - allows for language translation of data entered into text fields, achieved by integration with Google Translate.
* '''Read Only''' - uncheck this box to allow users to edit this field.
In order to see the changes a [[User|user]] needs to be in a [[Role|role]] associated with the '''Manager Permission''' – '''View Custom Field Changes'''. When in this [[Role|role]] an icon is displayed next to the field caption.
==Validation Settings==
The '''Validation''' fields displayed below the field type will change depending on the field type selected.
[[Image:Creating_custom_fields_validation.png]]
You can control the validation of any text type [[Custom Field|custom field]].
* '''Validation Options''' - check-mark enables [[Server-Side Validation|Server-Side Validation]] allowing for consolidated validation error messages to be displayed.* '''Validation Type''' - options include '''"date", "numeric", and "alphabetic"''' validation. If you select date validation, a calendar icon will be displayed to the right of the field name automatically.* '''Javascript Validation''' - allows you to set input masks for the field. For example '''>100 or @value@>100''' would restrict the value entered to greater than 100. To validate 9 digits SIN number, '''isMatch(@value@, 'NNNNNNNNN', false)'''. See the [[SmartSimple]] wiki for additional examples.
* '''Validation Error Message''' - will display a field specific message if the validation criteria are not met.
:** For more advanced page level validations you can use the [[Custom Field Type: Special – Browser Script|Custom Field – Special Browser Script]] to add a specific script to any page.* '''Maximum Count Message''' - sets the maximum character count for the field. Options include check boxes to '''Show Counter''' which will display the character count and '''Count Words''' which will change from counting characters to counting words.
* '''Maximum Count Message''' - will display a field specific message if the Maximum Count Message criteria is not met.
==Values Storage==
[[Image:Creating_custom_fields_value_storage.png|link:]]
Comprised of 2 parts
* '''From Custom Field(s)''': Displays the name of the source field that its pulling data from this field. Will be read-only
* '''To Custom Field''': This setting will take the value for the current field and store it into another field associated with the same [[Entity|entity]]. For example, you may need two fields, one captioned in English and another captioned in French, but need to store the value into a single field.
Note: Please see the article '''[[Value Stores To|Value Stores To]]''' for additional details.
==Formatting Settings==
The formatting settings control the presentation of text type fields.
[[Image:Creating_custom_fields_formatting.png|link:]]
* '''Caption Style''' – controls the bold, underline, italic and highlight attribute when the field is displayed in view mode.
:*:'''Note:''' For Caption Style, put @value@ inside html style tags like <u>@value@</u>
* '''Width''' – controls the width of the next box.
* '''Number Format''' – controls the format of the data when the field is displayed in '''View''' mode. You can use standard setting such as Integer, Decimal, Currency, Percent or custom formats such as $#,###.00.
* '''Number Precision''' - control how many decimal places are displayed for numbers.
* '''Tool Tip''' – define text that will as a tool-tip against the field name or caption.
* '''Align''' - control the justification of the text within the field.
* '''Custom HTML Tag''' - Use this field for additional attributes to the field HTML tag. For Example: style="background-color=00ff00" or onfocus="this.value='Populate this text in field when selected'"
==Permissions & Availability==
Access to a [[Custom Field|custom field]] is controlled by [[Role|role]] based permissions.
To access the '''Role''' and '''Status''' access settings click on the '''Permissions & Availability''' tab next to the General Settings. [[Image:Creating_custom_fields_permissions.png|link:]] Field permissions can be controlled by role and by status. * '''Allow View Field''' – If you associate this setting with [[Role|roles]], then the field will only be displayed to people with these [[Role|roles]]. If you leave this field blank, then everyone will be able to see the field.* '''Allow Modify Field''' – If you associate this setting with [[Role|roles]], then the field will only be modifiable by people with these [[Role|roles]]. If you leave this field blank, then everyone will be able to modify the value on the field.* '''Deny View Field''' – If you associate this setting with [[Role|roles]], then the field will not be displayed to people with these [[Role|roles]]. If you leave this field blank, then everyone will be able to see the field.* '''Deny Modify Field''' – If you associate this setting with [[Role|roles]], then the field will not be modifiable by people with these [[Role|roles]]. If you leave this field blank, then everyone will be able to modify the value on the field. =Creating Custom Fields=
<!--[[Image:Creating_custom_fields_permissions.png|link:]]-->
<!--Field permissions can be controlled by role and by status.
* '''Allow View Field''' – If you associate this setting with [[Role|roles]], then the field will only be displayed to people with these [[Role|roles]]. If you leave this field blank, then everyone will be able to see the field.
* '''Allow Modify Field''' – If you associate this setting with [[Role|roles]], then the field will only be modifiable by people with these [[Role|roles]]. If you leave this field blank, then everyone will be able to modify the value on the field.
* '''Deny View Field''' – If you associate this setting with [[Role|roles]], then the field will not be displayed to people with these [[Role|roles]]. If you leave this field blank, then everyone will be able to see the field.
* '''Deny Modify Field''' – If you associate this setting with [[Role|roles]], then the field will not be modifiable by people with these [[Role|roles]]. If you leave this field blank, then everyone will be able to modify the value on the field.-->
<!--=Creating Custom Fields=
1. Create the following fields for the employee [[Role|role]] you have previously established:
[[Image:Creat17.png]]
2. Review an '''Employee''' record and set the fields as shown below:
[[Image:Creat18.png]]
3. Select the '''Compensation''' fields.
[[Image:Creat19.png]]--> <!--<span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name="Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1"><span class="mceNonEditable template" id="bs_template:@@@TPL1@@@" data-bs-name=" Template:Move to Common Level" data-bs-type="template" data-bs-id="1">{{ Template:Move to Common Level}} </span></span></span></span></span></span></span></span></span></span></span></span></span>-->
[[Category:System Management]][[Category:Custom Fields]]