「OData の読み取り」アクティビティー

このアクティビティーは、OData URL とともに照会パラメーター、ペイロード、HTTP ヘッダーを入力として受け取り、使用されているオブジェクトの詳細、1 次キーの詳細、およびペイロード (存在する場合) を提供する出力を作成します。この出力は、オーケストレーション内でその他のアクティビティーとともに、ビジネス・ロジック実行の一部として使用されます。

「OData の読み取り」アクティビティーの構成プロパティー

表 1. 「構成」パネルのプロパティー
フィールド名 説明
OData バージョン このアクティビティーで使用される OData のバージョン。単一オーケストレーション内のアクティビティーはすべて、同じバージョンを使用する必要があります。現在サポートされているバージョンは 4.0 のみです。
入力データの選択 「OData の読み取り」アクティビティーにビジネス・データ構造を提供する方法について、いずれかのオプションを選択します。OData API は、提供されるこのビジネス構造に基づいて作成されます。
  • 既存 XML スキーマ: オーケストレーション内で使用可能な既存のスキーマを参照する場合、このオプションを選択します。このオプションでは、1 つのオブジェクトのみを選択できます。これは、OData API が 1 つのトップレベル・オブジェクトのみをサポートすることを意味します。Cast Iron オーケストレーションによって OData API を公開する必要がある場合、このオプションを使用します。
  • エンドポイント URL (OData API): 外部 OData API アプリケーションと対話する場合、このオプションを選択します。この場合、Cast Iron はクライアントとして機能します。外部アプリケーションのサービス・ルート URL を指定する必要があります。このオプションは、バージョン 7.5.1 時点ではサポートされておらず、将来のバージョンで追加される予定です。
  • 複数エンティティーをサポートするための新規 XML スキーマ: OData API で複数のトップレベル・オブジェクトをサポートするには、このオプションを選択します。1 つ以上のグローバル・エレメントを含んだ XML スキーマを、提供されるテキスト域に貼り付ける必要があります。Cast Iron オーケストレーションによって OData API を公開する必要がある場合、このオプションを使用します。例えば、下記のサンプル XML スキーマを参照してください。

例として、account オブジェクトと product オブジェクトを含んだサンプル XML スキーマを示します。

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
 xmlns:ras="http://www.sample.com/xmlns/prod/sample"
 targetNamespace="http://www.sample.com/xmlns/prod/sample">
 <element name="account" type="ras:AccountObject"/>
 <element name="product" type="ras:ProductObject"/>
 <complexType name="AccountObject">
  <sequence maxOccurs="1" minOccurs="1">                       
        <element maxOccurs="1" minOccurs="0" name="accountId" type="int"/>                       
        <element maxOccurs="1" minOccurs="0" name="accountName" type="string"/>                       
        <element maxOccurs="1" minOccurs="0" name="valid" type="boolean"/>           
  </sequence>
 </complexType>
 <complexType name="ProductObject"> 
  <sequence maxOccurs="1" minOccurs="1">
   <element maxOccurs="1" minOccurs="1" name="pid" type="int"/>
   <element maxOccurs="1" minOccurs="0" name="productName" type="string"/>                       
   <element maxOccurs="1" minOccurs="0" name="description" type="string"/>                       
   <element maxOccurs="1" minOccurs="0" name="stock" type="int"/>           
  </sequence> 
 </complexType>
