オプション1: 新しいサービスコネクタの作成 プロパティを定義し、関数や変数を指定すると、サービスコネクタを作成できます。また、サービスコネクタと関連付けられたアクションを定義することもできます。
サービスコネクタを作成するには、次の手順を実行します。
1 アプリケーションの統合 で、[新規] > [サービスコネクタ] をクリックします。2 [新しいアセット] ダイアログボックスで、[フォームを使用したサービスコネクタ] をクリックし、[作成] をクリックします。プロパティの定義 サービスコネクタを作成してプロパティを定義するには、次の手順を実行します。
1 アプリケーションの統合 で、[新規] > [サービスコネクタ] をクリックします。2 [新しいアセット] ダイアログボックスで、[フォームを使用したサービスコネクタ] をクリックし、[作成] をクリックします。3 [定義] タブで、サービスコネクタの次の基本プロパティを定義します。- 名前: 必須。プロセス でサービスコネクタを使用できるようにする名前。名前の先頭の文字は英字または数字にする必要があり、名前には英数字、マルチバイト文字、スペース、アンダースコア(_)、およびハイフン(-)のみを含めることができます。128文字を超える名前は使用できません。- 場所 : 必須。サービスコネクタを保存するプロジェクトまたはフォルダを指定します。- 説明 : サービスコネクタの説明を入力します。- エージェントのみ : サービスコネクタをSecure Agent上でのみ実行する必要がある場合は、このオプションを選択します。- OAuth2を使用 : OAuth 2.0認証フィールドを設定するには、このオプションを選択します。注: OAuth 2.0認証は、Microsoft、GitHub、およびSalesforceのサービスプロバイダに適用されます。
OAuth認証を使用するには、[OAuth2を使用]オプションを選択し、次のプロパティを設定します。
プロパティ
説明
認証URL
必須。ユーザー要求の認証に使用する電子メールサービスのOAuth認証URLを入力します。
例: https://login.microsoftonline.com/xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx/oauth2/v2.0/authorize
トークンリクエストのURL
必須。トークン要求を処理するOAuthトークン要求URLを入力します。
例: https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/oauth2/v2.0/token
リフレッシュトークンの有効期限は90日です。ユーザーは、トークンの有効期限が切れる前に、再度認証して接続をパブリッシュする必要があります。
クライアントID
必須。OAuthプロバイダからの識別子の値を指定します。
クライアントシークレット
必須。電子メールアプリケーションに接続するためのクライアントシークレットを入力します。
スコープ
必須。スコープを指定します。OAuth認証のスコープは、アプリケーションからユーザーのアカウントへのアクセスを制限するものです。1つのクライアントに対して複数のスコープを選択できます。複数のスコープを入力するには、各値をスペースで区切ります。
承認ステータス
現在のステータス、承認したユーザーの名前、最後に承認が完了した時刻を示します。
アクセスの承認
OAuthを使用した承認ワークフローを開始するにはクリックします。
注: OAuthプロバイダで、接続を作成するCAI PODのホストにリダイレクトURIを設定します。リダイレクトURIには、/oauthcallback 文字列が含まれている必要があります。例: https://<Informatica Cloud Application Integration URL>/oauthcallback
4 [+] をクリックして、このサービスに接続するための接続プロパティを追加します。[接続プロパティ] セクションで、各接続プロパティについて次の詳細を指定します。- 名前 : 必須。接続プロパティの名前。名前の先頭の文字は英字または数字にする必要があり、名前には英数字、スペース、アンダースコア(_)、およびハイフン(-)のみを含めることができます。- 説明 : 接続プロパティの説明を入力します。- テストに使用する値 : Process Designerが接続をテストするために使用する値を入力します。- タイプ : 接続プロパティに対して適切なデータ型を選択します。- 必須 : 接続プロパティを必須のプロパティとして設定するには、このチェックボックスをオンにします。- 暗号化 : 接続プロパティを暗号化するには、このチェックボックスをオンにします。開発者コンソールには、コネクタを保存するときにこれらのフィールドに入力した値が表示されます。コネクタを保存して閉じ、再度開くと、値は暗号化されて表示されます。次の図に、サービスコネクタのサンプルを示します。
5 接続プロパティを編集するには、接続プロパティを含んだ行の任意の場所をクリックします。行のすべてのプロパティが編集可能になります。
6 [保存] をクリックします。サービスコネクタを定義するアクションおよびプロセスオブジェクトの詳細については、
アクションの定義 および
サービスコネクタプロセスオブジェクトの作成 を参照してください。
関数と変数の指定 サービスコネクタを構成するには、バインディング、出力フィールド、その他のプロパティを定義するための変数と関数を指定する必要があります。
ビルトイン変数 これらの変数は、XQuery式を使用してサービスコネクタで参照できます。
変数
変数型
説明
$VariableName
すべての接続プロパティ
プロパティ、入力、その他のパラメータは、この形式を使用して指定できます。
$ResponseStatusCode
出力フィールドマッピング
HTTP応答コード。
$ResponseHeaders
出力フィールドマッピング
各項目が次のとおりの要素リスト内にHTTP応答ヘッダーが格納されます。
<header name="Content-Type">text/plain</header>
以下に例を示します。
$ResponseHeaders[@name = "Content-Type"]/text()
$RESTResponse
出力フィールドマッピング
ヘッダーとコードを含むRESTResponse XMLデータが格納されます。サービスコネクタのテスト結果内に表示されます。
出力フィールドマッピング関数 サービスコネクタでバインディングを定義するときは、式エディタ で多くの関数を使用できます。
使用可能なすべての機能については、
関数の使用 および
式エディタの使用 を参照してください。
次の表に、サービスコネクタの出力フィールドのマッピングで使用できる関数を示します。
機能
構文
説明
responseHeaderExists
svc:responseHeaderExists($ResponseHeaders, headerName ) : boolean
ヘッダーパラメータが応答内にあるかどうかを示すBoolean値を返します。
getResponseHeader
svc:getResponseHeader( $ResponseHeaders, headerName, defaultValue ) : string
svc:getResponseHeader( $ResponseHeaders, headerName ): string
応答ヘッダー値を返します。ヘッダーパラメータが定義されていない場合、この関数は、オプションのデフォルト値を返します。
getResponseHeaderNames
svc:getResponseHeaderNames( $ResponseHeaders ) : list of strings
応答ヘッダー内のすべてパラメータの名前を格納したリストを返します。
アクションの定義 [アクション]タブで、サービスコネクタと関連付ける1つまたは複数のアクションを作成して記述できます。
次の図は、[アクション] タブを示しています。
編集する行を選択し、次の情報を[アクションの詳細]タブに入力します。
[+] をクリックし、新しい行を追加します。
• アクション名 : このアクションの参照時にサービスコネクタおよび接続のリストに表示される名前を入力します。名前の先頭の文字はアルファベットまたは数字にする必要があります。また、名前に使用可能な文字は英数字、スペース、およびアンダースコア(_)のみです。これは必須フィールドです。• カテゴリ : 多数のサービスコネクタがあり、それぞれに複数のアクションがある場合、ユーザーがプロセス 内で移動しやすくなるように、カテゴリを作成できます。• HTTPエラー時に終了 : このアクションを使用するサーバーへの要求の送信時にエラーが発生した場合に、Process Designerが認識するように設定するには、このオプションを選択します。詳細については、HTTPエラーのチェック を参照してください。• 最大リダイレクト数 : アクションが処理できるリダイレクトの最大数を指定します。アクションがエンドポイントにアクセスするときに、エンドポイントはアクションを別のエンドポイントにリダイレクトすることがあります。リダイレクト数を制御するための値を入力します。デフォルトの[最大リダイレクト数] の値は100です。
リダイレクトを無効にするには0 を入力します。
例えば、3 を入力した場合、サービスコネクタアクションは最大数である3つのリダイレクトを作成し、エンドポイントから3つのリダイレクト応答を受け取ります。エンドポイントが4番目のリダイレクト応答を要求した場合、エラーメッセージが表示されます。
• 要求タイムアウト(秒) : サービス要求がタイムアウトするまでのタイムアウト時間を秒単位で設定します。設定する値は、接続が成功した後にクライアントがサーバーからの応答を待機すると想定される最大時間です。サービス要求がタイムアウトになると、HTTP 500内部サーバーエラーメッセージが表示されます。• プリエンプティブ認証 : 認証の詳細(ユーザー資格情報)がエンドポイントへの要求と一緒に送信されます。エンドポイントに認証が必要なことがわかっている場合、[プリエンプティブ認証] を選択します。[プリエンプティブ認証] を選択せず、エンドポイントに認証が必要な場合、次のイベントが発生します。1 サービスコネクタは要求をエンドポイントに送信します。2 エンドポイントは認証を要求します。3 サービスコネクタはユーザー資格情報をエンドポイントに送信します。[プリエンプティブ認証] を選択し、エンドポイントに認証が必要な場合、余分な要求が発生することを避けられます。
• アクションタイプ : 各アクションに対し、次のいずれかのアクションタイプを選択できます。詳細については、共有サービスアクション を参照してください。- [全般] アクションは、特定のサービスコネクタと一緒に使用する目的でのみパブリッシュされます。- [要約] アクションはパブリッシュされませんが、他のアクションと共有できます。つまり、他のアクションのテンプレートとして再利用できます。- [継承] アクションは、要約アクションからプロパティを継承します。• 説明 : このアクションの説明または付記を入力します。各アクションについて、[入力] 、[バインディング] 、[出力] 、[テスト結果] の各タブに、追加の詳細を指定します。
共有サービスアクション 共有サービスアクションを使用すると、共通の入力、バインディング、出力を定義し、親「抽象」アクションから「継承する」その他のアクションでこれらの定義を再利用できます。
例えば、次の同じ要素を共有する複数のアクションを設けられます。
• 入力パラメータsession-id• HTTPヘッダーContent-Typeなど• バインディングメソッド(GET/POST)およびURL• 認証資格情報• 出力フィールドこの場合、次のように実行できます。
1 すべての共通定義を含む抽象型アクションを定義します。2 これらの共通定義を使用する複数の継承タイプのアクションを作成し、特定のパラメータを拡張または追加します。3 例えば、継承アクションを次のようにできます。- 新しい入力パラメータ($messageIdなど)を定義します。- バインディングURLを拡張し、「/{$messageId}」を使用して新しいパラメータをベースに追加します。以下に例を示します。
使用方法に関する注意
共有サービスアクションは次のとおりです。
• IPDとガイド内で設計時には使用できません。• 入力、バインディング、出力は単一の親(抽象)アクションから継承します。• 抽象アクションが他の抽象アクションから継承することは、許可されません。• 各サービスコネクタが複数の抽象アクションを持つことは許可されます。継承アクションタイプを指定すると、多くのフィールドが無効になります。
ただし、特定のバインディングやその他のオプションの場合、次を選択できます。
• 継承 : 抽象アクションからのすべての入力パラメータをそのまま使用します。これがデフォルトです。• 除外 : 設計時または実行時にアクションに使用できないように、パラメータを除外します。• 上書き : 継承したパラメータを上書きするパラメータを指定します。[入力]タブ [入力] タブを使用して、データの送信先サービスに固有の入力データ項目を定義します。
以下に例を示します。
サービスによっては、データ項目がない場合や、データ項目が多数ある場合があります。
各項目に対し、次のプロパティを入力します。
• 名前 : 入力データ項目の名前。名前は、文字、数字、特殊文字.@$^__を含めることができ、先頭にそれらのいずれかを使用する必要があります。名前にはスペースを含めることもできます。これは必須フィールドです。• ラベル : プロセス 内に表示する項目の名前。指定しない場合、[名前]が表示されます。• タイプ : リストから項目のデータ型を選択します。[参照]または[オブジェクトリスト]型を選択した場合、プロセスオブジェクトも選択できます。入力フィールドにテキスト、整数、数値、チェックボックス、日付、日時、時刻などの単純型のリストを設定することもできます。初期値には、次の例に示すように、単純型のリストに基づいた一連の値を使用します。
- テキストのリスト: ("Bob","John","Valery")- 整数のリスト: (1,2,3)- 数値のリスト: (22.5, -23.654, -45.876500)- チェックボックスのリスト: (true, false, true)- 日付のリスト: ("2022-01-03", "2021-12-11", "2020-03-04")- 日時のリスト: ("2022-01-03T11:23:01Z", "2021-12-11T23:11:55", "2020-03-04T22:10:45")- 時刻のリスト: ("12:30:00", "22:45:23", "05:01:02")型を単純型のリストとして設定するには、必要に応じて[テキスト] 、[整数] 、[数値] 、[チェックボックス] 、[日付] 、[日時] 、または[時刻] を選択し、[これはリストです] チェックボックスを選択します。
• 必須 : このパラメータに値を設定する必要がある場合に選択します。• 説明 : パラメータの説明を入力します。• パラメータ : 選択した場合、サービスコネクタはこのパラメータをサービスに渡します。パラメータが別のパラメータの作成時にのみ使用されるようにし、サービスに渡される必要がない場合は、このフィールドの選択を解除します。例えば、サービスは日付をRFC 1123形式で受け取りますが、そのサービスを呼び出すプロセスが、Process Designerの通常の形式であるXSDの日付を渡すようにします。このオプションは、XMLを除くすべてのデータ型に対して有効です。• テストに使用する値 : Process Designerがアクションをテストするために使用する値を入力します。入力が添付ファイルの場合、サンプルの添付ファイルをアップロードすることもできます。また、次の例に示すように、値を単純型のリストに設定して、JSON形式の入力フィールドをテストすることもできます。
{ "ListText": [ "textJson1", "textJson2" ], "ListInt": [ 1, 2, 3 ], "NumberList": [ 12.1, 12.12, 12.3 ] }
入力フィールドに値を入力した後に、行の外側の任意の場所をクリックして値を保存する必要があります。
[+] アイコンを使用し、新しい項目を追加します。[X] をクリックして現在の行を削除します。
サービスコネクタバインディング サービスコネクタ内の各アクションに対し、バインディングオプションを使用することで、サービスと通信するために必要なインタフェースとパラメータを指定できます。
バインディングプロパティ 次のオプションに値を指定します。
• URL : RESTサービスのURLを入力します。• 動詞 : サービスに対して次のデータの送信方法を選択します。- GET 、HEAD 、OPTIONS 、TRACE : Process Designerはクエリパラメータを自動的に生成します。- POST 、PUT 、PATCH 、およびDELETE : Process Designerは[バインディングタイプ] フィールドを追加します。そのフィールドで、値を[JSON] 、[JSONラップなし] 、[フォーム] 、[URL] 、または[カスタム] として選択できます。[カスタム] を選択した場合、[本文] フィールドが表示され、サービスに送信する要求を入力できます。デフォルトでは、POST 、PUT 、およびPATCH 動詞では[JSON] 、DELETE 動詞では[なし] が選択されています。入力内容については、APIのドキュメントを参照してください。• マルチ使用 : このオプションによって、パラメータに複数の値を指定するときのクエリ文字列パラメータの生成方法が決まります。次のいずれかを選択します。- セミコロン区切り : セミコロン区切りの複数選択リストの場合、Process Designerは入力パラメータ値を単一の文字列として追加します(例: ?param=a;b;c )。これがデフォルトです。- カンマ区切り : カンマ区切りの複数選択リストの場合、Process Designerは入力パラメータ値を単一の文字列として追加します。例: ?param=a,b,c 。- 括弧の追加 : セミコロン区切りの複数選択リストの場合、Process Designerはセミコロン区切りの値を同じ名前の複数のクエリパラメータにマッピングし、パラメータ名に[]を追加します。例: colors[]=red&colors[]=blue&name=JW 。- 数字の追加 : セミコロン区切りの複数選択リストの場合、Process Designerはセミコロン区切りの値を同じ名前の複数のクエリパラメータにマッピングし、フィールド名の末尾に数字を追加します。つまり、1..Nです。例: colors1=red&colors2=blue&name=JW 。• 認証タイプ : 必要な認証タイプを選択し、認証固有のパラメータを設定します。サービスに必要な認証情報を定義するには、次のいずれかのオプションを選択します。- ベーシック 。要求された場合はユーザー名とパスワードを入力します。テキストまたはXQuery式をユーザー名フィールドおよびパスワードフィールドに入力します。XQuery式を入力した場合、パスワード値をサービスコネクタ内にハードコードする代わりに、接続を介して渡せます。グラスのアイコンをクリックすると、パスワードが表示されます。
[パスワード内の式] チェックボックスを選択すると、入力したパスワードが保持され、サービスコネクタのエクスポート時にパスワードもエクスポートされます。
注: パスワードにアンパサンド(&)文字が含まれている場合は、サービスコネクタをテストすると、操作が失敗します。また、アプリケーション接続およびプロセスで同じサービスコネクタを使用している場合は、プロセス呼出しも失敗します。
- カスタム 。サービスの要件に基づいて、セキュリティパラメータを追加します。例えば、署名付きデータをHTTPヘッダーを使用して送信する必要がある場合があります。- OAuth2 。サービスの要件に基づいて、セキュリティパラメータを追加します。例えば、アプリケーションがワークスペースにメッセージを投稿できるようにするには、[定義] タブでchat:writeスコープセットを追加します。• [マルチパート要求の強制] : このチェックボックスを選択すると、サービスコネクタバインディングでマルチパート要求が強制され、区切り文字で区切られた1つの本文に1つ以上のデータセットが結合されます。このチェックボックスはデフォルトでオフになっています。このオプションを選択すると、添付ファイルをアップロードし、1つの要求ペイロードで複数のタイプのデータを転送できます。例えば、マルチパート要求を使用して、JSONオブジェクトとともにファイルを転送することができます。[マルチパート要求の強制] チェックボックスは、POST、PUT、PATCH、およびDELETE動詞に対してのみ使用することができます。• HTTPS/相互認証 : アクションで相互認証にカスタムクライアント証明書を使用する必要がある場合は、このチェックボックスを選択します。アクションごとに1つのカスタムクライアント証明書を設定できます。選択した場合、[キーストアファイルパス] フィールドと[キーストアのパスワード] フィールドが表示されます。キーストアファイルをSecure Agentマシンに配置する必要があります。注: Secure Agentで実行されるサービスコネクタのカスタムクライアント証明書を設定できます。サービスコネクタのカスタムキーストアファイルを設定し、さらにProcess Serverプロパティのjavax.net.ssl.keyStore プロパティを変更するときは、サービスコネクタで設定されたカスタムキーストアファイルが優先されます。サービスコネクタの認証に失敗した場合、javax.net.ssl.keyStore プロパティで設定したクライアント証明書は無視され、要求は失敗します。
• キーストアファイルパス : Secure AgentマシンのJava KeyStore(JKS)ファイルのパスとファイル名を入力します。• キーストアのパスワード : キーストアファイルを開くためのパスワードを入力します。その他のパラメータ このセクションは、サービスに必要な入力パラメータを追加するために使用します。この値は、リテラルまたは式として指定できます。使用しているサービスからのドキュメントを参照してください。
行を追加し、複数のパラメータを入力するには、[+] 記号をクリックします。行を削除するには、[X] をクリックします。
各行に次の値を入力します。
• 名前 : 呼び出されるサービス内で指定されたパラメータの名前。• コンテンツ : パラメータに指定する値(必要な場合)。バインディングのためのオプションのパラメータを選択するには、[詳細の表示] をクリックします。
• 署名に使用する値 : 計算される値は、最初にSHA1を使用して署名され、署名の結果がこの値になります。• 署名に使用する値 : SHA1またはSHA256を使用してフィールドを署名する場合に選択します。• エンコードに使用する値 : Base64およびHex64Upperとしてフィールドをエンコードする場合に選択します。• 一時 : 選択した場合、GETまたはPOSTの使用時にProcess Designerではパラメータが生成されません。詳細については、[入力]タブ に記述されたパラメータに関する情報を参照してください。• Attachment Base64 : <inputName>と関連付けられた添付のBase64エンコードを指定します。• 次からの添付ファイル名 : <inputName>と関連付けられた添付のフィールド名を指定します。フィールドを非表示にするには、[詳細の非表示] をクリックします。
HTTPヘッダー サービスに1つまたは複数のHTTPヘッダーが必要な場合、このセクションの各ヘッダーに、[名前]と[コンテンツ](パラメータの値)を入力します。
SOAPベースのサービス接続を定義するには、「SOAPAction」ヘッダーと「Content-Type」ヘッダーの両方を追加する必要があります。SOAPActionの値は空にする、GETを使用して動的に設定する、WSDLで定義することができます。
サービスの応答ヘッダーにContent-Typeが設定されていない場合、サービスコネクタはコンテンツタイプをペイロードから推論しようとします。例えば、応答が{...}または[...]のいずれかで始まるか終わっている場合、その応答はJSONとして解析されます。応答のペイロードが山括弧(<)で始まっている場合、その応答はXMLとして扱われます。応答のペイロードが不具合のあるJSONまたはXMLであるために解析できない場合、通常の文字列として処理されます。
応答Content-Typeヘッダーの最初のパートにapplication という用語、後続のパートにjson という用語が含まれている場合、アプリケーション統合では応答ペイロードタイプがJSONとして推測されます。同様に、応答Content-Typeヘッダーの最初のパートにtext という用語、後続のパートにxml という用語が含まれている場合、アプリケーション統合ではペイロードタイプがXMLとして推測されます。
一部のサービスには、MD5署名を要求するものがあります。MD5署名は、サービスコネクタアクションの[HTTPヘッダー] セクションで生成できます。
MD5署名を生成するには、次の手順を実行します。
• HTTPヘッダーの名前を入力します。例えば、「Signature」 と入力します。• [ソース] > [式エディタ] に移動します。• [タイプ] の下で、[XQuery] を選択します。• [フィールドの挿入] の下で、[PAYLOAD_DIGEST_MD5] を選択します。サービスコネクタをテストまたは実行するときに、使用される変数に生成済み要求ペイロードのMD5チェックサムが格納されます。
コンテンツタイプと文字セット 要求ペイロードに使用する文字セットは、ここに示すように判断できます。
• 文字セットの値をContent-Typeヘッダー内に指定します。この場合、ヘッダーによって、要求ペイロードの文字セットが決まります。この場合、文字セットは、要求の形式が添付タイプでない限り、ヘッダーに指定される値に基づきます。添付タイプである場合、multipart/form-data要求の各部は個別に扱われます。Content-Typeを設定し、サービスコネクタがデフォルトの文字セットを自動的に付加するようにする場合、次に示すように、指定したContent-Typeの後にセミコロンを追加します。Content-Type=application/json;
• Content-Typeヘッダーには文字セットを指定せず、この値が要求形式に基づいて自動的に設定されるようにしてください。コンテンツが正しくデコードされることを保証するため、サービスコネクタはデフォルトの文字セット(UTF-8)をContent-Typeに付加します。例えば、この値は次のように設定されます。Content-Type=application/json;charset=UTF-8
サービスコネクタプロパティの式 エディタ バインディングパラメータを定義するには、[URL]、[その他のパラメータ]、[HTTPヘッダー]の各フィールドに対して使用できる式 エディタを使用できます。
式 エディタを開くには、編集するフィールドの横の[f(x)] をクリックします。式 エディタを開くと、図に示すように、使用可能な関数と、サービスコネクタに対して定義されたフィールドのリストにアクセスできます。
式に選択された型に基づいて、式 エディタで構文検証が適用されます。この場合、post_urlフィールドは、XQuery変数として検証されます。
詳細については、
式エディタの使用 を参照してください。
[出力]タブ [出力] タブを使用して、サービスコネクタがサービスから返されるデータを解析し、そのデータを変数に配置する方法を定義します。通常、サービスはデータをXML形式で返します。サービスがデータをJSON形式で返す場合、サービスコネクタはそれをXML形式に変換します。XMLは、次の2種類の方法で出力フィールドにマッピングできます。
1 XMLタグ名またはJSONプロパティに基づいて、データを直接プロパティにマッピングします。2 式 を使用して、要素を抽出します。注: JDOMやWoodstoxなどのXML解析ツールを使用してXML応答を解析してから、値を抽出する(プレーン文字列検索を実行して名前空間とタグを照合するのではなく)ことをお勧めします。名前空間のプレフィックスが一定ではないため、プレーン文字列を照合するとエラーが発生する可能性があります。
次の図は、[出力] タブを示しています。
各出力データ項目について、次の要素を指定します。
• 名前 : 返された値が配置される変数の名前。名前の先頭の文字はアルファベットまたは数字にする必要があります。また、名前に使用可能な文字は英数字、スペース、およびアンダースコア(_)のみです。これは必須フィールドです。• タイプ : 変数に書き込まれる値のデータ型。タイプが[オブジェクトリスト]または[参照]である場合、Process Designerはプロセスオブジェクトのリストを表示し、[プロセスオブジェクト] タブ内で定義されたオブジェクトのいずれかを選択できるようにします。出力フィールドにテキスト、整数、数値、チェックボックス、日付、日時、時刻などの単純型のリストを設定することもできます。型を単純型のリストとして設定するには、必要に応じて[テキスト] 、[整数] 、[数値] 、[チェックボックス] 、[日付] 、[日時] 、または[時刻] を選択し、[これはリストです] チェックボックスを選択します。
• 説明 : 変数を説明するテキスト。• 取得元 : 次のいずれかのオプションを選択します。- プロパティ : 変数内に配置される名前付きの値(サービスから返されるXML内で使用される名前)を入力できるようにします。[プロパティ] オプションではXML応答内の1つのプロパティしか取得できないため、[参照] には[プロパティ] オプションを設定しないようにしてください。- 式 サービスから返されるXMLを解析するための式を記述できるようにします。上の図では、 AllModelsCount 変数の1つの値を返すために、 $RESTResponse 出力フィールドが使用されています。 CarMakesList に使用された式は、リストを返します。 [f(x)] をクリックして、式を入力するための式エディタを開きます。 - HTTP応答ステータスコード : HTTP応答ステータスコードを確認できるようにします。- HTTP応答ヘッダー : フィールドに割り当てられる応答ヘッダーの部分を入力できるようにします。詳細については以下を参照してください。- 応答全体 : フィールドに応答ペイロードのコンテンツ全体を割り当てられるようにします。- 簡易XML : データを再配置することで、プロセスオブジェクトが使用できるようにします。詳細については、簡易XML を参照してください。- 添付ファイルとしてのすべての応答 : 応答全体を添付ファイルとして処理します。注: [添付ファイルとしてのすべての応答] オプションでは、下位互換性が維持されます。以前に単一の添付ファイルを持つサービスコネクタを作成した場合、そのファイルはそのまま機能するため、手動で変更する必要はありません。ただし、添付ファイルを手動で分割する必要がないよう、サービスコネクタを再設計して、マルチパート応答が複数の添付ファイルとして処理されるようにすることをお勧めします。また、プロセス内ではなく、サービスコネクタ自体内で添付ファイルに処理ロジックを使用することもできます。そのため、複数のプロセス内でサービスコネクタを使用でき、複数のプロセスで処理ロジックを設計する必要がありません。出力添付ファイルの処理に使用できる関数を使用することもできます。
- 添付ファイル : 複数の添付ファイルを処理して、添付ファイルの全リストを選択した変数(ペイロードとして使用されるパートを除く)に渡します。出力フィールドに値を入力した後に、行の外側の任意の場所をクリックして値を保存する必要があります。
HTTPエラーの処理方法の詳細については、
HTTPエラーのチェック を参照してください。
単純型のリストを使用する際のルールとガイドライン サービスコネクタで単純型のリストを使用する場合は、次のルールとガイドラインを考慮してください。
• ペイロード応答に一意のフィールドが含まれる場合にのみ、出力フィールドの[プロパティ] オプションを使用する必要があります。重複したフィールドがある場合、または単純型のリストを含むフィールドがある場合、XMLドキュメント内に同じフィールド名を持つ値が1つ以上ある可能性があります。その場合、[式] を選択し、XQuery を使用して正しいフィールドを取得する必要があります。例えば、次のサンプルに示すように、ペイロード応答の[プロパティ] オプションを選択するとします。
<users> <user1> <ID>1</ID> <ID>2</ID> <ID>3</ID> </user1> <user2> <ID>4</ID> <ID>5</ID> <ID>6</ID> </user2> <users>
単純型のフィールドを使用し、出力をIDとして設定する場合。アプリケーション統合はIDのインスタンスを識別し、値が4のIDといった単一の出力値を返します。ただし、単純型のリストを持つフィールドを使用する場合、アプリケーション統合は出力インスタンスを見つけます。次に、アプリケーション統合は、要素内の同じレベルからすべてのインスタンスを返します。この例では、ユーザー1で値が1のIDが識別された場合、アプリケーション統合はユーザー1内のID 2と3も返します。
この問題を回避するには、IDなどの重複フィールドがあって、ユーザー2の2番目のIDを使用する場合は、次のサンプルに示すようにXQuery を使用し、正しいフィールドを返すようにします。
.//user2/ID[2]/text()
単純型の変数のリストの値のシーケンスを使用するには、次のシナリオを検討してください。
文字列のリストを含むテキスト出力変数がある場合、カンマ区切りの文字列を構築するには、次のサンプルに示すようにXQueryを使用します。
{string-join($TextsOut , ",")}
日時値のリストがあり、日付のリストから2番目の値にアクセスする場合は、次のサンプルに示すようにXQueryを使用します。
{$DateTimesOut[2]}
整数値のリストにあるすべての整数を反復処理する場合は、次のサンプルに示すようにXQueryを使用します。
{for $j in $Integers return $j}
• 単純型のリストを含む入力フィールドを使用してJSONペイロードを生成すると、出力はJSON配列の形式になります。JSON応答を解析すると、フィールドも単純型のリストに変換されます。例えば、生成されたJSONペイロードは次のサンプルのように表示されます。
{ "userNames": ["Bob","John","Valery"] }
XMLペイロードを生成すると、リクエストは次のサンプルのように表示されます。
<root> <userNames>Bob</userNames> <userNames>John</userNames> <userNames>Valery</userNames> </root>
簡易XML Process Designerでは、標準XMLでプロセス の設計者にデータを提示するために必要とされる、名前空間、属性、兄弟、子が混在する複雑な構成の多くは、必要ありません。場合によって、[取得元]にXQueryオプションを使用する必要がありますが、多くのアプリケーションでこれは必要ありません。
簡易XMLは、XML内のデータを再配置し、プロセスオブジェクトで使用できるようにします。この再配置では、属性を子として扱い、名前空間を削除し、同じ名前の兄弟を連続させ、CDATAセクションにテキストを配置します。
[取得元]のオプションに[簡易XML]を選択すると、Process Designerにテキストフィールドが表示されます。このフィールドに何も入力しないと、Process Designerは受け取ったすべてのXMLを処理します。要素の名前を入力すると、Process Designerはこの要素で単純化を開始し、この要素とその内部にネストされた要素のみが処理されます。
ピリオド(.)を入力すると、空のフィールドとして扱われます(これがデフォルトです)。
HTTPエラーのチェック サーバーに要求を送信し、サーバーがこの要求を完了できない場合、エラーステータスコードが返されます。サービスコネクタがHTTPエラー(HTTP応答内の4xxステータスコードと5xxステータスコード)を処理できる2種類の方法があります。
1 [アクション] タブで定義できる各アクションについて、下の図に示すように、[HTTPエラー時に終了]を選択できます。デフォルトでは、このオプションが有効になっています。HTTP要求がHTTPエラーを返すと、サービスコネクタは終了します。2 [出力] タブで、各アクションに対してHTTPエラーの処理方法を指定します。このオプションを実装するには、[HTTPエラー時に終了]を無効にします。HTTPエラー時に終了 [HTTPエラー時に終了]を有効にすると、HTTPエラーが返された場合、次のようになります。
• プロセスが失敗すると、プロセスの詳細をアプリケーション統合コンソール で表示できます。• プロセスにダイアログが表示され、受信したHTTPエラーを示すメッセージテキストがエンドユーザーに表示されます。• サービスコネクタは、プロセスがフォールトをスローするのと同じ形式で、フォールトをスローします。<sf:faultResponse> <sf:code>CODE</sf:code> <sf:reason>REASON</sf:reason> <sf:details>DETAILS</sf:details> </sf:faultResponse>
HTTPエラーコードは、HTTP_NNNの形式に従います。例えば「HTTP_404」です。理由文字列にHTTPステータスメッセージが含まれます。
注: 内部エラーまたはシステムエラーは、SERVICE_CONNECTOR_ERRORと次の理由文字列のいずれかを返します。
• CATALOG_ERROR• OTHER_PARAMETERS_ERROR• AUTHENTICATION_ERROR• CUSTOM_HEADERS_ERROR• BINDING_URL_ERROR• ALTER_REQUEST_AUTHENTICATION_ERROR• PROCESS_RESPONSE_AUTHENTICATION_ERROR• OUTPUT_PARAMETERS_ERROR[HTTPエラー時に終了]を無効にすると、HTTPエラーが返された場合、次のようになります。
• プロセスはフォールトにならず、サービスコネクタは4xxステータスコードまたは5xxステータスコードをプロセスに渡すため、これに応じてユーザーがプロセス内のエラーを処理できます。• プロセスはフォールトになり、エラーメッセージが表示されます。ターゲットサービスが、ユーザーに頻繁に表示される可能性があるエラーコードを使用する場合、このオプションを有効にして、プロセスユーザーにわかりやすい情報が提供されるようにします。
次の図に、有効化された[HTTPエラー時に終了]オプションを示します。
HTTPエラーの処理 プロセスのHTTPエラーを処理するには、まず[HTTPエラー時に終了] が無効であることを確認します。
次に、プロセス内のHTTP応答ステータスコードを確認する必要があります。
これを行うには、「HTTP応答ステータスコード」を[出力] タブの変数として定義します。また、$ResponseStatusCodeを式 フィールド内で使用して、変数を指定することもできます(以下の使用可能な機能を参照)。この方法では、ステータスコードをサービスコネクタの出力の一部として渡し、プロセス内で応答を処理できます。
これらの変数は、[出力] タブ内で作成するすべての変数と同様に、[テスト] をクリックすると表示されます。
[HTTPエラー時に終了]を選択し、HTTPエラーステータスコードが返される場合、出力にメッセージが含まれます。
式 を使用するHTTP応答ヘッダー情報次のいずれかを使用して、応答ヘッダーから詳細を取得できます。
$ResponseHeaders[@name = "Content-Type"]/text(); この定数には、HTTP応答ヘッダーが格納されます。 fn:getResponseHeader( $ResponseHeaders, header_name [, default_value ] ); 応答ヘッダー値を返します。ヘッダーパラメータが定義されていない場合、この関数は、オプションのデフォルト値を返します。 fn:responseHeaderExists( $ResponseHeaders, header_name ); ヘッダーパラメータが応答内にあるかどうかを示すBoolean値を返します。 fn:getResponseHeaderNames( $ResponseHeaders ); 応答ヘッダー内のすべてパラメータの名前を格納したリストを返します。 サービスコネクタプロセスオブジェクトの作成 [プロセスオブジェクト] タブでは、サービスコネクタの1つ以上のプロセスオブジェクトを定義して、データをグループ化し、構造化オブジェクトを作成できます。プロセスオブジェクトがサービスコネクタ内で定義されている場合、そのサービスコネクタを使用するプロセス から使用できます。例えば、サービスが名前、住所、電話番号などの人口統計情報を返す場合、この情報を格納する単一の人口統計的プロセスオブジェクトを作成できます。
[アクション/出力] タブを使用して、サービスによって返された1つ以上のデータ要素と各プロセスオブジェクトを関連付けられます。
サービスコネクタのプロセスオブジェクトを作成するには、次の手順を実行します。
1 サービスコネクタを作成するか、既存のコネクタを開きます。2 [プロセスオブジェクト] タブをクリックします。3 [+] 記号をクリックし、新しいプロセスオブジェクトを追加するか、既存のプロセスオブジェクトをリストから選択します。各プロセスオブジェクトは、タブ内に行項目として表示されます。4 [プロパティ] タブで、各プロセスオブジェクトに対し、次の詳細を指定します。- 名前 。プロセスオブジェクトを識別するプロセスオブジェクト名を入力します。この名前は、プロセスオブジェクトを選択できるリストに表示されます。名前の先頭の文字は英字にする必要があり、名前には英数字、アンダースコア(_)、およびハイフン(-)のみを含めることができます。これは必須フィールドです。- 説明 。オプションで説明を入力できます。5 [フィールド] タブで、各プロセスオブジェクトに対し、次の詳細を指定します。- 名前 。プロセスオブジェクト内の各フィールドの名前を入力します。- タイプ 。組み込みデータ型のいずれかを使用して、変数に書き込まれる値のデータ型を選択します。[参照]または[オブジェクトリスト]型を選択した場合は、プロセスオブジェクトを選択できます。また、プロセスオブジェクトフィールドに、チェックボックス、日付、日時、整数、数値、テキスト、時刻などの単純型のリストを設定することもできます。
型を単純型のリストとして設定するには、必要に応じて
[チェックボックス] 、
[日付] 、
[日時] 、
[整数] 、
[数値] 、
[テキスト] 、または
[時刻] を選択し、
[これをリストにする] チェックボックスを選択します。単純型のリストの使用方法に関する詳細については、
単純型のリストを使用したフィールドの作成 を参照してください。
- 必要に応じて、テキスト、日付、日時、時刻、数値、整数などのデータ型を選択した後に、行を展開します。データ型ごとに次の値を入力できます。▪ テキストデータ型の文字長とテキスト形式▪ 日付データ型の日付範囲▪ 日時データ型の日時範囲▪ 時刻データ型の時刻範囲▪ 数値データ型の最小値と最大値▪ 整数データ型の最小値と最大値- 必須 。このチェックボックスを選択すると、フィールドが必須フィールドとして設定されます。必須フィールドは、要求ペイロードに含まれている必要があります。値を含めることも、空にすることも、NULLにすることもできます。
- NULL可能 。フィールドがNULL値を受け入れないようにする場合は、このチェックボックスをクリアします。デフォルトでは、[NULL可能] チェックボックスが選択されています。注: サービスコネクタ内で作成されるプロセスオブジェクトとそのネストされたオブジェクトに対して、インラインタイプの注釈を使用できます。ただし、プロセスオブジェクトタイプの注釈は、プロセスオブジェクトが作成されたサービスコネクタでのみサポートされます。
プロセスでのプロセスオブジェクトの使用の詳細については、
プロセスでプロセスオブジェクトを使用するためのルールおよびガイドライン を参照してください。
サービスコネクタのテスト サービスコネクタエディタを使用するときは、[テスト] をクリックしてサービスに要求を送信し、応答データを[テスト] タブに表示します。
ここでは、ペイロード、要求、応答データの違いを確認できます(図示することのみを目的としており、実際のテスト結果には、要求または応答データのみが表示されます)。
応答に1つ以上の添付ファイルが含まれている場合は、それらの添付ファイルをダウンロードすることもできます。次の図は、すべての添付ファイルをダウンロードできるマルチパート応答を示しています。
プロセスオブジェクトの生成
通常プロセスオブジェクトは、特定の要素セットに結び付けられます。場合によっては、多数の同一のオブジェクトを持ち、それぞれが1つの要素セットに適用されることがあります。例えば、返されるデータを定義するときに、返されるデータのサブセットを定義することのみを目的とするプロセスオブジェクトを作成します。これらのオブジェクトは再利用不可能であり、単一のプロセスオブジェクトフィールドのみが使用できます。オブジェクト名は、フィールドの名前でもあります。
再利用可能なオブジェクトを作成することもできます。例えば、NetSuiteのrefType要素には、nameとinternalIDという2つのフィールドがあります。これら2つのフィールドをそれぞれが含む多数のオブジェクトを作成するのでなく、1つの再利用可能なプロセスオブジェクトを作成できます。
1 [プロセスオブジェクトの生成] をクリックして、サービスコネクタ用に定義したプロセスオブジェクトを表示します。2 再利用可能にするプロセスオブジェクトを選択し、[次へ] をクリックします。Process Designerに、生成されたプロセスオブジェクトの一覧が表示されます。
3 [完了] をクリックします。サービスコネクタのタイミング サービスコネクタのタブで、HTTP応答解析時間、HTTP実行時間、およびリダイレクト数を参照できます。
タブの[REST応答] セクションで、次のHTTPヘッダーを参照できます。
HTTP応答解析時間 [バインディング] タブに入力したURLからの応答を解析するために、サービスコネクタが費やす時間(ミリ秒単位)。小さい要求のHTTP応答解析時間は、通常ゼロです。大きい要求で、特に添付ファイルのある要求の場合、HTTP応答解析時間は長くなります。HTTP応答解析時間は、HTTPヘッダーのX-AE-HTTP-RESPONSE-PARSING-TIME-IN-MILLIS を参照してください。 リダイレクト数 [バインディング] タブに入力したURLによって行われるリダイレクトの数(ある場合)。例えば、サービス要求が、別のサービスにリダイレクトするサービスにリダイレクトする場合、リダイレクト数は2になります。サービス要求がリダイレクトなしで行われる場合、リダイレクト数はゼロになります。 リダイレクト数は、HTTPヘッダーのX-AE-REDIRECTION-COUNT を参照してください。 注: GET HTTP要求が別のGET HTTP要求にリダイレクトする場合、リダイレクト数はゼロのままです。これは制限事項の1つです。
HTTP実行時間 [バインディング] タブに入力したURLの応答時間(ミリ秒単位)。HTTP実行時間には、応答の解析時間や、サービスコネクタが他のタスクを実行するために使用した時間は含まれません。HTTP実行時間は、HTTPヘッダーのX-AE-HTTP-EXECUTION-TIME-IN-MILLIS を参照してください。 次の図は、X-AE-HTTP-RESPONSE-PARSING-TIME-IN-MILLIS 、X-AE-REDIRECTION-COUNT 、およびX-AE-HTTP-EXECUTION-TIME-IN-MILLIS の各HTTPヘッダーを示します。