ページビューの合計

2022年4月19日火曜日

#HEI #Replication の対象レコードを絞りこむ

 This time I will describe how to narrow down the target data in HEI's Replicaton.

In DirectTransfer I specified it in a SQL statement, but in Replication it seems to be set in a different place.


みなさま、こんにちは。
いい気候になってきましたね。コロナも多少下火?になりつつありますので、ぜひ感染対策を十分に行った上で、楽しいGWを過ごしたいものですね。

さて、まずは告知からです。

2022年ノーツコンソーシアムの各研究会が今月から本格的にスタートします。
直近では、

  • 4月22日 大阪研究会
  • 4月26日 ザ・ノーツ研究会
  • 4月27日 事例研究会

その後も続々と予定がリリースされるかと思います。

研究会にエントリーされていない方は、まだまだ間に合いますので、こちらから登録ください。
研究会の見学も随時可能ですので、エントリーするかお悩みでしたら、一度のぞいてみてください。その場合は事務局へメールでご相談ください。


中でも大阪研究会についてさらに一言・・・

昨年リリースできなかった大阪研アプリ。
単に1年延期したのではなく、中身(設計要素)を掘り下げた発表資料を作ろうと意気込んでいます。
もちろん完成品は皆様にダウンロードできるように致しますが、せっかくなので自社向けにカスタマイズしたいと思われる方もおおいはず。
その為には大阪研アプリの奥底をいっしょにのぞいてみませんか?

今回は会場として北新地で少し広めの貸会議室を準備しています。
もちろんリモートも大歓迎ですので、今週金曜、よろしくお願いします。

さて前置きが長くなりましたが、今回もHEIに関する情報です。

先日はDirectTransferというソースデータベースから直接対象データをノーツに取り込む手順を紹介しました。

DirectTransferでは、SQL文での選択値が必須のため、こちらにSELECT文を書く事で、呼び込むデータを制御することができました。

すべての文書を取り込む場合は、

Select * FROM [テーブル名]

たとえば、ABCというフィールドの値が「1」のもののみ取り込む場合は、

Select * FROM  [テーブル名] WHERE ABC='1'

と記述します。


DirectTransferは文字通りソースデータベースからデータを直接取り込むため、何度も同じ処理を行うと、データが重複して保存されることになります。

弊社ではこれを回避するため、対象データベースに全件削除のエージェントを組み込み、その後にDirectTransferを行うことで回避させていました。

単に参照するだけのテーブルでしたらこれでも問題ないのですが、ActivityにはReplicationという機能も存在しております。

これを利用すれば、キーを元に更新データのみが取り込まれるのでは・・・。
となると2回目以降の実行時間も減る可能性があります。

ということでこちらを利用しようと思ったのですが、 なんとReplicationにはSQL文を書く場所がないのです!!


今回取り込む対象は400万件の受注データのうち、直近2カ年分を対象にしたい。

いろいろと調べたのですが、見つけられずまたまたサポートへ・・・。

今回も急ぎではなかったため、緊急度「低」で連絡しました。
少し手間取ったのか、3日かかりました。

頂いた回答は以下の通りです。

どうやらいくつか方法はありそうです。
さらに・・・


なんと、今回の内容を説明するための動画を用意して頂けたのです。
文面だけだとつかみにくい内容も、動画があると格段に理解が進みます!!

この中には、さらにHEI起動時にオプションとして値を提供するヒントも書かれてありました。
・・・こちらは次のステップでやろうと考えていたことでした。
例えば・・・
当日の受注データ一覧から、指定した番号のデータを抽出し、ワークフローに繋げるような使い方を予定しています。


早速設定をトライしてみました。
DirectTransferではSQL文を利用しましたので、同じようにConditional Clause for Sourceに

Select * FROM  [テーブル名] WHERE 受注日>20210100

と設定してみたのですが、うまく取れませんでした。

よくよく読むと、SQLやNotesの式と書かれています。
ということで、以下の式を入れてみました。

受注日>20210100

すると、無事2021年元旦以降のデータのみがノーツデータベースに取り込まれてくれました。(対象がIBMiで、日付が日付形式でないため)

至って簡単なのですが、知らなければできない設定ですね。

無事、Replicationが動き始めました。

レスポンスなどは今後様子をみていきたいと思います。


以上、簡単ではありますが、今回はHEIのReplication Activityで値をフィルターする手順について記載しました。

まだまだやりたいことはありますので、しばらくはHEIが多くなりそうです。

0 件のコメント:

コメントを投稿