マニュアル

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

作成者: 非表示執筆者|2024.12.04

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

有無による分岐

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

データの受け渡し

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

 

詳細設定の手順

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








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

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












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



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



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

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









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

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


検索結果の取得単位

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

取得単位とは

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

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



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

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

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







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


【設定例】








【例】注文DB










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

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

【設定例】








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

【例】注文DB







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

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

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

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










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

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

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

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

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

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


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

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








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

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


環境の例

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










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









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



















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

「レコード検索」パーツ

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

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

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

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

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







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

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










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

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

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

「ファイル生成」パーツ

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

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










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









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










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

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

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

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


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






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

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














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