-
エディタで「EmpsTaskFlow.xml」を開きます。
-
コンポーネント・パレットからタスク・フローにView Activityを追加し、それにsalaryUpgradeという名前を付けます。

-
EmpListとSalaryUpgradeの間にControl Flow Caseを描画します。 このフローにgoWSという名前を付けます。

このパートでは、既存のアプリケーションにビュー・コンポーネントとナビゲーション・ルールを追加します。 これらのコンポーネントのためのページは、次の項で作成します。
これで、アプリケーションの残りの部分の基礎となるコンポーネントが作成されました。
この項では、アプリケーションで使用するWebサービスを開いて実行します。 次に、Webサービスに基づいたデータ・コントロールを作成し、そのデータ・コントロールをアプリケーションから使用します。
-
このチュートリアルの「準備」の手順では、SampleWS.zipをダウンロードし、それを任意のmyWorkディレクトリに解凍しました。 まだしていない場合は、このチュートリアルの先頭に移動し、ファイルを今すぐダウンロードおよび解凍してください。
-
JDeveloperで、「File」→「Open」をクリックして、SampleWS.jwsを解凍するときに使用したディレクトリに移動します。 「SampleWS.jws」を選択し、「Open」をクリックします。
-
アプリケーション・ナビゲータで、「Project 1」→「Application Sources」→「a」を展開してService.javaを表示します。 「Service.java」を右クリックして、「Run」を選択します。
-
WebLogic Server(WLS)を初めて起動した場合は、パスワードを入力するよう求められます。 パスワードを入力し、そのパスワードを確認して、「OK」をクリックします。 Oracle WLSを初めて実行している場合は、デフォルト・ドメインが構築されるため、始まるまでに数分かかることがあります。
-
Webサービスがデプロイされ、実行中になると、Runningメッセージ・タブ・ペインに完了メッセージが表示されます。 重要な注意点: Webサービスが何らかの理由で停止した場合は、Webサービスを再起動する必要があります。そうしないと、デプロイされたモバイル・アプリケーションが正しく機能しません。 特に、従業員の給与を更新しようとすると、エラーが表示されます。

-
Target URLのリンクをクリックして、HTTP Analyzerを開きます。 このHTTP Analyzerを使用して、Webサービスをテストできます。 次に各パラメータに値を入力することができ、「Send Request」をクリックします。 Webサービスがリクエストを処理し、すべてHTTP Analyzer内から結果を返します。
-
HTTP Analyzerペインの上部にある「WSDL URL」を右クリックして、「Copy」を選択します。 このWSDLアドレスは、データ・コントロールを作成するときに使用します。
-
アプリケーション・ナビゲータのドロップダウン・リストを使用して、Employeesワークスペースに戻ります。

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

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

-
デバイスまたはエミュレータにデプロイしている場合は、Webサービスが実行されているマシンのIPアドレスを指定する必要があります。
-
WindowsマシンでIPアドレスを見つけるには、コマンド・ウィンドウを起動します(「スタート」→「ファイル名を指定して実行」を選択し、CMDと入力して「OK」をクリックします)。

-
コマンド・ウィンドウで、ipconfigと入力し、[Enter]キーを押します。
Macを使用している場合、次にターミナル・ウィンドウでifconfig | grep "inet " | grep -v 127.0.0.1と入力し、[Enter]キーを押します。
-
マシンのIPアドレスをコピーします。 このIPアドレスをWebサービス・データ・コントロールのURLに使用します。 下の図では、セキュリティのためにIPアドレスが黒く塗りつぶされています。

-
-
Create Web Service Data Controlウィザードで、Webサービス・データ・コントロールにSalaryServiceという名前を付け、WSDLのURLをURLフィールドに貼り付けます。 「Next」をクリックします。
ここでも、セキュリティのために、下の図のIPアドレスは見えなくなっています。
-
「SalaryUpgrade」メソッドを選択し、それをSelectedリストに移動して、「Finish」をクリックします。

-
作業内容を保存します。
-
「Data Controls」パレットを開き、「Refresh」をクリックして、新しいWebサービス・データ・コントロールであるSalaryServiceを表示します。
これでWebサービスが実行中になったので、Employeesワークスペースに戻ってWebサービスを使用します。
これで、SalaryService Webサービスに基づいたデータ・コントロールが作成されました。 次の手順では、前に追加したビュー・アクティビティのためのSalaryUpgradeページを作成します。 また、EmpsListページへのナビゲーションも追加します。
MAFでは、すべてのデータ・コントロールを使用する手順は同じです。 データ・コントロールがJavaクラス、ADF Business Component、Webサービスのいずれに基づいていても、問題ありません。 この項では、Salary Serviceデータ・コントロールを使用するアプリケーションに要素を追加します。
-
エディタで「EmpsList.amx」を開きます。

-
ソース・コード・エディタで、Id cb2を含むボタン(ページの右端のボタン)を選択します。 プロパティ・インスペクタで、TextをUpdateに、ActionをgoWSに設定します。

-
作業内容を保存します。
-
エディタで「EmpsTaskFlow.xml」を開きます。

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

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

-
NameとSalaryを除くすべての属性を削除し、「OK」をクリックして、フォームをページに追加します。

