ver.2サポートサイト

HOME機能アプリ管理アプリスケジュールトリガのPHP実行アクション

スケジュールトリガのPHP実行アクション

機能概要

スケジュールトリガのPHP実行アクションは、定期的にプログラムを実行できる機能です。

15分ごとにDB内を抽出したり、毎月1日にDB内のデータを集計したり、毎週月曜日に外部サービスからデータを取得するなど、決まった時間に自動的に処理を実行します。

機能仕様

プログラミング言語

PHP実行アクションに設定する言語は「PHP」です。

使用可能なPHPバージョンについてはPHPバージョンについてをご参照ください。

設定できる文字数は300,000文字です。

有効と無効の切り替え

設定したPHP実行アクションを、有効にするか無効にするか選択します。
新規作成直後は無効になっています。

また、プログラムを編集した直後は無効になります。

手動実行

PHP実行を手動で実行することができます。
設定時の動作テストや、本番稼働中に手動で実行したい時に使用します。

実行ログ

実行ログを保存し、UI上でログを確認することができます。

ログで確認できる内容は以下の通りです。

ログの保存期間は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分、自動的に未対応の問合せリストを抽出し、まとめて対応スタッフへチャット通知する。

設定したタイミングで、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

未対応リストの問い合わせ種別や投稿日時を取得し、チャットへ通知する文面を作成。

文面例

お問い合わせが来ております。
速やかに問い合わせ内容を確認してください。

1.サイト管理について(投稿日時:2022-11-14 11:43)

2.API仕様について(投稿日時:2022-11-14 11:45)

3.その他お問い合わせ(投稿日時:2022-11-14 11:48)

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実行アクションを追加します。