マッピングソースデータ設定
概要
ソースデータは、データベース、WEB Service/API、Salesforce、CSV、Excel、JSON、XMLファイルから選択できます。
ターゲットデータへの接続設定は、事前にコネクション設定画面で行ってください。
設定

データベース
テーブル

| No | 項目 | 説明 |
|---|---|---|
| 1 | コネクション | コネクション設定画面で設定したコネクションを選択してください。 |
| 2 | タイプ | RDBコネクションを選択した場合、ソースタイプとしてテーブルまたはクエリを選択できます。 |
| 3 | テーブル | タイプに「テーブル」を選択した場合、RDBのテーブルとビューの一覧が表示されます。リストから該当するオブジェクトを選択してください。 |
| 4 | 取得方法 | 全件:テーブル内のすべてのデータを取得します。 条件指定:指定した条件に一致するデータのみを取得します。 差分取得:前回取得以降に更新されたデータのみを取得します(更新日時カラム/Oracle SCN の設定が可能)。詳細は以下で記述 |
| 5 | データ参照 | 既存のデータを参照する画面を開きます。 |
| 6 | 更新ボタン | テーブル一覧の最新情報を取得します。 |
差分取得(取得方法)
前回取得以降に更新されたデータのみを取得します。
Oracle/SQL Server/MySQL/PostgreSQL/BigQuery/Snowflake/Salesforce に対応しています。

| No | 項目 | 説明 |
|---|---|---|
| A1 | 更新日時カラム | 差分取得の判定に使用する基準カラムを指定します。更新日時カラムに加えてOracle SCN(ORA_ROWSCN 等)を使用する設定も可能です。指定した基準値をもとに、前回取得以降に更新されたデータを抽出します。 |
| A2 | 最終更新日時 | 前回の取得処理で使用された最終基準値(最終更新日時/最終SCN)を表示します。初回実行時は未設定となり、実行後に自動設定されます。 |
| A3 | オーバーラップ時間 | 差分取得時に、最終基準値(最終更新日時)から一定範囲を重ねて取得します。コミットタイミングによる取得漏れを防止するために使用します。Oracle SCN を使用する場合は取得漏れが発生しないため、設定は不要です。 |
| A4 | 手動設定 | 最終基準値(最終更新日時/最終SCN)を手動で設定します。再取得や特定時点からの差分取得を行いたい場合に使用します。 |
差分取得ウォーターマーク設定
差分取得に使用するウォーターマークを確認・変更する機能です。
ウォーターマークをクリア、または指定した日時(Oracle SCN 使用時は自動変換)に設定することで、差分取得の開始点を調整できます。
UTC 表示がない場合は、接続先データベースの LOCAL 時間として扱われます。

| No | 項目 | 説明 |
|---|---|---|
| B1 | 現在のウォーターマーク | 現在保存されている差分取得用のウォーターマークを表示します。更新日時ベースの場合は日時、Oracle SCN ベースの場合は SCN 値が管理されています。 |
| B2 | ウォーターマークをクリア | 既存のウォーターマークをクリアします。次回実行時は初回実行扱いとなり、全件取得を行います。 |
| B3 | 指定時刻に設定 | ウォーターマークを指定した日時(または Oracle SCN 相当)に設定します。特定時点から差分取得を再開したい場合に使用します。 |
| B5 | 新開始日付 | 差分取得の開始日付を指定します。Oracle SCN を使用する設定の場合、この日時は内部的に Oracle SCN に自動変換されます。 |
| B6 | 新開始時刻 | 差分取得の開始時刻を指定します。指定した日付と組み合わせて、差分取得の開始基準として使用されます。 |
| B7 | タイムゾーン | 指定した日時のタイムゾーンを示します。UTC 表示がある場合は UTC 時刻として扱われ、表示がない場合は接続先データベースの LOCAL 時間として解釈されます。 |
| B8 | 適用 | 指定した内容でウォーターマークを更新します。Oracle SCN 設定時は、指定日時を Oracle SCN に変換し、その SCN を差分取得の開始点として保存します。 |
| B9 | キャンセル | 変更内容を破棄し、ウォーターマークを更新せずに画面を閉じます。 |
クエリ

