---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# PolarisUI - スコープ指定

# PolarisUI - スコープ指定 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：7分

PolarisUI API には、直接 UI ページでネクストエクスペリエンスを有効にするためのメソッドが用意されています。

\[直接\] フィールドが \[選択済み\] の場合、UI ページ \[sys_ui_page\] は直接です。直接 UI ページには共通の HTML ページテンプレートが含まれていないため、ページで使用するすべての CSS と JavaScript を含める必要があります。

直接でない UI ページはすべて、デフォルトで ネクストエクスペリエンス を使用します。

ネクストエクスペリエンスの詳細については、「[Next Experience UI」](https://www.servicenow.com/docs/access?context=next-experience-landing-page&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)を参照してください。

PolarisUI API は、`sn_ui` 名前空間内で提供されます。

## PolarisUI - canUsePolarisCSS() {#ariaid-title2}

現在のページが ネクストエクスペリエンス UI を使用できるかどうかを確認します。
このメソッドは、次のすべての条件が満たされた場合に `true` を返します。

* sn_ui.PolarisUI.isEnabled() が `true`である。
* 要求 URL のパラメーター sysparm_use_polaris が `false`に設定されていない。
* 参照元の HTTP 要求ヘッダーに `sysparm_use_ Polaris=false` が含まれていない。
* ページまたはその親のプラグインが、ページテーマのサポート \[sys_page_theme\] テーブルのレコードによって ネクストエクスペリエンス の使用を拒否されていない。
{#PolarisUI-canUsePolarisCSS__ul_acr_xnb_vrb}

ネクストエクスペリエンスが有効になっている場合は、このメソッドを使用して、条件付きで動作または [Jelly](https://www.servicenow.com/docs/access?context=r_JellyTags&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US) 出力を変更します。
{#PolarisUI-canUsePolarisCSS__table_vzz_nkq_prb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 1. パラメーター]

{#PolarisUI-canUsePolarisCSS__table_vzz_nkq_prb} {#PolarisUI-canUsePolarisCSS__table_wzz_nkq_prb__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 現在のページで ネクストエクスペリエンス UI を使用できるかどうかを示すフラグ。 有効な値： * true：現在のページが ネクストエクスペリエンス UI を使用できる。 * false：現在のページが ネクストエクスペリエンス UI を使用できない。 {#PolarisUI-canUsePolarisCSS__ul_pgy_hv2_5rb} |
[表 : 2. 返される内容]

{#PolarisUI-canUsePolarisCSS__table_wzz_nkq_prb}  
ネクストエクスペリエンス が現在のフォームで実行されている場合、この UI アクションは別のページにリダイレクトされます。

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

この jelly スクリプトは、ネクストエクスペリエンス を使用して別のスタイルシートをページに設定します。

    <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() {#ariaid-title3}

ネクストエクスペリエンス UI で使用される CSS クラス名のリストを返します。
UI ページの HTML `<body>` タグでこのメソッドを使用して、ネクストエクスペリエンス が正しくレンダリングするために必要な CSS クラスを設定します。

    <body class="$[sn_ui.PolarisUI.getBodyClassNames()]">

返されるクラス名は、システムプロパティに応じて、またセッションのデバッグ出力が存在するかどうかによって異なります。
{#PolarisUI-getBodyClassNames__table_hkn_1lq_prb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 3. パラメーター]

{#PolarisUI-getBodyClassNames__table_hkn_1lq_prb} {#PolarisUI-getBodyClassNames__table_ikn_1lq_prb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | ネクストエクスペリエンス UI で使用される CSS クラス名のリスト。 |
[表 : 4. 返される内容]

{#PolarisUI-getBodyClassNames__table_ikn_1lq_prb}  
この jelly スクリプトは ネクストエクスペリエンス をカスタムの UI ページに追加します。

    <?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() {#ariaid-title4}

現在のユーザーに対して ネクストエクスペリエンス UI が有効かどうかを確認します。
このメソッドは、glide.ui.polaris.experience システムプロパティと glide.ui.polaris.use ユーザー初期設定の両方が trueに設定されているかどうかを確認します。

* glide.ui.polaris.experience はインスタンスで ネクストエクスペリエンス を有効にします。
* これを false に設定すると、glide.ui.polaris.use が指定されたユーザーに対して ネクストエクスペリエンス を無効にします。

{#PolarisUI-isEnabled__ul_hrj_nq2_5rb}ネクストエクスペリエンスシステムプロパティとユーザー設定の詳細については、「[Next Experience システムプロパティ](https://www.servicenow.com/docs/access?context=pol-sys-properties&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)」を参照してください。  
注:  
このメソッドは、現在のページで ネクストエクスペリエンス が無効な場合でも true を返します。このメソッドは、ネクストエクスペリエンス がグローバルで有効になっている場合に、エクスペリエンス全体を条件付きで有効にしたり、別のページにリダイレクトしたりする場合に便利です。
{#PolarisUI-isEnabled__table_ljc_djq_prb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 5. パラメーター]

{#PolarisUI-isEnabled__table_ljc_djq_prb} {#PolarisUI-isEnabled__table_mjc_djq_prb__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 現在のユーザーに対して ネクストエクスペリエンス の UI が有効かどうかを示すフラグ。 有効な値： * true：現在のユーザーに対して ネクストエクスペリエンス の UI が有効である。 * false：現在のユーザーに対して ネクストエクスペリエンス の UI が有効でない。 {#PolarisUI-isEnabled__ul_pgy_hv2_5rb} |
[表 : 6. 返される内容]

{#PolarisUI-isEnabled__table_mjc_djq_prb}  
現在のユーザーに対して ネクストエクスペリエンス が有効である場合、この UI ページはユーザーに条件付きメッセージを表示します。

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

このビジネスルールでは、ユーザーが ネクストエクスペリエンス でなく コア UI をクリックしてレコードを表示できるレコード表示に情報メッセージが表示されます。ビジネスルールの \[条件\] フィールドは、`!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);