</schema>
表 2. 「入力のマップ」プロパティー
フィールド名 説明
serviceName これは、OData ReST API の名前であり、URL の一部になります。このプロパティーの値は、HTTP 「要求の受信」アクティビティーの「構成」パネルにある「URL (ホスト名の後のパス)」プロパティーの値と一致しなければなりません。この名前の URL がヒットすると (例えば、http://host/serviceName)、応答内でサービス文書が返されます。
protocol OData ReST API でサポートされるプロトコル。この値は、サポートされる 2 つの値 (HTTP または HTTPS) のいずれかにデフォルトで設定される必要があります。
host API を実行しているホスト。このプロパティーの値は、HTTP 「要求の受信」アクティビティーの出力からマップされる必要があります。
method 要求の HTTP メソッド。このプロパティーの値は、HTTP 「要求の受信」アクティビティーの出力からマップされる必要があります。
uri http 要求の URI。このプロパティーの値は、HTTP 「要求の受信」アクティビティーの出力からマップされる必要があります。
Accept 「Accept」ヘッダーの値。このプロパティーの値は、デフォルト値を設定するか、HTTP 「要求の受信」アクティビティーの出力からマップすることができます。サポートされる値は、application/json および application/xml です。
Content-Type 「Content-Type」ヘッダーの値。このプロパティーの値は、デフォルト値を設定するか、HTTP 「要求の受信」アクティビティーの出力からマップすることができます。サポートされる値は、application/json および application/xml です。
PrimaryKeys 選択済みのビジネス・データ構造内で 1 次キーとしてマークを付ける必要があるフィールド。このプロパティーはストリング配列型であり、複合 1 次キーをサポートするために複数の値を受け入れます。

フィールド値の構文を以下に示します。

syntax: objectName:fieldName

例えば、前記のスキーマの場合、値は account:accountId または product:pid になります。

readODataInputPayload POST、PUT、および PATCH の HTTP メソッドの場合に渡す必要がある OData 要求ペイロード。このプロパティーの値は、HTTP 「要求の受信」出力の body プロパティーからマップされる必要があります。
readODataHttpHeadersInput このプロパティーは、HTTP 「要求の受信」アクティビティーのヘッダー出力からマップできます。

応答内のプロパティーの一部は入力で使用可能なプロパティーと同じです。それ以外の「出力のマップ」プロパティーについて、以下で説明します。

表 3. 「出力のマップ」プロパティー
フィールド名 説明
isMetadataDocumentRequest このプロパティーが true の場合は、要求呼び出し (/serviceName/$metadata) の対象がメタデータ文書であり、プロパティー metadataDocument 内に応答メタデータ文書が提供されることを指示します。
metadataDocument このプロパティーには、/serviceName/$metadata 呼び出しが行われる際、メタデータ文書が含まれます。
isServiceDocumentRequest このプロパティーが true の場合は、要求呼び出し (/serviceName) の対象がサービス文書であり、プロパティー serviceDocument 内に応答サービス文書が提供されることを指示します。
serviceDocument このプロパティーには、/serviceName 呼び出しが行われる際、サービス文書が含まれます。
resourcePath このプロパティーには、呼び出しの URL パスが含まれます。
entities このプロパティーはストリング配列型であり、URL で要求されたエンティティー・セット名が含まれます。例えば、serviceName が /test で、選択済みのビジネス・データ構造が (前記のスキーマにある) account である場合、すべての account の詳細を取得するための URL は http://hostname/test/accounts になります。この例の場合、エンティティー・セット名は accounts です。
fieldName ビジネス・データ構造内に存在するフィールド名の要求の場合、このプロパティーにフィールドの名前が含まれます。例えば、要求された URL が http://hostname/test/accounts(5)/accountName であれば、fieldName の値は accountName になります。
additionalpath 要求 URL 内に $value または $count などの追加のトークンが存在する場合、このプロパティーにはその値が含まれます。
primaryKeys

要求 URL に 1 次キーが含まれる場合、その情報がこのフィールドに含まれます。

URL の例:

http://hostname/test/accounts(5)

http://hostname/test/salesorder(orderid='so1',name='ask')

primaryKeys 構造には、1 次キーのフィールド名、値、およびデータ型が含まれます。

readODataHttpHeadersOutput 要求の一部として送信されたヘッダー情報が含まれます。
readODataQueryParametersOutput OData によって定義された標準の照会パラメーターが含まれるほか、追加の照会パラメーターがある場合はそれも含まれます。
readODataOutputPayload 要求の一部としてペイロードが送信された場合 (POST 操作および PUT 操作が対象)、ペイロードは解析され、応答ビジネス・データ構造に取り込まれます。