このページでは、アクション実行者が特定のユーザー(承認者など)でない場合に、アクションの実行を中断させるサンプルスクリプトをご案内します。
アクションスクリプトの基本的な利用方法については、アクションスクリプト使い方ガイドをご確認ください。
完成イメージ
例えば、項目「承認者」に斎藤さんが登録されているレコードに対し、山田さんが承認アクションを実行しようとした際、アクションを中断させることができます。
- 承認者リストに含まれるユーザー → アクションを実行可能
- 承認者リストに含まれないユーザー → アクションを中断(エラー表示)
注意事項
画面項目の追加
比較対象となるユーザー項目がデータストアにない場合は、「承認者」などの項目を新規作成してください。項目の型は「ユーザー型」を選択します。
プレスクリプトの設定
このスクリプトは必ず「プレスクリプト」として設定してください。
設定画面の「エラー時にアクションの実行をしない」チェックボックスを有効にすることで、スクリプトがエラー(throw)を返した際にアクションの実行を停止し、権限のない操作を防ぐことが可能です。
サンプルスクリプト
「承認者」項目に設定されているユーザーIDと、現在のアクション実行者(executingBy)を比較するスクリプトです。
// --- 1. 定数設定(環境に合わせて書き換えてください) ---
const SS_FIELD_APPROVE_USER = "xxxxxx"; // 項目「承認者」の項目ID
/**
* 2. メイン処理
*/
const main = async () = {
logger.log("実行権限のチェックを開始します。");
let approveUsers;
// 画面で入力(変更)中の値を優先取得
if (item.inputFields[SS_FIELD_APPROVE_USER] !== undefined) {
approveUsers = item.inputFields[SS_FIELD_APPROVE_USER];
} else {
// 入力中でなければ、保存済みの値を取得
approveUsers = item.fields[SS_FIELD_APPROVE_USER];
}
// 承認者が設定されていない場合は、実行を許可するか検討してください
// ここでは未設定の場合はエラー(中断)とする例です
if (!approveUsers || approveUsers.length === 0) {
const noUserError = "承認者が設定されていないため、アクションを実行できません。";
throw new Error(noUserError);
}
};
// 実行
main();ポイント:実行権限のチェック
● executingBy の活用item.executingBy には、現在ログインしてそのアクションボタンをクリックしたユーザーのIDが自動的に格納されます。これを利用することで「誰が操作しているか」に応じた制御が可能になります。
何かお困りのことはございますか?まずはヘルプセンターを検索してみましょう!
その他ご不明な点があれば、サポートチームにお問い合わせください。
コメント
0件のコメント
サインインしてコメントを残してください。