データアクセスサービスコネクタの作成
Secure Agentでデータアクセスサービスコネクタを作成し、データベースから直接データにアクセスできます。
データアクセスサービスコネクタを使用して、次のデータベースに接続できます。
- •Databricks
- •IBM DB2
- •Microsoft SQL Server
- •MySQL
- •Oracle
- •PostgreSQL
注: パーソナルアクセストークン(PAT)を使用してDatabricksデータベースに接続します。Databricksへの接続に関するさまざまな制限の詳細については、
Databricksのルールとガイドラインを参照してください。
データアクセスサービスコネクタは、データベースと直接対話するためのプロパティを定義し、変数を指定することで作成できます。また、データアクセスサービスコネクタと関連付けられたアクションを定義することもできます。
データアクセスサービスコネクタを作成する前に、必要なJDBC JARファイルを次のディレクトリにコピーし、Secure Agentを再起動する必要があります。
<Secure Agentのインストールディレクトリ>/apps/process-engine/ext
使用するデータベースに基づいて、以下のJDBC JARファイルをダウンロードします。
データベース名 | JARファイル |
---|
Databricks | DatabricksJDBC42.jar |
IBM DB2 | db2jcc4.jar |
MySQL | mysql-connector-java-5.1.40-bin.jar |
Oracle | ojdbc8.jar |
SQL Server | sqljdbc41.jar |
注: JARファイルは、使用するデータベースのバージョンとの互換性がある必要があります。
データアクセスサービスコネクタを作成するには、次の手順を実行します。
- 1アプリケーションの統合で、[新規] > [サービスコネクタ]をクリックします。
- 2[新しいアセット]ダイアログボックスで、[フォームを使用したデータアクセスサービスコネクタ]をクリックし、[作成]をクリックします。
プロパティの定義
データアクセスサービスコネクタを作成してプロパティを定義するには、次の手順を実行します。
- 1アプリケーションの統合で、[新規] > [サービスコネクタ] > [フォームを使用したデータアクセスサービスコネクタ] > [作成]をクリックします。
データアクセスサービスコネクタエディタが表示されます。
次の図は、データアクセスサービスコネクタエディタを示しています。
- 2[定義]タブで、データアクセスサービスコネクタについて次の基本プロパティを定義します。
- - 名前: データアクセスサービスコネクタをプロセスで使用できるようにする名前。名前は英字または数字で始まる必要があり、英数字、マルチバイト文字、アンダースコア(_)、およびハイフン(-)のみを含めることができます。128文字を超える名前は使用できません。これは必須フィールドです。
- - 場所: データアクセスサービスコネクタを保存するプロジェクトまたはフォルダを指定します。これは必須フィールドです。
- - 説明: 必要に応じて、データアクセスサービスコネクタの説明を入力します。
- - エージェントのみ: データアクセスサービスコネクタはSecure Agentでのみ実行できるため、これがデフォルトで選択されています。
- - ODataの使用: ODataを使用するWebサービスからデータにアクセスするには、このオプションを選択します。データアクセスサービスコネクタの[ODataの使用]オプションを有効にした後に、ODataを有効にして、データアクセスサービス接続を使用するアプリケーション接続で、ODataで許可されたユーザーとグループを指定できます。
アプリケーション接続に関連するプロパティの詳細については、「デザイン」を参照してください
アプリケーション接続をパブリッシュした後に、アプリケーション接続の[プロパティの詳細]ページで、ODataサービスURLとOData Swagger URLを確認できます。
- 3[接続プロパティ]セクションで、外部データベースに接続するための次の全般プロパティを定義します。
- - JDBCドライバ: JDBCドライバの完全修飾Javaクラス名。
データベースに基づいて、次のいずれかのドライバクラス名を指定できます。
- ▪ Databricks: com.databricks.client.jdbc.Driver
- ▪ IBM DB2: com.ibm.db2.jcc.DB2Driver
- ▪ Microsoft SQL Server: com.microsoft.sqlserver.jdbc.SQLServerDriver
- ▪ MySQL: com.mysql.jdbc.Driver
- ▪ Oracle: oracle.jdbc.OracleDriver
- ▪ PostgreSQL: org.postgresql.Driver
これは必須フィールドです。
- - JDBC URL: 外部データベースに接続するための接続URL。これは必須フィールドです。
データベースに基づいて、次のいずれかのURLを指定できます。
- ▪ Databricks: jdbc:databricks://<host>:443/default;transportMode=http;ssl=1;AuthMech=3;httpPath=<http-path>
- ▪ IBM DB2: jdbc:db2://<server>:<port>/<database>
- ▪ Microsoft SQL Server: jdbc:sqlserver://<host>:<port>;databaseName=<database>
- ▪ MySQL: jdbc:mysql://<host>:<port>/<database>
- ▪ Oracle: jdbc:oracle:thin:@//<host>:<port>/<service>
- ▪ PostgreSQL: jdbc:postgresql://<host>:<port>/<database>
注: Databricksデータベースに接続する場合は、パーソナルアクセストークン(PAT)認証方法のみを使用できます。
- - ユーザー名: データベースに接続するためのユーザー名。これは必須フィールドです。
- - パスワード: データベースに接続するためのパスワード。これは必須フィールドです。このフィールドに入力された値は、デフォルトで暗号化されます。開発者コンソールには、コネクタを保存するときに入力したパスワードが表示されます。コネクタを保存して閉じ、再度開くと、パスワードが暗号化されて表示されます。
注: Databricksデータベースに接続する場合は、[ユーザー名]フィールドにtokenと入力し、[パスワード]フィールドにPATの値を入力します。
- - スキーマ: メタデータに含めるテーブルまたは除外するテーブルを含むスキーマの名前を入力します。適切な結果を表示するには、データアクセスサービスコネクタを使用するアプリ接続にスキーマ名を入力する必要もあります。
- - テーブルを含める: メタデータに含めるテーブルの名前を入力します。テーブルのリストを含めるには、カンマを使用して複数のテーブル名を区切ります。パターンマッチングの場合は、「.*」を使用することもできます。適切な結果を表示するには、データアクセスサービスコネクタを使用するアプリ接続に含まれるテーブル名を指定する必要もあります。
- - テーブルを除外: メタデータから除外するテーブルの名前を入力します。テーブルのリストを除外するには、カンマを使用して複数のテーブル名を区切ります。パターンマッチングの場合は、「.*」を使用することもできます。適切な結果を表示するには、データアクセスサービスコネクタを使用するアプリ接続から除外されるテーブル名を指定する必要もあります。
- 4必要に応じて、[接続プロパティ]セクションで、次の詳細プロパティを定義します。
変数の指定
データアクセスサービスコネクタを設定するには、変数を指定して出力フィールドを定義することが必要になる場合があります。
ビルトイン変数
次の変数は、XQuery式を使用してデータアクセスサービスコネクタで参照できます。
変数 | 変数型 | 説明 |
---|
$VariableName | すべての接続プロパティ | 入力フィールドと出力フィールドは、この形式を使用して指定できます。 |
$Response | 出力フィールドマッピング | 応答XMLデータが含まれます。これは、データアクセスサービスコネクタの[テスト結果]タブに表示されます。 |
アクションの定義
[アクション]タブでは、データアクセスサービスコネクタと関連付けられた1つ以上のアクションを作成して記述できます。
次の図は、[アクション]タブを示しています。
編集する行をクリックするか、[+]をクリックして新しい行を追加し、[アクション]タブで次の情報を入力します。
- •アクション名: データアクセスサービスコネクタと接続でこのアクションを参照するときにリストに表示する名前を入力します。アクション名にスペースまたは特殊文字は使用しないでください。これは必須フィールドです。
- •カテゴリ: データアクセスサービスコネクタが多数あり、それぞれに複数のアクションがある場合は、カテゴリを作成して、ユーザーがプロセス内を移動しやすくなるようにすることができます。
- •説明: このアクションの説明または付記を入力します。
各アクションについて、[入力]、[SQLバインディング]、[出力]、[テスト結果]の各タブに追加の詳細を指定します。
[入力]タブ
[入力]タブを使用して、データの送信先サービスに固有の入力データ項目を定義します。
次の図は、[入力]タブを示しています。
各項目に対し、次のプロパティを入力します。
[+]アイコンを使用し、新しい項目を追加します。[X]をクリックして現在の行を削除します。
[SQLバインディング]タブ
データアクセスサービスコネクタの各アクションについて、[SQLバインディング]タブを使用して、データソースからデータにアクセスするための複数のSQLクエリを指定します。SQLエントリが作成されると、タブには、SQL名、SQLテキスト、式のカラムの大文字と小文字、クエリタイプ、SQLクエリによって返される最大行数、最大待機時間(秒)などの詳細が表示されます。
複数のクエリを追加すると、テーブルに表示されているクエリの順序でSQL文が実行されます。矢印ボタンを使用してクエリを上下に移動できます。SQLクエリを削除することもできます。
SQLエントリの行を追加するには、[SQLバインディング]タブの[+]をクリックします。各SQLクエリの次の詳細を入力します。
- SQL名前
- SQLクエリの名前。
- SQLテキスト
- 少なくとも1行を返す有効なSQL文。
- カラムの大文字と小文字
式内の文字を小文字または大文字に変換する必要があるか、または変更しないままにするかを指定します。デフォルトは[小文字]です。
- タイプ
次のいずれかの値を選択します。
- - データの操作。情報をクエリし、その情報にロジックを適用して、異なるデータセットを生成します。
- - ストアドプロシージャ。保存して再利用できるあらかじめ用意されたSQLコードを使用します。データアクセスサービスコネクタでストアドプロシージャを使用する場合は、使用するデータベース管理システム(DBMS)に応じて出力フィールドを設定することができます。詳細については、「データアクセスコネクタのストアドプロシージャの出力フィールド設定」を参照してください。
- 結果セットあり
- 将来の使用のために予約済み。
- 最大行数
SQLクエリによって返され、SQL応答ペイロードに表示できる最大行数。デフォルトは100行です。最大行数は10,000行以下にする必要があります。
- 最大待機時間(秒)
- データベースクライアントがセッションをタイムアウトするまでにデータベースからの応答を待機できる最大時間(秒)。
注: アプリケーション統合は、すべてのSQLクエリを実行した後にコミットを実行しません。SQLクエリが失敗した場合のロールバックを支援するために、コミットはすべてのSQLクエリが実行された後の最後にのみ行われます。一部のデータベースでは、CREATE TABLE、DROP TABLEなどのDDL文に対して暗黙的なコミットが発生します。これらの実行はロールバックできません。
データアクセスコネクタのストアドプロシージャの出力フィールド設定
データアクセスサービスコネクタでストアドプロシージャを使用する場合は、出力フィールドを設定できます。
ストアドプロシージャでは、MySQL、SQL Server、Oracle、PostgreSQL、またはDB2など、使用するDBMSに応じていくつかの方法で出力フィールドを定義することができます。出力フィールドを使用して、データを呼び出し元のアプリケーションに戻すこともできます。ストアドプロシージャにより、データベースに対して複数のクエリを実行する代わりに、1回の呼び出しで複数の出力フィールドを返すことで、ネットワークトラフィックを削減します。
ストアドプロシージャでの出力フィールドの設定
データアクセスサービスコネクタでストアドプロシージャを使用するときに出力フィールドを設定するには、次の手順を実行します。
1[SQLバインディング]タブで、[+]アイコンをクリックしてSQLエントリを追加します。
2[編集]アイコンをクリックして、SQLクエリを編集します。
複数のSQLクエリを設定するための[SQLの作成]ページが表示されます。
3SQLクエリの名前を入力します。
4[型]リストで、[ストアドプロシージャ]を選択します。
次の画像に示すように、[SQLの作成]ページの名前が[ストアドプロシージャの呼び出し]に変わります。
5[ストアドプロシージャ]フィールドに、次の形式でクエリを入力します。
<SQL文> <ストアドプロシージャの名前>(?);
例えば、次のサンプルに示すようにクエリを入力します。
CALL GetTotalSales(?)
注: [ストアドプロシージャ]テキストボックスに指定する? 記号の数は、[出力フィールド]セクションで定義する出力フィールドの数と一致している必要があります。ストアドプロシージャでINOUTパラメータを指定することはできません。
6[出力フィールド]セクションで、[+]をクリックします。
7それぞれの出力フィールドに対して次のプロパティを設定します。
- - 名前。出力フィールドの名前です。
- - タイプ。出力フィールドのタイプです。
- - 移動。出力フィールドの横にある矢印をクリックすると、[ストアドプロシージャ]テーブル内でそのフィールドが1レベル上または下に移動します。
8カラムのケースを選択します。
9SQLクエリによって返され、SQL応答ペイロードに表示できる最大行数を入力します。
10データベースクライアントがセッションをタイムアウトするまでにデータベースからの応答を待機できる最大時間(秒)を入力します。
11[作成]をクリックします。
次の画像に、ストアドプロシージャにサンプル値が指定された[ストアドプロシージャの呼び出し]ページを示します。
上記の例では、ユーザーは[ストアドプロシージャ]フィールドに次のクエリを入力しています。
CALL GetTotalSales(?);
対応する出力フィールドが、[出力フィールド]セクションに表示されています。そして、この出力フィールドは、次の図に示すようにデータアクセスサービスコネクタのプロパティページの[出力]タブにあるサービスコネクタの出力フィールドにマッピングされています。
出力フィールドには、次のデータ型のリストを設定することができます。
- - 番号
- - 割合
- - 電話番号
- - 選択リスト
- - リッチテキスト領域
- - テキスト
- - テキスト領域
- - 時間
- - URL
- - 添付
- - 添付ファイル
- - チェックボックス
- - 通貨
- - データ
- - 日付/時刻
- - 電子メール
- - フォーマットされたテキスト
- - イメージ
- - 整数
- - 複数選択リスト
次のスニペットは、CALL GetTotalSales(?)ストアドプロシージャが実行されたときの出力のサンプルの応答を示しています。
{
"outSPProcess":"<multiDataAccessResponse xmlns:aetgt=\"http:\/\/schemas.informatica.com\/socrates\/data-services\/2014\/05\/business-connector-model.xsd\" xmlns:bconn=\"http:\/\/schemas.informatica.com\/socrates\/data-services\/2014\/05\/business-connector-model.xsd\"><dataAccessResponse><result><statementId>StoredProc_WithOutputFields<\/statementId><row><TotalSales>3.00<\/TotalSales><\/row><\/result><\/dataAccessResponse><\/multiDataAccessResponse>"
}
複数のSQLクエリの設定
SQLクエリを追加および編集するには、次の手順を実行します。
1[SQLバインディング]タブで、[+]アイコンをクリックしてSQLエントリを追加します。
SQLエントリがテーブルに追加されます。
2[編集]アイコンをクリックして、SQLクエリを編集します。
[SQLの作成]ページが表示されます。次の図は、複数のSQLクエリを設定できる
[SQLの作成]ページを示しています。
![この図は、[SQLの作成]ページを示しています。 この図は、[SQLの作成]ページを示しています。](../cc-design/images/GUID-2692C0E1-86DB-4D76-88B7-F935DD522FBB-low.png)
3[SQLの作成]ページで、SQL名、SQLクエリ、クエリのカラムの大文字と小文字、クエリタイプ、最大行数、最大待機時間などのSQLクエリのプロパティを設定します。
SQLクエリを使用することで、SELECT、INSERT、DELETE、UPDATEなどのさまざまなデータ操作を実行できます。SQLクエリの入力フィールドをパラメータ化することができます。次の構文を使用して、実行時に入力フィールドをパラメータ化します。
'{$<input_field_name>}'
例えば、empIdが入力フィールドの名前である場合は、次のSQLクエリを入力してempIdフィールドをパラメータ化します。
select * from employee.contact where id = '{$empid}'
4[作成]をクリックします。
SQLクエリの応答形式
データアクセスサービスコネクタでは、単一および複数のSQLクエリに対するXML応答は、multiDataAccessResponseタグから始まります。
次のスニペット例は、プロセスまたはデータアクセスサービスの出力としての形式を示しています。
<multiDataAccessResponse xmlns:aetgt="http://schemas.informatica.com/socrates/data-services/2014/05/business-connector-model.xsd"
xmlns:bconn="http://schemas.informatica.com/socrates/data-services/2014/05/business-connector-model.xsd">
<dataAccessResponse>
<result>
<statementId>SQL Name 1</statementId>
<row>
<updatedRows>0</updatedRows>
</row>
</result>
</dataAccessResponse>
<dataAccessResponse>
<result>
<statementId>SQL Name 2</statementId>
<row>
<updatedRows>1</updatedRows>
</row>
</result>
</dataAccessResponse>
</multiDataAccessResponse>
次のスニペット例は、応答ペイロードとしてのXML形式を示しています。
<multiDataAccessResponse>
<dataAccessResponse>
<result statementId="SQL Name 1">
<row>
<updatedRows>0</updatedRows>
</row>
</result>
</dataAccessResponse>
<dataAccessResponse>
<result statementId="SQL Name 2">
<row>
<updatedRows>1</updatedRows>
</row>
</result>
</dataAccessResponse>
</multiDataAccessResponse>
[出力]タブ
[出力]タブを使用して、データアクセスサービスコネクタがデータベースから返されたデータをどのように解析するかを定義します。
次の図は、[出力]タブを示しています。
各出力データ項目について、次のプロパティを指定します。
- •名前: 返された値が配置されるフィールドの名前。
- •タイプ: フィールドに書き込まれる値のデータ型。タイプが[オブジェクトリスト]または[参照]である場合、Process Designerはプロセスオブジェクトのリストを表示し、[プロセスオブジェクト]タブ内で定義されたオブジェクトのいずれかを選択できるようにします。
- •説明: 出力フィールドの説明を入力します。
- •取得元: 次のいずれかのオプションを選択します。
- - カラム: 出力フィールド内に配置されるカラム名(データベースから返される出力内で使用されるデータベーステーブル内のカラム名)を入力します。
- - 式: データベースから返される出力を解析するための式を記述します。[f(x)]をクリックして、式を入力するための式エディタを開きます。
- - 結果セット: データベースからの応答の完全な内容を出力フィールドに割り当てます。
- - 添付ファイルとしてのすべての応答: 応答全体を添付ファイルとして処理します。
- - 添付ファイル: 複数の添付ファイルを処理して、添付ファイルの全リストを選択した変数(ペイロードとして使用されるパートを除く)に渡します。
プロセスオブジェクトの作成
[プロセスオブジェクト]タブでは、データアクセスサービスコネクタの1つ以上のプロセスオブジェクトを定義して、データをグループ化し、構造化オブジェクトを作成できます。データアクセスサービスコネクタで定義されたプロセスオブジェクトは、データアクセスサービスコネクタを使用するプロセスで利用可能になります。例えば、データベースが名前、住所、電話番号などの人口統計情報を返す場合、この情報を格納する単一の人口統計的プロセスオブジェクトを作成できます。
[アクション/出力]タブを使用して、データベースから返された1つ以上のデータ要素と各プロセスオブジェクトを関連付けることができます。
データアクセスサービスコネクタのプロセスオブジェクトを作成するには、次の手順を実行します。
- 1データアクセスサービスコネクタを作成するか、既存のコネクタを開きます。
- 2[プロセスオブジェクト]タブをクリックします。
- 3[+]をクリックして新しいプロセスオブジェクトを追加するか、既存のプロセスオブジェクトをリストから選択します。各プロセスオブジェクトは、タブ内に行項目として表示されます。
次の図は、[プロセスオブジェクト]タブを示しています。
- 4[プロパティ]タブで、各プロセスオブジェクトに対し、次の詳細を指定します。
- - 名前: プロセスオブジェクトを識別する名前を入力します。この名前は、プロセスオブジェクトを選択できるリストに表示されます。これは必須フィールドです。
- - 説明: プロセスオブジェクトの説明を入力します。
- 5[フィールド]タブで、各プロセスオブジェクトに対し、次の詳細を指定します。
データアクセスサービスコネクタのテスト
データアクセスサービスコネクタエディタを使用するときは、[テスト]をクリックしてデータベースに要求を送信し、応答データを[テスト結果]タブに表示します。
- •プロセスオブジェクトの生成: クリックすると、データアクセスサービスコネクタ用に定義したプロセスオブジェクトが表示されます。
- • 結果: テストのステータスを表示します。
注: Databricksデータベースに対して行われた要求では、システムの待機時間や実行の遅延が原因でタイムアウトエラーが表示される場合があります。要求のタイムアウトを回避するには、[最大待機時間(ミリ秒)]フィールドの値を増やします。
- •出力および値: [出力]タブで定義されたフィールドに割り当てられたデータベースから返されたデータを表示します。
- •応答ペイロード: データベースからProcess Designerに送信されたペイロード(データベースから送信された完全な応答ではない)を表示します。
- •SQL要求: データアクセスサービスコネクタからデータベースに送信されたデータを表示します。このタブの左側のペインにはSQL名のリストが表示され、右側のペインには対応するデータが表示されます。
- • SQL応答: データベースからデータアクセスサービスコネクタに返されたすべてのデータを表示します(応答ペイロードは、返されたデータの一部にすぎない)。このタブの左側のペインにはSQL名のリストが表示され、右側のペインには対応するデータが表示されます。
注: [SQL応答]セクションには、XMLで許可されていない文字の16進数の値が表示されます。
応答に1つ以上の添付ファイルが含まれている場合は、それらの添付ファイルをダウンロードすることもできます。
注: [応答ペイロード]および[SQL応答]セクションには最大10,000件のレコードが表示されます。[SQLバインディング]タブで、10,000を超える値を制限に指定することはできません。
次の図は、[テスト結果]タブを示しています。
プロセスオブジェクトの生成
通常プロセスオブジェクトは、特定の要素セットに結び付けられます。場合によっては、多数の同一のオブジェクトを持ち、それぞれが1つの要素セットに適用されることがあります。例えば、返されるデータを定義するときに、返されるデータのサブセットを定義することのみを目的とするプロセスオブジェクトを作成します。これらのオブジェクトは再利用不可能であり、単一のプロセスオブジェクトフィールドのみが使用できます。オブジェクト名は、フィールドの名前でもあります。
再利用可能なオブジェクトを作成することもできます。例えば、NetSuiteのrefType要素には、nameとinternalIDという2つのフィールドがあります。これら2つのフィールドをそれぞれが含む多数のオブジェクトを作成するのでなく、1つの再利用可能なプロセスオブジェクトを作成できます。
- 1[プロセスオブジェクトの生成]をクリックして、データアクセスサービスコネクタ用に定義したプロセスオブジェクトを表示します。
- 2再利用可能にするプロセスオブジェクトを選択し、[次へ]をクリックします。
Process Designerに、生成されたプロセスオブジェクトの一覧が表示されます。
- 3[完了]をクリックします。
応答ペイロード内のメタデータパラメータ
特定のアプリケーション接続のメタデータの詳細を表示するには、メタデータパラメータを使用します。出力には、データと一緒に保存されているデータまたはデータセットに関するコンテキスト情報が含まれます。
アプリケーション接続のメタデータの詳細を表示するには、次のURIを使用します。
https://<Informatica Intelligent Cloud Services URL>/active-bpel/odata/v4/<app connection name>/$metadata
次のスニペット例は、応答ペイロードの形式を示しています。

多数のテーブルを含むデータベースからメタデータを適切に取得するには、アプリ接続で接続プロパティを定義するときに、[テーブルを含める]または[テーブルを除外]フィールドを使用してテーブルをフィルタリングします。
応答ペイロード内のOData拡張パラメータ
アプリケーション接続をパブリッシュした後、OData拡張パラメータを使用して、データに対してネストされたクエリを実行できます。サービス呼び出しでは、ナビゲーションプロパティの1レベルまでをクエリできます。
OData拡張パラメータを含む次のURIを使用します。
https://<Informatica Intelligent Cloud Services URL>/active-bpel/odata/v4/<app connection name>/<table name>?$expand=*
次のスニペット例は、拡張クエリの出力を示しています。

Databricksのルールとガイドライン
データアクセスサービスコネクタを使用してDatabricksデータベースに接続する場合は、次のルールとガイドラインを考慮してください。
- •Databricksデータベースに接続するデータアクセスサービスコネクタでは、ストアドプロシージャを使用することはできません。
- •Databricksデータベースへの一部の要求は、システムの遅延や実行速度の低下により、ランダムにタイムアウトする場合があります。要求のタイムアウトを回避するには、[最大待機時間(ミリ秒)]フィールドの値を増やします。