6.5.2 アクションのスクリプト(UIバージョン1.1)

ScriptのYAMLファイル内のラベル"file"で指定するスクリプトをあらかじめ作成する必要があります。スクリプトはJavaScriptで記述してください。以下に各コンポーネントでアクションが実行されるタイミングおよび呼び出される関数名の一覧を示します。お客様はスクリプト内に該当する関数名を定義し、アクションの内容を記述してください。

(表)各コンポーネントでの実行タイミングおよび関数名一覧(UIバージョン1.1)

コンポーネント アクションが実行される
タイミング
スクリプト内で
呼び出される関数名
関数の引数
データ形式 変数名 設定する値
Grid 画面の表示時 handleLoad - - -
Button ボタンのクリック時 handleClick※1 string name クリックしたボタンの名前
ボタンクリック直後 handleBeforeAction※2 - - -
データ保存前 handleBeforeSave※2 - - -
データ保存後 handleAfterSave※2 - - -
ワークフローを次のステップにすすめる処理の前 handleBeforeRequestWorkflow※2 - - -
handleBeforeResumeStep※2 - - -
Form 画面の表示時 handleLoad - - -
Form初期フィールド取得時 handleAfterLoadData - - -
Formフィールドの変更時 handleChange string fieldName 変更されたフィールドの名前
any fieldValue 変更されたフィールドの値
Object fieldExtension 変更されたフィールドの値
boolean fieldExtension.checked チェックボックスのOn/Off (properties.checkbox: true時)
string fieldExtension.operator 演算子 (properties.operator: true時)
any fieldExtension.firstOperand 第1オペランド(properties.operator: true時, 演算子によっては無し)
any fieldExtension.secondOperand 第2オペランド(properties.operator: true時, 演算子によっては無し)
フォーカスを外した時 handleBlur string fieldName 変更されたフィールドの名前
any fieldValue 変更されたフィールドの値
Object fieldExtension 変更されたフィールドの値
boolean fieldExtension.checked チェックボックスのOn/Off (properties.checkbox: true時)
string fieldExtension.operator 演算子 (properties.operator: true時)
any fieldExtension.firstOperand 第1オペランド(properties.operator: true時, 演算子によっては無し)
any fieldExtension.secondOperand 第2オペランド(properties.operator: true時, 演算子によっては無し)
Table Tableの行選択変更 handleSelectionModelChange GridRowId[]またはGridRowId selectModel Tableコンポーネントのproperties.selection:が"checkbox" の場合は選択行のIDの配列、"radio" の場合は選択行のID
セルクリック時 handleCellClick string field クリックされた列の列名
object row クリックされた行の行データ
セル値の変更時 handleCellValueChange any value 入力された値
セルのアイコンクリック時 handleIconClick Object row クリックされた行の行データ
Tabs タブ選択の変更時 handleChange string name 選択されたタブの名前
object activeTab 選択されたタブの情報
タブ活性時 handleActivate string name 活性になったタブの名前
object activeTab 活性になったタブの情報
タブ非活性時 handleDeactivate string name 非活性になったタブの名前
object activeTab 非活性になったタブの情報
タブの追加ボタンクリック時 handleAddButtonClick Array.<object> - 表示しているタブ情報の一覧
Card Cardのクリック時 handleClick string name クリックしたCardの名前
画面の表示時 handleLoad - - -
※1:ユーザーが独自に設定できるアクションボタンを定義するときに使用できます。
※2:Ops Iで提供している標準アクションボタンをカスタムするときに使用できます。詳細は「標準アクションボタンをカスタムしたい場合」を参照してください。

以下に、アクションの内容を記述する際に使用可能である関数名の一覧を示します。

【Static関数群】

  • OIWindow
  • OIWorkflow
  • OIApi
  • OICommon
  • OIUi

