0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Outsystemsの日付形式のバリデーションについてまとめてみた

Posted at

1. はじめに

今回はOutsystemsで日付のバリデーションを行う方法についてまとめます。
OutSystemsではDatePickerやInput Widgetを使えば、ある程度ビルトイン機能で日付バリデーションができますが、サーバー側でText型の日付のバリデーションを行う際などには、追加の工夫が必要です。

2. 使用環境

  • OutSystemsバージョン:11
  • Service Studioバージョン:11.55.22
  • アプリ種別:Reactive Web App

3. Date型とDateTime型の場合

ビルトイン関数を使いましょう。
以下の公式記事でTextToDateTimeValidateTextToDateValidateが紹介されています。
これらの関数を使えば、値がデフォルトの日付/時刻形式であれば有効な日付/時刻形式になっているかをチェックすることができます。
データ変換

動作確認
試しに下記の結果を返すアクションを作成し、結果を確認するとFalseで返ってきました。有効な形式については公式記事詳細をご参照ください。
注意点は"2002/01/01"でも"2002-01-01"でも"2002.01.01"でもTrueになることです。
もう少し細かくチェックしたい場合正規表現を使うことになるでしょう。

TextToDecimalValidate('2025/04/31')  →False

4. YearMonth型の場合

OutSystemsには見たところ「年月型(YearMonth型)」のバリデーション関数はありませんでした。
そのため、2025/13 のような不正な値を弾くには正規表現を使う必要がありました。

実装例
まずTextAPIのRegex_Searchの参照を追加しましょう。
{6CCD760F-D565-4D43-8074-68F5961B5F8E}.png
追加したRegex_Searchを適当に作ったアプリのボタン押下時のアクションで呼び出します。
{8469B02C-4679-4D34-8839-0E1C4359B062}.png
Regex_Searchの戻り値がTrueであれば成功メッセージ、Falseであれば失敗メッセージが表示されるようにしています。
Regex_Searchの引数を追加します。
{6D96A337-E28B-47C1-969D-0F1D15265356}.png
Textにはチェックする値を、Patternには以下の正規表現を指定します。

"^\d{4}/(0[1-9]|1[0-2])$" // 年(4桁)/月(01~12)の形式のみを許容します。

Inputから2025/13を入力し、ボタンを押下します。
{555C8F44-B08D-424A-9C48-6D1E4D7689E4}.png
失敗メッセージが表示されることが確認できました。
{E88A837D-948E-4782-BE6D-AE1913A57F5F}.png

7. まとめ

今回はOutSystemsの日付形式のバリデーションについてまとめました。
TextTo~系のビルトイン関数はよく使いますが、TextToDateValidateは個人的に初めて存在に気づいた便利関数でした。
年月(YYYY/MM)形式はText型+正規表現でバリデーションを行いました。
どなたかの参考になれば幸いです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?