---
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


---

# UI アクションでのクライアントおよびサーバーコードの使用

# UI アクションでのクライアントおよびサーバーコードの使用 {#ariaid-title1}

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

スクリプトを使用して、サーバー側でレコードを更新する前に、クライアント側で UI アクションがクリックされたときに入力を検証できます。ユーザーは、必須フィールドを検証してレコードを更新するのにボタンを 2 回クリックする必要はありません。
スクリプトはクライアント側の検証のためにクライアント関数を呼び出し、合格すると UI アクションがタスクを完了します。`onclick なしで実行されるコード`のステートメントは 、クライアント関数が実行されなくなるまでサーバー側の関数が実行されないようにします。成功すると、サーバー側の関数が実行され、レコードが更新されます。

    // Client-side onclick function
    function resolveIncident() {
      // Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
      g_form.setValue('incident_state', 6);
      g_form.setValue('state', 6);
      g_form.setValue('resolved_by', g_user.userID);

      // Call the UI action and skip the 'onclick' function
      gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //MUST call the 'Action name' set in this UI Action
    }

    // Code that runs without 'onclick'
    // Ensure call to server-side function with no browser errors
    if (typeof window == 'undefined')
      serverResolve();

    // Server-side function
    function serverResolve() {
      current.incident_state = IncidentState.RESOLVED;
      current.state = IncidentState.RESOLVED;
      current.resolved_by = gs.getUserID();
      current.update();
    }

## gsftSubmit(文字列 control, オブジェクト form, 文字列 action_name) {#using-client-server-code-ui-action__section_rkc_v3f_lwb}

必須フィールドを確認し、onSubmit() クライアントスクリプトを実行した後、ユーザーが UI アクションをクリックした場合と同様にフォームを送信します。単一の UI アクションでクライアント側のコードとサーバー側のコードを呼び出すことができます。
{#using-client-server-code-ui-action__table_lmr_qwr_fz__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| コントロール | 文字列 | ユーザーのクリックをシミュレートするフォームボタンの名前。それ以外の場合は `null` を使用します。 |
| フォーム | オブジェクト | オプション。送信された入力を含むフォーム要素。この値を取得するには、g_form.getFormElement() メソッドを呼び出します。 |
| action_name | 文字列 | アクション名。この値は、UI アクション \[sys_ui_action\] テーブルにリストされているレコードで提供されます。 たとえば、`'resolve_incident'` は、インシデント \[incident\] テーブルの \[解決\] ボタンのアクション名です。 |
[表 : 1. パラメーター]

{#using-client-server-code-ui-action__table_lmr_qwr_fz}
**関連概念**   

* [GlideUser - クライアント](https://servicenow-prod.fluidtopics.net/W5D01kjdrbnX~bQob~CAIA#c_GlideUserAPI "GlideUser API は、現在のユーザーと現在のユーザーロールに関する情報にアクセスするメソッドを提供します。この API を使用すると、ユーザー情報を取得するために低速な GlideRecord クエリを使用する必要がなくなります。")  
**関連資料**   

* [GlideForm - getFormElement()](https://servicenow-prod.fluidtopics.net/iZXkMKU701Cuwf8ZI0XoLA#r_GlideFormGetFormElement "フォームの HTML 要素を返します。")
* [スコープ対象 GlideSystem - eventQueue(文字列 name, オブジェクト instance, 文字列 parm1, 文字列 parm2, 文字列 queue)](https://servicenow-prod.fluidtopics.net/MqZvamz75if7gRreRf1bqQ#r_ScopedGlideSystemEventQueue_String_Object_String_String_String "イベントマネージャーのイベントをキューに格納します。")  
**関連情報**   

* [UI actions](https://www.servicenow.com/docs/access?context=c_UIActions&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)

