Installed with catalog item designer

The catalog item designer adds or modifies tables, user roles, script includes, and other components.

Demo data is available with the catalog item designer.

Tables installed with catalog item designer

Tables

The catalog item designer adds the following tables.
Display Name [Table Name] Description
Requesting Item Designer Category Request [sc_ic_category_request] Requests made by users for a new category.
Item [sc_ic_item_staging] Item definitions, used when designing the item.
Approval [sc_ic_aprvl_defn_staging] Approvals for items.
Approval Definition [sc_ic_aprvl_defn] Approvals for catalog items.
Approval Definition (Requested Item) [sc_ic_req_item_aprvl_defn] Approvals for requested items.
Approval Type [sc_ic_aprvl_type_defn_staging] Approval types for items.
Approval Type Definition [sc_ic_aprvl_type_defn] Approval types for catalog items and requested items.
Task Assignment [sc_ic_task_assign_defn_staging] Task assignment types for items.
Task Assignment Definition [sc_ic_task_assign_defn] Task assignment types for catalog items and requested items.
Task [sc_ic_task_defn_staging] Tasks for items.
Task Definition [sc_ic_task_defn] Tasks for catalog items.
Task Definition (Requested Item) [sc_ic_req_item_task_defn] Tasks for requested items.
Question [sc_ic_question] Questions for items. Stored as Variables [sc_item_variables_task] records for catalog items and requested items.
Question Choice [sc_ic_question_choice] Choices if the question is a choice type (select box, multiple choice, or checkbox).
Question Class [sc_ic_question_class] Base variable types to use as the class for a question type.
Question Type [sc_ic_question_type] Question types for items.
Question Type Choice [sc_ic_question_type_choice] Choices if the question type is a choice type (select box, multiple choice, or checkbox).

Table relationships installed with catalog item designer

Some equivalent information is stored as records in different tables in creating, publishing, or requesting areas to provide a controlled environment for item design.

For example, catalog items are stored as Item [sc_ic_item_staging] records in the creating area, as Catalog Item [sc_cat_item] records in the publishing area, and as Requested item [sc_req_item] records in the requesting area.

This table illustrates the relationships for these records.
Creating Publishing Requesting
Task [sc_ic_task_defn_staging] Task Definition [sc_ic_task_defn] Task Definition (Requested Item) [sc_ic_req_item_task_defn]
Item [sc_ic_item_staging] Catalog item [sc_cat_item] Requested item [sc_req_item]
Approval [sc_ic_aprvl_defn_staging] Approval Definition [sc_ic_aprvl_defn] Approval Definition (Requested Item) [sc_ic_req_item_aprvl_defn]
Approval Type [sc_ic_aprvl_type_defn_staging] Approval Type Definition [sc_ic_aprvl_type_defn]
Question [sc_ic_question] Variables [sc_item_variables_task]
Task Assignment [sc_ic_task_assign_defn_staging] Task Assignment Definition [sc_ic_task_assign_defn]

User roles installed with catalog item designer

The catalog item designer adds the following user roles.

Role Contains Roles Description
catalog_editor none Can create, modify, and publish items within categories to which they are assigned.
Can also perform the following for items and categories to which they are assigned:
  • Apply existing user criteria.
  • Attach a variable set.
  • Create a UI policy.
  • Edit a catalog item in a catalog client script.
catalog_item_designer none Can view the status of category requests.
catalog_manager none Can request a category, view and assign catalog editors to their categories, and create, modify, and publish items within their categories.
Can also perform the following for items and categories to which they are assigned:
  • Apply existing user criteria.
  • Attach a variable set.
  • Create a UI policy.
  • Edit a catalog item in a catalog client script.

UI policies installed with catalog item designer

