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 | - | - | - |
以下に、アクションの内容を記述する際に使用可能である関数名の一覧を示します。
【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"のいずれかを指定する。
|
ページ、または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>型で設定する。
|
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 | 以下を指定する。
|
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 | 以下を指定する。
|
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>型で返却する。
|
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となる。
|
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}',
});
}
}