スケジュールトリガのPHP実行アクション
機能概要
スケジュールトリガのPHP実行アクションは、定期的にプログラムを実行できる機能です。
15分ごとにDB内を抽出したり、毎月1日にDB内のデータを集計したり、毎週月曜日に外部サービスからデータを取得するなど、決まった時間に自動的に処理を実行します。
機能仕様
プログラミング言語
PHP実行アクションに設定する言語は「PHP」です。
使用可能なPHPバージョンについてはPHPバージョンについてをご参照ください。
設定できる文字数は300,000文字です。
有効と無効の切り替え
設定したPHP実行アクションを、有効にするか無効にするか選択します。
新規作成直後は無効になっています。
また、プログラムを編集した直後は無効になります。
手動実行
PHP実行を手動で実行することができます。
設定時の動作テストや、本番稼働中に手動で実行したい時に使用します。
実行ログ
実行ログを保存し、UI上でログを確認することができます。
ログで確認できる内容は以下の通りです。
- ・実行終了/実行失敗
- ・アクションジョブID
- ・実行開始日時
- ・実行時間(ms)
- ・実行期間 (開始日時 - 終了日時)
- ・実行エラーが発生した場合、エラーメッセージ
ログの保存期間は90日間です。
※手動実行時のログは保存されません。
実行時のエラー通知メール
PHP実行アクション実行でエラーが発生した場合、エラー通知メールを配信します。
ユーザは、エラー通知メールを受信するか/受信しないかを選択できます。
手動実行でエラーが発生した場合、エラー通知メールは配信しません。
権限によって、受信するメールが異なります。
通知メール設定の詳細についてはこちらをご確認ください。
アカウント管理権限のあるユーザ
対象アカウントのすべてのPHP実行の通知メールが送信されます。
アカウント管理権限のないユーザ
アプリ管理権限(設定)をもつPHP実行の通知メールが送信されます。
スケジュールトリガに設定できる上限
スケジュールトリガに設定できるアクション数には上限があります。詳細は各種上限値をご参照ください。
※PHP実行アクションの無効/有効を問いません。
※設定時、エラー「上限に達している」表示が出る場合、同じアカウント内の別アプリでスケジュールトリガに設定されていることが考えられますので、別アプリに設定されているかどうかご確認ください。
実行時間を制限
PHP実行開始から30秒以内に処理が完了しない場合、以下のエラーを返します。
Execution timeout expired.
PHPの一部機能を制限
一部の関数、PHPクラス、およびパラメータについて、使用を制限しています。
制限している関数等については以下のリンク先をご参照ください。
PHP7.4で使用できない関数・PHPクラス・パラメータ一覧
PHP8.1で使用できない関数・PHPクラス・パラメータ一覧
制限している関数等を使用された場合、エラーを返します。
例)file_get_contents()
PHP7.4
file_get_contents() has been disabled for security reasons on line xx
PHP8.1
Call to undefined function file_get_contents() on line xx
PHP環境変数の使用不可
PHP実行アクションでは、PHP環境変数は使用できません。
PHP環境変数の呼び出しを実行した場合、以下のエラーを返します。
Call to undefined method SpiralCustomProgram::getEnvValue() on line xx
UI:アクション作成
1.アプリ管理画面
左メニューの「アクション」をクリックし、 続いて「PHP実行」をクリックします。
2.PHP実行アクション作成モーダル
「+」ボタンをクリックすると新規PHPアクション作成のモーダルが開きます。
3.PHPの実行バージョン
指定可能なPHPの実行バージョンを設定できます。
アプリ機能については、アプリ単位ごとに設定するPHPバージョンと、各PHP実行アクションごとに設定するPHPバージョンの指定があります。
詳細はPHPバージョンについてをご確認ください。
UI:有効/無効の切り替え
アクション名の横に現在のステータスが表示されます。
有効にする場合、アクション設定画面右上の「有効化」をクリック。
UI:手動実行
任意のタイミングで実行する場合、アクション設定画面にて、「手動実行」をクリック。
実行終了時の画面
エラーにならず実行が終了した場合、実行終了画面を表示します。
実行結果を閉じる場合、赤枠内の下向き矢印をクリック
エラー発生時の画面
エラーが発生した場合、実行失敗画面を表示します。
UI:アクション履歴
アクション設定画面にて、「アクション履歴」をクリック。
アクション履歴画面にて、アクションジョブIDをクリック。
実行終了の場合
実行失敗の場合
UI:スケジュールトリガへのアクション追加
作成したPHP実行アクションをスケジュールトリガに追加する方法は、こちらをご覧ください。
設定例
スケジュールトリガのPHP実行アクションを使用した設定例をご案内いたします。
- (1)月曜日~金曜日の毎時00分と30分、自動的に未対応の問合せリストを抽出し、まとめて対応スタッフへチャット通知する。
- (2)毎月1日0時15分、自動的に前月分の問合せ件数を集計する。
- (3)毎日15時00分、自動的に前日の開示情報を取得し、自動的にIRニュースページを更新する。
(1)月曜日~金曜日の毎時00分と30分、自動的に未対応の問合せリストを抽出し、まとめて対応スタッフへチャット通知する。
設定したタイミングで、SPIRAL ver.2のDBから条件に合うレコードを抽出し、外部のチャットサービスへ送信できます。
1)外部チャットサービス
APIエンドポイントURLを取得します。その他、外部サービスを利用できる環境を作成します。
2)アプリ管理>DB
問い合わせDBを作成します。問い合わせDBの基本的な作成手順はこちらをご覧ください。
問い合わせDBにステータス(セレクトフィールド)を追加します。
3)アプリ管理>アクション>PHP実行
PHP実行アクションを作成します。
プログラムの流れは以下の通りです。サンプルプログラムについては「外部のチャットサービスへ通知する方法」をご参照ください。
1 | トリガが実行された日(本日日付)の曜日を取得。月曜日~金曜日の場合だけ、次の2へ。 |
2 |
SPIRAL ver.2のレコード一覧取得APIを実行し、問合せDBからステータスが「未対応」のリストを抽出。 レコード一覧取得のサンプルプログラムはこちらをご覧ください。 |
3 | 未対応リストが1件以上ある場合、次の4へ。 |
4 |
未対応リストの問い合わせ種別や投稿日時を取得し、チャットへ通知する文面を作成。 文面例
|
5 | チャットサービスのAPIエンドポイントURLへ文面を送信。 |
4)アプリ管理>スケジュールトリガ
スケジュールトリガを作成します。実行タイミングは毎時00分と30分です。
PHP実行アクションを追加します。
(2)毎月1日0時15分、自動的に前月分の問合せ件数を集計する。
設定したタイミングで、SPIRAL ver.2のDBから条件に合うレコードの件数を取得し、集計用の別DBへ登録できます。
1)アプリ管理>DB
問い合わせDBを作成します。問い合わせDBの作成手順はこちらをご覧ください。
集計用DBを作成します。集計年月フィールドと件数フィールドを追加します。
2)アプリ管理>アクション>PHP実行
PHP実行アクションを作成します。
プログラムの流れは以下の通りです。
1 | トリガが実行された日(本日日付)の値をもとに前月日付を取得。 |
2 |
SPIRAL ver.2のレコード一覧取得APIを実行し、問合せDBから「作成日(_createdAt)が前月の1日以上、かつ今月の1日未満のリスト」を抽出し、件数を取得。 レコード一覧取得のサンプルプログラムはこちらをご覧ください。 |
3 |
SPIRAL ver.2のレコード作成APIを実行し、集計用DBへ集計年月と件数を登録。 レコード作成のサンプルプログラムはこちらをご覧ください。 |
3)アプリ管理>スケジュールトリガ
スケジュールトリガを作成します。実行タイミングは毎月1日0時15分です。
PHP実行アクションを追加します。
(3)毎日15時00分、自動的に前日の開示情報を取得し、自動的にIRニュースページを更新する。
設定したタイミングで、自動的に外部サービスへ問合せを実行し、条件に合う場合、SPIRAL ver.2のDBに登録します。
登録した情報をレコードリストブロックで、ページに表示できます。
1)外部開示情報サービス
APIエンドポイントURLを取得します。その他、外部サービスを利用できる環境を作成します。
2)アプリ管理>DB
開示情報DBを作成します。DBの基本的な作成手順はこちらをご覧ください。
開示日付フィールドにインデックスを作成します。
3)サイト管理>サイト
IRサイトを作成します。サイトの作成手順はこちらをご覧ください。
4)サイト管理>ページ
IRサイト内に、IRニュースページを作成します。ページの作成手順はこちらをご覧ください。
ページ内に、開示情報DBを元にレコードリストブロックを設置します。レコードリストブロックの作成手順はこちらをご覧ください。
レコードリストブロックのリスト設定にて、初期ソートを開示日付の降順に設定します。
5)アプリ管理>アクション>PHP実行
PHP実行アクションを作成します。
プログラムの流れは以下の通りです。
1 | トリガが実行された日(本日日付)の値をもとに前日日付を取得。 |
2 | 情報開示サービスのAPIエンドポイントURLへ、日付や証券コードなど必要な情報を送信。 |
3 | 件数が1件以上の場合、返ってきた情報をSPIRAL ver.2の複数レコード登録API用に整形。 |
4 |
SPIRAL ver.2の複数レコード登録APIを実行し、開示情報DBへ登録。 複数レコード登録APIのサンプルプログラムはこちらをご覧ください。 |
6)アプリ管理>スケジュールトリガ
スケジュールトリガを作成します。実行タイミングは毎日15時00分です。
PHP実行アクションを追加します。