UI Policy Table Description
Allow category entry Item [sc_ic_item_staging] Allow category entry only if a catalog is selected.
Show Mobile Image Item [sc_ic_item_staging] Make the mobile image field visible if availability is set to Both Desktop and Mobile or Mobile Only.
Show Desktop Image Item [sc_ic_item_staging] Make the desktop image field visible when availability set to Both Desktop and Mobile or Desktop Only.
Show Published Item Item [sc_ic_item_staging] Show the catalog item if the staged item is published.
Hide Item field on Item Designer - Approval view Approval [sc_ic_aprvl_defn_staging] Hide the catalog item field from the item designer approval view.
Show "User" field when Type=User Approval [sc_ic_aprvl_defn_staging] Make the user field visible and mandatory if a user approval is selected.
Show "Group" field when Type=Group Approval [sc_ic_aprvl_defn_staging] Make the group field visible and mandatory if a group approval is selected.
Show "Predefined approval" field when Type=predefined_approval Approval [sc_ic_aprvl_defn_staging] Make the Predefined approval field visible if a predefined approval is selected and the predefined type is selected.
Show Predefined approval description when appropriate Approval [sc_ic_aprvl_defn_staging] Make the predefined approval description visible and mandatory if a predefined approval is selected.
Show "User(s)" field when Type=User Approval Type [sc_ic_aprvl_type_defn_staging] Make the User(s) field visible and mandatory if a user approval is selected.
Show "Group(s)" field when Type=Group Approval Type [sc_ic_aprvl_type_defn_staging] Make the Group(s) field visible and mandatory if a group approval is selected.
Show "Script" fields when Type=Script Approval Type [sc_ic_aprvl_type_defn_staging] Make the Script output and Approver script fields visible if a script approval is selected.
Show published information Approval Type [sc_ic_aprvl_type_defn_staging] Make the approval definition and approval definition version visible if the published definition is not empty.
Show assignment type fields Task Definition [sc_ic_task_assign_defn_staging] Make the Assignment type field visible if it is a direct assignment.
Show published assignment definition Task Definition [sc_ic_task_assign_defn_staging] Make the published assignment definition visible if the published definition is not empty.
Show custom assignment fields Task [sc_ic_task_defn_staging] Make the User(s) and Group(s) fields visible if the assignment has a user specified.
Hide Item field Task [sc_ic_task_defn_staging] Hide the Item field if the item is not empty.
Hide meta fields Question [sc_ic_question] Hide fields used by underlying logic, but not requiring user input.
Hide Mandatory Question [sc_ic_question] Hide field if type is checkbox or label.
Show default value Question [sc_ic_question] Show default values, depending on the type of variable selected.
Numeric Scale type fields Question [sc_ic_question] Show numeric scales: Maximum and Minimum if the preconfigured variable type Number is selected.
Show Choices related list when appropriate Question [sc_ic_question] Show the Choices related list if the variable type Multiple Choice or Select Box is selected.
Hide Read Only Question [sc_ic_question] Hide the Read only field if the variable type Label, Date, or Date/Time is selected.
Read only question type Question [sc_ic_question] Hide field if the variable type Read only is selected.
Hide Item field on Item Designer - Question view Question Type [sc_ic_question_type] Hide Staging item field if the item is selected.
Force preconfigured Reference type fields Question Type [sc_ic_question_type] Set the value of preconfigured field to true and read-only if the variable type reference is selected.
Show Choices related list when appropriate Question Type [sc_ic_question_type] Show Choices related list if the variable type Multiple Choice or Select Box is selected.
Preconfigured checkbox type fields Question Type [sc_ic_question_type]
Preconfigured Reference fields Question Type [sc_ic_question_type] Show reference and reference qualifier fields if the question type is preconfigured reference type.
Preconfigured Questions Question Type [sc_ic_question_type] Show question text, read only, help text, and default value fields if the preconfigured question type is selected.
Preconfigured Numeric Scale type fields Question Type [sc_ic_question_type] Show numeric scales: Maximum and Minimum if the preconfigured variable type Number is selected.
Show "Predefined Approval" field when Type=predefined_approval Approval Definition [sc_ic_aprvl_defn] Make the Predefined Approval field visible and mandatory if no type is selected.
Show "Group" field when Type=Group Approval Definition [sc_ic_aprvl_defn] Make the Group field visible and mandatory if no type is selected.
Show "User" field when Type=User Approval Definition [sc_ic_aprvl_defn] Make the User field visible and mandatory if the user type is selected.
Show "Script" fields when Type=Script Approval Type Definition [sc_ic_aprvl_type_defn] Make the Script field visible and mandatory if the script type is selected.
Show "User(s)" field when Type=User Approval Type Definition [sc_ic_aprvl_type_defn] Make User(s) field visible and mandatory if the user type is selected.
Show "Group(s)" field when Type=Group Approval Type Definition [sc_ic_aprvl_type_defn] Make Group(s) field visible and mandatory if the group type is selected.
Show assignment type fields Task Assignment Definition [sc_ic_task_assign_defn] Make the User(s) and Group(s) fields visible and hide the Script field if the direct assignment variable type is selected.
Custom task fields Task Definition [sc_ic_task_defn] Make the User(s) and Group(s) fields visible and hide the Assignment Definition field if variable type Create my own selected.

Script includes installed with catalog item designer

