PolarisUI - com escopo

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • A API PolarisUI fornece métodos para habilitar Next Experience em páginas de IU diretas.

    Uma página de IU [sys_ui_page] será direta se o campo Direto estiver selecionado. Uma página de IU direta não inclui o modelo de página HTML comum e deve incluir todos os CSS e JavaScript que você deseja usar na página.

    Todas as páginas de IU não diretas usam Next Experience por padrão.

    Para obter mais informações sobre Next Experience, consulte a IU do Next Experience.

    A API PolarisUI é fornecida no namespace sn_ui.

    PolarisUI – canUsePolarisCSS()

    Verifica se a página atual pode usar a IU Next Experience.

    Este método retorna verdadeiro se todas as condições a seguir forem atendidas.
    • sn_ui.PolarisUI.isEnabled() é verdadeiro.
    • O parâmetro de URL da solicitação sysparm_use_polaris não está definido como falso.
    • O cabeçalho da solicitação HTTP do referenciador não contém sysparm_use_polaris=false.
    • O uso de Next Experience não é negado à página ou ao plug-in primário por um registro na tabela Suporte ao tema da página [sys_page_theme].

    Use este método para mudar condicionalmente o comportamento ou a saída Jelly se Next Experience estiver habilitado.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a página atual pode usar a IU Next Experience.

    Valores válidos:
    • verdadeiro: a página atual pode usar a IU Next Experience.
    • falso: a página atual não pode usar a IU Next Experience.

    Esta Ação de IU redireciona para uma página diferente se Next Experience estiver sendo executado no formulário atual.

    var id = current.getUniqueValue();
    if (sn_ui.PolarisUI.canUsePolarisCSS())
    	action.setRedirectUrl("/now/custom/application/record/" + id);
    return "/record.do?sys_id=" + id;
    

    Este script Jelly define uma folha de estilos diferente para páginas usando Next Experience.

    <g:evaluate var="jvar_css_path">
    	// Core UI content css record
    	var id = "5e8fde63d713310074304187ed61030d";
    
    	if (sn_ui.PolarisUI.canUsePolarisCSS())
    		id = "84f03cc87120a00cfab6dd207cb0b72";
    	
    	"/" + id + ".cssdbx";
    </g:evaluate>
    <link href="${jvar_css_path}" rel="stylesheet" type="text/css" />
    

    PolarisUI - getBodyClassNames()

    Retorna uma lista de nomes de classe CSS usados pela IU Next Experience.

    Use este método no marcador HTML <body> de uma página de IU para definir as classes CSS necessárias para que Next Experience seja renderizado corretamente.
    <body class="$[sn_ui.PolarisUI.getBodyClassNames()]">

    Os nomes de classe retornados mudam dependendo das propriedades do sistema e se houver saída de depuração da sessão.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Cadeia de caracteres Lista de nomes de classe CSS usados pela IU Next Experience.

    Este script Jelly adiciona Next Experience a uma página de IU personalizada.

    <?xml version="1.0" encoding="utf-8" ?>
    <j:jelly trim="true" xmlns:j="jelly:core" xmlns:g="glide" xmlns:g2="null">
        <g2:doctype name="html" />
        <g:inline template="dir_checker.xml"/>
        <html class="${jvar_text_direction}" lang="$[gs.getSession().getLanguage()]">
            <head>
                <g:inline template="set_theme_vars.xml" /> <!-- sets jvar_theme and jvar_css_cache_key -->
                <g:requires name="styles/css_includes_my_app.css" includes="true" params="$[jvar_css_cache_key]" /> 
                <g:if_polaris>
    	<g:then><g:inline template="polarisberg_output.xml"/></g:when>
    	<g:else><g:inline template="heisenberg_output.xml" type="css"/></g:else>
                 </g:if_polaris>
            </head>
            <body class="$[sn_ui.PolarisUI.getBodyClassNames()]">
                Your UI page content here
            </body>
        </html>
    </j:jelly>

    PolarisUI - isEnabled()

    Verifica se a IU Next Experience está habilitada para o usuário atual.

    Este método verifica se a propriedade do sistema [ glide.ui.polaris.experience e a preferência do usuário glide.ui.polaris.use estão definidas como verdadeiras.
    • glide.ui.polaris.experience habilita Next Experience na instância.
    • glide.ui.polaris.use desabilita Next Experience para usuários especificados quando definido como falso.
    Para obter mais informações sobre Next Experience propriedades do sistema e preferências do usuário, consulte Propriedades do sistema Next Experience.
    Nota:
    Este método retorna verdadeiro mesmo se Next Experience estiver desabilitado para a página atual. Este método é útil para habilitar condicionalmente experiências inteiras ou redirecionar para páginas diferentes quando Next Experience estiver habilitado globalmente.
    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se a IU Next Experience está habilitada para o usuário atual.

    Valores válidos:
    • verdadeiro: a IU Next Experience está habilitada para o usuário atual.
    • falso: a IU Next Experience não está habilitada para o usuário atual.

    Esta página de IU exibirá uma mensagem condicional para o usuário se Next Experience estiver habilitado para o usuário atual.

    <j:if test="${sn_ui.PolarisUI.isEnabled()}">
    	<a href="...">Click here to learn more about the new UI changes</a>
    </j:if>

    Esta regra de negócios mostra uma mensagem de informação na exibição do registro em que um usuário pode clicar para exibir o registro em IU principal em vez de Next Experience. O campo Condição da regra de negócio é definido como !current.isNewRecord() && sn_ui.PolarisUI.isEnabled() && sn_ui.PolarisUI.canUsePolarisCSS().

    // business rule script field
    
    (function executeRule(current, previous /*null when async*/) {
    
    	var sysId = current.getUniqueValue();
    	gs.addInfoMessage("<a href='/incident.do?sys_id="+ sysId +"&sysparm_use_polaris=false'>Click here to load this page in Core UI</a>");
    
    })(current, previous);