| No | 項目 | 説明 |
|---|---|---|
| 7 | クエリ | ソースデータの取得方法としてSQLを使用したい場合、クエリを選択してください。 |
| 8 | クエリ内容 | データ抽出のためのSQLを記述してください。 例: SELECT EMPID , EMPNAME , DEPT_CODE FROM HR.EMP WHERE DEPT_CODE = '0003' |
バインド変数の設定
Simple Data Integrator では、あるマッピングの SELECT 結果を、別のマッピングの入力(バインド変数)として使用できます。これにより、マッピング間で柔軟かつ動的なデータ連携が可能になります。
機能概要
前段マッピング(インプットマッピング)の SELECT 結果を、後段マッピングのバインド変数に設定することで、その値をもとに動的なデータ処理を実行できます。
また、複数のパラメーターや複数行のインプットにも対応しています。
設定手順
1. データ抽出の条件のフィルターまたはクエリ内容にバインド変数を記述します。
| No | 項目 | 説明 |
|---|---|---|
| 4 | フィルター | データ抽出の条件がある場合は、WHERE 句にバインド変数を使用してください。 例: WHERE UPDATE_TIME >= :latest_date |
| 7 | クエリ内容 | データ抽出のための SQL に、適切な形式でバインド変数を記述してください。 例: SELECT EMPID, EMPNAME, DEPT_CODE FROM HR.EMP WHERE DEPT_CODE = :DEPT_CODE |
※ データベースの種類によってバインド変数の記述方法が異なります。以下の表を参照してください。
データベース別 バインド変数の使用形式
| データベース | バインド変数の形式 | 例(備考) |
|---|---|---|
| Oracle | :param |
SELECT * FROM users WHERE id = :id AND status = :status |
| SQL Server | @param |
SELECT * FROM users WHERE id = @id AND status = @status |
| PostgreSQL | @param |
SELECT * FROM users WHERE id = @id AND status = @status |
| MySQL | @param |
SELECT * FROM users WHERE id = @id AND status = @status |
| DB2 | @param |
SELECT * FROM users WHERE id = @id AND status = @status |
| ODBC | ? |
SELECT * FROM users WHERE id = ? AND status = ? |
2. バインド変数の詳細設定を行います。

「バインド変数設定」ボタンをクリックすると、バインド変数の詳細設定画面が開きます。

| No | 項目 | 説明 |
|---|---|---|
| P1 | バインド変数の値 | バインド変数の値の設定方法を選択します。 入力マッピング出力を使用(バインド値を渡す) 入力元マッピングの結果を使用して、各パラメータに値をバインドします。 マッピングで取得した値が、SQLの条件や引数として動的に渡されます。 使わない(固定SQLで実行) 入力マッピングは使用せず、SQLに定義された固定値やDB固有の変数をそのまま使用して実行します。 |
| P2 | 入力元マッピング | バインド変数の値を取得する入力元のマッピングを選択します。 |
| P3 | 処理単位 | 全体をまとめて処理する 後続処理は1回だけ実行されます。 入力マッピングのデータをループして順次データ取得を行い、その結果を一旦ローカルに蓄積します。 すべてのデータ取得が完了した後、まとめてターゲットDBの更新やファイル出力などの後続処理を実行します。 1行ずつ処理する(繰り返し) 後続処理はレコードごとに実行されます。 入力マッピングのデータをループし、1行ごとにデータ取得を行い、その都度ターゲットDBの更新やファイル出力などの後続処理を実行します。 |
| P4 | 入力カラム | 該当パラメータにバインドする値を持つカラムを指定します。 |
| P5 | バインド | 当パラメータを入力カラムの値にバインドするかどうかを設定します。 チェックを有効にすると、選択した入力カラムの値がパラメータにバインドされ、データ取得時の条件値や引数として利用されます。 チェックしない場合はバインドされず、DB固有の変数として実行されます。 ※本項目は SQL Server を使用している場合のみ選択可能 です。 |
| P6 | パラメータ型 | バインド変数のデータ型を設定します。 |
| P7 | グループフィルター | グループフィルターを使用してマッピングを絞り込むことができます。グループフィルターの選択は必須ではありません。 |
CSVファイル