Note: Many of the business rules link to these script includes.
Name Description
sc_ic_Section Wrapper class for item designer question layout sections.
sc_ic_Factory Entry point for all customization of the service catalog item designer script.
sc_ic_ColumnSecurityManager Security manager for the Column table [sc_ic_column].
sc_ic_QuestionSecurityManager Security manager for the Question table [sc_ic_question].
sc_ic_CatalogItemRecordProducer Wrapper class for Record Producer table [sc_cat_item_producer] for the item creator.
sc_ic_Base Base class for all item designer wrapper classes.
sc_ic_QuestionClass Wrapper class for the Question Class table [sc_ic_question_class].
sc_ic_TaskDefnStagingSecurityManager Security manager for the Task table [sc_ic_task_defn_staging].
sc_ic_SectionSecurityManager Security manager for the Section table [sc_ic_section].
sc_ic_CategoryRequest Wrapper for the category request table.
sc_ic_ApprovalDefnStagingAJAX Helper function which can be called from client scripts.
sc_ic_QuestionChoiceSecurityManager Security manager for the Question Choice table [sc_ic_question_choice].
sc_ic_ApprovalDefnStagingSecurityManager Security manager for staged approval definitions.
sc_ic_TaskAssignDefnStaging Wrapper class for sc_ic_task_type_definition_staging.
sc_ic_TaskDefnStaging Wrapper class for staged task definitions.
sc_ic_Question Wrapper class for item designer questions. Subclass to modify and inject using sc_ic_Factory. See sc_ic_Factory for more information.
sc_ic_SectionAJAX Service dealing with sections that can be called from client scripts.
sc_ic_CatalogTask Wrapper class for Catalog Task table [sc_task] for item designer functionality.
sc_ic_CatalogItem Wrapper class for sc_cat_item for the item designer.
sc_ic_QuestionChoice Wrapper class for Question Choice table [sc_ic_question_choice].
sc_ic_CatalogItemVariable Wrapper for catalog item variables.
sc_ic_ApprovalDefnStaging Wrapper for that approval definition staging table.
sc_ic_ReqItemApprovalDefn Wrapper for requested item approval definitions.
sc_ic_Item Subclasses, injected using sc_ic_Factory. For more information, see sc_ic_Factory.
sc_ic_CatalogItemVariableChoice Wrapper class for variable choices.
sc_ic_ReqItemTaskDefn Wrapper for requested item approval definitions.
sc_ic_ItemStagingSecurityManager Security manager for the sc_ic_item_staging table.
sc_ic_BaseTypeDefnStaging Base class for all type definition staging classes
sc_ic_Column Wrapper class for item designer question layout columns.
sc_ic_ApprovalTypeDefnStaging Wrapper class for staged approval type definitions.
sc_ic_CatalogItemRecordProducerService Wrapper class for Service table [sc_cat_item_producer_service] for the item designer.
sc_ic_QuestionAJAX Service for item designer questions that can be called from the client.
sc_ic_QuestionType Wrapper class for item designer question types. Subclass to modify and inject using sc_ic_Factory. See sc_ic_Factory for more information.
sc_ic_TaskDefnStagingAJAX Service for staged task definitions that can be called from client scripts.
sc_ic_RequestedItem Item creator wrapper class for the Requested Item table [sc_req_item].
sc_ic_ApprovalTypeDefn Wrapper class for the approval type definition table.
sc_ic_TaskAssignDefn Wrapper class for task assignment definitions.
sc_ic_TaskDefn Wrapper class for task definitions.
sc_ic_SecurityManager Base security manager class for the item designer tables.
sc_ic_BaseFactory Base factory class. Make all customizations in the sc_ic_Factory class. See sc_ic_Factory for more information on how to mount customizations.
sc_ic_ApprovalDefn Wrapper for approval definitions.
sc_ic_getCategoriesForModule Class that gets categories.

Client scripts installed with catalog item designer

Script Table Description
Get next order number Approval [sc_ic_aprvl_defn_staging] Populates the Order field by adding 100 to the biggest order on an approval definition defined against the item.
Get Approval Type Description Approval [sc_ic_aprvl_defn_staging] sc_ic_aprvl_defn_design Displays or hides the approval type description on change of the predefined field value.
Reload when an image is deleted true Item [sc_ic_item_staging] Reloads the Item designer form when a Desktop or Mobile image is deleted. If it has been Published, sets the record back to state Draft.
Process Dialog action Item [sc_ic_item_staging] Prompts to make a decision about keeping the modifications to the item before completing the selected action which causes an update. Performs the prompt if the state of the item is set to Published and there are unsaved changes to the item record.
Dialog functions Item [sc_ic_item_staging] Defines available dialog functions for actions such as display, process, and refresh.
Force update of Column dropdown Question [sc_ic_question] Updates the Section choice list values on load of the Question dialog box.
Mandatory checked Question [sc_ic_question] Ensures read only is not true if the question is mandatory.
Read only checked Question [sc_ic_question] If the question is read only, ensures mandatory is not true.
Populate meta fields ["Type" changed] Question [sc_ic_question] Populates the meta field values on change of Type on the Add Question form.
Populate meta fields ["Option" changed] Question [sc_ic_question] Populates the meta field values on change of Option on the Add Question form.
Get Question Type Description Question [sc_ic_question] Displays the Question type description on change of the Option field value for the following Types: Multi-Line Text, Multiple Choice, Reference.
Update Order on Section change Question [sc_ic_question] Updates the Order value on the question record to the next question order number available for a selected Section on change.
Hide Question Type Choices related list Question Type [sc_ic_question_type] Controls the visibility of Question Type Choice related list for questions of type Select Box and Multiple Choice.
Adjust position for display Section [sc_ic_section] Adjusts the position value on a section record to determine the correct display order.
Validate and adjust Position Section [sc_ic_section] Validates that the position on a section record value is greater than 0 and displays a field message if not.
Get next position Section [sc_ic_section] Populates the position field by adding 1 to the biggest position number on a section defined against the item.
Get next order number Task [sc_ic_task_defn_staging] Populates the order field by adding 100 to the biggest order on an approval definition defined against the item.

