PolarisUI - スコープ指定

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:7分
  • PolarisUI API は、ダイレクト UI ページでネクストエクスペリエンスを有効にするためのメソッドを提供します。

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

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

    ネクストエクスペリエンスの詳細については、「Next Experience UI」を参照してください。

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

    PolarisUI - canUsePolarisCSS()

    現在のページが ネクストエクスペリエンス UI を使用できるかどうかを確認します。

    このメソッドは、次のすべての条件が満たされた場合に true を返します。
    • sn_ui.PolarisUI.isEnabled()trueである。
    • 要求 URL のパラメーター sysparm_use_polarisfalseに設定されていない。
    • 参照元の HTTP 要求ヘッダーに sysparm_use_ Polaris=false が含まれていない。
    • ページまたはその親のプラグインが、ページテーマのサポート [sys_page_theme] テーブルのレコードによって ネクストエクスペリエンス の使用を拒否されていない。

    ネクストエクスペリエンスが有効になっている場合は、このメソッドを使用して、動作または Jelly 出力を条件付きで変更します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    ブーリアン

    現在のページで ネクストエクスペリエンス UI を使用できるかどうかを示すフラグ。

    有効な値:
    • true:現在のページが ネクストエクスペリエンス UI を使用できる。
    • false:現在のページが ネクストエクスペリエンス UI を使用できない。

    ネクストエクスペリエンス が現在のフォームで実行されている場合、この 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()

    ネクストエクスペリエンス UI で使用される CSS クラス名のリストを返します。

    UI ページの HTML <body> タグでこのメソッドを使用して、ネクストエクスペリエンス が正しくレンダリングするために必要な CSS クラスを設定します。
    <body class="$[sn_ui.PolarisUI.getBodyClassNames()]">

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

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    文字列 ネクストエクスペリエンス UI で使用される CSS クラス名のリスト。

    この 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()

    現在のユーザーに対して ネクストエクスペリエンス UI が有効かどうかを確認します。

    このメソッドは、glide.ui.polaris.experience システムプロパティと glide.ui.polaris.use ユーザー初期設定の両方が trueに設定されているかどうかを確認します。
    • glide.ui.polaris.experience はインスタンスで ネクストエクスペリエンス を有効にします。
    • これを false に設定すると、glide.ui.polaris.use が指定されたユーザーに対して ネクストエクスペリエンス を無効にします。
    ネクストエクスペリエンスシステムプロパティとユーザー設定の詳細については、「Next Experience システムプロパティ」を参照してください。
    注:
    このメソッドは、現在のページで ネクストエクスペリエンス が無効な場合でも true を返します。このメソッドは、ネクストエクスペリエンス がグローバルで有効になっている場合に、エクスペリエンス全体を条件付きで有効にしたり、別のページにリダイレクトしたりする場合に便利です。
    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    ブーリアン

    現在のユーザーに対して ネクストエクスペリエンス の UI が有効かどうかを示すフラグ。

    有効な値:
    • true:現在のユーザーに対して ネクストエクスペリエンス の UI が有効である。
    • false:現在のユーザーに対して ネクストエクスペリエンス の UI が有効でない。

    現在のユーザーに対して ネクストエクスペリエンス が有効である場合、この 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);