祝日やお盆休みのような曜日では識別できない非営業日を扱う場合、非営業日の日付を登録したマスタアプリを作成しておき、非営業日を識別したいアプリから参照することで営業日・非営業日を識別する方法があります。


カスタマイズ例:会議アプリで日付(会議日)に非営業日を指定するとエラー

非営業日の日付を登録したマスタアプリと、マスタアプリを参照する会議予定アプリを用意します。

なお、どちらのアプリもフィールド名とフィールドコードは同じに設定しました。


非営業日マスタアプリ

日付フィールドに非営業日、説明フィールドに「日曜日」「お盆休み」のような休みについての説明を入力します。



また、日付フィールドは必須項目かつ値の重複を禁止する設定にしています。


土曜日かつ祝日、または日曜日かつ祝日のような場合は説明に「日曜日 海の日」のように並記する想定にしています。



今回は、土日祝日、お盆休みを登録しました。



会議予定アプリ


いくつか項目はありますが、今回の例では日付フィールドのみ利用します。




会議予定アプリのカスタマイズを追加します。


「日付」フィールドに非営業日が指定された場合、エラーを表示し、エラーメッセージには非営業日マスタの「説明」フィールドの値に「です」を付加した文字列を表示します。


カスタマイズ完成イメージ


カスタマイズ例


日付が未入力になった時や営業日が入力された場合に備えてまずエラーをクリアする



やること

非営業日が入力された場合はエラーとしたいのですが、日付フィールドがクリアされた場合や営業日が入力された時はエラーメッセージを消したいので、まずはやること「フィールドのエラーをクリアする」で日付フィールドのエラーを消しておきます。


条件

日付フィールドに値が入力・変更された時に処理を行いたいので、条件「フィールドの値を編集して値が変わった時」を指定します。


日付が未入力でなければ非営業日マスタからレコードを取得する



やること


非営業日マスタアプリから「日付」フィールドをキーにレコードを取得したいので、やること「キーを指定してレコードを取得する」を指定します。

取得先アプリは「非営業日マスタ」、キーとなるフィールドは「日付」、キーの値は「= 日付」と指定します。


条件

エラーのクリアを行うアクションが完了してから処理を行いたいので、「他のアクションの実行が完了した時」を指定します。

アクションは、エラーのクリアを行うアクション「5」を指定しました。

また、日付が未入力でない時だけレコードを取得したいので「フィールド値が特定の値ならば」を追加します。

フィールドは「日付」、条件は「等しくない」、比較値は未入力の場合としたいので何も入力しません。


日付が非営業日ならフィールドにエラーを表示する



やること

日付フィールドにエラーを表示したいので「フィールドエラーを表示する」、フィールドは「日付」を指定します。

エラーメッセージには非営業日マスタから取得した「説明」フィールドの値に"です"を付加して表示したいので、「= $1[0].説明 & "です"」と指定しました。


条件

非営業日マスタからレコードが取得できてから処理を行いたいので「他のアクションの実行が完了した時」を指定し、アクションは「1」としました。

また、非営業日マスタからレコードが取得できた、つまり日付に指定された日が非営業日であればエラーを表示する、としたいので「レコード件数が1件以上ならば」を指定します。

レコードが取得されなければ、営業日とみなします。



以上でカスタマイズは完了です。

会議予定アプリの日付で非営業日マスタに登録された日を指定するとエラーとなり、登録されていない日を指定するとエラーになります。


ただ、このカスタマイズで注意が必要なのは、非営業日マスタに登録されていない日は営業日とみなされる点です。

非営業日マスタに未登録の先の日付を指定された場合、日曜日や祝日でも営業日とみなされてしまいます。

運用でカバーされるか、「この日以降は登録されていないので指定不可」のようなチェックを実装するなど、ご検討ください。