| No | 項目 | 説明 |
|---|---|---|
| 11 | CSVファイル名 | 取込するCSVファイル名を入力します。 ファイルパターンで設定したい場合は、「対象ファイル詳細」ボタンを押して詳細設定を行ってください。 |
| 12 | 対象ファイル詳細 | 複数のCSVファイルを取込対象にしたい場合は、「対象ファイル詳細」ボタンを押して、詳細設定画面で設定を行ってください。 設定方法の詳細は、以下を参照してください。 ファイル詳細設定 |
| 13 | エンコーディング | CSVファイルのエンコーディングを指定してください。 例:UTF-8、Shift_JIS |
| 14 | 開始行 | 読み込みを開始する行番号を指定します。(1 行目を「1」とします) ヘッダ行ありにチェックを付けた場合 指定した「開始行」がヘッダ行として扱われ、その行の値がカラム名になります。 開始行より前の行は読み飛ばされます。 ヘッダ行ありにチェックを付けない場合 指定した「開始行」より前の行はすべてスキップされ、 開始行の行からデータとして読み込みを行います。 |
| 15 | ヘッダ行あり | ヘッダ行の有無を選択してください。 |
| 16 | ファイルからカラム情報取得 | ひな型CSVファイルを選択し、そのカラム情報を解析して一覧で表示します。 |
| 17 | カラム | ひな型CSVファイルのカラムを一覧表示するリスト。 |
| ※ | デリミタや囲み文字は自動判別されるため、指定する必要はありません。 |
Excelファイル

| No | 項目 | 説明 |
|---|---|---|
| 21 | Excelファイル名 | 取込するExcelファイル名を入力します。 ファイルパターンで設定したい場合は、「対象ファイル詳細」ボタンを押して詳細設定を行ってください。 |
| 22 | 対象ファイル詳細 | 複数のExcelファイルを取込対象にしたい場合は、「対象ファイル詳細」ボタンを押して、詳細設定画面で設定を行ってください。 設定方法の詳細は、以下を参照してください。 ファイル詳細設定 |
| 23 | シート | 取り込み対象のシート番号を選択してください。 ※番号は1から始まります。 |
| 24 | エンコーディング | Excelファイルのエンコーディングを指定してください。 例:UTF-8、Shift_JIS |
| 25 | 開始行 | 読み込みを開始する行番号を指定します。(1 行目を「1」とします) ヘッダ行ありにチェックを付けた場合 指定した「開始行」がヘッダ行として扱われ、その行の値がカラム名になります。 開始行より前の行は読み飛ばされます。 ヘッダ行ありにチェックを付けない場合 指定した「開始行」より前の行はすべてスキップされ、 開始行の行からデータとして読み込みを行います。 |
| 26 | ヘッダ行あり | ヘッダ行の有無を選択してください。 |
| 27 | ファイルからカラム情報取得 | ひな型Excelファイルを選択し、そのカラム情報を解析して一覧で表示します。 |
| 28 | カラム | ひな型Excelファイルのカラムを一覧表示するリスト。 |
JSONファイル

