“attributes” allow the creation of user-defined database fields to
extend the functionality of various applications. Attributes can bind to defined user categories such as contact
categories (customers, employees, vendors, etc.), tickets (electronic business
forms), or to specific SPS data categories such as groups. The creation of user-defined database fields
allows for the customization of applications before and AFTER data has been
entered into the system. In this
manner, custom program interfaces can evolve as the needs of your business
change. Of course, many SPS
applications capture a specified set of information through default user
interfaces that are relevant to the functionality of that application. For example, an “Employee” contact found in
Manager has a first, middle, and last name field. If you wish to store nicknames for employees in your database,
you may create the attribute of “nickname” in order to provide both the user
input field to capture data and the backend database structure to store that
information. Once created, this
database field is also available as a report column when creating custom
The Attribute Builder utility is an administrative program that can be found either under the Contacts tab of the SPS Main Menu or incorporated into the Ticket Builder program found under the Tickets tab. Each instance of the Attribute Builder program pertains to the specific requirements of the applications found in the SPS Main Menu tab under which it is found.
Attribute Builder – Contacts
Found under the “Contacts” tab of the SPS Main Menu, this program creates the custom database fields that appear under the “Attributes” tab of the Contact Manager detail screen. Attributes are created specifically to relate to one or more contact categories. For example, attributes created for customer data types may contain information that differs from those that relate to vendors.
Ticket Builder - Attributes
Found within the Ticket Builder program under the “Tickets” tab of the SPS Main Menu, this program creates the content of SPS Electronic Forms (also known as “Tickets”). User interfaces are created from a “blank page”, allowing complete customization of nearly any information found in a paper form. The extensive control of SPS attributes allows electronic forms to contain many input controls, including fields that contain calculated values (including date calculations). As a result, company tickets can be used for a variety of functions such as shipping orders, purchase requisitions, human resources forms, and more.
A key feature of the attributes function of SPS is the ability to create not only custom database fields, but also the data-entry interface used to collect data. In defining the data-entry interface, various input controls and their graphical representations may be defined. To ensure the integrity of any data entered, restrictions may be placed upon the input fields. For example, you may wish to add an attribute to Customer contacts found in the Contact Manager application in order to specify the “Initial Contact Date” of a customer. By defining the “Initial Contact Date” attribute as an “Editable date” entry, you provide a date input field with a pop-up calendar that restricts the entry of the field to the date format of mm-dd-yyyy. The following portion of this section describes the available attribute edit types used to design both the user interfaces and the backend database structure in applications that utilize attribute functionality.
Items found in this section provide standardized HTML input fields such as checkboxes, radio buttons, and drop-down (option) menus. Additionally, data grouping controls such as HTML sections and tables provide a convenient way to organize all user input screens.
A section creates an enclosed block of attributes. Much like other attributes, sections can be nested to further organize data. For example, you may wish to organize all attribute information related to the general details of each customer into a section titled “Company Details”. From the Attribute Builder – Contacts application, choose the Customers contact category to which to add this attribute (this may be the default) and click New.
You will receive the attribute entry screen. Simply type “Company Details” as the Label of the attribute and choose Section as the control. You may choose various positioning options (discussed in the section below titled “Attribute Positioning”) to place the section accordingly on the screen.
Apply Only To Certain “Kinds” of Contacts
Attributes created using the Attribute Builder – Contacts application (which appear under the Attributes tab of the Contact Manager detail screen) can be designated to only apply to a certain “kind” of contact record. Since the customer contact category may consist of either a company record or an individual record, attributes may be designated to apply to either or all of these types by choosing the appropriate radio button selection from the Attribute Builder for the attribute selected. The Attributes tab of the Contact Manager will only display the attribute that pertains to that type of contact record – meaning that when entering a company record, those attributes that have been defined to apply to “Companies” will appear and not those which are to apply to individuals. In the example above, the “Company Details” section should only apply to company records, not individuals.
Choose Close to save and close the attribute entry screen. You will now return to the main screen of the Attribute Builder. Notice from the following graphic that the “Company Details” section now appears beneath the Customers contact category.
To add attribute input fields into the “Company Details” section, simply choose “Company Details” from the tree and click New. You may also edit an attribute by choosing it from the tree and clicking Open (or double-clicking the item in the tree). Deleting an attribute works in a similar fashion. Please note that deleting an attribute also deletes any child attributes of the parent record.
Sections may also be used as HTML tables in order to provide spreadsheet-type input fields. See the section below for more information.
This control may by used to indicate an item that represents a yes/no value. For example, you may add a checkbox within the “Company Details” section to designate whether a customer’s account is active or not. Much like the procedures used above to add a section, choose the “Company Details” section to add the checkbox and click New. From the Attribute Builder detail screen, provide the label, position the attribute within the section, and designate this attribute as a checkbox control.
If you wish for the checkbox to appear checked by default, choose the “Default” checkbox. Close and save the changes to return to the Attribute Builder main screen. The resulting screen (found in this case under the Attributes tab of the Contact Manager detail screen) would look like the following graphic.
A “Radio Button Group” allows the creation of a “section” of radio buttons in order to collect data that requires the selection of only one item in a list. For example, you could create an attribute comprised of radio buttons that described the method used by the customer to pay invoices. If you were to add a radio button group labeled “Payment Method” to the “Company Details” section, you could then add the radio buttons “Company Check”, and “Debit Draft (EFT)” to that radio button group. Choosing the Default checkbox in the Attribute Builder would result in the specified radio button to be selected by default. The resulting screen of the Contact Manager would look like the following graphic.
The attributes that were created in the preceding example would be listed in the following order in the main screen of the Attribute Builder.
A “Menu” control creates a drop-down (option) menu that can contain an unlimited number of choices as designated by the “Menu Item” control. For example, you may designate the menu of “Product Purchased” and add the menu items of “SPS - Standard”, “SPS - HA”, and “SPS - Enterprise” to that menu drop-down. An item can also be designated as the default choice by checking the “Default” checkbox in the Attribute Builder for the item that you wish to appear selected in the menu. The order that the menu item appears within the drop-down menu can also be arranged using the Vertical Position drop-down menu.
The following screen in the Contact Manager would result from the above attribute menu.
User inputs can be designated as “numeric” in order to (1) restrict data entry by the user to only numbers (as opposed to letters or symbols), (2) provide a way to automatically assign numbers to records (as serial values), and (3) provide calculated results based on other attribute input fields (attribute formulas). Numeric user inputs are comprised of serial values, whole numbers, decimals, or calculated results (formulas). If the desired effect is to have a money value input, the “Two Digit Precision” should be used since “Whole Number” does not allow any decimals to be entered.
In order to provide an automatic method of assigning incremental serial values to contact records or to tickets, you may choose to add a serial value attribute.
Whole Number, Two – Four Digit Precision
Used primarily to restrict user input capabilities and as a basis for formula tabulation, numeric inputs can be added based on the number of decimal places required. For example, you may add the attribute of “Number of Lease Payments” as a whole number input and the attribute of “Lease Payment Amount” as a two digit precise input.
Attribute inputs that are to be used to calculate results must have a unique constant defined for the attribute. This is done in order to provide a system-wide reference for that attribute. For example, we can define a constant for the number of payments called “NUM_PYMNTS” and a constant for the lease payment amount called “LEASE_AMT”.
The following screen in the Contact Manager would result from the above numeric attribute inputs. As you can see, while input values will be restricted to only numbers in both of the added fields, the Lease Payment Amount field limits (or “masks”) input to two decimal places.
The user can maneuver decimal places by typing a period to “jump” from the left side of the decimal (much like a calculator or adding machine) to the right or by simply using the left and right arrows.
An attribute can be defined to result from calculations performed upon other attributes using the formula attribute type. As you will see in other sections of this manual, formulas may be placed upon different attribute types, including dates, radio buttons, menu items, and user pop-ups. For this section, we will simply discuss the attribute formula type based on numeric attribute types. For example, if you wish to calculate the total amount of lease payments for the attributes created in the preceding section, you could define a attribute called “Total Lease Amount” and define it as a formula consisting of the multiplication of the number of lease payments (using the previously defined system constant of “NUM_PYMNTS”) and the lease payment amount (using the previously defined system constant of “LEASE_AMT”).
The “NUM_PYMNTS” and “LEASE_AMT” attribute constants are used to refer to the previously defined attribute input fields that are used to capture user input from the Contact Manager screen (under the Attributes tab). All attribute constants MUST be placed between brackets (“[“ “]”) in order to properly identify to the system that you intend to use the result of that input field in the calculation. Standard mathematical symbols (“+”, “-“, “*”, “/”) are used to denote various operations and the resultant value format should be specified using the “Result format” drop-down menu.
In our example above, once a user completes the “Number of Lease Payments” whole number input and the “Lease Payment Amount” two digit precise number input, the “Total Lease Amount” input will be automatically calculated by the browser and its result will be rounded based upon the Result format defined in the Attribute Builder application. The following screen depicts the resultant screen in the Contact Manager based on the previous example.
Character input attribute types create an input field that allows entry of both numbers and characters, allowing only the restriction of the length of the entry. In addition to a free-form entry field, user interfaces may contain a “State” drop-down menu that contains an alphabetical listing of all U.S. states and Canadian Provinces. The “Country” drop-down menu option displays a listing of common countries.
Ten, Twenty, Thirty, Forty Wide Character Inputs
This input type only restricts the input length based on the number of characters. For example, suppose we have created a section in our previous example to store information related to the billing function for our monthly lease payment. We could then create a twenty-wide character input to store the credit card number to which the payment is to be billed.
Additionally, we can also create a forty-wide character input to capture the name of the cardholder. The resulting screen in the Contact Manager would look like the following (assuming that a section labeled “Billing Details” has already been created and placed below the Company Details section).
To create a “State” drop-down menu which contains an alphabetical listing of all U.S. states and Canadian Provinces or a “Country” drop-down menu option displays a listing of common countries, simply choose the appropriate attribute input from the Attribute Builder application. In our current example, we can define a section within the “Billing Details” section in order to capture the address found on the cardholder’s credit card. We can use forty-wide character inputs to define attribute input fields for the “Street” and “City” of the address and a twenty-wide input for the “Zip Code”. The State and Country drop-down menus are created automatically when the input screen is accessed (such as the Contact Manager).
The special section of the Attribute Builder edit types tab contains various formatted input fields including dates, phone numbers, and social security number. Selecting one of these input types automatically creates the input field with special data and functions much like the State and Country drop-down menus described above.
Editable date input types contain a calendar button which initiates a calendar pop-up when clicked. This pop-up calendar allows the user to choose the appropriate date by scrolling through the months and years using the appropriate left and right arrows. Once a date is chosen by clicking on the date (causing it to turn red), the OK button returns back to the prior screen. In this manner, the proper date format is always enforced by the user interface. Of course, the user may type the date in and the input will be limited to the MM-DD-YYYY format.
For example, suppose we wanted to add to our “Billing Detail” section example above a date input for the “Expiration Date” of the billing credit card. We could add the input in the Attribute Editor as follows.
The resulting screen of the Contact Manager would contain the “Expiration Date” input field containing a masked input (in “MM-DD-YYYY” format) along with the calendar pop-up button.
Clicking the calendar button will open the Calendar pop-up with today’s date selected (or the date found in the input if not zero). Users may simply choose the appropriate date by clicking on it and click OK to return to the previous screen. The Clear button on the Calendar pop-up will zero out the editable date input field from which the calendar was called.
Readonly and Current Date
The readonly date field is used to store a date in the database when performing data import functions. This field’s utility varies based on special considerations during the initial or subsequent attribute setup procedures. The Current date attribute creates a non-editable input field containing the current date. This value is saved and becomes readonly once the record to which this attribute is assigned is saved for the first time. A good use of current date would be to define the date that a record is created in the system, for example, the date that the account billing of a customer should begin.
The phone number attribute edit type provides a masked input that restricts entry of telephone numbers based on the appropriate format of the country code. By default, the format of the United States, “(000) 000-000”, is provided in the input area. For example, adding an attribute labeled “Cardholder Phone No.” to the “Credit Card Billing Address” section of the preceding example would result in the Contact Manager displaying the following screen.
While the default entry format is for the United States, users may change the format of any phone input field by clicking the telephone icon next to the phone input. You will receive the “Country Codes” pop-up.
Choosing the appropriate country will format the phone number field for which it was selected. Please note that changing the format of the input will erase any entry that existed in the phone number input prior to the country code selection.
Social Security Number
The social security attribute edit type provides a masked input with the format “000-00-0000” which can be used to capture social security numbers from an entry screen such as the Contact Manager Attributes tab. This attribute type is handy when creating attributes and electronic forms relating to employees or other human resources functions.
The “Contacts” attribute edit type section contains various input fields pertaining to the contacts, users, or categories found within the system. Of course, each SPS implementation will differ based on the specific data defined in the system. All of the contact edit types render an input field that can only be completed by clicking the “people” icon found to the right of the input field. This results in a pop-up containing a variety of information based on the edit type chosen.
This attribute edit type provides a pop-up containing the different contact categories created by your SPS administrator.
This attribute edit type creates an input field with a pop-up containing all available contacts as created using the Contact Manager application. This means that a user may choose any contact found within any contact category as long as they have the appropriate permissions to access that contact category. For example, to provide an input within the “Company Details” section that specifies the re-seller company that markets your product, you could create an attribute called “Re-seller Agent” as an “Any contact” edit type. The resulting screen of the Contact Manager would resemble the following.
Clicking on the “people” button would then produce the “Any contact” pop-up with a listing of all contact categories and their associated contacts.
The related contact attribute edit type provides a pop-up containing only the contacts that are related to the contact selected within the Contact Manager detail screen. As such, this edit type is only available in the Attribute Builder related to Contacts (not Tickets). We could expand the above example by adding a related contact which depicts the “Primary Technical Contact” of the company record we are viewing in the Attributes tab of the Contact Manager detail screen as shown below.
Clicking on the “people” button would then produce a pop-up with the names of the contacts related to our current contact record.
The same category attribute edit type provides a pop-up containing all of the contacts found within the same category as the contact currently selected within the Contact Manager detail screen. As such, this edit type is only available in the Attribute Builder related to Contacts (not Tickets).
SPS system users are available for selection if the SPS user attribute edit type is defined in the Attribute Builder application. This edit type provides a pop-up containing all available SPS users from which a selection can be made. The users are displayed within the groups to which they belong. For example, we can define an input field to display our company’s account manager for a given contact record. The following depicts the Contact Manager detail screen.
As previously mentioned, attributes can bind to user-defined categories such as contacts or tickets as well as the SPS data category of groups. While categories are useful for a variety of reasons, they are especially useful when creating attributes since an attribute can bind to one or multiple categories. In this manner, user interfaces can vary depending on the category. For example, the types of information that you may wish to collect about a customer may include a sales history and a listing of products purchased. In contrast, an employee contact record may require information about the employee’s job performance history. Attributes used in conjunction with categories allow the customization of the Contact Manager (and other applications that utilize attributes) so that the appropriate user interface appears for each defined category. When creating a new attribute, you must choose at least one category to which the attribute will apply. The Categories tab of the Attribute Editor allows the modification of the categories that apply to the attribute.
The attributes defined above relate to important information about a company’s customer records. In order to apply these defined attributes to the Customer’s contact category, we must assign the attribute to that category within the Categories tab of the Attribute Builder application. In this manner, records contained in other contact categories (such as employee records) do NOT display the previously defined attributes. These records may in turn have specified attributes defined that relate to their functionality.
Ownership rules allow the various groups created within the SPS to have access to attributes that are assigned to that owner. For example, you may wish for your customer service department (perhaps found in a group called “Operations”) to be allowed access to an attribute Section titled “Credit History”. You may further wish to exclude your MIS department from viewing any information regarding your customer’s credit. By applying the ownership principals of attributes, you can specify which group (of the groups that have been created by the administrator) has access to each attribute defined in the Attribute Builder. In this manner, further customization of user interfaces can be achieved – this time by specifying which users (based on the group to which they belong) can access which attributes.
Attributes created in the Attribute Editor can be linked to custom-designed applications through the use of constants. A constant is simply a system-wide unique identifier assigned to an attribute. This essentially becomes a system-wide cross-reference to that attribute. As discussed in the sections of this manual covering formula calculations, attribute constants are vital in order to relate one attribute to another when creating a formula.
Additionally, you may be able to perform specialized system functions by utilizing the values captured in the attribute builder or through tickets by defining an attribute constant and linking that constant to an SPS custom application.
The above series of examples appear under the Attribute tree of the Attribute Builder – Contacts application in a “tree-like” format. Any Section can become the parent of a group of inputs if it is selected (causing it to turn blue) and the New button is chosen. If a Section or other input appears as the child of the top-level category (Customers in this example), it will not appear under any other input. While Attributes do not need to be organized into Sections, the user interface appears more organized with the use of Sections.
Certain inputs must become the parent of other inputs. For example, Radio Button Groups must have Radio Buttons as children. Additionally, any Menu that is created must have Menu Items as children.
Attributes may be nested so as to appear only if certain “true” conditions are met. For example, you may create specific fields that appear only if a certain drop-down menu item has been chosen.
ã 2003 – Root Systems LLC – http://www.idcs.info/