fc2ブログ

サブフォームを含む文書のReplication

DB設計でサブフォームはよく使っていますが、たまたまLEI で対象文書を扱ったことがありませんでした。先日、OracleからNotesへのReplicationActivityを作成し実行すると、"invalid field"エラーが発生。悩んだ挙句、ReplicationActivityのTagetFieldを1つ消しては実行を繰り返して、計算結果サブフォームが原因とわかりました。次にActivity内に記述箇所を探すが無い。でも何度もActivity内を探す。答えはNotes Connectionの中にありました。

NotesConnection

文書のデータ転送で、何故Connectionにあるのか?Data Transformationも同様で本来はActivityにあるべきでは?Activity内にあればConnection数が無駄に増えなくてすむのに。
でも、すぐに見つかると思い、ヘルプを探さなかった私が一番悪い。
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

ReplicationActivityでSQL関数を

SELECT SYOUHIN_C
          , KEIKAKU_YYMM
          , TO_CHAR(KIGEN, 'YYYY/MM/DD')
          , NVL(URIAGE_KINGAKU, 0)
  FROM TB_URIAGE

上記のOracleSQLをLEI8.5で記述すると
ReplicationActivity
となるはずが、保存するとMappingのField項目が
ReplicationActivity
となってしまい、「MappingとSourceのField数が違うよ!」と怒られてしまう。
原因は、Field項目の値の分離記号にカンマが含まれているから。今までのVerのときも、私は分離記号にカンマを外すカスタマイズをしています。
ReplicationActivity
メーカーもLEI開発時にSQLの関数は想像できると思うのですが。他では、UI画面の雑な作り(開発元はユーザーのお手本や夢を持たせる作りが絶対と思う)、日本で売っておきながら日本語表記されていないなど許せない点が多々あります。

とは言っても、個人的にLEIは非常に気に入っていて重宝しています。RDB連携以外でAgentのスケジュールも全てLEIで行っているため、一元管理でき運用が簡単になります。
と書きながら、一元化できるAgentスケジューラが無いのが異常?

テーマ : プログラミング
ジャンル : コンピュータ

ReplicationActivityで複雑なSQLを

現在、Domino8.5 マイグレーションに奮闘中。その際にベンダーがLEI Activityを見て、複雑なSQLの記述を知らなかったようなので載せておきます。

LEI がRDBに直接更新しているわけではなく、ドライバを経由している。ということは、例えばReplication Activityのフォームの各項目からSQL文を生成しているだけ。
フォームの各項目とSQL文(Oracle)の関係は下記のようになります。

ReplicationActivity

このようにフォームに従い項目にセットだけでは、Source側がTargetに合ったテーブルでなくてはならない。

ReplicationActivity

では次のようなSQL、部門の月別売上テーブルがあり部門マスタから部門名を付けてレプリケーションする場合はどのようにActivityに記述するのか?

ReplicationActivity

その場合、下記のようにTable項目に記述すると上手くいきます。

ReplicationActivity

あまりに長いSQL文の場合、OsqleditなどでSQL文をテストしてからActivityに移します。そこでSQL文をばらすとメンテが大変なため、作ったSQL文をTable項目にコピペしてます。これをSQL文にすると
SELECT YYYY_MM, BUMON_C, BUMON_MEI, MM_KINGAKU FROM(
SELECT U.YYYY_MM, U.BUMON_C, B.BUMON_MEI, U.MM_KINGAKU
FROM TB_MM_URIAGE U
LEFT JOIN TB_BUMON B ON B.BUMON_C = U.BUMON_C
WHERE U.BUMON_C IN ('001', '002')
ORDER BY U.YYYY_MM, U.BUMON_C)
なってしまいます。
ReplicationActivityの記述は
ReplicationActivity

効率良くないですが、照会データのフォーマットや条件は会社の変化に対応して変わりカスタマイズがあると考えてやむなし。いっそSQL文を入力できた方が便利なのですが。

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

ピヨパパ

Author:ピヨパパ
静岡市のエンドユーザーSE。
最近はDominoの開発ばかりでうんざり。
是非気軽にコメントして下さい。

FC2カウンター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる