自動処理設定:「レコード検索」パーツ

レコードを検索するためのパーツです。大きく2通りの使い方があります。

有無による分岐

検索条件に一致するレコードが1件でもあった場合と1件もなかった場合で、
その後の処理が分岐します。
「レコード検索」パーツを使えば、レコード登録前にDBを検索し、既に同じデータが
ある場合には登録を行わないといった処理を作成できます。

データの受け渡し

検索結果があった場合はそのデータを他のパーツで使用することができます。
「ファイル生成」パーツで使えば検索結果をExcelファイルに出力でき、
「レコード登録」パーツなら検索結果をDB内にレコードとして保存できます。
このように、データの受け渡し役として使うことができます。

補足

受け渡すデータについて

検索結果のレコードの値そのもののほかに、
検索結果の集計情報(レコード件数/合計)も受け渡すことができます。

※検索結果の集計情報を受け渡す場合、集計可能な検索結果の上限件数は
 5,000件です。

また、集計対象の項目により、以下の通りカウント方法が異なります。

  • 集計項目がヘッダ項目 : レコード件数をカウント
  • 集計項目が明細項目 : 明細行数をカウント

 

詳細設定の手順

  1. 検索対象を指定します。
    1594_seihin_01_20241210







    通常は「新しく検索する」を使用します。
    「直前の処理までの検索から絞込み」は、このパーツ以前に検索した結果を、
    さらに絞り込みたい場合に使用します。

  2. 検索したいDBを指定して「次へ」をクリックすると、下記のような画面になります。
    1594_seihin_02_20241210











    ここで、レコードを検索する検索条件を指定します。
    1594_seihin_03_20241210


    「検索結果の並び順」では検索結果が複数あった場合のレコードの並び順を選択します。1594_seihin_04_20241210



    1件まで絞込みのチェックボックスをONにすると、条件に該当する検索結果が複数
    あっても、検索結果の並び順で指定した項目で並べ替えて先頭に来るレコードだけを
    取得できます。

検索条件を指定し、「確定」ボタンをクリックすると、自動処理パーツ設定画面には
下記の様な形で表示されます。
1594_seihin_05_20241210








検索結果があった場合の処理は下に、無かった場合の処理は右側に追加していきます。

下方向の処理では、このパーツの検索結果に含まれる情報を使用できます。


検索結果の取得単位

検索対象のデータベースに明細がある場合、検索結果の取得単位を選択できます。

取得単位とは

明細項目があるレコードは、情報を入れる箱(レコード)の中にさらに複数の情報(明細)があるという入れ子の構造になっています。この入れ子構造の扱い方が、取得単位です。

下図のチェックを外した場合はレコード単位で、付けた場合は明細単位で検索結果を
取得することになります。
1594_seihin_06_20241210


レコード単位で取得する場合の検索条件

「検索結果を明細単位で取得する」のチェックを外しておくと、検索結果はレコード単位で取得することになります。

この場合、検索条件を明細項目にどう当てはめるか、明細条件のラジオボタンで選ぶことができます。
※明細条件と明細単位(取得単位)は全く違うものですので、ご注意ください。
1594_seihin_07_20241210






「明細条件」欄で 「明細行のいずれかが一致」 にチェックを入れると、
条件に合致する
明細行を1行でも含むレコードはすべてヒットします。


【設定例】
1594_seihin_08_20241210







【例】注文DB

1594_seihin_09_20250805








「明細条件」欄で 「明細行がすべて一致」 にチェックを入れると、

すべての明細行が設定した条件に合致したレコードのみ取得します。

【設定例】
1594_seihin_10_20241210







上記の設定で検索すると、
明細行の「商品名」が すべて「椅子」であるレコードだけが
ヒットします。

【例】注文DB
1594_seihin_11_20250805






上記のような2つのレコードがある場合、明細行の商品名がすべて「椅子」である下の
レコードだけが検索結果に
なります。

【使用例】重複レコードのチェック

あるDBに選択レコードと同じ値のレコードがあるかどうかを調べる処理は、
「レコード検索」パーツのよくある使用例です。
同じデータを2つ重複して登録してしまわないよう、「レコード検索」パーツを事前チェックに用います。

処理の流れは下記の通りです。
1594_seihin_12_20241210









【検索条件】
重複レコードをチェックする際は、比較したい2つの項目を演算子「等しい」で比較します。