| No | 項目 | 説明 |
|---|---|---|
| 31 | JSONファイル名 | 取込するJSONファイル名を入力します。 ファイルパターンで設定したい場合は、「対象ファイル詳細」ボタンを押して詳細設定を行ってください。 |
| 32 | 対象ファイル詳細 | 複数のJSONファイルを取込対象にしたい場合は、「対象ファイル詳細」ボタンを押して、詳細設定画面で設定を行ってください。 設定方法の詳細は、以下を参照してください。 ファイル詳細設定 |
| 33 | ファイルから構造取得 | ひな型のJSONファイルを選択し、その構造を解析してツリービュー形式で表示する。 |
| 34 | 対象オブジェクト | データが配列で構成されている場合、配列内の各要素(明細行)を1レコードとして取り込むことができます。取り込み対象となる配列のオブジェクトを選択してください。 |
| 35 | 親オブジェクトを表示 | デフォルトでは、選択されたオブジェクトの下位レイヤのオブジェクトが表示されますが、親レイヤのオブジェクトも必要な場合は、このオプションをチェックしてください。 |
サンプルで表示されているオブジェクト一覧は、以下のJSON例です。
{
"orderno": 1,
"customercode": "A001",
"customeraddress":
{
"streetaddress":"長島一丁目1-1",
"city":"青森市",
"state": "青森県",
"postalcode":"030-8570"
},
"detail": [
{
"prodcode": 1,
"ordernumber": 3,
"price": 2000,
"amount": "6000"
},
{
"prodcode": 2,
"ordernumber": 2,
"price": 1700,
"amount": 3400
}
]
}
XMLファイル

| No | 項目 | 説明 |
|---|---|---|
| 41 | XMLファイル名 | 取込するXMLファイル名を入力します。 ファイルパターンで設定したい場合は、「対象ファイル詳細」ボタンを押して詳細設定を行ってください。 |
| 42 | 対象ファイル詳細 | 複数のXMLファイルを取込対象にしたい場合は、「対象ファイル詳細」ボタンを押して、詳細設定画面で設定を行ってください。 設定方法の詳細は、以下を参照してください。 ファイル詳細設定 |
| 43 | ファイルから構造取得 | ひな型のXMLファイルを選択し、その構造を解析してツリービュー形式で表示する。 |
| 44 | 対象要素 | データが配列で構成されている場合、配列内の各要素(明細行)を1レコードとして取り込むことができます。取り込み対象となる配列の要素を選択してください。 |
| 45 | 親要素を表示 | デフォルトでは、選択された要素の下位階層の要素が表示されますが、親階層の要素も必要な場合は、このオプションをチェックしてください。 |
| 46 | 属性を表示 | デフォルトでは、XMLの属性が表示されません。属性データも必要な場合は、このオプションをチェックしてください。 |
サンプルで表示されている要素一覧は、以下のXML例です。
<data>
<orderno>1</orderno>
<customercode>A001</customercode>
<customeraddress>
<streetaddress>長島一丁目1-1</streetaddress>
<city>青森市</city>
<state>青森県</state>
<postalcode>030-8570</postalcode>
</customeraddress>
<detail>
<prodcode>1</prodcode>
<ordernumber>3</ordernumber>
<price>2000</price>
<amount>6000</amount>
</detail>
<detail>
<prodcode>2</prodcode>
<ordernumber>2</ordernumber>
<price>1700</price>
<amount>3400</amount>
</detail>
</data>
ファイル詳細設定

| No | 項目 | 説明 |
|---|---|---|
| 51 | データ取込対象 | データ取込対象は、シングルファイルまたはファイル名パターンにマッチしたファイルリストとして設定できます。 |
| 52 | ファイル名パターン | データ取込対象としてファイル名のパターンを選択した場合、パターンの設定はワイルドカードおよび正規表現で行うことができます。 |
| 53 | ファイルマスク | ワイルドカードまたは正規表現のファイルマスクを入力してください。 |
| 54 | ソート対象 | 複数のファイルを対象とする場合、ファイル取込の順番を設定します。 |
| 55 | ソート順 | ソート順を設定してください。 |
| 56 | テスト | 設定されたファイルマスクに基づき、現在の対象ファイル一覧を表示します。 |
Web Service/ Web API