【各クラスのインスタンスを作成して使用】
ここで()内の値はインスタンス生成時の引数を示しています。

  • OIActionButton(アクションボタン名)
  • OIButton(ボタン名、名前空間)
  • OIApiDataSource(データソース名、名前空間)
  • OITableDataSource(データソース名、名前空間)
  • OIForm(フォーム名、名前空間)
  • OITable(テーブル名、名前空間)
  • OITabs(タブ名、名前空間)
  • OITab(タブ名、名前空間)
  • OIArticle(アーティクル名、名前空間)
  • OIAttachment(添付ファイル名、名前空間)
  • OICard(カード名、名前空間)

(表)アクションの内容を記述する際に使用可能である関数名一覧(UIバージョン1.1)

クラス名 関数名 関数の引数 アクションの内容
データ形式 変数名 設定する値
OIWindow open string - type "move"、"new_window"、"new_tab"のいずれかを指定する。
  • "move":アクティブタブに指定したページを表示する。
  • "new_window":新しいウィンドウで指定したページを表示する。
  • "new_tab":新しいタブで指定したページを表示する。
ページ、またはUIを開く。
Object options -
string url urlに表示するページのURLを指定する。
例){url:'/sys_task'}
OIWindow showMessage string - type メッセージをスナックバーで表示する場合は"snackbar"、ダイアログで表示する場合は"modal"を指定する。 スナックバー、またはメッセージダイアログを表示する。Typeに"modal"を指定した場合、第1ボタンがクリックされたときは"ok"、最終ボタンがクリックされたときは"cancel"を戻り値にPromise<string>型で設定する。
Object options -
string typeMess typeが"snackbar"の場合、"error"、"warning"、"info"、"success"のいずれかを指定する。typeが"modal"の場合は、任意の数のボタンを表示でき、クリックされたボタンを戻り値で受け取ることができる。
string content 表示するメッセージを指定する。
string title typeが"modal"の場合、タイトルを指定する。
[Array<Object>] buttons typeが"modal"の場合、ボタンのラベルと値(クリック時に返却される)を以下のように設定する。
- [Array<Object>] buttons
 - {string} name
 - {string} value
