CData Software Blog

クラウド連携のCData Software の技術ブログです。

金蝶コネクタの利用手順:CDataSync

本記事では金蝶コネクタをCDataSyncへ追加する手順と、利用方法について解説します。

対応エンドポイントについて

今回対応したエンドポイント数は13、テーブル数は20です。

以下は金蝶(Kingdee)で使用しているSQLServer上のテーブル、エンドポイント、CDataで表現されるテーブル名をそれぞれマッピングしたものになります。

Kingdee Table Endpoint CData Table CData Sub-Table
t_Account Account.asmx Account AccountItemClass
t_Currency Currency.asmx Currency
t_Orgnization Customer.asmx Customer CustomerBarCodes
t_Department Department.asmx Department DepartmentBarCodes
t_ICItem Material.asmx Material MaterialBarCodes
t_MeasureUnit MeasureUnit.asmx MeasureUnit
SEOrder InduSaleOrder.asmx SaleOrder SaleOrderEntry
t_Stock Stock.asmx Stock StockBarCodes
ICStockBIll InStcokBill.asmx StockBill StockBillEntry
t_Supplier Supplier.asmx Supplier SupplierBarCodes
t_WorkCenter WorkCenter.asmx WorkCenter WorkCenterBarCodes

CDataSync での利用手順

金蝶コネクタの追加

この章では CData Sync へ金蝶コネクタを手動で追加する手順をご紹介します。 通常のコネクタアップロードで追加する方法についても順次対応していく予定です。
※2021年3月29日現在、金蝶コネクタをダウンロードすることが可能となりました。

金蝶コネクタの追加方法

CData Sync のコネクタ追加画面より「kingdee」と入力しますと、金蝶コネクタが表示されます。
f:id:sennanvolar44:20210329174713p:plain

あとはそのまま進んでいただくことで、金蝶コネクタを CData Sync に追加することができます。
f:id:sennanvolar44:20210329174955p:plain

f:id:sennanvolar44:20210329175112p:plain

金蝶コネクタの追加方法(アップロード偏)

こちらは CData サポートから直接コネクタを受けとった際のアップデート方法になります。
CData Sync にローカルにある金蝶コネクタをアップロードしてアップデートすることが可能になっております。
www.cdatablog.jp

金蝶コネクタのダウンロード(古い手順)
連絡済みのリンクより金蝶コネクタのダウンロードを行います。
ダウンロードしたzipファイルの中に以下赤枠のdll が入っています。
f:id:sennanvolar44:20201130114416p:plain

CDataSync へ金蝶コネクタを追加(古い手順)
CDataSync を停止後、以下のパスに先ほどのdll を格納します。
C:\Program Files\CData\CData Sync\www\bin f:id:sennanvolar44:20201130115042p:plain

次に以下パスにある Web.config に金蝶コネクタの情報を追記します。 C:\Program Files\CData\CData Sync\www\Web.Config

以下内容をDbProviderFactoriesの中に入れてください。

      <remove invariant="System.Data.CData.Kingdee" />
      <add invariant="System.Data.CData.Kingdee" type="System.Data.CData.Kingdee.KingdeeProviderFactory, System.Data.CData.Kingdee" name="CData ADO.NET Provider for Kingdee" description="CData ADO.NET Provider for Kingdee" />

f:id:sennanvolar44:20201130115307p:plain

追加作業は以上です。あとはCDataSync を起動してください。

金蝶への接続設定

接続設定画面に"Kingdee" と表示されているアイコンが金蝶コネクタになります。現時点では金蝶のロゴは未設定なので歯車のアイコンになっています。
f:id:sennanvolar44:20201130124833p:plain

接続設定内容は以下のように全ての項目に入力します。
f:id:sennanvolar44:20201130120544p:plain

ちなみにCData では日商様と同様に中国にある金蝶のデータを、日本の環境のCDataSyncからアクセスしております。 (今回はローカル端末にて検証)
金蝶のURL がローカルとなっていますが、裏でteraterm を起動しSSHポートフォワーディングしているため接続できております。

ジョブの作成

ジョブ画面にて「テーブルを追加」ボタンをクリックして対象テーブルを選択します。

f:id:sennanvolar44:20210311162457p:plain

差分更新について

今回開発対象のテーブルでは更新日時を保持していないため、差分更新は行われずに毎回洗替のジョブとなります。

ただし、いくつかのテーブル(Supplierなど)で日付項目を持っていますので、この項目を利用することで差分更新のような制御をかけることができます。

REPLICATE [Supplier_0310] SELECT * FROM [Supplier] WHERE [LastTradeDate] > '2021-03-01'  

自動的に日時を指定する場合は以下の関数を使用することで対応可能です。

REPLICATE [Supplier_0310] SELECT * FROM [Supplier] WHERE [LastTradeDate] > FORMAT(DATEADD('DD', -10, CURRENT_TIMESTAMP()),'yyyy-MM-dd')  

上記のような指定を行うことで、金蝶側でフィルタリングされたデータが返ってきます。なお、レプリケート先のSQLServer 側ではMARGE文が実行されるので、Keyが重複してもエラーにはなりません。

また、金蝶へのリクエストはほとんどのテーブルでwhere句の項目がフィルター項目として扱われます。
※補足:InStcokBill.asmxとInduSaleOrder.asmxでは金蝶の仕様によりフィルター項目を受け付けてなく、クライアント側でのフィルタリングとなります。

データ量が多いテーブルではこのような日付指定、もしくはWhere句で条件指定を行うことでパフォーマンスが向上できますのでご検討ください。

以上となります。