| No | 項目 | 説明 |
|---|---|---|
| 61 | エンドポイント | 相対URLを入力してください。 時間に関する動的パラメータの設定が可能です。 設定方法の詳細は、以下を参照してください。 動的パラメータの設定について |
| 62 | リクエスト詳細設定 | リクエストの メソッド、ヘッダー、POSTボディ などの詳細情報を設定します。 |
| 63 | 更新 | エンドポイントから最新情報を取得します。 |
Web Service/ Web APIリクエスト詳細設定

| No | 項目 | 説明 |
|---|---|---|
| 71 | メソッド | リクエストのメソッドを選択します。GET と POST がサポートされています。 |
| 72 | エンドポイント | 相対URLを入力してください。 時間に関する動的パラメータの設定が可能です。 設定方法の詳細は、以下を参照してください。 動的パラメータの設定について |
| 73 | テスト | Webサービス/Web API に対してアクセステストを実行します。 |
| 74 | ヘッダ | リクエストヘッダーを設定してください。 |
| 75 | ボディ | POSTの場合ボディを設定してください。 |
| 76 | Content-Type設定ボタン | ヘッダーの Content-Type を text、JSON、XML、HTML に自動設定するボタンです。 |
| 77 | レスポンス | テストを実行すると、レスポンスに関する情報を表示します。 |

| No | 項目 | 説明 |
|---|---|---|
| 81 | テキスト | ボディタイプが RAWテキスト の場合は、「テキスト」を選択してください。 |
| 82 | ボディテキスト | ボディテキストを入力してください。 時間に関する動的パラメータの設定が可能です。 設定方法の詳細は、以下を参照してください。 動的パラメータの設定について |

| No | 項目 | 説明 |
|---|---|---|
| 83 | 動的生成 | ボディの内容が 動的生成 の場合は、「動的生成」を選択してください。 動的生成では、データベースから SELECT SQL に設定されたSQLの実行結果をボディとして POST します。 |
| 84 | コネクション | 対象となるデータベースを選択します。 |
| 85 | SELECT SQL | 実行するSQLを入力します。 |
Web Service/ Web APIリクエスト動的パラメータの設定について
設定方法は、{}で囲んだ式を評価し、計算した値を使用します。
| 例 | 設定方法 |
|---|---|
| 現在日付を使用する場合の設定例 | /api/v1/orders/{yyyyMMdd} /api/v1/orders/{yyyyMMdd} |
|
{ "orderno": 1, "customercode": "A001", "updatedate": "{yyyy/MM/dd HH:mm:ss}", } |
|
| 昨日の日付を使用する場合の設定例 | /api/v1/orders/{DateTime.Now.AddDays(-1).ToString("yyyyMMdd")} |
|
{ "orderno": 1, "customercode": "A001", "updatedate": "{DateTime.Now.AddDays(-1).ToString(\"yyyyMMdd\")}" } |
Web Service/ Web API ページングの設定について
Web Service / Web API のページング設定では、APIから複数ページに分割して提供されるデータを順番に取得するための設定を行います。
APIの仕様に応じて、ページ番号方式、オフセット/件数方式、Link方式、カーソル方式などのページング方法を選択できます。
ページング設定を行うことで、大量データを効率よく取得できるようになります。
なお、ページングを行わないAPIの場合は「なし」を選択してください。
ページング:なし
ページングを行わず、指定したURLから取得できるデータのみを取得する方式です。

| No | 項目 | 説明 |
|---|---|---|
| P11 | ページング方式 | 利用するページング方式を選択します。 ・なし:ページングを行わない |
ページング:ページ番号方式
ページ番号を指定してデータを取得する方式です。ページ番号を変更しながら順番にデータを取得します。

