Decision Tables
Summarize
Summary of Decision Tables
Decision tables in ServiceNow allow you to separate decision-making logic from your code by creating and managing decision rules in a structured, readable format. This approach simplifies complex decisions that depend on multiple factors, such as determining car insurance coverage based on location, age, accident history, and vehicle details. While decision tables provide a centralized location for creating, viewing, and modifying decisions, it is recommended to use Workflow Studio for creating decision tables, as it offers an integrated workflow authoring, configuration, and monitoring experience.
Show less
Key Features
- Decision Table Records [sysdecision]: Define the decision context, specify the target table for answers, and manage related decision inputs and decisions.
- Decision Inputs [sysdecisioninput]: Represent the variables or factors influencing decisions. Inputs support various data types (strings, references, booleans, dates) and can have default values.
- Decisions [sysdecisionquestion]: Define conditions based on decision inputs using a condition builder. Each decision links to an answer record reflecting the decision outcome.
- Answer Records [sysdecisionmultiresultelement]: Represent the possible outcomes or results of decisions. Answers can be any record from the selected table, such as choice records or custom tables representing coverage levels.
- Script Interaction: Use the DecisionTableAPI (both scoped and global) to interact programmatically with decision tables within scripts.
Usage in Classic Environment
In the classic ServiceNow environment, decision tables operate by associating answer records to each decision based on inputs. When input conditions are met, the corresponding answer record is returned as the decision outcome.
Practical Benefits for ServiceNow Customers
- Enable flexible, maintainable decision-making logic without embedding complex conditions in scripts.
- Improve clarity and manageability of business rules that depend on multiple factors.
- Centralize decision logic for easier updates and governance.
- Facilitate integration with workflows through Workflow Studio for streamlined authoring and monitoring.
Use decision tables to decouple decision logic from your code by creating and maintaining decision rules.
Use decisions tables to help you reach outcomes that depend on multiple factors. In these tables, each factor is a decision input. For example, if you are trying to make a decision about car insurance coverage, your inputs might include the location where the insured person lives, the age and accident history of the insured person, the car make, the car model, and the car year. This logic can save time and present a more organized, readable format than using a script. Decision tables provide a single point where you can create, view, and modify decisions.
To interact with Decision Tables in script, use the DecisionTableAPI - Scoped, Global.
Components of a decision
- Decision Table [sys_decision] records
- Decision table records represent a single decision. In this record, you specify which table you want to use for your answers. This record also contains related lists where you can create your decision inputs and decisions.
- Decision inputs [sys_decision_input] records
- Decision input records represent your inputs that are used to obtain answers in a decision. These inputs can include a variety of types, including strings, references, true/false inputs, and dates. Each decision input has a specified input type and can be assigned a default value.
- Decision [sys_decision_question] records
- Each decision record represents a decision that is based on your inputs. Use the condition builder on the decision record form to create a condition that is based on the inputs for this decision. Then, you can select an answer record for this decision. The answer record can be any record from the table that you have defined in the Decision Table record. You can select the same answer record for more than one decision.
- Answer [sys_decision_multi_result_element] records
- Answer records represent answers that are reached using different decision input values. Answers records can be records on any table, but you need to choose the table when creating your Decision Table record. You could, for example, use the sys_choice table to use existing choice records. From the example about insurance coverage, you could create a table where each record contains details about the levels of insurance coverage.