Jelly のタグ

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:13分
  • Jelly を使用して XML を HTML に変換します。

    Now Platform で Jelly を使用する方法については、次の紹介ビデオをご覧ください。

    Jelly のタグ

    if
    • 説明:if タグは、文字どおりの if タグです。これはプログラミング言語の if ステートメントに似ていますが、elseif タグも else タグもないことに注意してください。そういった構造を作成する場合は、 choose/when/otherwise 構文を使用してください。
    • パラメーター:test - ブロックが実行されるかどうかを判断するために評価する条件。
    • 例:
      <g:evaluate var="jvar_now_GR" object="true">
         var now_GR = new GlideRecord("incident");
         now_GR.addQuery("active", true);
         now_GR.query();
         now_GR;
      </g:evaluate>
       
      <j:if test="${!jvar_now_GR.hasNext()}">
         We did not find any active incidents.
      </j:if>
      <j:if test="${jvar_now_GR.next()}">
         We found ${jvar_now_GR.getRowCount()} active incidents.
      </j:if>
      
    while
    • 説明:while タグは while ループを実行します。
    • パラメーター:test - ステートメントがループしているかどうかを判断するために評価する条件。これは、true または false に評価される ${} または $[] で囲まれた式である必要があります。
    • 例:
      <g:evaluate var="jvar_now_GR" object="true">
         var now_GR = new GlideRecord("incident");
         now_GR.addQuery("active", true);
         now_GR.query();
         now_GR;
      </g:evaluate>
       
      <j:while test="${jvar_now_GR.next()}">
        <a href="incident.do?sys_id=${jvar_now_GR.getValue('sys_id')}">${jvar_now_GR.getValue('number')}</a>
      </j:while>
    set
    • 説明:set タグは変数を設定します。
    • パラメーター:
      • var:設定する変数。多くの場合、これらの変数には一貫性のために jvar_ というプリフィックスが付けられます。
      • valuevar に設定する値。多くの場合、これは ${} または $[] で囲まれた式です。
      • defaultValue:値が null または空の場合、この値は var に格納されます。
    • 例:
      <j:set var="jvar_incident_number" value="${jvar_now_GR.getValue('number')}"/>
    set_if
    • 説明:set タグは test に基づいて変数を設定します。このタグは、他のプログラミング言語の ternary 演算子 (var = <test> ? <if_true> : <if_false>) に類似しています。
    • パラメーター:
      • var:設定する変数。多くの場合、これらの変数には一貫性のために jvar_ というプリフィックスが付けられます。
      • test:ステートメントが true 値を評価するか false 値を評価するかを決定するために評価する条件。これは、true または false に評価される ${} または $[] で囲まれた式である必要があります。
      • truetesttrue と評価された場合に変数に設定する値。このパラメーターはオプションであるため、フィールドが空白で、テストが true と評価された場合、変数は空白のままになります。
      • falsetest が false と評価された場合に変数に設定する値。このパラメーターはオプションであるため、フィールドが空白で、test が false と評価された場合、変数は空白のままになります。
    choose
    • 説明:choose タグは、コードの choose ブロックを開始するのに使用します。これは、ほとんどのプログラミング言語の if-elseif-else 構文に似ています。choose タグでは、when タグと otherwise タグを使用して、他のコードブロックを指定できます。
    • パラメーター名:なし
    • 例:
      <j:choose>
         <j:when test="${jvar_now_GR.getRowCount() ${AMP}lt; 1}">We found multiple records!</j:when>
         <j:when test="${jvar_now_GR.next()}">We found record ${jvar_now_GR.getValue('number')}</j:when>
         <j:otherwise>Sorry, we could not find the record you specified.</j:otherwise>
      </j:choose>
    when
    • 説明:when タグは、条件を示すために choose ブロック内で使用されます。このタグは、条件を指定し、内部コンテンツを実行し、if-elseif 構造を終了するために最後にブレークを指定するという点で、if または elseif に似ています。
    • パラメーター:test - ステートメントがループしているかどうかを判断するために評価する条件。これは、true または false に評価される ${} または $[] で囲まれた式である必要があります。
    • 例:
      <j:choose>
         <j:when test="${jvar_now_GR.getRowCount() ${AMP}lt; 1}">We found multiple records!</j:when>
         <j:when test="${jvar_now_GR.next()}">We found record ${jvar_now_GR.getValue('number')}</j:when>
         <j:otherwise>Sorry, we could not find the record you specified.</j:otherwise>
      </j:choose>
    otherwise
    • 説明:otherwise タグは、choose/when/otherwise ブロック内で使用され、else または default に似ています。
    • パラメーター名:なし
    • 例:
      <j:choose>
         <j:when test="${jvar_now_GR.getRowCount() ${AMP}lt; 1}">We found multiple records!</j:when>
         <j:when test="${jvar_now_GR.next()}">We found record ${jvar_now_GR.getValue('number')}</j:when>
         <j:otherwise>Sorry, we could not find the record you specified.</j:otherwise>
      </j:choose>

    Glide タグ

    evaluate
    • 説明:evaluate タグは JavaScript コード (サーバー側) を評価し、将来のコードで変数を表示できるようにします。他のタグとは異なり、evaluate タグは、タグ内のコンテンツをサーバー側の JavaScript として評価します。

      コンテキストは、システムのスクリプトインクルードと同じです。その他のスクリプトインクルード、グローバルビジネスルール、GlideRecordGlideSystem、および Jelly 変数 (パラメーター jelly="true" が設定されている場合は、先頭に jelly が付きます) を使用できます。

    • パラメーター:
      • var:スクリプトの結果に設定される変数の名前。
      • オブジェクトtrue に設定すると、式の結果はプリミティブ変数 (文字列または整数の変数値) ではなくオブジェクトとして扱われます。
      • jellytrue に設定すると、Jelly コンテキスト変数をスクリプトで参照できるようになります。
      • :これは、var に入力する値に対して実行される式です。式は 2 つの場所のいずれかで使用できます。まず、evaluate タグ自体の属性にすることができます。それ以外の場合は、開始タグと終了タグの間のコンテンツが式になります。式の最後の行は、var に渡される実際の値です。
    • 例:
      <g:evaluate var="jvar_now_GR" object="true">
        var now_GR = new GlideRecord("incident");
        now_GR.addQuery("active", "true");
        now_GR.query();
        now_GR; // this is the variable put into the variable jvar_now_GR
      </g:evaluate>
      <g:evaluate var="jvar_now_GR" object="true" expression="
        var now_GR = new GlideRecord('incident');
        now_GR.addQuery('active', 'true');
        now_GR.query();
        now_GR; // this is the variable put into the variable jvar_now_GR" />
    messages
    • 説明:messages タグは翻訳に役立ちます。gs.getMessage() がページ上の任意の場所で呼び出された場合、翻訳が見つかる可能性のある場所は 2 か所あります。まず、ページで翻訳のローカルキャッシュをチェックします。次に、ページでサーバーに対して AJAX 呼び出しを行い、翻訳を検索します。g:messages の機能は、ページが特定のメッセージをキャッシュできるようにすることです。
    • パラメーター名:なし
    • 例:
      <g:messages>
        Yes
        No
        Cancel
      </g:messages>
    breakpoint
    • 説明:breakpoint タグが呼び出されると、現時点での Jelly 内のすべての変数のリストがそれぞれの値とともに出力されます。変数が指定されている場合は、要求された変数とその値が出力されます。出力はシステムログに格納されます。
    • パラメーター:var - (オプション) 値をログに記録する変数。var が指定されていない場合、すべての変数がログにダンプされます。
    • 例:
      <g:breakpoint />
      <g:breakpoint var="sysparm_view"/>
    no_escape
    • 説明:システムは、デフォルトで、セキュリティ対策としてエスケープされた出力を使用します。no_escape タグ内に配置された出力は、出力の前にエスケープされません。これらのタグを使用する場合は注意が必要です。ここにユーザー入力が表示されると、ページのセキュリティ脆弱性が生じる可能性があります。
    • パラメーター名:なし
    • 例 (フェーズ 1) – 含まれているすべての ${} 式の自動出力エスケープを無効にします。
      <g:no_escape>
       ${jvar_raw_html_data}
      </g:no_escape>
    • 例 (フェーズ 2) – NOESC を使用して、指定された文字列のエスケープを無効にします。これは、式が文字列に評価される必要があることを意味します。
      <g:no_escape>$[NOESC:jvar_expr]</g:no_escape>

      フェーズ 1 とフェーズ 2 の評価の詳細については、このセクションの最初にリストされている Jelly の紹介ビデオを参照してください。

    macro_invoke
    • 説明:macro_invoke タグは、データベースで指定した UI マクロを呼び出します。タグ名で指定して UI マクロを呼び出すこともできます。たとえば、my_macro という名前の UI マクロがある場合、そのマクロを <g:my_macro/> タグで呼び出すことができます。詳細については、「 UI マクロ 」を参照してください。
    • パラメーター:
      • マクロ:実行する UI マクロの名前。タグ名が「g:macro_invoke」の場合、マクロ属性はマクロの名前を指定します。タグ名にマクロの名前が含まれている場合は、マクロ属性を含める必要はありません。
      • その他の属性:指定した属性ごとに、その名前の変数が UI マクロのコンテキストで使用可能になり、プリフィックス「jvar_」が付きます。
    • 例:
      <!-- Will invoke the contents of the UI macro named "sample_macro", which will have the variable jvar_message available within it-->
      <g:macro_invoke macro="sample_macro" message="This is a sample macro variable." />
      <!-- Will invoke the contents of the UI macro named "sample_macro", which will have the variable jvar_message available within it-->
      <g:sample_macro message="This is a sample macro variable." />
    if_polaris
    • 説明:if_polaris タグは、現在のページで ネクストエクスペリエンス が有効かどうかを確認します。子タグ <g:then /> または <g:else /> の少なくとも 1 つを含める必要があります。
    • パラメーター名:なし
    • 例:
      <g:if_polaris>
          <g:then><g:inline template="polaris_nav"/></g:then>
          <g:else><g:inline template="classic_nav"/></g:else>
      </g:if_polaris>
      
      <g:if_polaris>
          <g:then><a href="…">Click here to see what’s new!</a></g:then>
      </g:if_polaris>
      
      <g:if_polaris>
          <g:else>Core UI only code here!</g:else>
      </g:if_polaris>
      
    次に
    • 説明:then タグは、ネクストエクスペリエンス が有効になっている場合に、if_polaris ブロック内でページコンテンツを設定するために使用されます。
    • パラメーター名:なし
    • 例:
      <g:if_polaris>
          <g:then><g:inline template="polaris_nav"/></g:then>
          <g:else><g:inline template="classic_nav"/></g:else>
      </g:if_polaris>
      
      <g:if_polaris>
          <g:then><a href="…">Click here to see what’s new!</a></g:then>
      </g:if_polaris>
      
      <g:if_polaris>
          <g:else>Core UI only code here!</g:else>
      </g:if_polaris>
      
    それ以外の場合
    • 説明:else タグは、ネクストエクスペリエンス が有効になっていない場合に、if_polaris ブロック内でページコンテンツを設定するために使用されます。
    • パラメーター名:なし
    • 例:
      <g:if_polaris>
          <g:then><g:inline template="polaris_nav"/></g:then>
          <g:else><g:inline template="classic_nav"/></g:else>
      </g:if_polaris>
      
      <g:if_polaris>
          <g:then><a href="…">Click here to see what’s new!</a></g:then>
      </g:if_polaris>
      
      <g:if_polaris>
          <g:else>Core UI only code here!</g:else>
      </g:if_polaris>