コボットPortal

データテーブルをマージ


2つのデータテーブルを結合する「データテーブルをマージ」アクティビティについてご紹介します。


1. アクティビティのプログラム名

RCA.Activities.Core.MergeDataTable


2.説明

Studio バージョン 2.0.2.0まで

  クイックアクセス: 「ツールボックス」 > 「データテーブル」 > 「データテーブルをマージ」

Studio バージョン 2.0.3.0から

  クイックアクセス: 「ツールボックス」 > 「コア」 > 「データテーブル」 > 「データテーブルをマージ」

2つのデータテーブルを結合するアクティビティです。

※動作を確認したコボットStudioのバージョン:2.2.0.2
※バージョンによって文言などが一部異なる場合がございます


3.プロパティ

プロパティ項目プロパティ名入力欄説明
オプションスキーマがない時の動作ドロップダウン選択マージしたいテーブルの列定義が異なる場合のマージ方法を選択。
「Add」…「ソース」「マージ先」に存在するすべての列で構成される。
「Ignore」…「ソース」のみに存在する列は無視する。
「Error」…「ソース」「マージ先」の列定義が異なる場合はエラー。
「AddWithKey」…「ソース」「マージ先」に存在するすべての列に主キー情報を追加し列定義を構成。
その他パブリックチェック項目チェックを入れるとログにデータが書き込まれるので、ログ上からデータが閲覧できるようになる。
※機密情報を取り扱う際には、十分ご注意くださいますようお願いいたします
(詳細は「プロパティ項目「パブリック」について」を参照)
表示名値を入力(String型)デザイナーパネルのアクティビティ名に反映される。
入力ソース
値を入力
(DataTable型)
「マージ先」のデータテーブルにマージされるデータテーブルを指定。
マージ先値を入力
(DataTable型)
「ソース」のデータテーブルのマージ先データテーブルを指定。


4.使い方(列定義が同じ場合)

マージしたい2つのデータテーブルが同じ列定義の場合、上の説明のように、「マージ先」のデータテーブルの後ろに「ソース」のデータテーブルが追加されます。

「データテーブルをビルド」で作成したデータテーブルに、同じ列定義のデータテーブル「addRateData」を結合しましょう。

「データテーブルをビルド」で作成したデータテーブル「rateTable」


●結合したいデータテーブル「addRateData」

アクティビティ「データテーブル > データテーブルをマージ」を、ツールボックスからデザイナーパネルにドラッグ&ドロップで配置します。

プロパティの「入力 > ソース」に、追加データとなるデータテーブルの変数「addRateData」を指定します。プロパティの「入力 > マージ先」に、追加先データテーブルの変数「rateTable」を入力します。

「ホーム > スタート」をクリック、または、「F5キー」押下で実行すると、データテーブル「rateTable」に「addRateData」のデータが追加されます。

※データテーブルを出力し確認する場合は、「データテーブルを出力」で文字列に変換し「1行を書き込む」で出力パネルに表示したり、「行ごとに処理」でメッセージボックスに表示してください。

※例では、マージ先に指定した「rateTable」をデータテーブルに出力することにより、元々の「rateTable」にソースに指定した「addRateData」が結合された内容が出力されています。


5.使い方(列定義が異なる場合)

マージしたい2つのデータテーブルの列定義が異なる場合、オプション「スキーマアクションがない時の動作」のプロパティ値により、マージ後の列定義が変わります。

以下は、「マージ先」データテーブルと「ソース」データテーブルの、プロパティ値別マージ結果になります。(※プロパティ値「AddwithKey」についてここではふれません。列の定義は「ソース」「マージ先」に存在するすべての列と主キー情報です。)

●「マージ先」データテーブル

社員番号氏名部署名
0001コボット001経理

●「ソース」データテーブル

社員番号氏名勤務地
0002コボット002本社


・プロパティ値が「Add」の場合

「ソース」「マージ先」に存在するすべての列が定義されます。追加された列の値は、規定値が設定されている列の場合は規定値で補完され、規定値が設定されていない場合はNullで補完されます。そのため、Null値を許可せず、かつ、規定値の指定がない列を補完する場合エラーとなります。

社員番号氏名部署名勤務地
0001コボット001経理
0002コボット002
本社


・プロパティ値が「Ignore」の場合

「ソース」のみに存在する列(この場合は「勤務地」)は無視されます。「ソース」に定義されていない列の値は、規定値が設定されている列の場合は規定値で補完され、規定値が設定されていない場合はNullで補完されます。そのため、Null値を許可せず、かつ、規定値の指定がない列を補完する場合エラーとなります。

社員番号氏名部署名
0001コボット001経理
0002コボット002


・プロパティ値が「Error」の場合

「マージ先」と「ソース」の列定義が異なる場合、マージされずエラーとなります。この例では、エラーとなります。

印刷
S
Shiori is the author of this solution article.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.