レコード画面での動的変数のサポート
レコード画面のスクリプト画面フィールドを使用して、動的フィールド値を表示します。スクリプトを実行してフィールド値を判別してから、フォームに表示します。スクリプトによって返された値はデータベース値と置き換えられません。たとえば、メール内の動的変数の翻訳されたコンテンツを表示できます。
注:
レコード画面のスクリプトフィールドは、レコード画面内の他の画面フィールドの場合のように、モバイルアプリビルダーではなく、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.'この後のスクリプトは、変数を抽出し、実際のフィールド値を取得して、カスタマイズされた説明を返します。
スクリプトは、[タイプ] が「テキスト」に設定された更新されたテキストを返します。HTML コンテンツの場合は、[タイプ] を [HTML] に設定します。'Hi Beth, Unable to access the personal details section in payroll portal.'(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);