【検索結果による分岐】
「レコード検索」パーツは、合致する結果の有無でその後の処理が分岐します。

  • あった場合は下に伸びる青いルート
    ⇒既存レコードの更新(例:注文回数を増やすなど)処理 (※)

  • なかった場合は右に伸びる赤いルート
    ⇒新規レコードの登録(例:顧客基本情報の新規登録など)処理

このような分岐が典型例の1つです。

※条件に合致したレコード(今回の例であれば重複レコード)を後続の
 「レコード更新」パーツで更新する場合、「1件まで絞込み」の
 チェックボックスをONにする必要があります。
 取得した複数件のレコードに対して一括で更新を行うことはできません。
 取得した1件のレコードのみ更新できます。


【例】
“注文DB”の「顧客名」 が、“顧客DB”の「顧客名」 と等しい
(※ただし、“顧客DB”は【選択レコード】があるDBのリンク先)

【注文DBを検索するレコード検索パーツの絞込み条件設定画面】
1594_seihin_13_20241210







【使用例】検索結果でファイル生成

ここでは請求書の明細を例にとって、検索パーツで抽出した複数のレコードをExcelに流し込む場合の設定方法をご案内します。
Excelへの流し込みの設定方法の詳細は、自動処理設定:「ファイル生成」パーツの記事をご覧ください。


環境の例

下記のご説明は、こちらのような環境を前提にしています。
1594_seihin_14_20241210









また、それぞれのDBには、下記のようなデータがあると仮定します。
1594_seihin_15_20251216








明細DBでは、注文IDを使ってどの注文に関する明細かを管理しています。
注文DBと明細DBを使用して、下記のようなExcelの請求書を作成してみましょう。
1594_seihin_16_20241210


















※「###●●●###」となっている部分にデータが流し込まれます。

「レコード検索」パーツ

  1. 注文DBで自動処理新規追加をクリックして、自動処理の追加を行います。

  2. 自動処理名を入力し、「確定」ボタンをクリックします。

  3. 次に「パーツ設定」ボタンをクリックします。ここでは下記2つのパーツを作ります。
    #1. レコード検索:ボタンをクリックした注文の内容を、明細DBから検索して集める
    #2. ファイル生成:検索した結果(明細DBのレコード)をExcelの雛形へ流し込む

  4. まず、「レコード検索」パーツを追加します。

  5. 「レコード検索」パーツの詳細設定で、検索対象となるDBを指定します。
    1594_seihin_17_20241210






    ここでは明細DBから明細情報を検索しますので、上記のように明細DBを指定します。

  6. 続いて検索条件を指定します。
    1594_seihin_18_20241210









    集めたいのは、ボタンをクリックしたレコード(「選択レコード(注文DB)」)に
    リンクしている明細のため、DBリンク項目とキー項目を上記のように登録します。

    このように、<DBリンク項目が><リンク先のキー項目と><等しい>という検索条件は「レコードとリンクしているレコードを検索する」という意味になり、よく用います。

    今回は、検索によってリストを作りたい(複数ある明細を拾い集めたい)ため、「1件まで絞込み」のチェックは付けません。
    (チェックを付けると、先頭の1件しか取得できません。)

「ファイル生成」パーツ

  1. 次に、Excelへの流し込みを行うための「ファイル生成」パーツを追加します。

  2. 「ファイル生成」パーツの詳細設定で、生成するファイルの設定を行います。
    1594_seihin_19_20241210









  3. 雛形のExcelファイルを指定して、「読込」ボタンをクリックします。
    1594_seihin_20_20241210








  4. 各キーワードに流し込むデータを指定します。
    1594_seihin_21_20241210









    上記の例では、「商品コード」から「金額」までの内容が「レコード検索」パーツで
    取得した“明細DB”のデータで、それ以外は“注文DB”のデータを流し込むように設定
    しています。

    また、「商品コード[複]」というように、[複]という表示がされていますが、
    これは対象となるレコードが複数件になることを意味します。

    このような場合には、雛形中の当該キーワードの下方向に向かって、
    検索にヒットしたレコードの件数分だけデータが流し込まれます。

これで自動処理の設定は完了です。


この後、メニューの設定を行って、先ほど作成した自動処理のボタンを表示するように
します。すると、以下のように注文DBのレコードの横にボタンが表示されます。
1594_seihin_22_20250805





ここで、注文ID:00000003のデータの「請求書を作る」ボタンをクリックすると、
Excelファイルが指定したフォルダ内に作成されます。

作成されたファイルを見ると、下記のようになっています。
1594_seihin_23_20241210













下記の明細DBのデータのうち、注文IDが00000003のものが請求書の明細としてExcelに
流し込まれています。
1594_seihin_24_20250805