APIの使用この章の構成は、次のとおりです。Applicationsへのデータの挿入や更新を行います。Applicationsへのデータの挿入および更新を可能にするストアド・プロシージャです。APIを使用してデータを取得することもできます。Applicationsに顧客レコードを挿入できます。Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。Applicationsを構成する方法について説明します。Applicationsを構成するために必要な操作について説明します。Applicationsは次のストアド・プロシージャをWebサービスとしてBPELプロセスに公開し、ユーザー入力に基づいて既存の発注の「quantity」フィールドを更新します。発注を初期化するカスタム受注管理ストアド・プロシージャGET_G_MISS_LINE_REC(GET_G_MISS_LINE_REC)既存の発注を更新するPL/SQLオーダー明細処理(PROCESS_LINE)オーダー変更要求を受信すると、オーダー数量および他の明細品目詳細を含む発注情報が取得されます。Managementで新しいオーダー数量が更新されます。Managementアプリケーションからプロセスを検証できます。Managementアプリケーションで検索したordered_quantity値は、ユーザーがchangeorder_data.xmlファイルを使用して指定した数量と同じである必要があります。Manager(PM)を使用してデプロイされます。PMにより、API用のWSDLインタフェースが作成されます。PMに特定の変数を移入する必要があります。Applicationsユーザーがプログラムを実行するには、APIトランザクションのコンテキスト情報が必要です。アプリケーション」、「セキュリティ・グループ」および「NLS言語」を含む)に渡される値を考慮して設定されます。新しいヘッダー・プロパティ「職責アプリケーション」、「セキュリティ・グループ」および「NLS言語」の値が渡されない場合、コンテキスト情報は「ユーザー名」と「職責」に基づいて判断されます。ADMINISTRATOR、デフォルトの「セキュリティ・グループ・キー」は「標準」、およびデフォルトの「NLS言語」はUSです。生成WSDLに指定されているデフォルト値は変更できます。これは、コンテキスト情報を静的に変更する方法です。これらの値は、デプロイ済のビジネス・プロセスのすべての起動に適用されます。ビジネス・プロセスの起動ごとに異なるコンテキスト情報を提供する必要がある場合は、ヘッダー値に動的に値を移入できます。コンテキスト情報はinvokeアクティビティを構成することにより指定できます。アプリケーション・コンテキストの詳細は、「正規化されたメッセージ・プロパティのサポート」を参照してください。APIは、入力としてレコード・タイプを取ります。このようなAPIは、正常に実行されるために、これらのレコード・タイプ内のパラメータにデフォルト値が移入されることを予期しています。デフォルト値は、文字の場合はFND_API.G_MISS_CHAR、日付の場合はFND_API.G_MISS_DATE、および数値の場合はFND_API.G_MISS_NUMです。Applicationsはこれらの値をデフォルト設定できます。xsi:nil="true"/>...</PRICE_LIST_REC>これは、transformアクティビティの機能を使用するか、nil値のXML入力を直接渡して、それらをassignアクティビティ内のレコード・タイプに割り当てることによって実現できます。設計時タスクを実行するために必要な手順のリストを次に示します。BPELプロセスを使用した新しいSOAコンポジット・アプリケーションの作成パートナ・リンクの追加ファイル・アダプタ用パートナ・リンクの追加ラッパーAPIの定義DEFAULT句を持つパラメータの宣言invokeアクティビティの構成transformアクティビティの構成assignアクティビティの構成BPELプロセスを使用した新しいSOAコンポジット・アプリケーションの作成BPELプロセスを使用した新しいSOAコンポジット・アプリケーションを作成する手順は、次のとおりです。JDeveloperを起動します。「アプリケーション・ナビゲータ」で「新規アプリケーション」をクリックします。アプリケーションの名前付け」ページが表示されます。アプリケーションの名前付け」ページ「アプリケーション名」フィールドに適切なアプリケーション名を入力し、「アプリケーション・テンプレート」リストから「SOAアプリケーション」を選択します。「次」をクリックします。プロジェクトの名前付け」ページが表示されます。「プロジェクト名」フィールドに適切なプロジェクト名を入力します。ChangeOrderAPI。プロジェクトの名前付け」ページ「プロジェクト・テクノロジ」タブで、「SOA」が「使用可能」テクノロジ・リストから選択されて、「選択済」テクノロジ・リストに表示されていることを確認します。「次」をクリックします。SOA設定の構成」ページが表示されます。SOA設定の構成」ページ「コンポジット・テンプレート」リストから「BPELを使用するコンポジット」を選択して、「終了」をクリックします。新しいアプリケーションとSOAプロジェクトが作成されました。これにより、SOAコンポジット・アプリケーションが自動的に作成されます。「BPELプロセスの作成」ページが表示されます。1.1仕様」をそのままにします。1.1仕様をサポートするBPELプロジェクトが作成されます。「名前」フィールドに適切なBPELプロセス名を入力します。ChangeOrderAPI。「テンプレート」フィールドで「非同期BPELプロセス」を選択します。「OK」をクリックします。receiveアクティビティとreplyアクティビティを持つ非同期BPELプロセスが作成されます。ChangeOrderAPI.bpelとChangeOrderAPI.wsdl)を含む必要なソース・ファイルとcomposite.xmlも生成されます。「SOAコンテンツ」→「ビジネス・ルール」の順にナビゲートしてcomposite.xmlをクリックすると、コンポジット・ダイアグラムが表示されます。「ChangeOrderAPI」コンポーネントをダブルクリックするとBPELプロセスが開きます。次のタスクは、BPELプロセスにパートナ・リンクを追加することです。Applicationsアダプタを作成する方法について説明します。BPELパートナ・リンクは、パートナ・サービスと相互動作するBPELプロセスのリンク名、タイプおよびロールを定義するものです。前に説明したBPELプロセス・シナリオに基づいて、次の2つのパートナ・リンクを構成する必要があります。発注を初期化する最初のパートナ・リンク(initLineRec)を追加します既存の発注を更新する2番目のパートナ・リンク(OrderManagement)を追加します最初のパートナ・リンクを追加する手順は、次のとおりです。「コンポーネント・パレット」で「BPELサービス」をクリックします。Applications」を「BPELサービス」リストからプロセス・ダイアグラムの右側の「パートナ・リンク」スイムレーンにドラッグ・アンド・ドロップします。「アダプタ構成ウィザード」の「ようこそ」ページが表示されます。「次」をクリックします。「サービス名」フィールドにサービス名を入力します。initLineRec。「次」をクリックします。「サービス接続」ダイアログが表示されます。データベース接続については次のいずれかのオプションを実行できます。Applicationsを実行しているデータベースに接続する必要があります。新しいデータベース接続を作成するには、「新規データベース接続を作成します」アイコンをクリックします。新しいデータベース接続を定義する方法は、「新規データベース接続の作成」を参照してください。以前に構成した既存のデータベース接続は、「接続」ドロップダウン・リストから選択できます。「サービス接続」ページが開いて、選択した接続情報が表示されます。Interface)名が、「データベース・サーバーのJNDI名」フィールドに自動的に表示されます。JNDI名を指定することもできます。Applicationsアダプタのデプロイメント・ディスクリプタにより、このJNDI名をアダプタで必要な構成プロパティに関連付ける必要があります。JNDI名は、サービスがBPELサーバーにデプロイされるときに使用される接続のプレースホルダとなります。これによって、開発用とその後の本番用とで異なるデータベースを使用できます。Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。APIを追加できます。「次」をクリックします。Suiteリリース12に接続している場合は、IREPファイルがありませんというダイアログが表示されます。Repositoryデータファイルが見つからないことを示します。Repositoryツリーの参照や検索がかなり低速になります。Repositoryデータファイルのローカル・コピーを作成するように選択できます。Repositoryからデータが取得されます。次のいずれかのオプションを選択できます。Repositoryデータファイルを抽出するには、「はい」をクリックします。Repositoryデータファイルのローカル・コピーが正常に作成されると、データベースへの次回接続時には、「操作」ダイアログに「IRepデータ・ファイル」フィールドが表示されます。これは、ファイル名の一部に作成日時を含んだローカル・コピーが存在することを示します。Repositoryツリーを表示するには、「いいえ」をクリックします。Applicationsモジュール・ブラウザ」を開きます。Suiteリリース11.5.9のインスタンスに接続している場合は、「アダプタ構成ウィザード」でインタフェース・タイプを選択する必要があります。「表/ビュー/API/コンカレント・プログラム」を選択して次に進んでください。Applicationsモジュール・ブラウザ」を開きます。Applicationsでサポートされるその他のインタフェースに関する情報と組み合せて、ツリー階層を作成します。Applicationsで使用可能な各種の製品ファミリが含まれています。各製品ファミリには、個別製品が含まれています。各製品には、関連するビジネス・エンティティが含まれています。ビジネス・エンティティには、統合用に公開されている各種アプリケーション・モジュールが含まれています。これらのモジュールは、提供するインタフェースに従ってグループ化されています。APIは「PL/SQL」カテゴリの下にあります。API」→「OE_ORDER_PUB」にナビゲートして、カスタム・ストアド・プロシージャ「GET_G_MISS_LINE_REC」を選択します。(GET_G_MISS_LINE_REC)ストアド・プロシージャは入力を取りませんが、出力として複雑なデータ型(PL/SQL表)を持ちます。Applicationsはラッパー・ストアド・プロシージャを自動的に生成し、基礎となるデータベースにロードします。APIでフレックスフィールドを使用できるようにします。Suiteで定義されたフレックスフィールドを持つAPIのフレックスフィールド・マッピングを構成することも、または、それ以上フレックスフィールドを構成せずに現在のデータを使用することもできます。Applicationモジュール・ブラウザで次のタスクの1つを実行します。「OK」をクリックして続行します。既存のフレックスフィールド・マッピングを使用するか、必要があれば、フレックスフィールド・ウィザードを使用して新しいマッピングを作成し、フレックスフィールド・データを構成します。選択したAPIに新しいマッピングを作成するには、「フレックスフィールド・メタデータ」セクションで「マッピングの追加」を選択します。新しいフレックスフィールド・マッピング・ウィザードが表示され、各構成ページを案内します。Suiteインスタンスに定義されたフレックスフィールドとの間のフレックスフィールド・マッピングを構成できます。「新しいマッピングの追加または構成」を参照してください。「ファイルからインポート」を選択して作成された既存のマッピングを使用できます。これにより選択したAPIに対して希望するフレックスフィールド・マッピングを選択できます。希望するマッピングがインポートされたら、付加フレックスフィールドのコンテキスト値を変更し、必要に応じてキー・フレックスフィールドの構造を変更できます。「既存のフレックスフィールド・マッピングのインポート」の項を参照してください。APIでのフレックスフィールドのサポートを参照してください。この例では、「OK」をクリックして続行します。ストアド・プロシージャの入力パラメータと出力パラメータには、JDBCタイプに単純にマップできない複雑なデータ・タイプが含まれていることに注意してください。JPublisherを起動して、必要なラッパーを自動的に生成するメカニズムを提供します。JPublisherは2つのSQLファイルを生成します。一方はスキーマ・オブジェクト作成し、もう一方はそれらを削除します。XSDが生成される前に、スキーマ・オブジェクトを作成するSQLがウィザード内で自動的に実行され、データベース・スキーマにスキーマ・オブジェクトが作成されます。アダプタ・サービスは、プロセス・オーダー明細ストアド・プロシージャではなく、ラッパー・ストアド・プロシージャを指します設計時にアダプタは基礎となるデータベースにラッパー・プロシージャを自動的にロードします。「アプリケーション・インタフェース」ページで「次へ」をクリックします。Applicationsの構成プロセスを完了します。XMLスキーマに対応するWSDLファイルが生成されます。このWSDLファイルをパートナ・リンクに使用できます。「適用」をクリックし、「OK」をクリックします。必要なWSDL設定を使用してパートナ・リンクが作成されます。パートナ・リンクの追加と構成を完了後、次のタスクはBPELプロセスを構成することです。2番目のパートナ・リンクを追加する手順は、次のとおりです。「コンポーネント・パレット」で「BPELサービス」をクリックします。Applications」を「BPELサービス」リストからプロセス・ダイアグラムの右側の「パートナ・リンク」スイムレーンにドラッグ・アンド・ドロップします。「アダプタ構成ウィザード」の「ようこそ」ページが表示されます。「次」をクリックします。「サービス名」フィールドにサービス名を入力します。OrderManagement。「次」をクリックします。「サービス接続」ダイアログが表示されます。データベース接続については次のいずれかのオプションを実行できます。Applicationsを実行しているデータベースに接続する必要があります。新しいデータベース接続を作成するには、「新規データベース接続を作成します」アイコンをクリックします。新しいデータベース接続を定義する方法は、「新規データベース接続の作成」を参照してください。以前に構成した既存のデータベース接続は、「接続」ドロップダウン・リストから選択できます。「サービス接続」ページが開いて、選択した接続情報が表示されます。Interface)名が、「データベース・サーバーのJNDI名」フィールドに自動的に表示されます。JNDI名を指定することもできます。Applicationsアダプタのデプロイメント・ディスクリプタにより、このJNDI名をアダプタで必要な構成プロパティに関連付ける必要があります。JNDI名は、サービスがBPELサーバーにデプロイされるときに使用される接続のプレースホルダとなります。これによって、開発用とその後の本番用とで異なるデータベースを使用できます。Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。APIを追加できます。「次」をクリックします。Suiteリリース12に接続している場合は、IREPファイルがありませんというダイアログが表示されます。Repositoryデータ・ファイルが見つからないことを示します。Repositoryツリーの参照や検索がかなり低速になります。Repositoryデータファイルのローカル・コピーを作成するように選択できます。Repositoryからデータが取得されます。次のいずれかのオプションを選択できます。Repositoryデータファイルを抽出するには、「はい」をクリックします。Repositoryデータファイルのローカル・コピーが正常に作成されると、データベースへの次回接続時には、「操作」ダイアログに「IRepデータ・ファイル」フィールドが表示されます。これは、ファイル名の一部に作成日時を含んだローカル・コピーが存在することを示します。Repositoryツリーを表示するには、「いいえ」をクリックします。Applicationsモジュール・ブラウザ」を開きます。Suiteリリース11.5.9のインスタンスに接続している場合は、「アダプタ構成ウィザード」でインタフェース・タイプを選択する必要があります。「表/ビュー/API/コンカレント・プログラム」を選択して次に進んでください。Applicationsモジュール・ブラウザ」を開きます。Applicationアダプタでサポートされるその他のインタフェースに関する情報と組み合せて、ツリー階層を作成します。(PROCESS_LINE)から、オーダー明細処理(PROCESS_LINE)APIを選択します。必要なオブジェクトを素早く見つけるには、「検索」オプションを使用します。「オブジェクト名」フィールドに必要なデータベース・オブジェクト名を入力し、「API」を選択します。続いて、「検索」をクリックし、必要なデータベース・オブジェクトを検索します。APIを検索する場合は、プロシージャ名ではなくパッケージ名を入力します。APIの名前を入力する必要があります。APIでフレックスフィールドを使用できるようにします。Suiteで定義されたフレックスフィールドを持つAPIのフレックスフィールド・マッピングを構成することも、または、それ以上フレックスフィールドを構成せずに現在のデータを使用することもできます。Applicationモジュール・ブラウザで次のタスクの1つを実行します。「OK」をクリックして続行します。既存のフレックスフィールド・マッピングを使用するか、必要があれば、フレックスフィールド・ウィザードを使用して新しいマッピングを作成し、フレックスフィールド・データを構成します。選択したAPIに新しいマッピングを作成するには、「フレックスフィールド・メタデータ」セクションで「マッピングの追加」を選択します。新しいフレックスフィールド・マッピング・ウィザードが表示され、各構成ページを案内します。Suiteインスタンスに定義されたフレックスフィールドとの間のフレックスフィールド・マッピングを構成できます。「新しいマッピングの追加または構成」を参照してください。「ファイルからインポート」を選択して作成された既存のマッピングを使用できます。これにより選択したAPIに対して希望するフレックスフィールド・マッピングを選択できます。希望するマッピングがインポートされたら、付加フレックスフィールドのコンテキスト値を変更し、必要に応じてキー・フレックスフィールドの構造を変更できます。「既存のフレックスフィールド・マッピングのインポート」の項を参照してください。APIでのフレックスフィールドのサポートを参照してください。この例では、「OK」をクリックして続行します。ストアド・プロシージャの入力パラメータと出力パラメータには、JDBCタイプに単純にマップできない複雑なデータ・タイプが含まれていることに注意してください。JPublisherを起動して、必要なラッパーを自動的に生成するメカニズムを提供します。JPublisherは2つのSQLファイルを生成します。一方はスキーマ・オブジェクト作成し、もう一方はそれらを削除します。XSDが生成される前に、スキーマ・オブジェクトを作成するSQLがウィザード内で自動的に実行され、データベース・スキーマにスキーマ・オブジェクトが作成されます。アダプタ・サービスは、プロセス・オーダー明細ストアド・プロシージャではなく、ラッパー・ストアド・プロシージャを指します設計時にアダプタは基礎となるデータベースにラッパー・プロシージャを自動的にロードします。「アプリケーション・インタフェース」ページで「次へ」をクリックします。Applicationsの構成プロセスを完了します。XMLスキーマに対応するWSDLファイルが生成されます。このWSDLファイルをパートナ・リンクに使用できます。「適用」をクリックし、「OK」をクリックします。必要なWSDL設定を使用してパートナ・リンクが作成されます。パートナ・リンクの追加と構成を完了後、次のタスクはBPELプロセスを構成することです。既存の発注を同期読取りし、オーダー詳細を取得することにより、BPELプロセスを構成するには、この手順を使用します。ファイル・アダプタ用パートナ・リンクを追加して、オーダー詳細を読み取る手順は、次のとおりです。Designerの「コンポーネント・パレット」で、「BPELサービス」をクリックします。「ファイル・アダプタ」を「BPELサービス」リストからプロセス・ダイアグラムの右側の「パートナ・リンク」スイムレーンにドラッグ・アンド・ドロップします。「アダプタ構成ウィザード」の「ようこそ」ページが表示されます。「次」をクリックします。「サービス名」ページで、ファイル・アダプタ・サービスの名前を入力します(getOrderDetailsなど)。「次」をクリックします。「アダプタ・インタフェース」ページが表示されます。「操作およびスキーマから定義(後で指定)」ラジオ・ボタンを選択し、「次へ」をクリックします。「操作」ページで、操作タイプを指定します。File」ラジオ・ボタンを選択します。この操作タイプは、「操作名」フィールドに自動的に移入されます。「次へ」をクリックして、「ファイル・ディレクトリ」ページにアクセスします。「論理名」ラジオ・ボタンを選択して、受信ファイルのディレクトリ(inputDirなど)を指定します。「正常な取得後にファイルを削除」チェック・ボックスが選択されていないことを確認します。「次へ」をクリックして、「ファイル名」ページを開きます。File操作のファイル名を入力します。changeorder_data.xmlと入力します。「次へ」をクリックして、「メッセージ」ページを開きます。右上隅の「スキーマ・ファイルを参照」アイコンを選択して、「タイプ・チューザ」ウィンドウを開きます。「タイプ・エクスプローラ」をクリックして、「プロジェクトのWSDLファイル」→「OrderManagement.wsdl」→「インライン・スキーマ」→「スキーマ」→「InputParameters」を選択します。SynAccOrderパートナ・リンク・サービスは付加フレックスフィールドを含めて作成されます。「プロジェクトのスキーマ・ファイル」→「SynAccOrder_sp.xsd」→「SynAccOrder_flex.xsd」→「InputParameters」を選択します。「OK」をクリックします。選択したSynAccOrder_sp.xsdスキーマはURLとして表示され、InputParametersはスキーマ要素として表示されます。APIでのフレックスフィールドのサポートを参照してください。選択したスキーマ情報は、「URL」フィールドと「スキーマ要素」フィールドに自動的に移入されます。「次へ」をクリックし、「終了」をクリックします。パートナ・リンクに対応するWSDLファイルが生成されます。メインの「パートナ・リンクの作成」ダイアログ・ボックスが表示され、新規WSDLファイルgetOrderDetails.wsdlが指定されています。「適用」をクリックし、「OK」をクリックして構成を完了し、ファイル・アダプタ・サービスに必須のWSDL設定を持つパートナ・リンクを作成します。BPELプロセス・ダイアグラムにgetOrderDetailsパートナ・リンクが表示されます。Recordなどのデータ型の引数がある場合にラッパーAPIが生成されます。JPublisherがバックグラウンドで起動します。ラッパーAPIが作成されるときに、WSDLファイルとXSDファイルに加えて2つのSQLファイルが作成されます。一方はラッパーAPIと必要なデータ型の作成用で、他方はその削除用です。この2つのSQLファイルは、WSDLファイルおよびXSDファイルと同じディレクトリに保存され、「プロジェクト」ビューで使用できます。APIのサンプル・コードを次に示します。APIをウィザードで選択すると、ラッパーAPIが作成されてデータベースにロードされます。APIのかわりに使用されます。このため、WSDLファイルとXSDファイルの内容は、最初に選択したプロシージャではなくラッパー・プロシージャを表します。ラッパーAPIについて作成される型は、次のとおりです。RECORDの場合はオブジェクト型。TABLEの場合は指定の型のネストした表。NUMBERのネストした表。BOOLEANの場合は置換されるINTEGER。ラッパーAPIを作成する生成SQLファイルにより、必要なスキーマ・オブジェクトも作成されます。ラッパーAPIパラメータの型は、新規スキーマ・オブジェクト型の型になります。ラッパー・パッケージには、ベースPL/SQL型と新規のスキーマ・オブジェクト型の間で変換するための変換APIが組み込まれます。BOOLEAN引数に使用されるBOOL2INTおよびINT2BOOL変換関数が含まれます。ラッパーAPIはパッケージ内で作成されます。このパッケージの名前は、XX_BPEL_servicenameとなります。servicenameは、「パートナ・リンクの追加」のステップ2で入力したサービスの名前です。このパッケージが存在する場合、ウィザードでは、別のパッケージ名を入力するか、チェック・ボックスを選択して既存のパッケージを上書きするように求めるプロンプトが表示されます。APIがすべて失われます。ウィザードで作成されるラッパー用パッケージには、APIが1つ(ラッパーAPI)のみ含まれます。既存のパッケージを上書きするように指定しても、指定のパッケージにラッパーAPIが存在する場合は、(少し時間がかかる場合がありますが)ウィザードでラッパーAPIが再作成されることはありません。JPublisherが実行されず、WSDLファイルとXSDファイルが既存のラッパーAPIを表すことを意味します。ウィザードの「終了」ページには、これらのアクションが発生することが表示されますが、ラッパーの有無によっては実行されない可能性があります。ラッパーのパッケージ名には30文字以内、ラッパーAPI名には29文字以内という制限があります。そのため、パッケージ名またはラッパーAPI名の文字数が制限を超えると、制限に従って切り捨てられます。APIがパッケージ内にあるかどうかに応じて異なります。APIがルート・レベルAPIの場合、つまりパッケージに属していない場合、ラッパーAPIの名前はTOPLEVEL$original_api_nameとなります。APIがパッケージ内にある場合、ラッパーAPIの名前はoriginal_package_name$original_api_nameとなります。JPublisherのネーミング規則が適用されます。APIがCREATE_EMPLOYEEという名前のルート・レベルAPIだった場合、ラッパーAPIの名前はTOPLEVEL$CREATE_EMPLOYEEとなります。APIがEMPLOYEEというパッケージにある場合、ラッパーAPIの名前はEMPLOYEE$CREATE_EMPLOYEEとなります。ラッパーAPIを作成する必要がある場合は異なる「終了」ページが表示されます。「終了」ページはラッパーAPIが必要であることを示し、作成されるラッパー・パッケージ、ラッパーAPIおよびSQLファイルの名前のリストが表示されます。ラッパーAPIの作成が必要な場合は、ウィザードが完了するまでに時間がかかることがあります。APIの処理時間は大幅に短縮されます。CURSOR型はサポートされていません。CURSORのサポートに関する説明を参照してください。リリース11.5.10では、オーバーロードされたAPIはサポートされません。Managerによりそのパラメータのデフォルト値が指定されます。‘US')このプロシージャを起動するには、次の2つの方法があります。‘France'DEFAULT句を持つパラメータの省略インスタンスXMLでは、デフォルト値を持つパラメータの要素を省略できます。次の入力および実行時の起動の例に示すように、プロシージャはこの種のパラメータを使用せずに起動され、デフォルト値を使用できます。'US'入力にデフォルト設定されたパラメータの値が含まれている場合、次に示すように、デフォルト値ではなく、入力の値が使用されます。'France'DEFAULT句を持たないパラメータの省略DEFAULT句を持つパラメータの場合、次の例に示すように、XSDの要素はパラメータがDEFAULT句を持つことを示す特殊タグで注釈付けされます。.../>この新機能により、DEFAULT句を持たないパラメータの要素もインスタンスXMLから省略できます。このような場合も、パラメータはストアド・プロシージャの起動に含まれます。値NULLはデフォルトでバインドされます。どちらのパラメータもDEFAULT句を持っていない宣言の例を次に示します。Managerリリース10.1.2では、インスタンスXMLに両方のパラメータの要素が必要でした。要素が省略されると、そのパラメータがプロシージャの起動に含まれないように、DEFAULT句を持つものとみなされました。この場合、パラメータが欠落しているため、プロシージャに渡された引数の数が不正であることを示すPL/SQLエラーとなります。Managerでは、欠落しているパラメータがプロシージャの起動に含まれます。次の例のようにNULL値がバインドされます。NULLcountryの要素がインスタンスXMLで指定されていなくても、プロシージャのコールには出現します。この場合、countryはNULLとなります。ラッパー・プロシージャを処理するDEFAULT句ラッパーを生成する必要がある特殊な型がプロシージャに含まれている場合は、次の例に示すとおり、基のいずれかのパラメータのDEFAULT句はラッパーに引き継がれません。0)この例のプロシージャがパッケージ外部のトップレベルで定義されている場合は、次のように、生成されたラッパーが表示されます。NUMBER)この例では、BOOLEAN型がINTEGERで置換されています。valueパラメータのDEFAULT句が欠落しています。現行リリースでは、元のプロシージャにDEFAULT句があった場合にも、生成されたラッパー・プロシージャのパラメータはDEFAULT句を持ちません。インスタンスXMLで要素が0にデフォルト設定されるかわりに欠落している場合、次の例に示すようにパラメータの値はNULLとなります。NULLこの問題を修正するには、生成されたSQLファイルを編集してDEFAULT句をリストアできます。その後、SQLファイルを実行してラッパー定義をデータベース・スキーマにリロードする必要があります。生成されたXSDを変更してください。needsWrapper()について生成されたラッパーでDEFAULT句を修正する手順は、次のとおりです。生成されたラッパーSQLファイルで、次のようにシグネチャを変更します。NUMBER)変更後は次のようになります。0)前述の例で変更したラッパーSQLファイルを、適切なデータベース・スキーマにリロードします。DEFAULT句を持つBOOLEANパラメータの場合は、次のようにマップする必要があります。NUMBER)となります。0)となるように手動で修正する必要があります。パラメータがDEFAULT句を持つ場合は、XSD内の対応する要素に追加の属性db:default="true"が必要です。0)の場合、XSDではisTrueおよびvalueの要素に次の新規属性が必要です。.../>invokeアクティビティの構成この手順では、3つのinvokeアクティビティを構成します。XMLファイルのgetOrderDetailsパートナ・リンクを起動することにより、receiveアクティビティから受信したオーダー詳細を取得します。initLineRecパートナ・リンクを起動することにより、既存の発注を開始します。Applicationsで発注数量情報を更新します。パートナ・リンクに対する最初のinvokeアクティビティを追加して、オーダー詳細を取得する手順は、次のとおりです。Designerの「コンポーネント・パレット」で、「BPELコンストラクト」を展開します。最初の「invoke」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの「receiveInput」アクティビティと「callbackClient」アクティビティの間にドラッグ・アンド・ドロップします。invokeアクティビティをgetOrderDetailsサービスにリンクします。「Invokeの編集」ダイアログが表示されます。invokeアクティビティの名前を入力し、「入力変数」フィールドの横にある「作成」アイコンをクリックして、新規変数を作成します。「変数の作成」ダイアログ・ボックスが表示されます。「グローバル変数」を選択し、変数の名前を入力します。デフォルト名を受け入れることもできます。「OK」をクリックします。「Invokeの編集」ダイアログで、「出力変数」フィールドの横にある「作成」アイコンをクリックして、新しい変数を作成します。「変数の作成」ダイアログ・ボックスが表示されます。「グローバル変数」を選択し、変数の名前を入力します。デフォルト名を受け入れることもできます。「OK」をクリックします。「適用」をクリックし、「Invokeの編集」ダイアログの「OK」をクリックして、invokeアクティビティの構成を終了します。プロセス・ダイアグラムにinvokeアクティビティが表示されます。パートナ・リンクに対する2番目のinvokeアクティビティを追加して、既存の発注を初期化する手順は、次のとおりです。Designerの「コンポーネント・パレット」で、「BPELコンストラクト」を展開します。2番目の「Invoke」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの最初の「invoke」アクティビティと「callbackClient」アクティビティの間にドラッグ・アンド・ドロップします。invokeアクティビティをinitLineRecサービスにリンクします。「Invokeの編集」ダイアログ・ボックスが表示されます。最初のinvokeアクティビティの手順で説明したステップ3から5を繰り返して、2番目のinvokeアクティビティを完了します。Applicationsでオーダー数量情報を更新する手順は、次のとおりです。Designerの「コンポーネント・パレット」で、「BPELコンストラクト」を展開します。3番目の「Invoke」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの2番目の「invoke」アクティビティと「callbackClient」アクティビティの間にドラッグ・アンド・ドロップします。invokeアクティビティをOrderManagementサービスにリンクします。「Invokeの編集」ダイアログ・ボックスが表示されます。最初のinvokeアクティビティの手順で説明したステップ3から5を繰り返します。アプリケーション・コンテキストのヘッダー・プロパティの設定BPELプロセスを完了するために必要なアプリケーション・コンテキストに渡す必要があるヘッダー・メッセージ・プロパティを設定するには、次の手順を使用します。「Invokeの編集」ダイアログ・ボックスの「プロパティ」タブを選択します。下にスクロールして、リストから「jca.apps.Username」プロパティを見つけて関連付けられている値フィールドをダブルクリックし、「アダプタ・プロパティ値」アイコンを有効化します。アイコンをクリックして、選択した「jca.apps.Username」プロパティの「アダプタ・プロパティ値」ダイアログを開きます。「式」ラジオ・ボタンを選択し、プロパティ値として「'OPERATIONS'」を入力します。「OK」をクリックします。(USA)」をjca.apps.Responsibilityに割り当てます。「適用」をクリックして、「OK」をクリックし、invokeアクティビティを完了します。transformアクティビティの構成transformアクティビティを使用して、入力変数と出力変数のパラメータを構成できます。Applicationsで更新前に変換する必要がある場合にも、transformアクティビティを使用できます。transformアクティビティを構成する手順は、次のとおりです。transformアクティビティを追加する前に、次の手順を使用して変数を追加します。「構造」パネルから、「ChangeOrderAPI.bpel」→「変数」→「プロセス」→「変数」フォルダを選択します。「変数」フォルダを右クリックして、ドロップダウン・メニューから「変数の作成」を選択します。「変数の作成」ダイアログで、「変数名」フィールドにtemp_miss_lineと入力します。「メッセージ・タイプ」ラジオ・ボタンを選択して、「メッセージ・タイプの参照」アイコンをクリックし、「タイプ・チューザ」を開きます。「メッセージ・タイプ」→「プロジェクトのWSDLファイル」→「OrderManagement.wsdl」→「メッセージ・タイプ」から「args_in_msg」を選択します。「OK」をクリックして、「タイプ・チューザ」を閉じます。「変数の作成」ダイアログの「メッセージ・タイプ」フィールドに、選択した情報が移入されます。次の手順を使用して、transformアクティビティを構成します。Extensions」を展開します。プロセス・マップ・ウィンドウの中央スイムレーンに「Transform」をドラッグ・アンド・ドロップします。「Transform」アクティビティは、2番目と3番目の「Invoke」アクティビティの間に置く必要があります。このtransformアクティビティは、initLineRecサービスの出力をOrderManagementサービスの入力に設定するために使用されます。プロセス・マップで「Transform」をダブルクリックして「Transform」ダイアログを開きます。デフォルトで「トランスフォーメーション」タブが選択されています。「一般」タブをクリックし、このtransformアクティビティにset_Miss_Lineという名前を付けます。「トランスフォーメーション」タブで、「作成」アイコンをクリックして、「ソース変数」ダイアログを開きます。「ソース変数」ダイアログ「ソース変数」ドロップダウン・リストから「Invoke_initLineRec_OutputVariable」を選択し、「ソース・パート」値として「OutputParameters」要素を選択します。「OK」をクリックします。「ターゲット変数」ドロップダウン・リストから「Invoke_OrderManagement_InputVariable」を選択します。変数の「ターゲット・パート」値も選択されます。「マッパー・ファイル」フィールドの横にある「作成」アイコンをクリックして新規のトランスフォーメーション・マッピング・ファイルを作成します。「マッパー・ファイル」では、XSLTマッパー・トランスフォーメーション・ツールを使用してマッピングを作成するファイルを指定します。トランスフォーメーション・マッピング・ファイルが表示されます。デフォルトで「設計」ビューが表示されます。「設計」ビューでパラメータ値を定義できます。文字列関数を「設計」領域にドラッグします。この関数を、値を定義する適切なパラメータに接続します。ソース変数のdb:OE_ORDER_PUB-24GET_G_MISS_LINEをターゲット変数のdb:P_LINE_TBL_ITEMにリンクします。ソース変数の入力パラメータ値を文字列関数で変換して、ターゲット変数の入力パラメータ値として使用できます。「OK」をクリックして、ソース変数からターゲット変数へのマッピングを作成します。assignアクティビティの構成getOrderDetailsサービスとinitLineRecサービスの出力をOrderManagementサービスの入力として渡すには、assignアクティビティを使用します。assignアクティビティを追加する手順は、次のとおりです。Designerの「コンポーネント・パレット」で、「BPELコンストラクト」を展開します。「Assign」アクティビティを、プロセス・ダイアグラムの中央スイムレーンの前に作成した「transform」アクティビティの直後にドラッグ・アンド・ドロップします。「Assign」アクティビティをダブルクリックして、「Assignの編集」ダイアログにアクセスします。「一般」タブをクリックして、assignアクティビティの名前を入力します。setOrderChanges。「コピー・ルール」タブを選択してターゲット・ツリーを展開します。「From」ナビゲーション・ツリーで、「変数」→「プロセス」→「変数」→「Temp_miss_line」→「入力パラメータ」にナビゲートして、「ns4:P_LINE_TBL」を選択します。「To」ナビゲーション・ツリーで、「変数」→「プロセス」→「変数」→「Invoke_OrderManagement_InputVariable」→「入力パラメータ」にナビゲートして、「ns4:P_LINE_TBL」を選択します。「OK」をクリックします。「Assignの編集」ダイアログ・ボックスが表示されます。ソース・ノード(ns4:P_LINE_TBL)を、選択したターゲット・ノード(ns4:P_LINE_TBL)にドラッグします。これでソース・ノードとターゲット・ノードを接続する線が作成されます。コピー・ルールは、「Assignの編集」ダイアログ・ボックスの下部にある「From」セクションと「To」セクションに表示されます。パラメータの2番目のペアを入力します。式アイコンをクリックして、「式ビルダー」ダイアログを呼び出します。「式」ボックスに「UPDATE」と入力します。「OK」をクリックします。「From」ナビゲーション・ツリー・ノードと「To」ナビゲーション・ツリー・ノードの間の「Assignの編集」ダイアログの中央に、式値「UPDATE」を持つ「式」アイコンが表示されます。Invoke_OrderManagement_InputVariable」→「入力パラメータ」→「P_LINE_TBL」→「P_LINE_TBL_ITEM」にナビゲートして、「ns4:OPERATION」を選択します。式アイコンを指定したターゲット・ノード(ns4:OPERATION)にドラッグします。これでソース・ノードとターゲット・ノードを接続する線が作成されます。コピー・ルールは、「Assignの編集」ダイアログ・ボックスの下部にある「From」セクションと「To」セクションに表示されます。パラメータの3番目のペアを入力します。式アイコンをクリックして、「式ビルダー」ダイアログを呼び出します。Quantity」と入力します。「OK」をクリックします。Quantity」を持つ「式」アイコンが表示されます。Invoke_OrderManagement_InputVariable」→「P_LINE_TBL」→「P_LINE_TBL_ITEM」にナビゲートして、「ns4:CHANGE_REASON」を選択します。式アイコンを指定したターゲット・ノード(ns4:CHANGE_REASON)にドラッグします。これでソース・ノードとターゲット・ノードを接続する線が作成されます。コピー・ルールは、「Assignの編集」ダイアログ・ボックスの下部にある「From」セクションと「To」セクションに表示されます。パラメータの4番目のペアを入力します。Invoke_SyncRead_OutputVariable」→「入力パラメータ」→「P_LINE_TBL」→「P_LINE_TBL_ITEM」にナビゲートして、「ns4:LINE_ID」を選択します。Invoke_OrderManagement_InputVariable」→「P_LINE_TBL」→「P_LINE_TBL_ITEM」にナビゲートして、「ns4:LINE_ID」を選択します。ソース・ノード(ns4:LINE_ID)を、選択したターゲット・ノード(ns4:LINE_ID)にドラッグします。これでソース・ノードとターゲット・ノードを接続する線が作成されます。コピー・ルールは、「Assignの編集」ダイアログ・ボックスの下部にある「From」セクションと「To」セクションに表示されます。パラメータの5番目のペアを入力します。Invoke_SyncRead_OutputVariable」→「入力パラメータ」→「P_LINE_TBL」→「P_LINE_TBL_ITEM」にナビゲートして、「ns4:ORDERED_QUANTITY」を選択します。Invoke_OrderManagement_InputVariable」→「P_LINE_TBL」→「P_LINE_TBL_ITEM」にナビゲートして、「ns4:ORDERED_QUANTITY」を選択します。ソース・ノード(ns4:ORDERED_QUANTITY)を、指定したターゲット・ノード(ns4:ORDERED_QUANTITY)にドラッグします。これでソース・ノードとターゲット・ノードを接続する線が作成されます。コピー・ルールは、「Assignの編集」ダイアログ・ボックスの下部にある「From」セクションと「To」セクションに表示されます。「適用」をクリックして、「OK」をクリックし、assignアクティビティの構成を完了します。APIに関する実行時タスクBPELプロセスを使用したSOAコンポジット・アプリケーションを設計したら、次の手順はそれをデプロイ、実行および監視することです。WebLogic管理対象サーバーにSOAコンポジットをデプロイする必要があります。JDeveloperが使用できます。Controlコンソールからテストできます。JDeveloperを使用してBPELプロセスとともにSOAコンポジットをデプロイする前に、設計時環境とランタイム・サーバーとの間の接続を確立する必要があります。Serverのデータ・ソースの構成」と「アプリケーション・サーバーの接続の作成」を参照してください。Serverを起動します。DefaultServer」および「メッセージ」ログに「<サーバーが実行モードで起動されました」および「DefaultServerが起動されました」というメッセージが表示されます。BPELプロセスを使用したSOAコンポジット・アプリケーションをデプロイする手順は、次のとおりです。「アプリケーション」ウィンドウでSOAコンポジット・プロジェクトを選択します。プロジェクト名を右クリックし、表示されるメニューから「デプロイ」→[プロジェクト名]→[serverConnection]を選択します。接続が適切にセットアップされていれば、たとえば、「デプロイ」→「ChangeOrderAPI」→「soa-server1」を選択してプロセスをデプロイできます。サーバー接続を初めてセットアップすると、「デプロイメント・アクション」ウィンドウが表示されます。「アプリケーション・サーバーにデプロイ」を選択して、「次へ」をクリックします。「構成のデプロイ」ウィンドウで、次の情報が選択されていることを確認してから「次へ」をクリックすると新しいアプリケーション・サーバーが追加されます。このチェック・ボックスを選択します。このチェック・ボックスを選択します。Server接続を新規作成する手順は、「アプリケーション・サーバー接続の作成」に記載されています。「サーバーの選択」ページで、前に確立したサーバー接続「soa-server1」を選択します。「次」をクリックします。「SOAサーバー」ページでデフォルトのターゲットSOAサーバー('soa-server1')の選択を受け入れます。「次へ」をクリックし、「終了」をクリックします。JDeveloperセッションからコンポジットを初めてデプロイする場合は、「認証リクエスト」画面が表示されます。Suiteのインストール中に、指定されたユーザー名とパスワードを入力します。「OK」をクリックします。デプロイメント処理が開始されます。ログ」ウィンドウでデプロイメントの進行とコンパイルの成功を確認します。Controlコンソールからプロセスを管理および監視できます。プロセスを手動で開始して、プロセスと統合インタフェースをテストすることもできます。BPELプロセスを使用したデプロイ済SOAコンポジット・アプリケーションをテストする手順は、次のとおりです。Controlコンソールにナビゲートします(http://<サーバー名>:<ポート番号>/em)。デプロイしたコンポジットが「アプリケーション・ナビゲーション」ツリーに表示されます。ユーザー名(weblogicなど)とパスワードを入力して、「ログイン」をクリックし、ファームにログインします。Controlコンソール・ファームがある場合は、適切なターゲット・インスタンス・ファームを選択する必要がある場合があります。ファームのベース・ドメインで、「SOA」→「soa-infra」を展開して、SOAインフラストラクチャ・ホーム・ページとメニューをナビゲートし、その管理対象サーバーのSOAインフラストラクチャで実行されているデプロイ済のSOAコンポジット・アプリケーションにアクセスします。「ファーム」メニューは常にナビゲータの最上部に表示されます。ナビゲータで「SOA」フォルダを展開し、その下に表示されるリンクをクリックすると、ページの最上部で「SOAインフラストラクチャ」メニューを使用できるようになります。SOAインフラストラクチャから、開始するSOAコンポジット・アプリケーション(「ChangeOrderAPI」など)をクリックします。デプロイ済SOAコンポジットの表示ページの最上部で「テスト」をクリックします。インスタンスを起動するための「Webサービスのテスト」ページが表示されます。「入力引数」セクションで使用するXMLペイロード・データを指定できます。プロセスに必要な入力文字列を入力して、「Webサービスのテスト」をクリックし、プロセスを起動します。Webサービスのテスト完了すると、「レスポンス」タブにテスト結果が表示されます。SOAコンポジット・アプリケーション名をクリックしてから、「インスタンス」タブをクリックします。最後にページのデータがリフレッシュされてからの各インスタンスのSOAコンポジット・アプリケーション・インスタンスID、名前、対話ID、および最新の状態が表示されます。「インスタンスID」列で特定のインスタンスIDをクリックすると、様々なサービス・コンポーネントとバインディング・コンポーネントのメッセージ・フローが表示されます。「フローのトレース」ページが表示されます。「トレース」セクションに、一連のメッセージ・フロー(サービス・バインディング・コンポーネント(changeorderapi_client_ep)、BPELコンポーネント(ChangeOrderAPI)および参照バインディング・コンポーネント(getOrderDetails、initLineRecおよびOrderManagement))が表示されます。関連するすべてのコンポーネントが、メッセージを正常に受信および処理しました。「フローのトレース」ページBPELサービス・コンポーネント・インスタンスのリンク(ChangeOrderAPIなど)をクリックすると、「インスタンス」ページが表示され、「監査証跡」タブで、BPELアクティビティの実行詳細を表示できます。BPELプロセス・フロー・ダイアグラムを確認するには、フロー・タブをクリックします。アクティビティの詳細およびプロセス全体のペイロードのフローを表示するには、プロセス・ダイアグラムのアクティビティをクリックします。h.header_id=l.header_id)を記述し、ordered_quantityがchangeorder_data.xmlドキュメントに指定された値と同じであることを示す結果をフェッチします。Applicationsの特定のモジュールを確認します。Managementで検証する手順は、次のとおりです。Managementの「スーパーユーザー」職責でログオンします。返品」→「受注」を選択します。フィールドにオーダー番号を入力して、オーダーを検索します。これにより、新しく作成されたオーダーの詳細が表示されます。「明細項目」タブを選択して、オーダーの数量を確認します。changeorder_data.xmlファイルに設定された数量と同じである必要があります。API統合で問題が発生した場合は、次のトラブルシューティング手順を実行します。API統合を設計し、別のインスタンスで実行する場合は、2番目のインスタンスでSQLスクリプトを再実行して、必要なPL/SQLラッパーを作成します。weblogic-ra.xmlのJNDIの位置が正しく構成されていることを確認します。アダプタのロギングを有効化して、ミドルウェア側に問題がないか確認します。Applicationsでロギングを有効化する方法の詳細は、「アダプタのロギングの有効化」を参照してください。