パート3: MAFアプリケーションでのWebサービスの使用
この項では、先ほど完成したアプリケーションを利用し、コンポーネントを追加して拡張します。 アプリケーションにいくつかのビュー・コンポーネントを追加します。 次に、Webサービスに基づいたADFデータ・コントロールを定義します。 最後の項では、Webサービスを使用して従業員の給与情報を更新するページを作成します。
準備 アプリケーション

この項では、Webサービスを使用するデータ・コントロールを作成します。 Webサービスは、マシン上でローカルで実行されます。 このチュートリアルを完了するため、Webサービスを含むOracle JDeveloper Workspaceをダウンロードしなければなりません。 このチュートリアルの後半で、Webサービスの実行方法について学習します。

右のDownloadボタンを使用して圧縮ファイルをダウンロードし、そのファイルをmyWorkディレクトリに解凍します。

SampleWS.zipのダウンロード
ステップ1: アプリケーションへのビュー・コンポーネントの追加

    このパートでは、既存のアプリケーションにビュー・コンポーネントとナビゲーション・ルールを追加します。 これらのコンポーネントのためのページは、次の項で作成します。

  1. エディタで「EmpsTaskFlow.xml」を開きます。

    alt text
  2. コンポーネント・パレットからタスク・フローにView Activityを追加し、それにsalaryUpgradeという名前を付けます。

    alt text
  3. EmpListSalaryUpgradeの間にControl Flow Caseを描画します。 このフローにgoWSという名前を付けます。

    alt text
  4. これで、アプリケーションの残りの部分の基礎となるコンポーネントが作成されました。

ステップ2: Webサービス・データ・コントロールの定義

この項では、アプリケーションで使用するWebサービスを開いて実行します。 次に、Webサービスに基づいたデータ・コントロールを作成し、そのデータ・コントロールをアプリケーションから使用します。

  1. このチュートリアルの「準備」の手順では、SampleWS.zipをダウンロードし、それを任意のmyWorkディレクトリに解凍しました。 まだしていない場合は、このチュートリアルの先頭に移動し、ファイルを今すぐダウンロードおよび解凍してください。

  2. JDeveloperで、「File」→「Open」をクリックして、SampleWS.jwsを解凍するときに使用したディレクトリに移動します。 「SampleWS.jws」を選択し、「Open」をクリックします。

    alt text
  3. アプリケーション・ナビゲータで、「Project 1」→「Application Sources」→「a」を展開してService.javaを表示します。Service.java」を右クリックして、「Run」を選択します。

    alt text
  4. WebLogic Server(WLS)を初めて起動した場合は、パスワードを入力するよう求められます。 パスワードを入力し、そのパスワードを確認して、「OK」をクリックします。 Oracle WLSを初めて実行している場合は、デフォルト・ドメインが構築されるため、始まるまでに数分かかることがあります。

    alt text
  5. Webサービスがデプロイされ、実行中になると、Runningメッセージ・タブ・ペインに完了メッセージが表示されます。 重要な注意点: Webサービスが何らかの理由で停止した場合は、Webサービスを再起動する必要があります。そうしないと、デプロイされたモバイル・アプリケーションが正しく機能しません。 特に、従業員の給与を更新しようとすると、エラーが表示されます。

    alt text
  6. Target URLのリンクをクリックして、HTTP Analyzerを開きます。 このHTTP Analyzerを使用して、Webサービスをテストできます。 次に各パラメータに値を入力することができ、「Send Request」をクリックします。 Webサービスがリクエストを処理し、すべてHTTP Analyzer内から結果を返します。

    alt text
  7. HTTP Analyzerペインの上部にある「WSDL URL」を右クリックして、「Copy」を選択します。 このWSDLアドレスは、データ・コントロールを作成するときに使用します。

    alt text
  8. これでWebサービスが実行中になったので、Employeesワークスペースに戻ってWebサービスを使用します。

  9. アプリケーション・ナビゲータのドロップダウン・リストを使用して、Employeesワークスペースに戻ります。

    alt text
  10. ViewController」プロジェクトを右クリックして、「New」→「From Gallery」を選択します。

    alt text
  11. New Galleryで、「Business Tier」→「Data Controls」→「Web Service Data Control (SOAP/REST)」を選択し、「OK」をクリックします。

    alt text
  12. デバイスまたはエミュレータにデプロイしている場合は、Webサービスが実行されているマシンのIPアドレスを指定する必要があります。

    1. WindowsマシンでIPアドレスを見つけるには、コマンド・ウィンドウを起動します(「スタート」→「ファイル名を指定して実行」を選択し、CMDと入力して「OK」をクリックします)。

      alt text
    2. コマンド・ウィンドウで、ipconfigと入力し、[Enter]キーを押します。

      Macを使用している場合、次にターミナル・ウィンドウでifconfig | grep "inet " | grep -v 127.0.0.1と入力し、[Enter]キーを押します。

      alt text
    3. マシンのIPアドレスをコピーします。 このIPアドレスをWebサービス・データ・コントロールのURLに使用します。 下の図では、セキュリティのためにIPアドレスが黒く塗りつぶされています。

      alt text
  13. Create Web Service Data Controlウィザードで、Webサービス・データ・コントロールにSalaryServiceという名前を付け、WSDLのURLをURLフィールドに貼り付けます。 「Next」をクリックします。

    ここでも、セキュリティのために、下の図のIPアドレスは見えなくなっています。

    alt text
  14. SalaryUpgrade」メソッドを選択し、それをSelectedリストに移動して、「Finish」をクリックします。

    alt text
  15. 作業内容を保存します。

  16. Data Controls」パレットを開き、「Refresh」をクリックして、新しいWebサービス・データ・コントロールであるSalaryServiceを表示します。

    alt text
  17. これで、SalaryService Webサービスに基づいたデータ・コントロールが作成されました。 次の手順では、前に追加したビュー・アクティビティのためのSalaryUpgradeページを作成します。 また、EmpsListページへのナビゲーションも追加します。

