Páginas de IU
As páginas de IU podem ser usadas para criar e exibir formulários, caixas de diálogo, listas e outros componentes de IU.
Use páginas de IU como widgets em painéis. Para encontrar as páginas de IU, navegue até .
Esta funcionalidade requer conhecimento de HTML ou Jelly. Você também pode criar aplicações AngularJS simples usando páginas de IU.
| Campo | Descrição |
|---|---|
| Nome | Nome usado para invocar a página por meio de um URL (não deve conter espaços). |
| Aplicação | Exibe o escopo da aplicação atual. |
| Descrição | A descrição da página de IU e para que ela é usada. |
| Direto | Marque esta caixa de seleção para uma página de IU direta [sys_ui_page]. Uma página de IU direta não inclui HTML, CSS e scripts comuns. Esta configuração requer a adição de CSS e JavaScript personalizados para usar na página. |
| HTML | Componente principal da página em que você define o que é renderizado quando a página é mostrada. Ele pode conter XHTML estático, conteúdo gerado dinamicamente definido como Jelly ou inclusões de script de chamada e macros de IU. Nota: Se GlideRecord/GlideDBQuery for usado em vez de GlideRecordSecure, uma mensagem de recomendação de segurança será exibida. |
| Client script | Incluir JavaScript do lado do cliente que é executado no navegador, como funções chamadas por botões. Ele deve lidar com qualquer processamento do lado do cliente necessário, como definir o foco para um campo ou outros recursos DHTML interativos depois que uma página é carregada. Os Client scripts para a página de IU são implantados no navegador em um marcador <script/>, para que o conteúdo possa ser definido de forma semelhante no campo HTML. O campo Script de cliente pode ser usado para definir esses scripts de forma concisa para manter a gerenciabilidade do Jelly e do HTML. |
| Script de processamento | Script que é executado no servidor quando a página é enviada. Isso será útil se sua página tiver um formulário definido com os marcadores <g:ui_form/> ou <g:form/>. Nota: Se GlideRecord/GlideDBQuery for usado em vez de GlideRecordSecure, uma mensagem de recomendação de segurança será exibida. |
| obsoletos-personalizados-processadores | Nota: Este recurso está obsoleto. Embora os processadores personalizados legados existentes continuem sendo compatíveis, a criação de novos processadores personalizados foi descontinuada. Em vez disso, use o Scripted REST APIs. |
| Listas relacionadas na exibição de formulário: | |
| Controles de acesso | Exibir e configurar controles de acesso para a página de IU. Para obter mais informações, consulte Use access controls on UI pages. |
| Versões | Mostra todas as versões da página de IU. Use esta lista para comparar versões ou para reverter para uma versão anterior. |
Controle de acesso
Uma página de IU pode ser protegida criando uma ACL com os seguintes parâmetros:
- Tipo: ui_page
- Operação: ler
- Nome: nome da página de IU a ser protegida
- Função: função do usuário que tem permissão para acessar o registro
Páginas de IU de alto risco
- Usa GlideRecord ou GlideDBQuery em vez de GlideRecordSecure.Nota:Isso se aplica a campos HTML e de script de processamento, e não a scripts de cliente.
- Não tem uma ACL correspondente configurada.
- Indica ser uma Página de IU pública e é inserida no registro sys_public.
- Mostra uma mensagem para indicar a página de IU de alto risco.
- Para instâncias com glide.installation.developer definido como verdadeiro.
- Se o recurso for conteúdo personalizado para uma instância do cliente.
Acesso à página de IU
Cada página de IU tem um URL calculado a partir do escopo da aplicação, do nome da página e da extensão do arquivo .do.
Por exemplo, para exibir a página chamada glidewindow_example no sistema de demonstração, navegue até https://<instance name> .service-now.com/glidewindow_example.do . Se a página fizer parte de uma aplicação personalizada chamada example_app, navegue até https://<instance name> .service-now.com/x_example_app_glidewindow_example.do .
<j2:if test="$[!empty(sysparm_verbose)]"> <span>show extra stuff </span> </j2:if >Um exemplo prático comum disso pode ser a recuperação de um registro de banco de dados para exibição. Para criar uma lista das funções de um usuário, passe um parâmetro com o sys_id do usuário. Invoque a seguinte página de IU para exibir uma lista de funções para esse usuário com o código do Jelly:
role_select.do?sysparm_user=5137153cc611227c000bbd1bd8cd2007 <j:set var = "jvar_user_id" value = "${sysparm_user}" />
<g:evaluate> var userRoles = new GlideRecord('sys_user_has_role');
userRoles.addQuery('user','${jvar_user_id}');
userRoles.query();
</g:evaluate>
<select id='select_role'>
<j:while test = "${userRoles.next()}">
<option value = "${userRoles.sys_id}"> ${userRoles.role.name} </option>
</j:while>
</select>Uma exceção a ter cuidado, porém, é o nome da variável reservada sys_id. Esta variável sempre contém o ID da própria página de IU, independentemente do que está especificado no URL. Um nome de variável substituto comum é sysparm_id.
Não use parâmetros de URL para carregar Client scripts em páginas de IU. O sistema não avalia mais os scripts que são passados pelo parâmetro de URL. Se sua implementação depende desse comportamento, você pode adicionar a propriedade do sistema [glide.security.disable_ui_pages_sysparm_client_script] e defini-la como falsa para permitir temporariamente a avaliação de parâmetros de URL que passam scripts em páginas de IU.
Usar controles de acesso em páginas de IU
Consulte os controles de acesso diretamente do formulário da Página de IU e adicione o controle de acesso baseado em função ao criar ou editar um registro de Página de IU.
Antes de Iniciar
Os controles de acesso que foram adicionados a uma página de IU existente podem ser acessados e editados abrindo o registro da página de IU nos links relacionados.
Função necessária: security_admin e administrador
Procedimento
Páginas de IU seguras
Os controles de acesso e as mensagens de segurança relacionadas são integrados em Páginas de IU de alto risco para maior segurança.
Uma mensagem informativa é exibida em páginas de IU de alto risco para informar o cliente para adicionar um controle de acesso baseado em função à página de IU.
- Se uma ACL (lista de controle de acesso) estiver ausente
- Se GlideRecord/GlideDBQuery for usado em vez de GlideRecordSecure nas seções HTML ou de script
- Se a página de IU estiver configurada como pública em sys_public Nota:Páginas de IU públicas que são públicas ou que usam GlideRecord não mostram um aviso de ACL ausente.
Condições que exibem a mensagem de recomendações de segurança
A mensagem é exibida nas seguintes condições:
- Todas as instâncias internas do eclipse/IJ em que glide.installation.developer=verdadeiro.
- Todos os recursos de Página de IU com escopo do cliente.
- Qualquer Página de IU personalizada quando a propriedade glide.script.ui_page.customer_scoped.security_msgs_enabled estiver definida como verdadeiro. (O valor padrão é verdadeiro).
Condições que não exibem a mensagem de recomendações de segurança
A mensagem não será exibida nas seguintes condições:
- A Página de IU é pública.
- A Página de IU está no escopo Global.
- O glide.script.ui_page.customer_scoped.security_msgs_enabled está definido como falso.
Scripts de processo de página de IU
Se sua página de IU contiver um formulário (usa o<g:form> tag), você pode enviar o formulário e fazer com que o script do processo seja executado.
O script de processamento pode acessar naturalmente os campos no formulário. Por exemplo, se o formulário contiver o campo application_sys_id :
<g:ui_form>
<p>Click OK to run the processing script.</p>
<g:dialog_buttons_ok_cancel ok="return true" />
<input type="hidden" name="application_sys_id" value="499836460a0a0b1700003e7ad950b5da" />
</g:ui_form>
var application = new GlideRecord('hr_application');
application.get(application_sys_id);
application.status = "Rejected";
application.update();
var urlOnStack = GlideSession.get().getStack().bottom();
response.sendRedirect(urlOnStack);Se você estiver usando a página de IU para uma caixa de diálogo, também poderá fazer referência ao URL mais recente na pilha usando o código acima e enviar a resposta para esse local. Isso será útil se você quiser que o script de processamento da caixa de diálogo atualize algo e exiba novamente a tela que abriu a caixa de diálogo.