{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":40023,"path":"platform-administration/time-configuration/domain-support-for-schedules.md","title":"Domain support and schedules","bundle":null,"doc_type":null,"release":"australia","body":"\n# Domain support and schedules\n\nDomain 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.\n\n## Support level: Basic\n\n\n\n-   Business logic: Ensure that data goes into the proper domain for the application’s service provider use cases.\n-   The application supports domain separation at run time. The domain separation includes separation from the user interface, cache keys, reporting, rollups, and aggregations.\n-   The owner of the instance must set up the application to function across multiple tenants.\n\nSample 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.\n\nFor more information on support levels, see [Application support for domain separation](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-security/domain-separated-apps.md).\n\n## Overview\n\nThe records in the Schedule \\[cmn\\_schedule\\], Schedule Page \\[cmn\\_schedule\\_page\\], and Timeline Page \\[cmn\\_timeline\\_page\\] tables have a defined domain.\n\n-   The child tables use the **domain\\_master** attribute to derive the domain from the parent table.\n-   You can find the **domain\\_master** attribute on the dictionary record for the respective table.\n\nThe following diagram illustrates the scope of domain separation in different schedule tables:\n\n\\[Omitted image \"domain-support-for-schedules-3.png\"\\] Alt text: domain support for schedules\n\n## Custom domain support implementations\n\nDomain 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.\n\nTo implement the base system domain support for schedules, a sys.script utility is provided. To run this utility, navigate to **Background** &gt; **Scripts – Background**. The script is listed under the com.glide.schedules plugin as `fix_schedule_domain_support.js`.\n\n-   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.\n-   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.\n-   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.\n\nFor example, consider the relationship of the Schedule \\[cmn\\_schedule\\] \\(parent\\) and Schedule Entry \\[cmn\\_schedule\\_span\\] \\(child\\) tables. If the **Domain** \\[sys\\_domain\\] column is available on both tables in the upgrading instance, the utility must migrate to the base system implementation of domain support for schedules.\n\n-   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.\n-   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.\n-   Finally, the script adds the domain\\_master=schedule attribute to the dictionary file for the Schedule Entry \\[cmn\\_schedule\\_span\\] table.\n\n**Note:** The **domain\\_master** attribute ensures that the child and parent record domains remain the same as the domain for the child that is derived from the specified reference field.\n\n**Parent Topic:**[Schedules](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/platform-administration/time-configuration/c_UseSchedules.md)\n\n**Related topics**  \n\n\n[Default schedules]()\n\n[Holidays]()\n\n[Create a holiday schedule for multiple regions]()\n\n[Parent and child schedules]()\n\n[Define a schedule]()\n\n[Schedule for the fifth instance of a week date]()\n\n[Repeat a monthly schedule]()\n\n[Using schedules and calendars]()\n\n"}}