Domain support and schedules
Summarize
Summary of Domain support and schedules
Domain separation in ServiceNow schedules allows you to logically group data, processes, and administrative tasks into distinct domains, controlling user access and visibility. This capability is activated by enabling the Domain Support [com.glide.domain] plugin and applies to schedule-related tables such asSchedule [cmnschedule],Schedule Page [cmnschedulepage], andTimeline Page [cmntimelinepage]. Child tables derive their domain from parent tables through thedomainmasterattribute, ensuring consistent domain association across related records.
Show less
Key Features
- Domain Separation at Runtime: Supports separation in user interface, cache keys, reporting, rollups, and aggregations for schedules.
- Domain Control in Schedule Tables: Parent and child schedule tables maintain domain consistency via the domainmaster attribute.
- Custom Domain Support Implementations: When upgrading, domain support for custom schedule tables like Schedule Entry [cmnschedulespan] is not automatically applied to avoid disrupting existing configurations.
- Utility Script for Migration: A background script (fixscheduledomainsupport.js) assists in migrating to the base domain support system by adding domain columns and attributes to necessary tables, while ensuring domain consistency between parent and child records.
- Domain Consistency Checks: The migration script halts and logs warnings if domain mismatches exist between child and parent records, preventing misconfiguration.
- Access Control: The script restricts read access to domain-related fields on child tables after successful migration to maintain data integrity.
Practical Implications for ServiceNow Customers
Enabling domain support for schedules allows multi-tenant environments, such as service providers managing multiple customers, to segregate schedule data securely and appropriately. This ensures that users only see schedule information relevant to their domain. Customers upgrading to releases with domain support should run the provided migration script carefully, verifying domain consistency in child-parent relationships to avoid migration interruptions.
Related Concepts and Next Steps
- Understand how domain separation interacts with holidays, parent and child schedules.
- Leverage schedule creation and management features, including defining holiday schedules and recurring schedules.
- Explore default schedules and calendar usage to fully utilize domain-separated scheduling capabilities.
Domain separation is supported in schedules. Domain separation enables you to separate data, processes, and administrative tasks into logical groupings called domains. You can control several aspects of this separation, including which users can see and access data. Activate the Domain Support [com.glide.domain] plugin to enable the domain separation functionality for schedules.
Support level: Basic
- Business logic: Ensure that data goes into the proper domain for the application’s service provider use cases.
- The application supports domain separation at run time. The domain separation includes separation from the user interface, cache keys, reporting, rollups, and aggregations.
- The owner of the instance must set up the application to function across multiple tenants.
Sample use case: When a service provider (SP) uses chat to respond to a tenant-customer’s message, the customer must be able to see the SP's response.
For more information on support levels, see Application support for domain separation.
Overview
- The child tables use the domain_master attribute to derive the domain from the parent table.
- You can find the domain_master attribute on the dictionary record for the respective table.
Custom domain support implementations
Domain separation support does not automatically occur when you migrate to a new release containing a custom implementation of domain support for tables such as Schedule Entry [cmn_schedule_span]. This action avoids changing any specific configurations that you may have in place.
- The utility attempts to add the Domain [sys_domain] column to the Schedule [cmn_schedule], Schedule Page [cmn_schedule_page], and Timeline page [cmn_timeline_page] tables.
- It then attempts to add the domain_master attribute to the Schedule Entry [cmn_schedule_span], Other Schedule [cmn_other_schedule], Timeline Sub Item [cmn_timeline_sub_item], and Timeline Page Span Style [cmn_timeline_page_style] tables.
- If the script finds existing records between a child and parent record that have differing domain, the script does not introduce the domain_master attribute to the child table.
- If the script detects records where the child Schedule Entry [cmn_schedule_span] domain differs from its parent Schedule [cmn_schedule] domain, it stops executing and logs a warning message.
- If the script does not find differing records, it deactivates and limits read access to the Domain [sys_domain] and Domain Path [sys_domain_path] columns on the Schedule Entry [cmn_schedule_span] table.
- Finally, the script adds the domain_master=schedule attribute to the dictionary file for the Schedule Entry [cmn_schedule_span] table.