| No | 項目 | 説明 |
|---|---|---|
| P21 | URL | 開始ページのURLを入力します。ページ番号を指定してください。指定しない場合は「1」から開始します。取得件数(pageSize)などを指定したい場合は、APIの仕様に合わせて入力してください。 |
| P22 | ページング方式 | 利用するページング方式を選択します。 ・ページ番号方式:ページ番号で取得する方式 |
| P23 | ページ番号パラメータ名 | ページ番号方式で利用するパラメータ名を設定します。例:page |
ページング:オフセット/件数方式
URL のパラメータに開始位置(オフセット)と取得件数を指定してデータを取得する方式です。
オフセット値を変更しながら順番にデータを取得します。

| No | 項目 | 説明 |
|---|---|---|
| P31 | URL | 開始位置(オフセット)および取得件数を含むURLを入力します。オフセット値を指定しない場合は先頭から取得します。取得件数を指定したい場合は、APIの仕様に合わせて入力してください。 |
| P32 | ページング方式 | 利用するページング方式を選択します。 ・オフセット/件数方式:開始位置と取得件数を指定する方式 |
| P33 | オフセットパラメータ名 | オフセット/件数方式で利用する開始位置のパラメータ名を設定します。例:offset / skip |
| P34 | 取得件数パラメータ名 | オフセット/件数方式で利用する取得件数のパラメータ名を設定します。例:limit / top |
ページング:Link方式
レスポンスボディまたはHTTP Linkヘッダーに含まれる次ページURLを利用して、順番にデータを取得する方式です。

| No | 項目 | 説明 |
|---|---|---|
| P41 | URL | 初回アクセス時のURLを入力します。レスポンス内またはHTTPヘッダーに含まれる次ページURLを利用して、続きのデータを取得します。 |
| P42 | ページング方式 | 利用するページング方式を選択します。 ・Link方式:レスポンス内の次ページURLを利用する方式 |
| P43 | 次ページ情報の取得場所 | 次ページURLを取得する場所を選択します。 ・レスポンスボディ:レスポンスデータ内のURLを利用する ・HTTP Linkヘッダー:HTTPレスポンスヘッダーの Link 情報を利用する |
| P44 | 次ページURLの取得ノード | レスポンスボディ内で、次ページURLが格納されているノードを選択します。選択したノードの値を利用して次ページへアクセスします。 |
ページング:カーソル方式
レスポンス内に含まれるカーソルトークンを利用して次ページを取得する方式です。レスポンスごとに返却されるトークンを使用して順番にデータを取得します。

| No | 項目 | 説明 |
|---|---|---|
| P51 | URL | 初回アクセス時のURLを入力します。レスポンス内に含まれるカーソルトークンを利用して、続きのデータを取得します。 |
| P52 | ページング方式 | 利用するページング方式を選択します。 ・カーソル方式:カーソルトークンを利用して次ページを取得する方式 |
| P53 | カーソルパラメータ名 | カーソル方式で利用するカーソルパラメータ名を設定します。例:cursor |
| P54 | 次カーソルトークン取得ノード | レスポンスボディ内で、次ページ取得用のカーソルトークンが格納されているノードを選択します。選択したノードの値を利用して次ページへアクセスします。 |
Salesforce
オブジェクト
オブジェクトはデータベースのテーブルと同様の概念です。
設定方法はテーブル設定と同じため、下記の資料をご参照ください。
テーブル
SOQL

| No | 項目 | 説明 |
|---|---|---|
| 97 | SOQL | ソースデータの取得方法としてSOQLを使用したい場合、SOQLを選択してください。 |
| 98 | SOQL内容 | データ抽出のためのSOQLを記述してください。 例: SELECT Id , Description , Name from Product2 |
OData
エンティティセット
エンティティセットはデータベースのテーブルと同様の概念です。
設定方法はテーブル設定と同じため、下記の資料をご参照ください。
テーブル
OData 条件指定について
OData では、クエリオプションを指定することで取得データを制御できます。
-
$filter
条件を指定してデータを絞り込みます(SQL の WHERE 句に相当) -
$orderby
データの並び順を指定します -
$top / $skip
取得件数や開始位置を指定します(ページング)
指定可能なクエリオプションや記法の詳細は、
OData 公式マニュアルをご参照ください。