-
エディタの一番下にある「Bindings」タブをクリックして、NameとSalaryのバインディングがページに追加されていることを確認します。
empsコレクションからそれがきているかを確認するためにsalaryバインディングをクリックします。
-
作業内容を保存します。
-
SalaryUpgrade.amxページの「Source」タブをクリックします。
-
SalaryServiceデータ・コントロールから、「SalaryUpgrade」メソッドをPanel Pageにドラッグし、MAF Buttonとしてドロップします。
-
nameパラメータのValueプロパティの隣にある下矢印をクリックし、「Show El Expression Builder」をクリックします。
-
Expression Builderを使用して「bindings.name.inputValue」を選択し、「OK」をクリックします。 (この式は、フォーム上のnameフィールドの現在の値を取得します。)
-
同じ手順をsalフィールドに対して繰り返します。 (ヒント:Expression Builderで、「bindings.salary.inputValue」を選択し、「OK」をクリックします。)
-
「date」パラメータを選択し、Valueに#{viewScope.start}と入力します。
-
「comm」パラメータを選択し、Valueに#{viewScope.commission}と入力します。
-
「OK」をクリックして、ボタンを作成します。
-
作業内容を保存します。
-
「Bindings」タブをクリックして、今追加したバインディングを調べます。
-
Structureペインの「SalaryUpgrade」を展開して、パラメータを表示します。
-
各パラメータをクリックし、プロパティ・インスペクタに各パラメータのND値が表示されることを確認します。

-
SalaryUpgradeページの「Source」タブをクリックし、コンポーネント・ウィンドウから「Switch (Boolean)」コンポーネントをStructureウィンドウ内のPanel Form Layoutコンポーネントにドラッグします。(ヒント:Switchコンポーネントは、コンポーネント・パレット内のText and Selectionの下にあります。)
-
プロパティ・インスペクタで、labelをCommissioned?に、Valueを#{viewScope.commission}に設定します。

-
「Input Date」コンポーネントをPanel Form Layoutにドラッグします。
-
プロパティ・インスペクタで、labelをStartingに、Valueを#{viewScope.start}に設定します。

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

-
次に、viewScope.displayResults変数の値をYに設定するsetPropertyListenerコンポーネントを追加します。 これを行うには、「Set Property Listener」コンポーネントをSalaryUpgradeボタンにドラッグし、次のプロパティを設定します。
From:#{'Y'}
To:#{viewScope.displayResults}
Type:action
-
最後に、コール元のページに戻るための方法を提供する必要があります。 最初のボタン(cb1)を選択し、プロパティ・インスペクタで、TextをBackに、Actionを__backに設定します。
-
作業内容を保存します。
-
JDeveloperのApplicationメニューから「Deploy Android2 to Android emulator」を選択します。

-
LogウィンドウのDeploymentタブで、デプロイメントが完了していることを確認します。
-
アプリケーションが動作するには、SalaryUpgrade Webサービスが実行されている必要があることを覚えておいてください。 Webサービスを実行するための手順は、このチュートリアルのステップ2にあります。
-
エミュレータまたはデバイスで、Applicationsページに移動し、「Employees」アプリケーションを開きます。
-
ページの左側にある右矢印をクリックして、従業員のリストを表示します。
-
「Shay」(またはリスト内の任意の従業員)をクリックして、従業員を選択し、employeeリストを隠します。
-
「Update」ボタンをクリックします。 アプリケーションに、SalaryUpgradeページが表示されます。
-
Android Emulator UIを使用して、salaryを5555に変更し、CommissionをOnに設定して、Start Dateを今日から数日後に変更します。
-
「SalaryUpgrade」をクリックします。 SalaryUpgradeボタンの下に表示されるメッセージに注意してください。 このメッセージは、SalaryUpgrade Webサービスから返されたものです。 アプリケーションは正常にWebサービスをコールし、返された値を表示しました。
次に、Webサービスを利用するために使用する2ページ目のSalaryUpgradeを設計します。
このページには2つの部分があります。 最初の部分は、現在選択されている行の従業員データを表示します。 2番目の部分は、Webサービスを起動するために使用されます。
このデータ・コントロールおよびバインディングには従業員データが表示され、それがempListページ上で同じデータ・コントロール・コレクションであるため、現在の行はupdateSalaryページ上に渡され、表示されます。
次のいくつかのステップで、Webサービスをコールするコンポーネントを追加します。
Salary Upgrade Webサービスは、Name、Date、Salary、Commissionの各パラメータを受け入れます。 NameとSalaryは、今追加したフォーム上のフィールドです。 そのため、このWebサービスをコールする場合は、そのフォーム上のフィールドからNameとSalaryを渡します。
次の2つのパラメータの場合は、各値に、後でデータを移入するviewScope変数を入力します。
これまで見てきたように、SalaryUpgrade Webサービスは4つのパラメータを受け入れます。 最初の2つの値は、empsデータ・コントロールからすでに作成したフォームから取得されます。 そのため、残りの2つの値をどこからか取得する必要があります。 2つのフォーム・フィールドを使用するためのSalaryUpgradeメソッド・コールに対するバインディングは、すでに設定されています。 ここで、2つの追加のパラメータ値(dateおよびcommission)を受け入れるためのフィールドを作成し、それらの値を作成済みのviewScopeパラメータに保存する必要があります。
これにより、Webサービスに渡されるパラメータ値が作成されましたが、Webサービスからの結果も表示させるようにします。
この時点で、ページは完成し、動作可能になります。 ただし、出力フィールドはWebサービスのコールに基づいているため、ページがWebサービスをコールした後で、ユーザーは開始日や歩合値を入力できるようになります。 次の手順では、SalaryUpgradeボタンがクリックされた後にのみWebサービスをコールするようにページを設定します。
前のいくつかの手順の結果として、ユーザーがcommissionおよびdateフィールドに値を入力し、SalaryUpgradeボタンをクリックすると、ページはWebサービスをコールして結果を表示します。
次に、アプリケーションをデプロイおよびテストします。
エミュレータに、アプリケーションのエントリ・ページであるEmp Listページが表示されます。
これで、Webサービスを使用するアプリケーションにMAFコントロールが正常に追加されました。
すべて表示 | すべて非表示
パート1: Mobile Application Frameworkアプリケーションの作成
