ブログ

2022/12/07
【プリザンター】 第173回)1か月後、1年後を判断する方法

指定した期限で項目を変化させたい

こんにちは、シーイーシーカスタマサービスの森山です。

プリザンターで業務に使うテーブルを作成していると、
「設定している開始日から一定期間が経過したら、何か自動で処理を実行したい」
と思うことはありませんか?

これを実現するには「終了日」の項目を作成し、既定値に「現在時刻」に加算する日数を設定する方法があります。
ただし、この方法の場合ですと1か月後を指定するのに「30日」なのか「31日」なのか、またどちらを指定した場合でもどんどんズレが生じてきます。
また、終了日の既定値を使用せずに、直接終了日を設定する方法もありますが、この場合も入力ミスや入力漏れなどのリスクがあります。

そこで今回は、過去のブログで紹介した「一覧で条件にあった行を色変更」を応用し、サーバスクリプトにて期限「1年後」を判断して処理を実行する方法をご紹介したいと思います。

一覧画面でサーバスクリプトを実行する

今回は「記録テーブル」に「日付A」「チェックA」項目を表示設定しておきます。
また、「チェックA」は一覧画面にも表示するように設定します。
動きは、「日付A」に入力した日付より1年経過した場合に、「チェックA」に自動でチェックが入るようにします。

それでは、サーバスクリプトに下記コードを記載し、条件「行表示の前」を選択して登録しましょう。

!注意!
・条件「行表示の前」で実行されるスクリプトは、画面に表示される行のみとなります。
 そのため、件数が多い場合はスクリプトが適用されない可能性があります。

・一覧画面でサーバスクリプトを実行する場合、行ごとにスクリプトが動作するため
 件数が多いとパフォーマンスに影響が出る可能性があります。


//今日の日付を取得
let today = new Date();

//DateAの日付より1年後を取得
let date = new Date(model.DateA);
date.setFullYear(date.getFullYear() + 1);

//今日の日付がDateAの日付より1年経過していたら、CheckAを設定
if (today >= date){
model.CheckA = true;
model.UpdateOnExit = true;
}


一覧画面を開くことでサーバスクリプトが実行されます。

まとめ

いかがでしたか?

期限の判断は様々な場面で使われると思うので、是非一度お試しください。
また、期限の判断については今回ご説明したサーバスクリプト以外に、APIと拡張SQLを連携させAPIをタスクスケジューラーで毎日実行させる方法もございますので、気になる方はお問合せ下さい。
※ただし、こちらは有料となる場合がございます。予めご了承ください。

弊社ではスタイル・スクリプトサンプル集、プリザンター逆引き辞典のほかにも、運用ノウハウ集の販売もございます。また、導入の支援や、スクリプト開発なども支援いたします。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問合せください。
☆☆☆

PAGE TOP