ステップ3: Webサービス・データ・コントロールの使用

MAFでは、すべてのデータ・コントロールを使用する手順は同じです。 データ・コントロールがJavaクラス、ADF Business Component、Webサービスのいずれに基づいていても、問題ありません。 この項では、Salary Serviceデータ・コントロールを使用するアプリケーションに要素を追加します。

  1. エディタで「EmpsList.amx」を開きます。

    alt text
  2. ソース・コード・エディタで、Id cb2を含むボタン(ページの右端のボタン)を選択します。 プロパティ・インスペクタで、TextUpdateに、ActiongoWSに設定します。

    alt text
  3. 作業内容を保存します。

  4. 次に、Webサービスを利用するために使用する2ページ目のSalaryUpgradeを設計します。

  5. エディタで「EmpsTaskFlow.xml」を開きます。

    alt text
  6. salaryUpgrade」をダブルクリックして、ページを作成します。 「OK」をクリックして、新しいページをデフォルト値のままにします。

    alt text
  7. このページには2つの部分があります。 最初の部分は、現在選択されている行の従業員データを表示します。 2番目の部分は、Webサービスを起動するために使用されます。

  8. 従業員データを表示するには、「emps」コレクションをPanel Pageにドラッグし、MAF Formとしてドロップします。

    alt text
  9. NameSalaryを除くすべての属性を削除し、「OK」をクリックして、フォームをページに追加します。

    alt text
  10. エディタの一番下にある「Bindings」タブをクリックして、NameとSalaryのバインディングがページに追加されていることを確認します。
    empsコレクションからそれがきているかを確認するためにsalaryバインディングをクリックします。

    alt text
  11. このデータ・コントロールおよびバインディングには従業員データが表示され、それがempListページ上で同じデータ・コントロール・コレクションであるため、現在の行はupdateSalaryページ上に渡され、表示されます。

    次のいくつかのステップで、Webサービスをコールするコンポーネントを追加します。

  12. 作業内容を保存します。

  13. SalaryUpgrade.amxページの「Source」タブをクリックします。

  14. SalaryServiceデータ・コントロールから、「SalaryUpgrade」メソッドをPanel Pageにドラッグし、MAF Buttonとしてドロップします。

    alt text
  15. Salary Upgrade Webサービスは、Name、Date、Salary、Commissionの各パラメータを受け入れます。 NameとSalaryは、今追加したフォーム上のフィールドです。 そのため、このWebサービスをコールする場合は、そのフォーム上のフィールドからNameとSalaryを渡します。

  16. nameパラメータのValueプロパティの隣にある下矢印をクリックし、「Show El Expression Builder」をクリックします。

    alt text
  17. Expression Builderを使用して「bindings.name.inputValue」を選択し、「OK」をクリックします。 (この式は、フォーム上のnameフィールドの現在の値を取得します。)

    alt text
  18. 同じ手順をsalフィールドに対して繰り返します。 (ヒント:Expression Builderで、「bindings.salary.inputValue」を選択し、「OK」をクリックします。)

    alt text
  19. 次の2つのパラメータの場合は、各値に、後でデータを移入するviewScope変数を入力します。

  20. date」パラメータを選択し、Valueに#{viewScope.start}と入力します。

    alt text
  21. comm」パラメータを選択し、Valueに#{viewScope.commission}と入力します。

    alt text
  22. OK」をクリックして、ボタンを作成します。

    alt text
  23. 作業内容を保存します。

  24. Bindings」タブをクリックして、今追加したバインディングを調べます。

    alt text
  25. Structureペインの「SalaryUpgrade」を展開して、パラメータを表示します。

    alt text
  26. 各パラメータをクリックし、プロパティ・インスペクタに各パラメータのND値が表示されることを確認します。

    alt text
  27. これまで見てきたように、SalaryUpgrade Webサービスは4つのパラメータを受け入れます。 最初の2つの値は、empsデータ・コントロールからすでに作成したフォームから取得されます。 そのため、残りの2つの値をどこからか取得する必要があります。 2つのフォーム・フィールドを使用するためのSalaryUpgradeメソッド・コールに対するバインディングは、すでに設定されています。 ここで、2つの追加のパラメータ値(dateおよびcommission)を受け入れるためのフィールドを作成し、それらの値を作成済みのviewScopeパラメータに保存する必要があります。

  28. SalaryUpgradeページの「Source」タブをクリックし、コンポーネント・ウィンドウから「Switch (Boolean)」コンポーネントをStructureウィンドウ内のPanel Form Layoutコンポーネントにドラッグします。(ヒント:Switchコンポーネントは、コンポーネント・パレット内のText and Selectionの下にあります。)

    alt text

    alt text
  29. プロパティ・インスペクタで、labelCommissioned?に、Value#{viewScope.commission}に設定します。

    alt text

  30. Input Date」コンポーネントをPanel Form Layoutにドラッグします。

    alt text

    alt text
  31. プロパティ・インスペクタで、labelStartingに、Value#{viewScope.start}に設定します。

    alt text

  32. これにより、Webサービスに渡されるパラメータ値が作成されましたが、Webサービスからの結果も表示させるようにします。

  33. SalaryService」データ・コントロールを展開して、Webサービスからの結果を表すStringを表示します。

    alt text
  34. String」をPanel Pageにドラッグし、MAF Output Textとしてドロップします。

    alt text
  35. この時点で、ページは完成し、動作可能になります。 ただし、出力フィールドはWebサービスのコールに基づいているため、ページがWebサービスをコールした後で、ユーザーは開始日や歩合値を入力できるようになります。 次の手順では、SalaryUpgradeボタンがクリックされた後にのみWebサービスをコールするようにページを設定します。

  36. 最初に、Webサービスからの結果を保持するOutput Textフィールドのレンダリングを制御します。 それには、Renderedプロパティに条件を追加します。 Expression Builderを使用して、Renderedプロパティを設定し、新しい変数#{viewScope.displayResults == 'Y'}を評価します。 「OK」をクリックします。

    alt text

    alt text

  37. 次に、viewScope.displayResults変数の値をYに設定するsetPropertyListenerコンポーネントを追加します。 これを行うには、「Set Property Listener」コンポーネントをSalaryUpgradeボタンにドラッグし、次のプロパティを設定します。
        From:#{'Y'}
        To:#{viewScope.displayResults}
        Type:action

    alt text

    alt text

  38. 最後に、コール元のページに戻るための方法を提供する必要があります。 最初のボタン(cb1)を選択し、プロパティ・インスペクタで、TextBackに、Action__backに設定します。

    alt text

  39. 作業内容を保存します。

  40. 前のいくつかの手順の結果として、ユーザーがcommissionおよびdateフィールドに値を入力し、SalaryUpgradeボタンをクリックすると、ページはWebサービスをコールして結果を表示します。

    次に、アプリケーションをデプロイおよびテストします。

  41. JDeveloperのApplicationメニューから「Deploy Android2 to Android emulator」を選択します。

    alt text
  42. LogウィンドウのDeploymentタブで、デプロイメントが完了していることを確認します。

    alt text
  43. アプリケーションが動作するには、SalaryUpgrade Webサービスが実行されている必要があることを覚えておいてください。 Webサービスを実行するための手順は、このチュートリアルのステップ2にあります。

  44. エミュレータまたはデバイスで、Applicationsページに移動し、「Employees」アプリケーションを開きます。

    alt text
  45. エミュレータに、アプリケーションのエントリ・ページであるEmp Listページが表示されます。

    alt text
  46. ページの左側にある右矢印をクリックして、従業員のリストを表示します。

    alt text
  47. Shay」(またはリスト内の任意の従業員)をクリックして、従業員を選択し、employeeリストを隠します。

    alt text
  48. Update」ボタンをクリックします。 アプリケーションに、SalaryUpgradeページが表示されます。

    alt text
  49. Android Emulator UIを使用して、salary5555に変更し、CommissionOnに設定して、Start Dateを今日から数日後に変更します。

    alt text
  50. SalaryUpgrade」をクリックします。 SalaryUpgradeボタンの下に表示されるメッセージに注意してください。 このメッセージは、SalaryUpgrade Webサービスから返されたものです。 アプリケーションは正常にWebサービスをコールし、返された値を表示しました。

    alt text

これで、Webサービスを使用するアプリケーションにMAFコントロールが正常に追加されました。

ブックマーク 印刷 すべて表示 | すべて非表示
トップへ戻る
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.