Object btnOk typeが"modal"の場合、第1ボタンのラベルに表示する内容を設定する。
string btnCancel typeが"modal"の場合、最終ボタンのラベルに表示する内容を設定する。
btnOk、btnCancelをどちらも省略した場合は「OK」ボタンが表示される。
string subContent typeが"modal"の場合、contentのメッセージの下に表示される追加のメッセージを設定する。省略可能。
boolean useConfirm typeが"modal"の場合、"true"を指定すると、「OK」ボタンを押すための確認用チェックボックスが追加される。省略した場合は"false"となる。
OIWindow resetScroll - - - - コンテンツ領域のスクロール位置をリセットする。
OIWorkflow respond string - contextID コンテキストID ワークフローに応答し、実行結果をPromise<Object>型で戻り値に設定する。
string - activityName 返答するactivityName(ワークフロー定義中のtasksで指定されているタスク名)
Object - params 返答するアクションの内容として、"accept"、"reject"、"pull_back"、"cancel"のいずれかを指定する。
例)
{
  "oi_response": "accept"
}
OIWorkflow start string - contextID コンテキストID 指定されたコンテキストIDに関連するワークフローを実行し、実行結果をPromise<Object>型で戻り値に設定する。
Object - body ワークフローに設定するパラメータの内容を指定する。
例)
{
  "params": {
    "param1": "string",
    "param2": "string",
    "param3": "string"
  }
}
OIWorkflow getActivity - - - - 現在表示されているワークフローのアクティビティのオブジェクト(StackStormのステップオブジェクト)をPromise<Object>型で取得する。取得まで待機するPromiseを返却する。
OIApi call string - url 実行するREST APIのURLを指定する。 REST APIを実行し、戻り値にResponse BodyをPromise<Object>型で設定する。
Object - option パラメータを指定する。省略時は{}が設定される。
例){method: 'GET', headers: {'Content-Type': 'application/json'}
boolean - showError REST APIでエラーが発生した場合、エラー内容を画面に表示するか否かを指定する。省略した場合、"true"が設定される。
OICommon getUserProfile - - - - ログインユーザーのプロファイルを取得し、戻り値にPromise<Object>型で設定する。
OICommon getDateWithUserTimezone - - - - 現在日時(YYYY-MM-DDTHH:mm:ssZ)をログインユーザーのタイムゾーンで取得し、戻り値にstring型で設定する。
例)2022-09-21T15:36:20+09:00
OICommon translate Object - dictionary 言語ごとの文字列を定義する。 ユーザーの言語設定に合わせた文字列を返却する。
string - key dictionaryから取得するkeyを指定する。
OICommon showLoadingScreen - - - - ロックスクリーンを表示する。
実行回数分だけカウンターがインクリメントされる。
ボタンなどのユーザーによる操作の処理でOIWorkflow.respond、OIWorkflow.startなどワークフローの処理を行う場合は、showLoadingScreenを実行して多重実行を防ぐ必要がある。
OICommon hideLoadingScreen - - - - ロックスクリーンの表示を解除する。
実行回数分だけカウンターがデクリメントされ、カウンターが0で表示解除となる。
ロックスクリーンのまま画面操作ができなくなることを避けるため、try-finally節など使用して、エラー時でもhideLoadingScreenが必ず呼ばれる設定にする。
このメソッドを呼び出した際ロックスクリーンが表示されていない場合、このメソッドは画面に影響を与えず正常に終了する。
OICommon copyClipboard string - data クリップボードに貼り付ける文字列を指定する。 クリップボードに指定した文字列を貼り付ける。
OICommon getLocation - - - - 現在の文書の現在位置情報をWindow.location(ブラウザ組み込みのWeb API)で取得し、戻り値に以下をPromise<Object>型で設定する。
  • hash
  • host
  • hostname
  • href
  • origin
  • pathname
  • port
  • protocol
  • search
戻り値の詳細についてはWindow.locationの仕様を参照。
OIUi getContext - - - - コンテキストの情報を取得し、戻り値にPromise<Object>型で設定する。
OIActionButton setVisible boolean - isVisible "true"(表示)または"false"(非表示)を指定する。 ボタンの表示、非表示を設定する。設定が完了するまで待機するPromise<undefined>を返却する。
OIActionButton setEnable boolean - isEnable "true"(活性)または"false"(非活性)を指定する。 ボタンの活性、非活性を設定する。設定が完了するまで待機するPromise<undefined>を返却する。
OIButton setVisible string - buttonName ボタン一覧内の対象のボタン名 ボタンの表示、非表示を設定する。設定が完了するまで待機するPromise<undefined>を返却する。
boolean - isVisible "true"(表示)または"false"(非表示)を指定する。
OIButton setEnable string - buttonName ボタン一覧内の対象のボタン名 ボタンの活性、非活性を設定する。設定が完了するまで待機するPromise<undefined>を返却する。
boolean - isEnable "true"(活性)または"false"(非活性)を指定する。
OIApiDataSource refresh boolean - loading ローディングアイコンの表示有無(省略時:表示なし) データの再取得、およびデータソース使用箇所への取得データを反映する。完了するまで待機するPromise<undefined>を返却する。
OIApiDataSource setAutorefreshSeconds number - secondsValue 自動リフレッシュ間隔(秒)を整数で指定する。 自動リフレッシュ間隔を設定する。完了するまで待機するPromise<undefined>を返却する。
OIApiDataSource getParameter string - paramName 指定されたデータソース名のパラメータ名を指定する。 指定されたデータソース名のパラメータの設定をPromise<APIDataSourceParameter>型またはPromise<undefined>で取得する。指定されたparamNameに一致しない場合はPromise<undefined>を返却する。
OIApiDataSource setParameter string - paramName 指定されたデータソース名のパラメータ名を指定する。 指定されたデータソース名のパラメータを設定する(指定されたパラメータが存在する場合は上書き、しない場合は作成する)。完了するまで待機するPromise<undefined>を返却する。
APIDataSourceParameter - parameter 更新するパラメータオブジェクトを指定する。
例:
{
  type: ' fixed' ,
  value: ' true' ,
}
typeは' fixed' 、' query' 、' uipath' から指定、valueは文字列を指定する。またnull、undefinedも指定できる。
OIApiDataSource deleteParameter string - paramName 指定されたデータソース名のパラメータ名を指定する。 指定されたデータソース名のパラメータの構成を削除する。完了するまで待機するPromise<undefined>を返却する。
OIApiDataSource update loadingまたはshowErrorの場合boolean、overrideRequestBodyの場合function - options 以下を指定する。
  • loading:ローディングアイコンの表示有無(省略時:表示無)
  • showError:エラー発生時のスナックバー表示有無(省略時:表示無)
  • overrideRequestBody:リクエストボディを上書きして返すコールバック。リクエストボディは引数として渡される。 値が返されない場合は、空のリクエスト本文が返される。
