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 uma 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 é usado em vez de GlideRecordSecure , uma mensagem de recomendação de segurança é exibida. |
| Client script | Inclua JavaScript do lado do cliente que é executado no navegador, como funções chamadas por botões. O objetivo é lidar com qualquer processamento do lado do cliente necessário, como definir o foco em um campo ou outros recursos DHTML interativos depois que uma página é carregada. Os scripts de cliente para a página de IU são implantados no navegador em um <script/>Para que o conteúdo possa ser definido de forma semelhante no campo HTML. O campo Script do cliente pode ser usado para definir esses scripts de forma concisa para manter a gerenciabilidade Jelly e HTML. |
| Script de processamento | Script executado no servidor quando a página é enviada. Isso será útil se sua página tiver um formulário definido com g:ui_form/ ou > g:formulário/ > marcadores. Nota: Se GlideRecord/GlideDBQuery é usado em vez de GlideRecordSecure , uma mensagem de recomendação de segurança é exibida. |
| obsolete-custom-processors | Nota: Este recurso está obsoleto. Embora os processadores personalizados existentes e legados continuem a ser 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 controles de acesso em páginas de IU. |
| Versões | Mostra todas as versões da página de IU. Use esta lista para comparar versões ou reverter para uma versão anterior. |
Controle de acesso
Você pode proteger uma página de IU criando uma ACL com os seguintes parâmetros:
- Tipo : iu_page
- Operação : leitura
- Nome Nome da página de IU a ser protegida
- Função : Função de usuário que tem permissão para acessar o registro
Páginas de IU de alto risco
- Usos GlideRecord ou GlideDBQuery em vez de GlideRecordSecure .Nota:Aplicável a HTML e. Processando campos de script e não Cliente scripts.
- Não tem uma ACL correspondente configurada.
- Indica ser uma página de IU pública e é inserida em sys_public registro.
- Mostra uma mensagem para indicar a página de IU de alto risco.
- Para instâncias com glide.installation.developer está 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 do .do extensão do arquivo.
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 recuperar 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 Jelly:
_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>No entanto, uma exceção a ser cuidadosa é o nome de 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 na URL. Um nome de variável de substituição comum é sysparm_id.
Não use parâmetros de URL para carregar scripts de cliente em páginas de IU. O sistema não avalia mais scripts que são passados pelo parâmetro de URL. Se sua implementação depender desse comportamento, você poderá adicione a propriedade do sistema [glide.security.disable_ui_pages_sysparm_client_script] e defina como falso Para permitir temporariamente a avaliação de parâmetros de URL que passam scripts em páginas de IU.
Use controles de acesso em páginas de IU
Consulte Controles de acesso diretamente no formulário Página de IU e adicione 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 em Links relacionados.
Função necessária: security_admin e administrador
Procedimento
Páginas de IU seguras
Controles de acesso e mensagens de segurança relacionadas são integrados em páginas de IU de alto risco para aumentar a segurança.
Uma mensagem informativa é exibida nas páginas de IU de alto risco para informar o cliente a 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 é usado em vez de GlideRecordSecure em HTML ou Processando script seções
- 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 mostre 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 da Página de IU com escopo do cliente.
- Qualquer Página de IU personalizada quando glide.script.ui_page.customer_scoped.security_msgs_enableda propriedade está 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á em Global escopo.
- . glide.script.ui_page.customer_scoped.security_msgs_enabledestá 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> , você pode enviar o formulário e executar o script do processo.
O script de processamento pode acessar naturalmente os campos no formulário. Por exemplo, se o seu formulário continha application_sys_id campo:
<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 é ú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.