UI アクションが表示されない、または機能しない場合のトラブルシューティング方法Issue UI アクションが表示されない場合は、 テーブル、 条件、 可視性、およびアクション名を確認します。 UI アクションが表示されても、クリックしたときに期待どおりに機能しない場合は、 スクリプトを確認します。Resolutionテーブル UI アクション は、特定のテーブル/データベースビューに対して定義できます。または、 グローバル を選択することで、すべてのテーブルに対して定義できます。 UI アクション は、選択したテーブルを拡張するテーブルにも表示されます。この動作を変更するには、 UI アクション - 拡張テーブルに対して同じアクション名で UI アクションを作成します。タスクテーブルのアクションがある場合は、同じアクション名でインシデントテーブルの新しいアクションを作成する必要があります。 条件 UI アクション がフォームに表示されない場合、最初のステップは条件を確認することです。 アクションが表示されない原因がその条件であるかどうかを簡単に判断する良い方法は、空白にして再度テストすることです。UI アクションが表示される場合は、UI アクションの表示を妨げていた条件の部分を特定できます。 条件 フィールドには、true または false に評価される式を含める必要があります。空の 条件 フィールドが true と評価され、 UI アクション がフォームに表示されます。 指定された式が true または false に評価されない場合、予期しない結果になる可能性があります。 UI アクション が表示される場合と表示されない場合があります。true または false に評価される「if」条件または関数を使用することをお勧めします。 以下は、無効なオブジェクトを返す条件の例です: (new GlideRecord(current.getTableName())) && gs.hasRole('catalog_admin') 代わりに、true または false を返す有効な条件は次のようになります。 (new GlideRecord(current.getTableName())).canWrite() 注意: リストコンテキストメニュー UI アクションの場合、現在のオブジェクトは無視されるため使用しないでください。 可視性 [UI アクション] フォームには、 関連 リスト「UI アクションの可視性」があり、アクション (UI アクション) を表示するフォーム上のビューを含めたり除外したりできます。 少なくとも 1 つの インクルード レコードがある場合は、アクションを表示する他のビューのインクルードが必要です。 アクション名 親テーブルで指定されたアクションを上書きする場合を除き、アクション名は UI アクション内で一意である必要があります。アクション名には「.」を含めることができます。ただし、以前のリリースでは「_」に制限されていました。 スクリプト クリックしたときに UI アクション が期待どおりに機能しない場合は、スクリプトに関連している可能性が高いです。スクリプトでは、現在のフォームに関連する「current」を使用できます。 UI アクションを保存する前に、 スクリプトフィールドのヘッダーにある チェック構文をクリックすることをお勧めします。 変数は使用する前に定義する必要があります。定義しないと、エラーが生成されます。期待どおりに機能していないアクションのトラブルシューティングを行うために、ログステートメントを追加できます。以下は、ステートメントをログに記録するための 2 つの異なる方法 (クライアント側スクリプト用とサーバー側スクリプト用) の例です。 実行時のスクリプトの評価方法と使用できるメソッドのタイプは、 クライアント オプションがオンになっているかどうかによって異なります。 オフの場合、gs... などのサーバー側メソッドを使用できます。これらのメソッドはサーバー上で実行されるためです。オンにした場合、 OnClick フィールドが UI アクション フォームに表示され、ユーザーのブラウザーとサーバーでスクリプトが実行されます。この場合、デバッグには gs.log('test') ではなく jslog('test')を使用します。 Onclick フィールドで、 スクリプト フィールドで宣言される JavaScript 関数の名前を指定する必要があります。ボタンがクリックされると、関数が実行されます。関数宣言の外部では、フォームのロード時に常に実行されるコードを指定できます。クライアント側では、確実に実行されるように関数でコードをラップすることが重要です。 クライアント側とサーバー側の両方を含むスクリプトの例を次に示します。 // OnClick field has value 'resolveIncident();' and Script Name 'resolve_incident'function resolveIncident() { //Set the 'Incident state' and 'State' values to 'Resolved' g_form.setValue('incident_state', 6); g_form.setValue('state', 6); //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 errorsif (typeof window == 'undefined') serverResolve();function serverResolve() { current.incident_state = 6; current.update();} その他のフィールド フォームリンク、 フォームコンテキストメニュー 、 フォームボタン などの他のフィールドも、作成されるアクションのタイプを決定します。