APIデータソースによって参照されるリソースの更新を実行する。完了するまで待機するPromiseを返却する。
OIApiDataSource create APIデータソースによって参照されるリソースの作成を実行する。完了するまで待機するPromiseを返却する。
OIApiDataSource delete APIデータソースによって参照されるリソースの削除を実行する。完了するまで待機するPromiseを返却する。
OITableDataSource refresh boolean - loading ローディングアイコンの表示有無(省略時:表示なし) データの再取得、およびデータソース使用箇所への取得データを反映する。完了するまで待機するPromise<undefined>を返却する。
OITableDataSource setAutorefreshSeconds number - secondsValue 自動リフレッシュ間隔(秒)を整数で指定する。 自動リフレッシュ間隔を設定する。完了するまで待機するPromise<undefined>を返却する。
OITableDataSource getParameter string - paramName 指定されたデータソース名のパラメータ名を指定する。 指定されたデータソース名のパラメータの設定をPromise<TableDataSourceParameter>型またはPromise<undefined>で取得する。指定されたparamNameに一致しない場合はPromise<undefined>を返却する。
OITableDataSource setParameter string - paramName 指定されたデータソース名のパラメータ名を指定する。 指定されたデータソース名のパラメータを設定する(指定されたパラメータが存在する場合は上書き、しない場合は作成する)。完了するまで待機するPromise<undefined>を返却する。
TableDataSourceParameter - parameter 更新するパラメータオブジェクトを指定する。
例:
{
  type: ' fixed' ,
  value: ' true' ,
}
typeは' fixed' 、' query' 、' uipath' から指定、valueは文字列を指定する。またnull、undefinedも指定できる。
OITableDataSource deleteParameter string - paramName 指定されたデータソース名のパラメータ名を指定する。 指定されたデータソース名のパラメータの構成を削除する。完了するまで待機するPromise<undefined>を返却する。
OITableDataSource update boolean - options 以下を指定する。
  • loading:ローディングアイコンの表示有無(省略時:表示無)
  • showError:エラー発生時のスナックバー表示有無(省略時:表示無)
  • forceUpdate:バージョンアンマッチでも強制的に更新する(省略時:しない)
  • overrideFieldValues:レコードの作成または更新に使用するフィールド値を上書きする(省略時:通常の動作)
