アクション
データソース別の設定
組み込み関数
createActionJob

createActionJob

createActionJob はアクションをジョブとして実行する関数です。

createActionJob関数経由でのアクションのジョブとしての実行でも、ログイン中のユーザーが実行権限を持っているか検証されます。 例外として、ユーザー自身は権限を持っていなくても、呼び出し元のJavaScriptアクションが許可されている場合には実行できます。

基本的な使い方

以下は実行に時間のかかるアクションをジョブとして実行している例です。

import { createActionJob } from "@basemachina/action";
 
/** @type { import("@basemachina/action").Handler } */
export default async ({ reports }) => {
  const results = await createActionJob("create_reports", { reports });
 
  if (!results[0].failure) {
    throw new Error("レポート作成ジョブの作成に失敗しました");
  }
 
  return `レポート作成ジョブを作成しました: ${results[0].success.actionJobId}`;
};

オプションで実行日時を指定してジョブの実行の予約もできます。

import { createActionJob } from "@basemachina/action";
 
/** @type { import("@basemachina/action").Handler } */
export default async ({ reports }) => {
  const results = await createActionJob(
    "create_reports",
    { reports },
    // 2024年10月1日22時に実行
    { scheduledAt: "2024-10-01 22:00:00" },
  );
 
  if (!results[0].failure) {
    throw new Error("レポート作成ジョブの作成に失敗しました");
  }
 
  return `レポート作成ジョブを作成しました: ${results[0].success.actionJobId}`;
};

詳細なインターフェース

引数

引数名必須 ・ 任意説明
actionIdstring必須実行するアクションのID、または識別子。'c3hc2ii23akg0sokf9j0', 'get-user'
argsobject任意アクションを実行するための引数で、 キーがパラメータ名、値がパラメータに渡す値のオブジェクト。{ username: 'JohnDoe' }
optionsobject任意ジョブの詳細設定。{ scheduledAt: 1609459200 }
options.scheduledAtDate | string | number任意ジョブの予約実行日時。stringDate型に変換できる値、numberはUnixTimestamp (秒)を入力してください。日時は現在から30日以内の値を指定できます。new Date(), '2024-10-01', 1609459200

なおパラメータの入力値の種類ごとにargsへ渡せる値の型は以下です。

入力値の種類説明
テキストstring-{ company_name: '株式会社ベースマキナ' }
数値number | null-{ user_id: 123 }
日付Date | string | number | nullstringDate型に変換できる値、numberはUnixTimestamp (秒)を入力してください。{ created: '2023-01-01', updated: new Date(), deleted: 1609459200 }
ファイルFile | null-{ upload_text: new File(['test'], 'test.txt', { type: 'text/plain' }) }
真偽値boolean-{ checked: true }
JSON値string | number | Date | nullJSON値の種類ごとに型が異なります。
テキストならstring | null、数値ならnumber | null、日付ならstring | number | Date | nullを渡せます。
日付の場合stringDate型に変換できる値、numberはUnixTimestamp (秒)を入力してください。 
{ company_name: '株式会社ベースマキナ', user_id: 123, created: '2023-01-01', deleted: null }
SQLstring-{ query: 'SELECT * FROM users;' }
システム値string-{ offset: '20' }
配列Array各要素の種類の型は、各入力値の種類の型と同じです。{ user_ids: [10, 11, 12] }
タプルArray各要素の種類の型は、各入力値の種類の型と同じです。{ id_and_name: [123, 'taro'] }

戻り値

プロパティ名説明
actionJobIdstring作成したジョブのID。cpt8gkab5gv1ibk8r5h0