# Regras de Campo e Formulário - Casos de Uso O objetivo deste documento é proporcionar uma compreensão clara das [regras de campo e formulário](https://www.manageengine.com/br/service-desk/help/adminguide/configurations/helpdesk/field-form-rules.html) usando um cenário em tempo real. As seções a seguir orientam você pelo procedimento passo a passo para configurar os casos de uso, juntamente com capturas de tela relevantes. ## Lista de Casos de Uso - [Adicionar dependência entre campos PickList adicionais](#add-depend) - Aplicável a todos os tipos de usuário e executado nas operações de edição e criação de solicitação. - [Exemplo de evento Ao carregar formulário](#onformload_example_a) - [Aplicável ao solicitante e executado na operação de criação de solicitação](#case2_a) - [Aplicável ao técnico e executado na operação de edição de solicitação](#case2_b) - [Exemplo de evento Ao alterar campo](#onfieldchange_example_a) - [Aplicável a todos os usuários e executado nas operações de criação e edição](#case3_a) - [Aplicável aos técnicos e executado nas operações de criação e edição](#case3_b) - [Exemplo de evento Ao enviar formulário](#onformload_submit) - Aplicável a todos os usuários e executado na operação de edição de solicitação. ### Caso I: Adicionar dependência entre campos PickList **Cenário:** - Criar uma dependência País-Cidade-Representante de Suporte. - Quando escolhermos **País**, o campo **Cidade** deve ser preenchido automaticamente com as **cidades disponíveis desse país.** - Quando escolhermos **Cidade**, o campo **Representante de Suporte** deve ser preenchido automaticamente com o **Representante de Suporte disponível nessa cidade.** **Etapa 1:** Para tratar o caso de uso acima, primeiro precisamos incluir **campos (País, Cidade e Representante de Suporte) com valores apropriados** em **Campos Adicionais de Incidente** e depois adicionar esses campos a qualquer modelo (por exemplo, *Modelo Padrão*), como mostrado na imagem abaixo: ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_09_19%20PM(7).png) **Etapa 2:** - Crie uma nova regra no evento **"Ao carregar formulário"**. - Como a dependência está sendo criada no evento **"Ao carregar formulário"**, ela será criada somente quando o formulário for carregado. - Escolha **"Aplica-se a todos os usuários"**, para que a dependência seja aplicada a todos os usuários (**Técnico e também Solicitante**). - Escolha a execução da regra como **"Na criação/edição"**, para que a dependência seja criada tanto nas páginas de criação quanto de edição de solicitação. - As condições podem ser deixadas em branco, já que queremos que a regra seja aplicada sem nenhuma condição (pois a dependência é aplicável em todos os cenários). - Em **Ações**, selecione a ação **"Executar script"** e isso fornecerá um link como **"Escrever script personalizado"**. - Clique em **"Escrever script personalizado"** e isso abrirá um pop-up do editor de script. - Vá para **Exemplo de Dependência** em **Script de Exemplo**. Copie o código completo (você pode ignorar os comentários), cole-o na área de código do script e salve o script. ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_57_26%20PM.png) O formato do objeto de dependência é explicado na captura de tela abaixo: ![dependency screenshot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/import-gbb3jktbxt6u//configurations/helpdesk/images/dependency-screenshot.png) Aqui, a dependência deve conter um array **FIELDS** e um objeto **VALUES**, onde o array FIELDS deve conter os campos para os quais a dependência deve ser criada e onde o elemento (i) do array deve depender do elemento (i-1), e assim por diante. **Exemplo**: As opções do campo **Cidade** dependem do valor de **País** e as opções do campo **Representante de Suporte** dependem do valor do campo **Cidade**. O objeto **VALUES** deve conter os valores dos campos, como mostrado na imagem abaixo. (**OBSERVAÇÃO**: Todos os rótulos e valores dos campos diferenciam maiúsculas de minúsculas) ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_19_23%20PM(1).png) [TOPO](#) ### Caso II: Exemplo de evento Ao carregar formulário #### a) Aplicável ao solicitante e executado na criação da solicitação: **Cenário:** - Remover os status **"Resolvido"** e **"Fechado"** do campo **Status** quando o Status estiver **aberto**. - Desabilitar os campos **Subcategoria** e **Item**. - Tornar o campo **Categoria** obrigatório. **Etapas:** - Crie uma nova regra no evento **"Ao carregar formulário"** com um nome (por exemplo, *"regra personalizada para CSI e tratamento de status"*). - Defina a execução da regra como **"Na criação"**. - Defina como **"Aplica-se aos solicitantes"**. - Em **Condições**, adicione uma condição como **Status é Aberto**. - Em **Ações**, adicione uma ação como **Desabilitar Campos**: Subcategoria, **Item**. - Adicione outra ação como **Tornar Campo Obrigatório**: Categoria. - Adicione outra ação como **Executar Script** e inclua o código do script para remover as opções **"Fechado"** e **"Resolvido"** do campo **Status**. - Remova os status **"Resolvido"** e **"Fechado"** do campo Status usando **Script Personalizado**, como mostrado na imagem abaixo. ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_24_41%20PM(1).png) ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_25_21%20PM.png) #### b) Aplicável ao técnico e executado na edição da solicitação: **Cenário:** Tornar **Subcategoria** obrigatória, se a categoria for uma entre Rede, Sistema Operacional, Serviços, Software, Telefone ou Administração de Usuários. **Etapas:** - Crie uma nova regra no **evento Ao carregar formulário** (por exemplo, *tornar subcategoria obrigatória*). - Defina como **"Aplica-se a Técnicos"**. - Defina a execução da regra como **"Na edição"**. - Em **Condições**, adicione uma condição como Categoria é qualquer uma de "Rede", "Sistema Operacional", "Serviços", "Software", "Telefone" ou "Administração de Usuários". - Em **Ações**, adicione uma ação como **Tornar Campo Obrigatório**: Subcategoria. ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_34_51%20PM(1).png) [TOPO](#) ### Caso III: Exemplo de evento Ao alterar campo #### a) Aplicável a Todos os Usuários e com Criação/Edição como Operações de Execução: **Cenário:** Ao alterar o campo **Impacto**, torne o campo **Detalhes do Impacto** obrigatório. **Etapas:** - Crie uma nova regra no evento **"Ao alterar campo"** (por exemplo, *"ao alterar impacto tornar detalhes do impacto obrigatórios"*). - Selecione **"Aplicável a Todos os Usuários"**. - Selecione **"Na Criação / Edição"**. - Selecione o **Campo** como **"Impacto"**, como mostrado na imagem abaixo: - Em **Condições**, adicione uma condição como **Impacto é Alto**. - Em **Ações**, adicione uma ação como **Tornar Campo Obrigatório**: Detalhes do Impacto. - Salve a Regra. ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_37_50%20PM(1).png) #### b) Aplicável a Técnicos e com Criação/Edição como Operação de Execução: **Cenário:** Se o **Nível** selecionado for **Tier 4**, torne os campos **Prioridade** e **Impacto** obrigatórios. **Etapas:** - Crie uma nova regra no evento **"Ao alterar campo"** (por exemplo, *"Nível Tier 4"*). - Selecione **"Aplica-se a Técnicos"**. - Defina a execução da regra como **"Na Criação / Edição"**. - Selecione **Campo** como **"Nível"**. - Em **Condições**, adicione uma condição como **Nível é Tier 4**. - Em **Ações**, adicione uma ação como **Tornar os Campos Prioridade e Impacto Obrigatórios**. - Salve a Regra. ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_45_46%20PM(1).png) [TOPO](#) ### Caso IV: Exemplo de evento Ao enviar formulário **Cenário:** - Se **Prioridade** e **Impacto** forem **Altos** e o Técnico não estiver alocado/disponível, então interrompa o envio do formulário (solicitação) e torne o campo **Técnico** obrigatório. - Aplicável a todos os usuários e para a operação de edição de solicitação. **Etapas:** - Crie uma nova regra no evento **"Ao enviar formulário"** (por exemplo, *"verificar técnico para alta prioridade e alto impacto"*). - Defina como **"Aplica-se a Todos os Usuários"**. - Defina a execução da regra como **"Na Criação/Edição"**. - Em **Condições**, adicione as condições: **Prioridade é Alta**, **Impacto é Alto** e **Técnico não está especificado**. - Em **Ações**, abra o pop-up do editor de script clicando no link **"Escrever script personalizado"**. - Escreva um script para tornar o campo **Técnico** obrigatório e interromper o envio do formulário, como mostrado na imagem abaixo. - Salve o script e a regra. ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_53_33%20PM(1).png) ![Screen Shot](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%202020-04-16%20at%206_54_00%20PM(1).png)