データベースにおける繰り返し検索の方法について

初心者です。ウェブ上のデータベースでキーワード検索(データベース上、フリーワード検索型)と複数条件(データベース上、スクロールタイプ型)を組み合わせ、繰り返しで検索する方法を教えていただきたいです。

今回、キーワードに対して2つの異なる条件を設定して検索(つまり変数3つ(キーワード1、条件1、条件2)の全組み合わせで検索したい)することを自動化したいと考えています。

我流のやり方で、繰り返し(各行)のアクティビティを三層構造にして、条件1、条件2をそれぞれ1層目、2層目の繰り返し(各行)にして、フリーワード検索を3層目の繰り返し(各行)にしたところ、一度目の検索では3つとも指定できたのですが、2回目以降の検索では、検索画面に戻るをクリックすると(或いは新しくブラウザを立ち上げると)初回に指定した条件がリセットされてしまうため、三層構造の1層目と2層目が設定されず、3層目のみの単なるフリーワード検索の繰り返しとなってしまいます。
上手いやり方があれば教えていただきたいのですが、ご教示いただけないでしょうか。

1 Like

おそらくループの中身が

条件1ループ
・条件1設定

条件2ループ
・条件2設定

フリーワードループ
・フリーワード設定
・戻る

となっていると思われます。

これを

条件1ループ
・条件1変数に条件1を保持

条件2ループ
・条件2変数に条件2を保持

フリーワードループ
・条件1設定
・条件2設定
・フリーワード設定
・戻る

とすれば、うまくまわるのではないかと思うのですが、いかがでしょうか?
※・条件1変数に条件1を保持の部分は繰り返し(各行)のrowの部分を使用すれば特に必要ないかと思いますが、分かり易さの為一旦変数に入れることをお勧めいたします。

2 Likes

分かりにくい説明にも拘らず正確にご理解頂きありがとうございます。

「条件1ループ
・条件1変数に条件1を保持」
→こちらのやり方(アクティビティ?)を教えて頂けますでしょうか。

1 Like

使用するのは代入アクティビティですが、質問したいことは他にあるような気がします。。。
おそらくそれほど大きくないとおもいますので 、ワークフローを上げてみませんか?
画像でもかまいませんので。。

1 Like

代入を使うのであれば、
cate_dtの代入の箇所に
cate = row(0) または row(“項目名”)
※cateはstring型の変数
※1列目が欲しい値の場合

以下reporttype_dt,year_dtも同様

もしくは変数を使用しないのであれば、

cate_dtの要素の変数を row -> row_cate等好きな変数名に変更
以下reporttype_dt,year_dtも同様にし

ブラウザーを開くのDo内で

row.item(“キーワード1”).ToString()と同様に
row_cate(“XXX”).ToString()
等で使用するとよいかと思います。

※row.item(“キーワード1”)とrow(“キーワード1”)は同じ意味となります。

1 Like

ありがとうございます。

「※cateはstring型の変数
※1列目が欲しい値の場合」

cate_dt, reporttype_dt, year_dtはいずれもデータテーブル型の変数で、いくつかの値が格納されています。それぞれのループで、一つ一つ上から抽出したいと考えており、そのやり方を教えて頂けますか。

そのため「もしくは変数を使用しないのであれば」は該当せず、変数を使わざるを得ないのではないかと考えています。

1 Like

繰り返し(各行)を使用することで1行毎のデータが要素に指定した変数に入っています。

※見せていただいたフロー上ではrow

また、フローを見る限りでは1つの文字としてしか使用していないように見えるのですが。。。

後は、繰り返し(各行)の考え方ですが、

テーブルが以下のようにあるとすると
列1 列2 列3
行1 A 1 あ
行2 B 2 い

1週目はrowに行1が入ってきます。
ので、row(“列1”)で”A”がとれ、row(”列2”)で"1"がとれます。

同様に2週目はrowに行2が入ってきます。
ので、row(“列1”)で”B”がとれ、row(”列2”)で"2"がとれます。

このrow自体が変数ですので、変数名を変更することで、複数ループの内側でも使用が可能となります。

すいません。わかりづらいですかね。。。

1 Like

説明は理解しています。フローでは例として一つの文字にしたところがあり、誤解を招いたかもしれません。いずれにしても説明が上手くできず失礼しました。いったん頂いた情報で何とかやってみたいと思います。ありがとうございました。