このページでは、アクション実行時に日時の時系列に矛盾が生じた場合、アクションの実行を中断させるサンプルスクリプトをご案内します。
アクションスクリプトの基本的な利用方法については、アクションスクリプト使い方ガイドをご確認ください。
完成イメージ
例えば、項目「受付日」と項目「対応完了日」を比較し、矛盾が生じたときにアクション実行を中断してエラーを表示します。
- 不整合: 「受付日」 > 「対応完了日」 → アクションを中断(エラー表示)
- 正常: 「受付日」 ≦ 「対応完了日」 → アクションを実行(保存)
注意事項
画面項目の追加
比較する日付項目がデータストアにない場合は、「受付日」と「対応完了日」の項目を新規作成してください。 項目の型は「日付型」もしくは「日付・時刻型」を選択します。
プレスクリプトの設定
このスクリプトは必ず「プレスクリプト」として設定してください。
設定画面の「エラー時にアクションの実行をしない」チェックボックスを有効にすることで、スクリプトでエラー(throw)が発生した場合にアクションの実行を停止し、誤った操作を防ぐことが可能です。
サンプルスクリプト
入力中の値(inputFields)を優先的に取得し、保存済みの値(fields)と比較して整合性をチェックするスクリプトです。
// --- 1. 共通設定(環境に合わせて書き換えてください) ---
const SS_FIELD_ACCEPT_TIME = "xxxxxx"; // 受付日の項目ID
const SS_FIELD_COMPLETE_TIME = "xxxxxx"; // 対応完了日の項目ID
/**
* 2. 日付取得用関数
* 入力中の値があれば優先し、なければ保存済みの値を返します
*/
const getDateValue = (fieldId) = {
// 画面で入力中の値を優先取得 (inputFieldsを使用)
const inputValue = item.inputFields[fieldId];
if (inputValue !== undefined && inputValue !== null && inputValue !== "") {
return new Date(inputValue);
}
// 入力中の値がない場合は保存済みの値を取得
const savedValue = item.fields[fieldId];
if (savedValue !== undefined && savedValue !== null && savedValue !== "") {
return new Date(savedValue);
}
return null;
};
/**
* 3. メイン処理
*/
const main = async () => {
logger.log("日付の整合性チェックを開始します。");
const dateAccept = getDateValue(SS_FIELD_ACCEPT_TIME);
const dateComplete = getDateValue(SS_FIELD_COMPLETE_TIME);
// 両方の日付が入力(存在)されている場合のみ比較を実行
if (dateAccept && dateComplete) {
if (dateComplete < dateAccept) {
const errorMsg = "受付日は対応完了日より前の日付を選択してください。";
logger.error(errorMsg);
// 重要:ここでErrorを投げることでアクションが中断されます
throw new Error(errorMsg);
}
}
logger.log("チェック完了:矛盾はありません。");
};
// 実行
main();何かお困りのことはございますか?まずはヘルプセンターを検索してみましょう!
その他ご不明な点があれば、サポートチームにお問い合わせください。
コメント
0件のコメント
サインインしてコメントを残してください。