forceUpdateはupdateの場合のみ、overrideFieldValuesはupdate、createの場合のみ指定できる。
Tableデータソースによって参照されるリソースの更新を実行する。完了するまで待機するPromiseを返却する。
OITableDataSource create Tableデータソースによって参照されるリソースの作成を実行する。完了するまで待機するPromiseを返却する。
OITableDataSource delete Tableデータソースによって参照されるリソースの削除を実行する。完了するまで待機するPromiseを返却する。
OIForm setStatus string - field ステータスを設定する対象のフィールド名を指定する。 フォームにあるフィールドのステータスを設定する。バリデーションエラーを出す機能があるフィールドタイプのみ対応。対象のフィールドに引数statusの値が反映されるまで待機するPromise<undefined>を返却する。
string - status ステータスを設定する。"error"を設定するとエラー状態となり、それ以外はエラー状態が解除される。
OIForm setHelperText string - field ヘルパーテキストを設定する対象のフィールド名を指定する。 フォームのフィールドのヘルパーテキストを設定する。バリデーションエラーメッセージを出す機能があるフィールドタイプのみ対応。対象のフィールドに引数helperTextの値が反映されるまで待機するPromise<undefined>を返却する。
string - helperText ヘルパーテキストを設定する。
OIForm removeHelperText string - field ヘルパーテキストを削除するフィールドの名前を指定する。 フォームのフィールドのヘルパーテキストを削除する。バリデーションエラーメッセージを出す機能があるフィールドタイプのみ対応。対象のフィールドからhelperTextの値が削除されるまで待機するPromise<undefined>を返却する。
OIForm getFieldValue string - fieldName フィールドの名前を指定する。 フィールドの値を取得する。
OIForm getFieldValues - - - - すべてのフィールドの値をPromise<object>型で返却する。
OIForm getFieldExtension string - fieldName フィールドの名前を指定する。 フィールドの各種情報を取得する。
OIForm getFieldExtensions - - - - すべてのフィールドの各種情報をPromise<object>型で返却する。
OIForm setFieldValue string - fieldName フィールドの名前を指定する。 フィールドの値を設定する。対象のフィールドに引数 fieldValueの値が反映されるまで待機するPromise<undefined>を返却する。
any - fieldValue フィールドの値を指定する。
OIForm setFieldExtensions string - fieldName フィールドの名前を指定する。 フィールドの各種情報を設定する。対象のフィールドに引数 extensions の値が反映されるまで待機するPromise<undefined>を返却する。
object - extensions フィールドの各種情報を指定する。
OIForm setFieldVisible string - fieldName フィールドの名前を指定する。 フィールドの表示または非表示を設定する。設定が完了するまで待機するPromise<undefined>を返却する。
boolean - visibility フィールドの表示または非表示を指定する。
OIForm validate - - - - Formのバリデーション結果をPromise<boolean>型で返却する。
  • true:エラーなし
  • false:エラーあり
OIForm setLookupLabelQuery string - fieldName 対象のフィールドの名前を指定する。 対象のlookupフィールドのlabelQueryを設定する。設定が完了するまで待機するPromise<undefined>を返却する。
string - value lookupフィールドのlabelQueryの値を指定する。
OIForm getLookupLabelQuery string - fieldName 対象のフィールドの名前を指定する。 対象フィールドに設定されたlabelQueryを取得する。対象のフィールドがlookupフィールドではない場合、またはlabelQueryプロパティが省略されている場合はPromise<undefined>を返却する。
OIForm setEnable boolean - isEnable "true"(活性)または"false"(非活性)を指定する。 対象のフォームが活性または非活性を設定する。設定が完了するまで待機するPromise<undefined>を返却する。
OIForm setFieldEnable string - fieldName 対象のフィールドの名前を指定する。 対象のフィールドが活性または非活性を設定する。設定が完了するまで待機するPromise<undefined>を返却する。
boolean - isEnable "true"(活性)または"false"(非活性)を指定する。
OITable getSelectedRows - - - - テーブルの選択した行の全データを取得しPromise<object>型で返却する。
OITabs getTabs - - - - インスタンスに属する全タブ情報の配列を取得する。UIのYAMLファイルの"type: tab"コンポーネントでvisibleプロパティがfalseのタブは配列に含まれない。戻り値はaddTab関数の引数と同じ型になる。
OITabs addTab object - params 追加するタブのパラメータを指定します。 指定したタブを追加する。追加が完了するまで待機するPromise<undefined>を返却する。
以下の場合TypeErrorとなる。
  • paramsがプレーンオブジェクトやOITabのインスタンスのいずれでもない場合
  • params.nameが文字列ではない場合
