開発者向け機能:スクリプト
## 概要
標準機能では実現できないUI操作等をAjaxのPOSTリクエストで可能にするために、サイト毎に適用可能なJavaScriptを設定することができます。
下記にはその追加方法と現在利用できるAPIの一覧を記載します。
## スクリプトの追加方法
(この操作は”サイトの管理権限”が必要です。)
1. 対象のテーブルを開きます。
1. 「管理」メニューから[テーブルの管理](/ja/manual/table-management)をクリックします。
1. [スクリプト](/ja/manual/table-management-script)タブを開きます。
1. 「新規作成」ボタンをクリックします。
1. 下表の項目を入力/設定します。
1. 「追加」ボタンをクリックします。
1. 画面下部の「更新」ボタンをクリックします。
|項目名|説明|設定方法|
|:---|:---|:---|
|タイトル|スクリプトのタイトル|任意のタイトルを入力|
|スクリプト|スクリプトの内容|任意のスクリプトを入力|
|出力先|出力先の画面を選択|チェックボックスで設定|
## スクリプトの関数一覧
### サイト情報取得系スクリプト(SiteInfo.js)
|No|関数名|説明|
|:--:|:---|:---|
|1|[$p.tableName]()|テーブルタイプを取得する関数です。|
|2|[$p.controller]()|コントローラータイプを取得する関数です。|
|3|[$p.action]()|アクションタイプを取得する関数です。|
### サイト情報更新系スクリプト(_Data.js)
|No|関数名|説明|
|:--:|:---|:---|
|1|[$p.set](/manual/script-set)|画面上の値変更と$p.dataへの格納を同時に行う関数です。|
### サイトメッセージ系スクリプト(Message.js)
|No|関数名|説明|
|:--:|:---|:---|
|1|[$p.clearMessage](/manual/script-clear-message)|画面下に表示されるメッセージを削除する関数です。|
|2|[$p.setMessage](/manual/script-set-message)|画面下にメッセージを表示させる関数です。|
### コマンド操作やユーザ・組織・グループ操作などのスクリプト(_Api.js)
|No|関数名|説明|
|:--:|:---|:---|
|1|[$p.apiUrl](/manual/script-api-url)|APIリクエストのURL値の取得を行う関数です。|
|2|[$p.apiGet](/manual/script-api-get)|レコードを取得する関数です。|
|3|[$p.apiCreate](/manual/script-api-create)|レコードを作成する関数です。|
|4|[$p.apiUpdate](/manual/script-api-update)|レコードを更新する関数です。|
|5|[$p.apiUpsert](/manual/script-api-upsert)|レコードを追加または更新する関数です。|
|6|[$p.apiDelete](/manual/script-api-delete)|レコードを削除する関数です。|
|7|[$p.apiBulkDelete](/manual/script-api-bulk-delete)|レコードを一括削除する関数です。|
|8|[$p.apiGetSite](/manual/script-api-get)|サイト情報を取得する関数です。|
|9|[$p.apiCreateSite](/manual/script-api-create)|サイトを作成する関数です。|
|10|[$p.apiUpdateSite](/manual/script-api-update)|サイトを更新する関数です。|
|11|[$p.apiDeleteSite](/manual/script-api-delete)|サイトを削除する関数です。|
|12|[$p.apiGetClosestSiteId](/manual/script-api-get-closest-siteid)|サイト名検索で該当サイトに最も近いサイトIDを取得する関数です。|
|13|[$p.apiUsesGet](/manual/script-api-users-get)|ユーザ情報を取得する関数です。|
|14|[$p.apiUsesUpdate](/manual/script-api-users-update)|ユーザ情報を更新する関数です。|
|15|[$p.apiUsesDelete](/manual/script-api-users-delete)|ユーザ情報を削除する関数です。|
|16|[$p.apiDeptsGet](/manual/script-api-depts-get)|組織情報を取得する関数です。|
|17|[$p.apiGroupsGet](/manual/script-api-groups-get)|グループ情報を取得する関数です。|
|18|[$p.apiGroupsCreate](/manual/script-api-groups-create)|グループ情報を作成する関数です。|
|19|[$p.apiGroupsUpdate](/manual/script-api-groups-update)|グループ情報を更新する関数です。|
|20|[$p.apiGroupsDelete](/manual/script-api-groups-delete)|グループ情報を削除する関数です。|
|21|[$p.apiSendMail](/manual/script-api-send-mail)|メールを送信する関数です。|
### 値の設置/更新/取得/削除系スクリプト(_Elements.js)
|No|関数名|説明|
|:--:|:---|:---|
|1|[$p.id](/manual/script-id)|レコードのid値を取得する関数です。|
|2|[$p.siteId](/manual/script-set-id)|サイトのId値を取得する関数です。|
|3|[$p.loginId](/manual/script-login-id)|ログインIdを取得する関数です。|
|4|[$p.userId](/manual/script-user-id)|ログインしているユーザのユーザIdを取得する関数です。|
|5|[$p.userName](/manual/script-user-name)|ログインしているユーザの名前を取得する関数です。|
|6|[$p.getColumnName](/manual/script-get-column-name)|対象項目のカラム名(データベースの列名)を取得する関数です。|
|7|[$p.getControl](/manual/script-get-control)|対象の項目名から要素を取得する関数です。|
|8|[$p.getField](/manual/script-get-field)|対象の項目名からFieldを取得する関数です。|
|9|[$p.getGridRow](/manual/script-get-grid-row)|[一覧画面](/ja/manual/table-grid)にてレコードのtrタグ要素を取得する関数です。|
|10|[$p.getGridCell](/manual/script-get-grid-cell)|[一覧画面](/ja/manual/table-grid)のtdタグの要素を取得する関数です。|
|11|[$p.getGridColumnIndex](/manual/script-get-column-index)|[一覧画面](/ja/manual/table-grid)にてレコードの表示名のデータが何列目にあるか取得する関数です。|
|12|[$p.on](/manual/script-on)|各イベント発生時に任意の処理を実行する事が出来る関数です。|
### イベント発火系スクリプト(_Event.js)
|No|関数名|タイミング|説明|
|:---|:---|:---|:---|
|1|[$p.events.on_editor_load](/manual/script-events-on-editor-load)|編集画面を読み込んだ時|「編集画面」を読み込んだときに実行する関数です。|
|2|[$p.events.on_grid_load](/manual/script-events-on-grid-load)|一覧画面を読み込みだ時|[一覧画面](/ja/manual/table-grid)を読み込んだときに実行する関数です。|
|3|[$p.events.on_calendar_load](/manual/script-events-on-calendar-load)|カレンダーを読み込みだ時|[カレンダー](/ja/manual/table-calendar)を読み込んだときに実行する関数です。|
|4|[$p.events.on_crosstab_load](/manual/script-events-on-crosstab-load)|クロス集計を読み込みだ時|[クロス集計](/ja/manual/table-crostab)を読み込んだときに実行する関数です。|
|5|[$p.events.on_gantt_load](/manual/script-events-on-gantt-load)|ガントチャートを読み込みだ時|[ガントチャート](/ja/manual/table-gantt-chart)を読み込んだときに実行する関数です。|
|6|[$p.events.on_burndown_load](/manual/script-events-on-burndown-load)|バーンダウンチャートを読み込みだ時|[バーンダウンチャート](/ja/manual/table-burndown-chart)を読み込んだときに実行する関数です。|
|7|[$p.events.on_timeseries_load](/manual/script-events-on-timeseries-load)|時系列チャートを読み込みだ時|[時系列チャート](/ja/manual/table-timeseries-chart)を読み込んだときに実行する関数です。|
|8|[$p.events.on_analy_load](/manual/script-events-on-analy-load)|分析チャートを読み込みだ時|[分析チャート](/ja/manual/table-analy-chart)を読み込んだときに実行する関数です。|
|9|[$p.events.on_kamban_load](/manual/script-events-on-kamban-load)|カンバンを読み込みだ時|[カンバン](/ja/manual/table-kanban-chart)を読み込んだときに実行する関数です。|
|10|[$p.events.before_validate](/manual/script-events-before-validate)|入力値の検証前|バリデーションチェックを行う前に実行する関数です。|
|11|[$p.events.after_validate](/manual/script-events-after-validate)|入力値の検証後|バリデーションチェックを行った後に実行する関数です。|
|12|[$p.events.before_send](/manual/script-events-before-send)|データ送信前|サーバへデータを送信する前に実行する関数です。|
|13|[$p.events.after_send](/manual/script-events-after-send)|データ送信後|サーバへデータを送信した後に実行する関数です。|
|14|[$p.events.before_set](/manual/script-events-before-set)|画面の更新前|サーバへデータを送信後、画面内容を更新する前に実行する関数です。|
|15|[$p.events.after_set](/manual/script-events-after-set)|画面の更新後|サーバへデータを送信後、画面内容を更新した後に実行する関数です。|