Explorando o Domain Separation no ServiceNow: Como Isolar Dados e Processos Eficientemente
Você sabe o que é Domain Separation?
Basicamente, o domain separation permite que você separe dados, processos e tarefas administrativas em grupos lógicos chamados domínios. Isso é útil quando você precisa: Segregar dados de forma absoluta entre entidades de negócios. Controlar diferentes aspectos dessa separação de maneiras variadas.
Em resumo, o domain separation é uma funcionalidade que permite criar ambientes isolados dentro de uma única instância do ServiceNow, garantindo a separação adequada entre diferentes áreas ou unidades organizacionais3. Espero que isso ajude! 😊
Vamos fazer uma analogia algo comum a maioria de nós, um condomínio:
Imagine que o ServiceNow é como um grande terreno com várias casas construídas nele. Cada casa representa uma empresa, departamento ou unidade de negócios. Agora, vamos comparar isso com um condomínio:
- Terreno Compartilhado:
- O terreno é compartilhado por todas as casas, assim como a instância do ServiceNow é compartilhada por todas as entidades.
- No ServiceNow, todos os dados e processos estão inicialmente no mesmo ambiente.
2.Casas Separadas:
- Cada casa no condomínio é uma entidade separada, com sua própria entrada, quartos e espaços privados.
- Da mesma forma, no ServiceNow, você pode criar domínios separados para diferentes entidades (como departamentos ou clientes).
3. Muros e Portões:
- No condomínio, há muros e portões que separam cada casa.
- No ServiceNow, o domain separation cria “muros virtuais” entre os dados e processos de diferentes domínios.
Acesso Controlado:
- Os moradores do condomínio têm acesso apenas à sua própria casa e áreas comuns.
- No ServiceNow, os usuários de um domínio só podem acessar os dados e processos desse domínio.
Administração Independente:
- Cada casa tem seu próprio síndico ou administração.
- No ServiceNow, cada domínio pode ter seus próprios administradores e configurações específicas.
- To apply update sets, Administrators who promote configuration must have a home domain set to global
- =>Para aplicar conjuntos de atualização, os administradores que promovem a configuração devem ter um domínio inicial definido como global
- Other administrators may want to reside in a domain at least temporarily, to discourage building configuration in the wrong domain
- =>Outros administradores podem querer residir em um domínio pelo menos temporariamente, para desencorajar a criação de configuração no domínio errado
- All administrators can impact global configuration or change their own domain
- =>Todos os administradores podem impactar a configuração global ou alterar seu próprio domínio
- To preserve the integrity of Production instances, it is acceptable to limit admin access on Production to just release managers and key senior administrators.
- =>Para preservar a integridade das instâncias de produção, é aceitável limitar o acesso administrativo na produção apenas aos gerentes de lançamento e aos principais administradores seniores.
- In such cases, though, remember to adjust security for other developers on sub-production instances after cloning from Production
- =>Nesses casos, porém, lembre-se de ajustar a segurança para outros desenvolvedores em instâncias de subprodução após a clonagem da Produção
- Plan to have administrators specializing in data management and data integrity, rather than having all focus on development
- =>Planeje ter administradores especializados em gerenciamento e integridade de dados, em vez de focarem todos no desenvolvimento
Por fim, para balisar o conhecimento de todos, o domain separation se baseia em um conceito denominado no mercado e conhecido como Tenant, em português Inquilino. Em computação e engenharia de software, um tenant é uma partição lógica de um aplicativo que permite que vários clientes, organizações ou usuários compartilhem a mesma infraestrutura. Cada tenant tem acesso separado e isolado aos dados, configurações e outros recursos, como se estivesse executando sua própria instância do aplicativo
Ok, se chegou até aqui quer saber mais que só do que se trata mas também como trabalhar, então vamos do inicio, como cadastrar um novo domain na documentação oficial Create a domain, também disponível em:
* Criação de um domínio (português)
- Créer un domaine (Français)
- Erstellen Sie eine Domäne (Deutsch)
Procedimento
- Navegue até Todos os > Domínios do Administrador > de Domínio.
2. Clique em Novo.
3. Preencha os campos necessários (consultar tabela).
4. Clique em Enviar
Capacidades
- Propriedades/properties
- Processos/process — Workflows/Flows — específicos
- Dados Seguros / Data[EN] (cada domain tem o seu) — Empresas globais comglomerados podem trabalhar em toda sua extensão.
Mas o que especificamente é separado?
Como os domínios podem coexistir? How do these multiples domains coexist in a ServiceNow Instance? (Domain Hierarchy)
Imagem do site Developing Domain-Separated Applications.
Quais processos podem ser segregados? What processes can you separate?
System policy functions such as Assignment Rules, Approval Rules, SLA Management, Inactivity Monitors, Email Notifications, Business Rules, Client Scripts, UI Policies and UI Actions can be defined globally or specifically for a particular domain. Since the platform is expanding and new applications are being added, this is just a partial, growing list.
Forms, Lists, Related Lists, and Choice Lists can also be domain-specific. For example, if a particular domain requires different fields on a form, no problem! If a customer wants a different set of choices in a choice list, the list can be customized for their domain.
Service providers can even customize the branding and user interface elements for a domain.
Funções de política do sistema, como regras de atribuição (Assignment Rules), regras de aprovação (Approval Rules), gerenciamento de SLA/ANS, monitores de inatividade-Inactivity Monitors, notificações por e-mail-Email Notifications, regras de negócios- Business Rules, scripts de cliente-Client Scripts, políticas de UI-UI Policies e ações de UI-UI Actions podem ser definidas globalmente ou especificamente para um domínio específico. Como a plataforma está se expandindo e novos aplicativos estão sendo adicionados, esta é apenas uma lista parcial e crescente.
Formulários-Forms, listas-Lists, listas relacionadas-Related Lists e listas de opções-Choice Lists também podem ser específicos do domínio. Por exemplo, se um determinado domínio exigir campos diferentes em um formulário, não há problema! Se um cliente desejar um conjunto diferente de opções em uma lista de opções, a lista poderá ser personalizada para seu domínio.
Os provedores de serviços podem até personalizar a marca e os elementos da interface do usuário de um domínio.
KB0716268 — Domain Separation — Advanced Concepts and Configurations
Domain Separation — System Properties
- glide sys.domain.use_record_domain_for_processes (true/false) — controls the domain used when selecting processes. When this property is enabled, system will use the record’s domain for choosing which processes to run on any form. For lists, system will use the user’s session domain for picking the processes.
- controla o domínio usado ao selecionar processos. Quando esta propriedade estiver habilitada, o sistema utilizará o domínio do registro para escolher quais processos serão executados em qualquer formulário. Para listas, o sistema utilizará o domínio de sessão do usuário para escolher os processos.
- glide.sys.domain.use_record_domain_for_data (true/false) — controls the domain used when selecting data. When this property is enabled, system uses the record’s domain for restricting the data visibility within a form. Users with appropriate role will see Toggle Domain Scope UI Action to toggle domain scope between record’s domain and user’s session domain.
- controla o domínio usado ao selecionar dados. Quando esta propriedade está habilitada, o sistema utiliza o domínio do registro para restringir a visibilidade dos dados dentro de um formulário. Os usuários com a função apropriada verão Alternar ação da interface do usuário do escopo do domínio para alternar o escopo do domínio entre o domínio do registro e o domínio da sessão do usuário.
- glide.ui.polaris.domain_picker.role his is specified as a comma-separated list of roles. The domain picker is typically restricted to internal Service Provider roles for process users or fulfillers, such as admin and itil.
- isso é especificado como uma lista de funções separadas por vírgula. O seletor de domínio normalmente é restrito a funções internas de Provedor de Serviços para usuários de processos ou preenchedores, como admin e itil.
- csm_auto_account_domain_generation —
Company Reference Fields
Company reference fields on a table are generally what drives data separation. A company maps to a single domain and any new records linked to that company are placed in that company’s domain. For this reason, it is important to understand how company reference fields are set, and ensure they are set correctly.
Campos de referência da empresa
Os campos de referência da empresa em uma tabela geralmente são o que impulsiona a separação de dados. Uma empresa é mapeada para um único domínio e quaisquer novos registros vinculados a essa empresa são colocados no domínio dessa empresa. Por esse motivo, é importante entender como os campos de referência da empresa são definidos e garantir que sejam definidos corretamente.
Producer Users
- Process users may exist at several levels in the domain hierarchy, and they work to move cases and tasks to completion.
- =>Os usuários do processo podem existir em vários níveis na hierarquia do domínio e trabalham para levar casos e tarefas até a conclusão.
- Domain Power Users refers to a subset of customer/subsidiary users in each domain who may be granted elevated privileges in the instance to manage Foundation Data within a domain, set process parameters, and manage reporting.
- =>Usuários avançados do domínio referem-se a um subconjunto de usuários clientes/subsidiários em cada domínio que podem receber privilégios elevados na instância para gerenciar dados básicos em um domínio, definir parâmetros de processo e gerenciar relatórios.
Update Sets
- Update Sets are global
- Update Set record can only be committed when the domain setting is global
- Updates are applied to domains in the target instance as long as the domain exists using the same domain sys_id
Tables / Tabelas / Tablas
- Domain
- domain_contains
- sys_user_visibility
- sys_user_group_visibility
System policy functions can be domain-specific / As funções de política do sistema podem ser específicas do domínio::
- Assignment rules
- Approval rules
- SLA management
- Inactivity monitors
- Email notifications
- Business rules
- Client scripts
- Ul policies
- Ul actions
Forms and lists can also be domain-specific / Formulários e listas também podem ser específicos do domínio::
- Forms
- Lists
- Related Lists
- Choice Lists
Launch and scale citizen development on the Now Platform.
Abra o Studio
Busque pela desenvolvedor/pessoa
Em seguida atribua as permissões necessárias
Roles associadas ao desenvolvimento
1. **Personal Developer Role (personal_developer)**
— Inclui permissões básicas para desenvolvimento.
2. **Script Includes (script_includes)**
— Permite criar e modificar Script Includes.
3. **Business Rules (business_rules)**
— Permite criar e modificar regras de negócios.
4. **Client Scripts (client_scripts)**
— Permite criar e modificar scripts do lado do cliente.
5. **UI Actions (ui_action)**
— Permite criar e modificar ações de interface do usuário.
6. **UI Pages (ui_page)**
— Permite criar e modificar páginas de interface do usuário.
7. **UI Scripts (ui_script)**
— Permite criar e modificar scripts de interface do usuário.
8. **System Definition (sys_definition)**
— Permite criar e modificar tabelas e dicionários de dados.
9. **ACLs (security_admin)**
— Necessário para criar e modificar regras de controle de acesso (ACLs). Pode ser considerada sensível, então é importante gerenciá-la com cuidado.
10. **Catalog Item Designer (catalog_item_designer)**
— Permite criar e modificar itens de catálogo.
11. **Service Portal Designer (sp_designer)**
— Permite criar e modificar widgets e páginas do Service Portal.
12. **Application Developer (app_dev)**
— Permite desenvolver aplicações customizadas.
13. **Integration Roles (import_transformer, rest_service, soap_service)**
— Permite trabalhar com integrações, importações e transformações de dados.
14. **Workflow Editor (workflow_creator)**
— Permite criar e modificar workflows.
15. **Service Catalog (catalog_admin)**
— Permite criar e modificar itens de catálogo, variáveis e regras.
16. **Mobile Studio (mobile_app_builder)**
— Permite criar e modificar aplicativos móveis no Mobile Studio.
### Funções adicionais conforme necessidade:
— **Reports (report_admin)**
— Permite criar e modificar relatórios.
- **Form Designer (form_admin)**
— Permite modificar layouts de formulários.
- **Service Portal (service_portal_admin)**
— Permite desenvolver e configurar o Service Portal.
Videos sobre o assunto
Understanding Domain Separation in ServiceNow | GlideFast On Air
Batch2 :: Day 45 || Domain Separation — Part 1 || ServiceNow Functional Training || Quebec
Batch2 :: Day 46 || Domain Separation — Part 2 || ServiceNow Functional Training || Quebec
Domain Separation playlist
NowLearning
Domain Separation Implementation
Developing Domain-Separated Applications
Introduction to App Engine Studio for Citizen Developers
ServiceNow Citizen Developer Advanced Skills
Certified Implementation Specialist (CIS) — Service Provider
KBs
KB0822648 How to set the domain of the user on login in domain picker using gs.getUser().setDomainID
KB0715934 Understanding Domain Separation — Basics
KB0716268 Domain Separation — Advanced Concepts and Configurations
Contribuição/Coautoria: Gilberto Lopes