本文へ移動
Wagby11
マニュアルのグループを選ぶ

WAGBY11 MANUAL / 11

検索条件に初期値を設定する

よく使う部門や日付範囲を入れた状態で検索を始められます。利用者は初期条件を変更して、必要な対象へ絞り直せます。

最終更新日:

検索・全文検索の小目次へ

1. このページで伝える機能

よく使う部門や日付範囲を入れた状態で検索を始められます。利用者は初期条件を変更して、必要な対象へ絞り直せます。

2. Wagby11で実現できること

業務文書検索は、部門「営業」と今月の公開日を初期条件にしています。この条件を反映して最初の検索を行います。

営業部門と今月の公開日を初期条件にした結果。
営業部門と今月の公開日を初期条件にした結果。

表示後は条件を変更できます。毎回同じ入口から固定の対象を探したい場合は、次の名前付き検索ビューを使う方法もあります。初期値は利用者が変更できる検索候補です。

2.1 検索初期値で使える式と関数

検索初期値も、登録・更新の初期値や計算・導出項目と共通の式の文法と関数を使います。例えば、今日・今月・先月の日付範囲や、ログオン利用者の情報を検索条件の初期候補にできます。

初期候補にしたい内容式の例結果・使い方
今日の日付#today()日付範囲の開始・終了の両方に指定すると、本日だけを検索する初期条件になります。
現在の日時#now()日時型の検索条件の初期値に使えます。
今日の7日前から今日まで開始:#moveDay(#today(), -7)
終了:#today()
暦日で7日前の日付を求め、範囲の開始にします。
今月の初日から末日まで開始:#boMonth(#today())
終了:#eoMonth(#today())
このページの公開日検索で使う式です。
先月の初日から末日まで開始:#boMonth(#today(), -1)
終了:#eoMonth(#today(), -1)
第2引数の−1で、前の月へ移動します。
ログオン利用者の情報#userId()、#userName()、#userEmail()利用者ID・名前・メールの検索候補に使えます。いずれも文字列を返すため、設定先の型を合わせます。
名前がない場合の代わりの値#nvl(#userName(), "")利用者名が未設定なら空文字にします。
文字列を組み立てる#concatenate("担当:", #userName())固定文字列と関数の結果を連結し、文字列の検索候補にします。
小数の数値条件#decimal("10000.00")十進小数の10,000.00を返します。小数の数値範囲の開始などに指定できます。
3営業日前の日付#workday(#today(), -3)休日サービスを構成した環境で使えます。土日・休日を除いて求めます。

上記は代表例です。検索初期値では、項目を参照しない範囲で、文字列・数値・日付・利用者・休日などの関数を組み合わせられます。全60関数の引数・結果・丸め・未設定値の規則は関数と式の仕様:使える関数の一覧を参照してください。

2.2 式の書き方

関数は#today()のように先頭に#を付けます。関数名の大文字・小文字は区別します。文字列は引用符で囲み、小数は#decimal("0.1")のように記述します。式全体を#{...}や${...}で囲む必要はありません。

四則演算や余り、==・!=などの比較、and・or・!、条件 ? 値1 : 値2による条件分岐も使えます。検索初期値では、項目名の代わりに固定値や関数の結果を組み合わせます。例えば#isBlank(#userName()) ? "担当未設定" : #userName()は、名前が空なら「担当未設定」、それ以外は利用者名を返します。

整数同士の割り算は整数になり、丸め桁数を指定する場合は#divideを使います。詳しい演算子・型・nullの扱いは式の書き方、文字数や深さの上限は式に書けないことと上限で説明します。

日付・日時の関数は、処理の基準時刻とenvironment.timezoneに従います。同じ初期化処理内の#today()と#now()は基準時刻を共有します。休日関数も検索初期値では使えますが、休日サービスと辞書が必要です。これらは検索条件の初期候補を作る関数であり、検索結果を絞り込むクエリの中で実行する指定ではありません。

3. AIへの指示例

最小限の指示例

文書検索は、最初から営業部門の今月分を表示してください。

AIは部門のコードや対象の日付、月の開始・終了を類推して補います。初期候補にしたいのか、常に固定する条件にしたいのかも伝えます。

より詳細な指示例

SearchDocument.departmentのinitial.search.valueを営業、publishedDateのsearch.fromを#boMonth(#today())、toを#eoMonth(#today())にしてください。初期条件で検索した後、利用者が条件を変更できることを確認します。検索初期値の式から項目値は参照せず、公開日の開始・終了をそれぞれ#today()から求めてください。業務のタイムゾーンを確認し、表示後の条件変更で初期値を自動再計算しない動作も確認してください。
既存のモデル・項目・主キー・データ・権限を保持し、Wagby11のguide・referenceを確認してください。新規モデルには自動採番の主キーと予約属性version、必要なCRUD権限を用意します。メニューと一般利用者向け操作マニュアルを更新し、生成・ビルド完了後に起動して動作を確認してください。

4. 編集されるAppSchemaの例

以下は関連する定義の抜粋です。構文を覚えなくても、何をどう探したいかをAIへ伝えられます。

ui:
  fields:
    - name_en: department
      initial:
        search: { value: 営業 }
    - name_en: publishedDate
      initial:
        search:
          from: { expression: '#boMonth(#today())' }
          to: { expression: '#eoMonth(#today())' }

固定値・式と、範囲の開始・終了

営業部門のような固定候補はvalue、日付や利用者情報から求める候補はexpressionで指定します。同じ指定箇所にvalueとexpressionを両方は書きません。

文字列や真偽値など一つの値で検索する項目では、initial.search.expressionへ式を指定します。日付・日時・数値などの範囲検索では、initial.search.from.expressionとinitial.search.to.expressionを使います。片方だけの指定もできます。上の例では、公開日の開始と終了をそれぞれ今月の初日・末日にしています。

検索初期値の式からは項目値を参照できません。登録・更新・コピーの初期値との違いは初期値の用途ごとの制約と評価順序も参照してください。

5. 参考資料

guide:検索画面
designer/docs/appschema/html/guide/07-screens/02-search.html
guide:初期値
designer/docs/appschema/html/guide/05-input-control/01-initial-value.html
reference:式言語
designer/docs/appschema/html/reference/16-expression-language.html
reference:利用できる関数
designer/docs/appschema/html/reference/17-expression-functions.html
reference:ui(画面初期値)
designer/docs/appschema/html/reference/10-ui.html