HomeRPAブログページその他【Tips】DBステップでデータ登録/参照時に任意の主キーを利用する

BizRobo!ブログ

 今回のTipsは、DSのDBステップに関する内容です。

 2年前の10.4導入時に疑問を解決して以来、今更ながらに引っかかったのでTipsとして残しておきます。

 ハマった内容は、「DBステップでデータ参照/参照時に任意の主キーを利用する」方法です。

 ちょっとしたことですが、ハマるとなかなか抜け出せない沼のため、もし同じ様なことをしようとしている方の参考になると幸いです。

 

 まずは、BizRobo!のDBステップのおさらいを簡単にしましょう。

 基本的には「タイプ」ファイルを利用して、テーブルを参照/登録/更新/削除を実施します。
 この際、SQLで主キーにあたる個所は「タイプ内に定義されたキー」がデフォルトとして利用されます。

DBステップ

 

 「タイプ内に定義されたキー」とは?と思ってしまいますが、タイプ作成時の項目「データベースキーの一部」というチェックボックスのことを指しています。
 こちらをチェックすることで、選択した項目はDBステップでは主キーとして扱われます。

キャプチャ タイプ

 

 次に、BizRobo!で利用するテーブル構成を確認してみましょう。
 DSのメニューバー「ツール」-「データベーステーブルの生成」にDBテーブルを生成するためのSQL生成ツールがあります。
 自動生成されたSQLを見ると、タイプで設定していない項目が7つ(赤枠内)確認することができます。
 これらの項目は、BizRobo!で登録/更新日時を管理するために利用されます。(ロボットで意図的に利用することも可能です)
 また、このテーブルの一意性を担保する主キーは「PrimaryKey」に該当し、「ObjectKey」が割り当てられています。

DBステップ2

 

 ここで1つ疑問が湧くかと思います。
 「データベースキーの一部」は、タイプ内の複数項目で設定が可能なのに主キーは「ObjectKey」1つなのか?ということです。
 BizRobo!のDBステップでは、「データベースキーの一部」が設定された項目のデータを文字列として結合し、ハッシュ値?に変換する仕組みを利用し、「ObjectKey」が生成されます。
 Kofax RPA のヘルプ ~キーの計算~

 以下のサンプルでは、no=99をObjectKeyに変換した結果です。

キャプチャ7

 

 注意点は、タイプ変数の指定項目に正しいデータが格納されている状態でしか正しいObjectKeyは生成されないことです。
 データが変われば、「キーの計算」の出力結果が異なり、検索エラーとなります。

キャプチャ8



 と、簡単なおさらいはここまでにして!

 ここからが、今回の「DBステップでデータ参照/参照時に任意の主キーを利用する」についてのお話です。
 ObjectKeyを自動生成させずに、指定したデータを主キーとして扱う方法をご紹介します。

 設定は至極簡単です。
 各DBステップの「タイプ内に定義されたキー」を変更する、それだけです。

キャプチャ4


 1データのみを主キーとする場合は、キーを「変数」に変更し、利用するタイプに含まれる項目を1つ選択してください。
 そうすると、「ObjectKey」が指定した項目の値(今回は、99)で登録されます。

キャプチャ5


 複数のデータを主キーとしたい場合は、「エクスプレッション」や「コンバータ」を利用して、主キーにしたい文字列を作成します。
 今回はエクスプレッションを利用して、2つの値に区切り文字を足して1つのデータにします。
 そうすると、エクスプレッションで加工したデータが「ObjectKey」として登録されます。

キャプチャ10

 

 もし設定変更後に上手く動かない際は、1度ロボットを閉じて開き直しましょう。

 今回は主キーを任意に設定する方法をご紹介しましたが、「キーの計算」ステップがあるためあまり役立つ機会はないかもしれません。
 「データベース照会」や「SQL実行」で手動で生成し実行する際には役立つ情報なので、記憶の片隅にでも留めておいてください。

 ではでは、次回のTipsもお楽しみください。

大阪本社
〒541-0056
大阪市中央区久太郎町2-2-7 山口興産堺筋ビル3階  アクセスマップ
TEL:06-6266-0440   FAX:06-6266-0450