Decision Tables

  • Release version: Xanadu
  • Updated August 1, 2024
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Decision Tables

    Decision tables allow you to separate decision logic from code, enabling you to create and maintain decision rules effectively. It is recommended to use Workflow Studio for this purpose, as it provides a unified interface for workflow authoring, configuration, and monitoring.

    Show full answer Show less

    Key Features

    • Decision Inputs: Inputs can be various types, such as strings, references, true/false, and dates, with each having a specified type and optional default value.
    • Decision Records: Each decision record is created based on the inputs, utilizing a condition builder to determine outcomes.
    • Answer Records: These represent outcomes derived from different decision input values and can be linked to any relevant table, such as syschoice for existing choices.
    • Decision Table Components: Key components include Decision Table records, Decision Input records, Decision Question records, and Answer records, all facilitating organized decision-making.

    Key Outcomes

    By utilizing decision tables, you can streamline decision-making processes, improve readability, and save time. The integration of customizable inputs and outcomes allows for a more flexible and maintainable approach to handling complex decisions in your ServiceNow environment.

    Use decision tables to decouple decision logic from your code by creating and maintaining decision rules.

    Important:
    Try creating decision tables in Workflow Studio instead. Workflow Studio integrates workflow authoring, configuring, and monitoring into a single page experience. For more information, see Create decision tables in Workflow Studio.

    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.