ページビューの合計

2020年1月24日金曜日

過去日付を許さないフィールド

It's pretty simple today, but I'm going to talk about setting fields that don't allow past dates.

みなさま、こんにちは!

いよいよ来週ですね、【2020 HCL Masters 日本祝賀パーティー】。
みなさまにお会いできることをたのしみにしております!

さて今回の話題です。

弊社内で勤怠管理のアプリケーションを運用しているのですが、事後報告をできないようにするという案件が生じました。

たとえば「朝寝坊したから、今日は在宅で働こう」なんてことを避けるようなイメージです。
※実際の弊社の目的ではありませんので、悪しからず・・・w

最初は作成日フィールド(@created)で判断すればいいのではと考えたのですが、文書が保存できてしまうことは避けたいということになりました。

となると、「入力の確認」で設定するのが一番簡単という判断になりました。

「入力の確認」でよく利用するのが、必須フィールドに設定する


 @If([Field_name]="";@Failure("「Field_name」は必須です。");@Success)


という見慣れた式があります。

@If([Field_name]="";

・・・あとは簡単ですよね。



 @If(StartDate<=@Today;@Failure("[StartDate]は明日以降の日付を指定してください。");@Success)


記事公開後、とある逃げ道があることが判明!!
以下がさらに適切かと思いますので、書き直させて頂きます。
理由・・・?
先の式ですと、クライアント側の日にちをGETしてしまいますので、ごにょごにょごにょ・・・。


 @If(StartDate<=@Now([SERVERTIME]);@Failure("[StartDate]は明日以降の日付を指定してください。");@Success)


ご指摘、ありがとうございました!

念のために動きを見ておきましょう。

「<=」としていますので、本日の(2020/1/24)以前の日付だとエラーになるはずです。


無事、想定通りの結果が得られました。
もちろん明日の日付ですと、エラーは出ません。
・・・この画面だけではわからないのですが(汗


フィールドがエラーになっている以上、文書も保存することができません。

また一時的に明日以降の日付で保存し、本日以前に日付を変更したとしても、エラーになります。

以上、お恥ずかしながら至って簡単な内容ではありますが、それなりに効果のある設定でしたので、記事にしてみました。


なお弊社インフラですが、すったもんだがありまして、昨日よりV11のサーバー構築がスタートしています。
構築そのものはパートナーSE様に依頼していますので、作業内容等は今後書ける範囲で紹介させて頂きます。

予定としては、来週末にサーバー群が設置、結線。
再来週末にインフラの入れ替えを予定しています。

実際のDominoサーバーの更新は2/末から3/中になりそうです。

今回、VDIのOS入れ替えのため、各個人のWindows環境は新規作成します。
従ってノーツクライアントも新しいOSに新規インストールしたパターンを配布することになるのですが、この配布手順をどうするかが今後の課題になりそうです。

今までと違い、IDVaultが有効化されますので、なんとか作業工数を減らすことができないか検討致しますので、このあたりもテスト内容含めてご報告したいと予定しています。

それではみなさま、まずは来週!!!

0 件のコメント:

コメントを投稿