構成フィールドの設計
この項では、エンドポイントを構成するための構成フィールドの設計方法について説明します。
処理の構成では、ユーザーが複数の構成フィールドを選択する必要がある場合があります。 Rapid Adapter Builderプラットフォームでは、ユーザーが次のことを実行できるように、アクションを柔軟に構成できます:
- 選択的オプションを使用して構成フィールドを選択できます。
- 実行する一連の有効な選択肢が表示されます。
- アクションの構成中に誤りを犯さないでください。
- ユーザーの入力に基づいて取得される値のセットが表示されます。
ユーザーが必要な選択を行うと、設定構成フィールドによってアクションの実行時実行が促進されます。
たとえば、Oracle Integrationのアダプタを使用すると、統合設計者はAPIによる外部アプリケーションのコール方法を構成できます。 次のスクリーンショットは、Oracle IntegrationのOracle ERPアダプタによって、Fusionアプリケーションの様々な領域を表す3つの選択肢がユーザーにどのように表示されるかを示しています。

これらの構成フィールドは、Oracle Integrationユーザー・インタフェースでユーザー・インタフェース・ウィジェットとして表示されます。 構成フィールドには、次のプロパティがあります:
namedisplayNamedescriptiontyperequiredoptionsdependencies
プロパティの詳細は、「アクションのプロパティとサンプル・コード」を参照してください。
typeプロパティは、ユーザー選択に使用するユーザー・インタフェース・コンポーネントのタイプを定義します。 リスト・ボックス、テキスト・ボックス、ボタンなどのユーザー・インタフェース・コンポーネントが含まれます。 各ユーザー・インタフェース・コンポーネントの使用方法についてさらに学習するには、「アダプタのユーザー・インタフェース・コンポーネントの設計」を参照してください。
構成依存関係のタイプ
アダプタ構成のタイプは次のとおりです:
- 依存関係なし
相互に依存しない一連の構成フィールド。 構成フィールドから値を選択することは、他の構成に影響を与えたり、駆動したりしません。
ノート:
構成フィールドに依存関係がない場合、アダプタ開発者はdependenciesプロパティを指定する必要はありません。 - フィールド依存性
構成フィールドから値を選択すると、他の構成に影響して開始する場合があります。
例1: Oracle ERPアダプタで、ビジネス・オブジェクトを選択すると、リスト・ボックスにビジネス・オブジェクトのリストが表示されます。
例2: Google Sheetアダプタは、スプレッドシートに行を挿入する操作を提供します。 最初の構成可能ステップとして、ユーザーはスプレッドシートを選択します。 スプレッドシートには複数のワークシートを含めることができるため、次の構成可能なフィールドとして、アダプタによってワークシートの選択が開始されます。
- 値の依存関係
構成フィールドは、後続の1つ以上のフィールドの表示およびフィールド値を制御します。 たとえば、Oracle ERPアダプタでは、ユーザーが「参照元」ドロップダウンから「ビジネス(REST)リソース」を選択すると、「Serviceアプリケーション」の追加ドロップダウン・オプションが開始または表示され、ユーザーは
crmRestAppやhcmRestAppなどの値を指定できます。 ただし、ユーザーが「参照元」フィールドから「ビジネス・オブジェクト」を選択した場合、アダプタには「Serviceアプリケーション」フィールドは表示されません。 この例では、「ビジネス(REST)リソース」の値のみが「Serviceアプリケーション」フィールドの表示を決定します。
依存関係の設計
子フィールドまたは依存フィールドで依存性句を宣言すると、依存する親フィールドに関する子フィールドに表示されます。 子フィールドには、その機能を駆動する親を1つのみ含めることができます。 valuesキーに空の配列を指定すると、親の値によって子の機能が促進されることを示します。
スプレッドシート内でワークシートを選択するユーザーのビジネス・ユース・ケースについて考えてみます。 ワークシートの表示は、スプレッドシートの特定の値では行われません。 選択した値によって、ワークシート・フィールドの表示およびフィールド値が決まります。 処理を構成するために、スプレッドシートの選択はワークシートの選択に依存しません。
サンプル・コード:
"dependencies": {
"parentOption": {
"values": []
}
}
依存関係なし
オプションをユーザーが選択すると、特定のAPIを呼び出すアクションが発生する可能性があります。 APIが正しく応答し、詳細なオブジェクト情報を取得できるように、ユーザーが2つの独立した静的問合せパラメータを選択する必要があるビジネス・シナリオを考えてみます。 このシナリオでは、2つの静的問合せパラメータは相互に依存しないため、フィールドは相互に依存しません。 依存関係がない場合、構成フィールドのユーザー選択は任意の順序で実行できるため、すべてのユーザー・インタフェース・ウィジェットが表示されます。
次のサンプル・コードは、依存関係がない2つの構成フィールドを示しています。
browse_byrestServiceApplication
browse_by構成フィールドは、ユーザー選択の静的なオプション・セットを宣言し、オブジェクトの配列として設計されています。 各オブジェクトには、keyNameおよびdisplayNameがあります。 keyNameはオプションの内部識別子で、displayNameはユーザー・インタフェースに表示される名前です。
restServiceApplication構成フィールドはフローを参照します。 ユーザー・インタフェースに表示されるCOMBO_BOX構成フィールドは、フローの実行から導出されます。
サンプル・コード:
[
{
"name": "browse_by",
"displayName": "Browse By",
"description": "Select the style of objects to configure.",
"type": "COMBO_BOX",
"required": true,
"options": [
{
"keyName": "businessObjects",
"displayName": "Business Objects"
},
{
"keyName": "businessServices",
"displayName": "Business Services"
},
{
"keyName": "restResources",
"displayName": "Business (REST) Resources"
}
]
},
{
"name": "restServiceApplication",
"displayName": "Service application",
"description": "Please select the REST service application",
"type": "COMBO_BOX",
"required": true,
"options": "flow:getListOfRESTServiceApplication"
}
]
フィールド依存関係
依存子フィールドの値を導出する親フィールドを選択することは、フィールド依存性と呼ばれます。
ユーザーがGoogleスプレッドシートに行を挿入する必要があるビジネス・ユース・ケースについて考えてみます。 最初のステップとして、ユーザーはドロップダウン・リストから必要なスプレッドシートを選択します。 Google Sheet APIは、スプレッドシートのリストを取得し、ドロップダウン・リストに移入するために起動されます。 次のステップでは、スプレッドシートに複数のワークシートを含めることができるため、ユーザーは必要なワークシートを選択します。
このビジネス・ユース・ケースは、ワークシートを選択する次のステップでスプレッドシートを選択する方法を示しています。 ワークシート構成フィールドの選択は、スプレッドシート構成フィールドの選択によって異なります。
アダプタ開発者は、アダプタ定義ドキュメントでアクションの構成フィールドを定義し、次の両方の目標を達成できます:
- ユーザーが選択できるように、ユーザー・インタフェース・ウィジェットを表示するための構成フィールド・プロパティを定義します。
- 外部アプリケーションからキーとその値を取得します。
値の依存性
値依存性では、依存性句が子フィールドまたは依存フィールドで宣言されます。 依存性句は、子に対する親の詳細を指定します。 依存性宣言の"values"配列には、一連の値が含まれます。 これらの値は、静的に定義することも、関数によって駆動することもできます。 親の子フィールドは、選択した親が依存関係宣言にリストされているいずれかの値と一致する場合にのみ、構成に関連します。 たとえば、Oracle ERPアダプタでは、「Serviceアプリケーション」オプションは、選択した親オプションが「ビジネス(REST)リソース」の場合に関連します。 選択した親オプションが「ビジネス・サービス」または「ビジネス・オブジェクト」の場合、「Serviceアプリケーション」オプションは関連性がないため、選択対象としてユーザーに表示されません。
サンプル・コード: デモンストレーション用の値の静的キー
"dependencies": {
"parentField": {
"values": ["bar1", "bar2"]
}
}
ビジネス・ユース・ケース
最上位オプションは"Browse By"です。 "Browse By"フィールドの選択が"restResources"と一致する場合、"Service application"フィールドがユーザーに表示されます。 "Service application"フィールドを選択すると、"Rest Resources"フィールドが表示されます。 ただし、"Browse By"フィールドの選択が"businessServices"と一致する場合、"Service application"フィールドは適用されません。 かわりに、"Business Services"フィールドのバックエンド・ロジックが実行され、適切な値を含む結果ドロップダウンがユーザーに表示されます。
[
{
"name": "browse_by",
"displayName": "Browse By",
"description": "Select the style of objects to configure.",
"type": "COMBO_BOX",
"required": true,
"options": [
{
"keyName": "businessObjects",
"displayName": "Business Objects"
},
{
"keyName": "businessServices",
"displayName": "Business Services"
},
{
"keyName": "restResources",
"displayName": "Business (REST) Resources"
}
]
},
{
"name": "restServiceApplication",
"displayName": "Service application",
"description": "Please select the REST service application",
"type": "COMBO_BOX",
"required": true,
"options": "flow:getListOfRESTServiceApplication",
"dependencies": {
"browser_by": {
"values": ["restResources"]
}
}
},
{
"name": "restResources",
"displayName": "REST resource",
"description": "Please select the REST resource",
"type": "COMBO_BOX",
"required": true,
"options": "flow:getListOfRESTResources",
"dependencies": {
"restServiceApplication": {
"values": []
}
}
},
{
"name": "businessServices",
"displayName": "Business Services",
"description": "Please select the Business Services",
"type": "COMBO_BOX",
"required": true,
"options": "flow:getListOfRESTResources",
"dependencies": {
"restServiceApplication": {
"values": ["businessServices"]
}
}
}
]