レコード画面での動的変数のサポート

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:5分
  • レコード画面のスクリプト画面フィールドを使用して、動的フィールド値を表示します。スクリプトを実行してフィールド値を判別してから、フォームに表示します。スクリプトによって返された値はデータベース値と置き換えられません。たとえば、メール内の動的変数の翻訳されたコンテンツを表示できます。

    注:
    レコード画面のスクリプトフィールドは、レコード画面内の他の画面フィールドの場合のように、モバイルアプリビルダーではなく、ServiceNow AI Platform内で構成されます。構成手順については、 レコード画面のスクリプトフィールドの構成

    ユースケース

    従業員は、説明に他のフィールドのパーソナライズされた情報が含まれている場合でも、モバイルデバイスで希望する言語で HR ケースとタスクを表示できます。レコード画面のスクリプト画面フィールドを使用して、これらの翻訳された動的値をモバイルアプリに表示できます。これにより、説明にパーソナライズされた情報が含まれている場合でも、従業員は HR ケースの正確な翻訳を表示するオプションが提供されます。

    動的変数サポートを使用する際の注意事項

    詳細画面で動的変数を設定する場合は、次の考慮事項を満たす必要があります。
    • [ タイプ ] フィールドで [スクリプト] を選択します。
    • [ フォームフィールド ] フィールドで、使用する動的変数を含むフィールドを選択します。
    完全な構成手順については、「 レコード画面のスクリプトフィールドの構成」を参照してください。

    [実行スクリプト] フィールドの操作

    モバイルアプリに表示する値を返すには、次のスクリプト形式を使用します。スクリプトは、2 つの必須プロパティを持つ JSON オブジェクトを返す必要があります。Type はコンテンツ形式 (この例では html) を定義し、 Value には表示する実際のコンテンツが含まれます (この例では Hello)。

    var json = {
    ‘Type’: ‘HTML’,
    ‘Value’: “<p>Hello! </p>”
    }
    
    JSON スクリプトを操作する場合は、次の点を考慮してください。
    • スクリプトには、タイプのプロパティが含まれている必要があります
    • Type プロパティでは、[自動]、[テキスト]、[パーセンテージ]、[日付]、および [HTML] のオプションを使用できます。
    • JSON 内の タイプ は、フィールドから選択したタイプと同じである必要があります。
    • 日付値は次の形式を使用する必要があります:yyyy-MM-dd HH:mm:ss

    例 1:カスタマイズされたケースの説明の表示
    たとえば、アサインされたユーザーの名を参照する変数を含む HR ケースの説明フィールドについて考えてみます。
    'Hi {current.assigned_to.first_name}, Unable to access the personal details section in payroll portal.'
    この後のスクリプトは、変数を抽出し、実際のフィールド値を取得して、カスタマイズされた説明を返します。
    'Hi Beth, Unable to access the personal details section in payroll portal.'
    スクリプトは、[タイプ] が「テキスト」に設定された更新されたテキストを返します。HTML コンテンツの場合は、[タイプ] を [HTML] に設定します。
    (function generateScreenField(current) {
        //Type appropriate comment here, and begin script below 
        var description = current.description;
       var regex = /\$\{(.*?)\}/; 
       var match = description.match(regex); 
       var fieldName = match[1]; 
       var element = current.getElement(fieldName); 
       var fieldValue = element.getValue(); 
       var updatedDescription = description.replace(regex, fieldValue); 
       var json = { 
           'Type': 'Text', 
           'Value': updatedDescription 
       }; 
       return json; 
    })(current);
    
    例 2:経過時間をパーセンテージで計算する
    このスクリプトは、開始日と終了日の間の経過時間の割合を計算し、詳細画面のパーセンテージフィールドに表示します。
    注:
    パーセンテージ値は、% 記号なしで数値付きで返されます。シンボルはフィールドの書式設定によって処理されます。
    (function generateScreenField(current) {
        //Type appropriate comment here, and begin script below 
        //Logic to calculate percentage of time elapsed between start and end dates
        //Return percentage without % symbol
       var json = { 
           'Type': 'Percentage', 
           'Value': timeElapsedPercent 
       }; 
       return json; 
    })(current);
    
    例 3:日付値を動的に計算する
    このスクリプトは日付を計算し、日付フィールドに表示します。スクリプトは、フィールドがモバイルアプリに表示されるときに実行され、ロジックに基づいて日付を計算して、正しい形式で返します。
    日付形式の要件:
    • 日付のみ:yyyy-MM-dd (例:2025-01-29)
    • 時刻付きの日付:yyyy-MM-dd HH:mm:ss (例:2025-01-29 14:30:00)
    (function generateScreenField(current) {
        //Type appropriate comment here, and begin script below 
        //Logic to calculate value of the Date field
        //Return Date in the following format: yyyy-MM-dd (without Time)
        var json = { 
           'Type': 'Date', 
           'Value': calculatedDate
       };
    (or)
       //Return DateTime in the following format: yyyy-MM-dd HH:mm:ss (with time)
       var json = { 
           'Type': 'DateTime', 
           'Value': calculatedDate
       };
    
       return json; 
    })(current);