string - params.name 追加するタブの名前を指定します。この名前はUIのYAMLファイルのTabコンポーネントの名前を指定します。
string - params.id タブの内部IDを指定します。タブ内で一意の必要がある。省略すると自動的にIDが割り当てられる。
string - params.label タブのラベルを指定します。省略すると自動的にラベルが割り当てられる。
boolean - params.visible "true"(表示)または"false"(非表示)を指定する。デフォルトはtrue。
string - params.queryParameter タブがアクティブになったときに現在のURLに追加するクエリパラメータを"key=value"の形式で指定する。
object - params.state タブの状態を設定する。
OITabs activateTab number - index アクティブにするタブのインデックスを指定する。デフォルト値は0。 指定したタブをアクティブにします。indexが整数ではない場合、TypeErrorとなる。指定されたインデックスのタブのアクティブ設定が完了するまで待機するPromise<undefined>を返却する。
OITabs getActiveTab - - - - アクティブなタブを取得する。アクティブなタブが0の場合Promise<undefined>を返却する。
OITab getForm string - name タブ上のフォームの名前を指定する。 タブに対応するコンテンツに含まれるOIFormのインスタンスを取得する。
OITab getTable string - name タブ上のテーブルの名前を指定する。 タブに対応するコンテンツに含まれるOITableのインスタンスを取得する。
OITab getTabs string - name タブ上のタブの名前を指定する。 タブに対応するコンテンツに含まれOITabsのインスタンスを取得する。
OITab getArticle string - name タブ上のアーティクルの名前を指定する。 タブに対応するコンテンツに含まれるOIArticleのインスタンスを取得する。
OITab getButton string - name タブ上のボタンの名前を指定する。 タブに対応するコンテンツに含まれるOIButtonのインスタンスを取得する。
OITab getAttachment string - name タブ上の添付ファイルの名前を指定する。 タブに対応するコンテンツに含まれるOIAttachmentのインスタンスを取得する。
OITab getCard string - name タブ上のCardの名前を指定する。 タブに対応するコンテンツに含まれるOICardのインスタンスを取得する。
OIArticle setAutorefreshSeconds number - secondsValue 自動リフレッシュ間隔(秒) 自動リフレッシュ間隔を設定する。設定が完了するまで待機するPromise<undefined>を返却する。secondsValueが整数でない場合、TypeErrorになる。
OIAttachment saveFiles - - - - 添付ファイルを保存する。保存が完了するまで待機するPromise<undefined>を返却する。secondsValueが整数でない場合、TypeErrorになる。
OICard setContent string - content 表示内容を指定する。 表示内容を設定する。設定が完了するまで待機するPromise<undefined>を返却する。secondsValueが整数でない場合、TypeErrorになる。
OICard setLink string - link リンク先を指定する。 リンク先を設定する。設定が完了するまで待機するPromise<undefined>を返却する。secondsValueが整数でない場合、TypeErrorになる。

<定義例>

async function handleCellClick(_, row) {
  const ticketID = row.id;

  const tabs = new OITabs('ticket_tabs');
  const tabDetails = await tabs.getTabs();
  const existingTicketTabIndex = tabDetails.findIndex(
    (detail) => detail.id === ticketID,
  );

  if (existingTicketTabIndex !== -1) {
    tabs.activateTab(existingTicketTabIndex);   } else {
    tabs.addTab({
      name: 'ticket_detail_tab',
      id: ticketID,
      label: row.number,
      queryParameter: 'id=${ticketID}',
    });
  }
}