Business rules installed with catalog item designer

Name Table When Description
Validate Category Item [sc_ic_item_staging] BEFORE Abort action if category is invalid.
Set Question for non-preconfigured types Question Type [sc_ic_question_type] BEFORE For non-preconfigured question types, set the label using the class name.
Prevent multiple non-preconfigured Question Type [sc_ic_question_type] BEFORE Abort the insert/update action and display an error message to the user if a non-preconfigured question type exists.
Set Name field Section [sc_ic_section] BEFORE Set name field to label field and add additional message detail.
Set value if nil Question Choice [sc_ic_question_choice] BEFORE Set text field to empty string when value is null.
Check for duplicate Section [sc_ic_section] BEFORE Abort the insert/update action and display an error message to the user if a section exists.
Check for Questions before deleting Section [sc_ic_section] BEFORE Prevent deletion of columns by aborting the delete action and display an error message to the user if the column contains questions.
Position must be between 0 or 1 Column [sc_ic_column] BEFORE Show message to user.
Check for Questions before deleting Column [sc_ic_column] BEFORE Show message to user.
Group/user required for user specified Task [sc_ic_task_defn_staging] BEFORE Show message to user.

The following business rules do not contain independent logic, but simply call methods in script includes, as indicated. To find out which business rules call which script includes, refer to the default class registrations within the sc_ic_BaseFactory script include.

Name Table When
sc_ic: Copy Approval Definitions Requested Item [sc_req_item] AFTER
sc_ic: Copy Task Definitions Requested Item [sc_req_item] AFTER
Approval definition changed Approval [sc_ic_aprvl_defn_staging] AFTER
Update detail field Approval [sc_ic_aprvl_defn_staging] BEFORE
Set the item to draft Approval Type [sc_ic_aprvl_type_defn_staging] BEFORE
Check and update manager/editor roles Item Designer Category Request [sc_ic_category_request] AFTER
Copy changes to real Category Item Designer Category Request [sc_ic_category_request] AFTER
Add Item Designer role on insert Item Designer Category Request [sc_ic_category_request] AFTER
Column changed Column [sc_ic_column] AFTER
Set layout changed on delete Column [sc_ic_column] AFTER
Create default Section Item [sc_ic_item_staging] AFTER
Set draft if changed Item [sc_ic_item_staging] BEFORE
Check for Valid Name Question [sc_ic_question] BEFORE
Question definition changed Question [sc_ic_question] AFTER
Question meta changed Question [sc_ic_question] AFTER
Set definition changed on delete Question [sc_ic_question] AFTER
Set Question Type and Base Type Question [sc_ic_question] BEFORE
Set question name Question [sc_ic_question] BEFORE
Question Choice changed Question Choice [sc_ic_question_choice] AFTER
Set Order number Question Choice [sc_ic_question_choice] BEFORE
Set layout changed on delete Section [sc_ic_section] AFTER
Create default Columns Section [sc_ic_section] AFTER
Section changed Section [sc_ic_section] AFTER
Set Draft Task Assignment [sc_ic_task_assign_defn_staging] BEFORE
Set assignment details Task Assignment [sc_ic_task_assign_defn_staging] BEFORE
Set assignment details Task [sc_ic_task_defn_staging] BEFORE
Set task definition changed on item Task [sc_ic_task_defn_staging] AFTER

Email notifications installed with catalog item designer

Name Table Condition Recipients
Item Designer Category Request Opened Item Designer Category Request [sc_ic_category_request] state EQUALS requested manager
Item Designer Category Rejected Item Designer Category Request [sc_ic_category_request] state CHANGES TO rejected manager
Item Designer Category Published Item Designer Category Request [sc_ic_category_request] state CHANGES TO created manager, editors