ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1(11.1.1)
B56238-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

30 Microsoft Excelとヒューマン・タスクとの統合

Oracle SOA Suiteのエンタープライズ・システム機能とMicrosoft Excel 2007との統合によって、次の操作が可能になります。

この統合は、複数のツールを切り替えずに構成できます。

項目は次のとおりです。

30.1 ExcelワークブックからBPELプロセスを起動するための環境の構成

Oracle WebLogicにデプロイされたBPELプロセスは、Excelワークブックから起動できます。これを行うには、Application Development Frameworkデスクトップ統合(ADF-DI)のプラグインを、BPELプロセスを起動するExcelドキュメントと同じホストにインストールします。

この機能を有効にするには、次の作業を実行します。

30.1.1 Webサービス・データ・コントロール・タイプのJDeveloperプロジェクトの作成方法

プロジェクトを作成するには、Webサービス・データ・コントロールの作成ウィザードを使用します。

Webサービス・データ・コントロール・タイプのOracle JDeveloperプロジェクトを作成する手順は、次のとおりです。

  1. JDeveloperで、「ファイル」メニューから「新規」を選択します。 「新規ギャラリ」ダイアログが表示されます。

  2. 「カテゴリ」セクションで、「ビジネス層」を開き、次に、「データ・コントロール」を選択します。 対応する項目が「項目」ペインに表示されます。

  3. この「項目」ペインで、「Webサービス・データ・コントロール」を選択し、「OK」をクリックします。 Webサービス・データ・コントロールの作成ウィザードが表示されます。

  4. このウィザードのオンライン・ヘルプの手順に従います。 この手順では、このプロジェクトで使用するWSDLファイルと操作を選択するように求めるプロンプトが表示されます。

30.1.2 ダミーのJSFページの作成方法

このタスクでは、ページ定義ファイルを生成します。 JSFファイルに生成された実際のレイアウトではなく、コントロールとアクションを含むページ定義ファイルを生成することが重要です。 このページ定義は後でExcelファイルで使用します。

ダミーのJSFページを作成する手順は、次のとおりです。

  1. JDeveloperで、「ファイル」メニューから「新規」を選択します。 「新規ギャラリ」ダイアログが表示されます。

  2. 「カテゴリ」セクションで、「Web層」ノードから「JSF」を選択します。 対応する項目が「項目」ペインに表示されます。

  3. この「項目」ペインで「JSFページ」を選択し、「OK」をクリックします。 「JSFページの作成」ダイアログが表示されます。

  4. このダイアログのオンライン・ヘルプの手順に従って、各フィールドに入力します。

  5. プロンプトが表示された場合は、Excelドキュメントで使用するコントロールとフィールドを「コンポーネント・パレット」からドラッグ・アンド・ドロップします。

この操作の例については、「タスク3: Excelワークブックで使用する有効なページ定義ファイルの作成」を参照してください。

30.1.3 Oracle JDeveloperプロジェクトへのデスクトップ統合の追加方法

Oracle ADFデスクトップ統合をプロジェクトのテクノロジ・スコープに追加するには、JDeveloperで「プロジェクト・プロパティ」ダイアログ・ボックスを使用します。

Oracle ADFデスクトップ統合をプロジェクトに追加する手順は、次のとおりです。

  1. 「アプリケーション・ナビゲータ」で、Oracle ADFデスクトップ統合モジュールを追加するプロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。

    アプリケーションでFusion Webアプリケーション(ADF)のアプリケーション・テンプレートを使用する場合は、ViewControllerプロジェクトを選択します。アプリケーションで他のアプリケーション・テンプレートを使用する場合は、Webアプリケーションに対応するプロジェクトを選択します。

  2. 「プロジェクト・プロパティ」ダイアログで「テクノロジ・スコープ」を選択して、使用可能なテクノロジのリストを表示します。

  3. 「ADFデスクトップ統合」および「ADFライブラリWebアプリケーション・サポート」プロジェクト・テクノロジを選択し、「選択済のテクノロジ」リストに追加します。

  4. 「OK」をクリックします。

30.1.4 JDeveloperプロジェクトへのデスクトップ統合の追加時の処理内容

Oracle ADFデスクトップ統合モジュールをプロジェクトのテクノロジ・スコープに追加すると、次のイベントが発生します。

  • プロジェクトでは、Oracle ADFデスクトップ統合のランタイム・ライブラリを追加します。 このライブラリは、クラスパス内で次の.jarファイルを参照します。

    • wsclient.jar

    • adf-desktop-integration.jar

    • resourcebundle.jar

  • プロジェクトでは、ADFバインディング・フィルタ(adfBindings)を追加します。

  • プロジェクトのデプロイメント・ディスクリプタ(web.xml)が次のエントリを含むように変更されます。

    • adfdiRemoteという名前のサーブレット


      注意:

      adfdiRemoteservlet-mapping要素のurl-pattern属性の値は、『Oracle Fusion Middleware Oracle Application Development Frameworkのためのデスクトップ統合開発者ガイド』で説明されているRemoteServletPathワークブック・プロパティの値と一致する必要があります。

    • adfdiExcelDownloadという名前のフィルタ

    • Excelファイル(.xlsxおよび.xlsm)用のMIMEマッピング

    これらのエントリがすべてではありません。 Oracle ADFデスクトップ統合をプロジェクトに追加すると、web.xmlはさらに変更されます。 また、web.xml内の一部のエントリは、そのエントリが存在しない場合のみ追加されることに注意してください。

ADFライブラリWebアプリケーション・サポートをプロジェクトのテクノロジ・スコープに追加すると、そのプロジェクトのweb.xmlファイルは、次のエントリを含むように変更されます。

    <filter>
        <filter-name>ADFLibraryFilter</filter-name>
        <filter-class>oracle.adf.library.webapp.LibraryFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>ADFLibraryFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    <servlet>
        <servlet-name>adflibResources</servlet-name>
        <servlet-class>oracle.adf.library.webapp.ResourceServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>adflibResources</servlet-name>
        <url-pattern>/adflib/*</url-pattern>
    </servlet-mapping>

次の例に示すように、ADFライブラリWebアプリケーション・サポートのフィルタ(<filter-name>ADFLibraryFilter</filter-name>)は、web.xmladfdiExcelDownloadフィルタ・エントリの下に表示されます。これにより、統合されたExcelワークブックをFusion Webアプリケーションからダウンロードできます。

<filter>
<filter-name>adfdiExcelDownload</filter-name>
        <filter-class>oracle.adf.desktopintegration.filter.DIExcelDownloadFilter</filter-c
lass>
</filter>
<filter>
<filter-name>ADFLibraryFilter</filter-name>
<filter-class>oracle.adf.library.webapp.LibraryFilter</filter-class>
</filter>
...
<filter-mapping>
<filter-name>adfdiExcelDownload</filter-name>
<url-pattern>*.xlsx</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>adfdiExcelDownload</filter-name>
<url-pattern>*.xlsm</url-pattern>
</filter-mapping>
...
<filter-mapping>
<filter-name>ADFLibraryFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

web.xmlの詳細は、『Oracle Fusion Middleware Oracle Application Development Frameworkのためのデスクトップ統合開発者ガイド』を参照してください。

30.1.5 手順1で作成したWebアプリケーションのデプロイ方法

この操作の例については、「タスク5: ADFタスク・フローのデプロイ」を参照してください。

30.1.6 Microsoft Excelのインストール方法

Microsoft Excelは、適切なMicrosoft社のドキュメントに従ってインストールてください。

30.1.7 Oracle ADFデスクトップ統合プラグインのインストール

手順については、「タスク4: Excelワークブックの準備」を参照してください。

30.1.8 ユーザー・インタフェース・コントロールの指定方法とExcelワークブックの作成方法

手順については、「タスク4: Excelワークブックの準備」を参照してください。

30.2 ヒューマン・タスク・ワークフロー電子メール通知へのExcelワークブックの添付

Excelワークブックは、ワークリスト・アプリケーションを使用するかわりに、ヒューマン・タスク・ワークフロー電子メール通知の一部として、タスクの詳細に添付できます。 この場合、ユーザーは新規タスクに関する電子メールを受信します。 この電子メールにはExcelワークブックが添付されており、ユーザーが添付ファイルを開くと、ワークリスト・アプリケーションと同様のログイン・ページが表示されます。Excelワークブックには、タスクIDやペイロードのようなタスクの詳細が含まれています。ユーザーが実行できるアクションに対応したボタンのいずれかをクリックすると、対応するBPELプロセスが起動します。

30.2.1 ヒューマン・タスク・ワークフロー電子メール通知へのExcelワークブックの添付の有効化

この機能を有効にする手順は、次のとおりです。

  1. Oracle JDeveloperで、BPELプロセスの特定のヒューマン・タスク・アクティビティに対応するADFタスク・フローを作成します。

  2. タスク・フローがデプロイされているサーバーを指し示すようにADF-DI対応のExcelシートの設定を変更し、次に、このExcelシートを、ADFタスク・フロー用にパッケージ化した.warファイルの一部として保存します。 この作業の手順は、「例: 電子メール通知へのExcelワークブックの添付」で説明します。 「ダミーのJSFページの作成方法」で生成したページ定義ファイルは、後で使用します。


    注意:

    ADFタスク・フローへのExcelワークブックのパッケージ化は、ADFタスク・フローと、ワークフローに使用するExcelシートの間に1対1の対応があることを前提にしています。

  3. デスクトップ統合のADFタスク・フロー・プロジェクトを有効にして、サーバーにデプロイします。

30.2.2 ヒューマン・タスク・ワークフロー電子メール通知へのExcelワークブックの添付を有効化した場合の実行時の処理内容

実行時における次のエンド・ユーザーの動作に注意してください。

  • ユーザーは、新規タスクに関する電子メール通知をExcel添付ファイルとともに受信します。 ユーザーが添付ファイルを開くと、ログイン・ページが表示され、ユーザー名とパスワードの入力を求めるプロンプトが表示されます。 このログイン・ページは、ワークリスト・アプリケーションのログイン・ページに類似しています。

  • Excelワークブックは、タスクの詳細(タスク識別子、ペイロードなど)とともにロード・アップされます。 ユーザーが実行できるアクションに対応するボタンが表示されます。 いずれかのボタンをクリックすると、そのタスクがステップとなるBPELプロセスが起動します。

次の実行時の動作に注意してください。

  • Excelワークブックが添付ファイルとして追加されるのは、対応するタスクの「タスクの添付ファイルを含む」フラグがtrueに設定されている場合のみです。

  • 実行時には、Excelワークブックを添付ファイルとして追加する前に、ワークフローに対してデジタル署名が有効でないことが検証されます。

  • ADFタスク・フローがサーバーにデプロイされると、タスク・フローURIのホスト名やポート番号などのデータがデータベースに登録されます。

  • 電子メール通知が作成されると、実行時に、アプリケーション・サーバーのホスト名とポート番号、およびタスク・フロー・アプリケーションのコンテキスト・ルートがデータベースから取得されます。この情報を使用して、Excelワークブック(workflow_name.xls)が検索されます。

30.2.3 例: 電子メール通知へのExcelワークブックの添付

通常、この統合は、次の各タスクを実行して構成します。

30.2.3.1 タスク1: Oracle ADF-DI機能を使用したADFタスク・フロー・プロジェクトの有効化

このタスクでは、WebアプリケーションをOracle ADF-DIで使用するように構成します。

  1. ヒューマン・タスクに基づいてADFタスク・フロー・プロジェクトを作成します。これにより、タスクに対応するデータ・コントロール、およびタスクの構造に対応する.xmlファイルが作成されます。 図30-1に、サンプル・プロジェクトが開いた状態のJDeveloperを示します。

    図30-1 サンプル・プロジェクトが開いた状態のOracle JDeveloper

    この図は、周囲のテキストで説明されています。
    「図30-1 サンプル・プロジェクトが開いた状態のOracle JDeveloper」の説明

  2. 「Oracle JDeveloperプロジェクトへのデスクトップ統合の追加方法」の手順に従って、Oracle ADFデスクトップ統合をプロジェクトに追加します。

    図30-2に、Oracle ADFデスクトップ統合をプロジェクトに追加するときのOracle JDeveloperの「プロジェクト・プロパティ」ダイアログを示します。

    図30-2 Oracle JDeveloperの「プロジェクト・プロパティ」ダイアログ

    図30-2の説明は次にあります。
    「図30-2 Oracle JDeveloperの「プロジェクト・プロパティ」ダイアログ」の説明

  3. 手順2で述べたテクノロジ・スコープをプロジェクトに追加したときは、必要なイベントが発生していることを確認します。これを行うには、次の手順を実行します。

    1. 「アプリケーション・ナビゲータ」で、プロジェクトを右クリックします。

    2. 「プロジェクト・プロパティ」をクリックし、「ライブラリとクラスパス」を選択します。

    3. ADFデスクトップ統合ランタイムというエントリが存在し、選択されていることを確認します。

    4. このライブラリを選択し、「表示」をクリックします。

    5. ライブラリがクラスパス内のwsclient.jarおよびadf-desktop-integration.jarを参照していることを確認します。

      図30-3に、この確認作業で使用する一連のダイアログを示します。

      図30-3 Oracle JDeveloper: プロジェクトのテクノロジ・スコープの確認

      この図は、周囲のテキストで説明されています。
      「図30-3 Oracle JDeveloper: プロジェクトのテクノロジ・スコープの確認」の説明

  4. プロジェクトのデプロイメント・ディスクリプタ(web.xml)が次のエントリを含むように変更されていることを確認します。

    • adfdiRemoteという名前のサーブレット

    • adfdiExcelDownloadという名前のフィルタ

    • Excelファイル用のMIMEマッピング

    これらのエントリがすべてではありません。 「ADFデスクトップ統合」および「ADFライブラリWebアプリケーション・サポート」をプロジェクトに追加すると、web.xmlはさらに変更されます。次に、デプロイメント・ディスクリプタのサンプル・スニペットを示します。

    <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>client</param-value>
    </context-param>
    <context-param>
            <description>...</description>
            <param-name>org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION
            </param-name>
            <param-value>false</param-value>
    </context-param>
    <context-param>
            <description>Whether the 'Generated by...' comment at the bottom of ADF
     Faces HTML pages should contain version number information.</description>
            <param-name>oracle.adf.view.rich.versionString.HIDDEN</param-name>
            <param-value>false</param-value>
    </context-param>
    <filter>
            <filter-name>trinidad</filter-name>
           <filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter
           </filter-class>
    </filter>
    <filter>
            <filter-name>ADFLibraryFilter</filter-name>
            <filter-class>oracle.adf.library.webapp.LibraryFilter
            </filter-class>
    </filter>
    <filter>
            <filter-name>adfBindings</filter-name>
            <filter-class>oracle.adf.model.servlet.ADFBindingFilter
            </filter-class>
    </filter>
    <filter>
            <filter-name>adfdiExcelDownload</filter-name>
            <filter-class>
            oracle.adf.desktopintegration.filter.DIExcelDownloadFilter
            </filter-class>
    </filter>
    <filter-mapping>
            <filter-name>trinidad</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    <filter-mapping>
            <filter-name>adfBindings</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    <filter-mapping>
            <filter-name>trinidad</filter-name>
            <servlet-name>adfdiRemote</servlet-name>
    </filter-mapping>
    <filter-mapping>
            <filter-name>adfBindings</filter-name>
            <servlet-name>adfdiRemote</servlet-name>
    </filter-mapping>
    <filter-mapping>
            <filter-name>adfdiExcelDownload</filter-name>
            <url-pattern>*.xlsx</url-pattern>
    </filter-mapping>
    <filter-mapping>
            <filter-name>adfdiExcelDownload</filter-name>
            <url-pattern>*.xlsm</url-pattern>
    </filter-mapping>
    
    <filter-mapping>
                <filter-name>ADFLibraryFilter</filter-name>
                <url-pattern>/*</url-pattern>
                <dispatcher>FORWARD</dispatcher>
                <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
            <servlet-name>resources</servlet-name>
            <servlet-class>org.apache.myfaces.trinidad.webapp.ResourceServlet</servlet-clas
    s>
    </servlet>
    <servlet>
            <servlet-name>adflibResources</servlet-name>
    
     <servlet-class>oracle.adf.library.webapp.ResourceServlet</servlet-class>
    </servlet>
    <servlet>
            <servlet-name>adfdiRemote</servlet-name>
            <servlet-class>oracle.adf.desktopintegration.servlet.DIRemoteServlet</servlet-c
    lass>
    </servlet>
    <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
            <servlet-name>resources</servlet-name>
            <url-pattern>/adf/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
            <servlet-name>resources</servlet-name>
            <url-pattern>/afr/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
            <servlet-name>adflibResources</servlet-name>
            <url-pattern>/adflib/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
            <servlet-name>adfdiRemote</servlet-name>
            <url-pattern>/adfdiRemoteServlet</url-pattern>
    </servlet-mapping>
    <session-config>
            <session-timeout>35</session-timeout>
    </session-config>
    <mime-mapping>
            <extension>html</extension>
            <mime-type>text/html</mime-type>
    </mime-mapping>
    <mime-mapping>
            <extension>txt</extension>
            <mime-type>text/plain</mime-type>
    </mime-mapping>
    <mime-mapping>
            <extension>xlsx</extension>
            <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</m
    ime-type>
    </mime-mapping>
    <mime-mapping>
            <extension>xlsm</extension>
            <mime-type>application/vnd.ms-excel.sheet.macroEnabled.12</mime-type>
    </mime-mapping>
    
  5. 次の<auth-filter>エントリをweblogic.xmlに追加します。

    <weblogic-web-app>   <auth-filter>oracle.bpel.services.workflow.client.worklist.util.FDIFilter</auth
    -filter>  .  .</weblogic-web-app>
    
  6. 「すべて保存」をクリックします。 プロジェクトを右クリックし、「再ビルド」をクリックします。コンパイル・エラーがなく、正常にビルドが完了したことを確認します。

これで、WebアプリケーションはOracle ADF-DIで使用するように構成されました。

30.2.3.2 タスク2: 認証の設定

このタスクでは、Oracle ADFデスクトップ統合を追加して、Excelワークブック用のWebセッションを作成する必要があります。

  1. ADFセキュリティをプロジェクトに追加します。これを行うには、次の手順を実行します。

    1. 「アプリケーション」メニューから、「保護」を選択し、「ADFセキュリティの設定」を選択します。

    2. 「ADF認証」を選択します。

    3. 「終了」をクリックします。

  2. アプリケーションのログイン・ページを作成します。これを行うには、次の手順を実行します。

    1. ExpenseReportTaskFlow\public_html\ディレクトリから、LoginPage.jspファイルをproject_home\public_htmlディレクトリにコピーします。

    2. Oracle JDeveloperのビューをリフレッシュします。

    3. LoginPage.jspファイルが表示されていることを確認します。 このファイルは、図30-4に示すように表示されます。

      図30-4 Oracle JDeveloper: Login.jspファイル

      この図は、周囲のテキストで説明されています。
      「図30-4 Oracle JDeveloper: Login.jspファイル」の説明

  3. ADFセキュリティを追加した後は、次のエントリがweb.xmlファイルに追加されていることを確認します。欠落しているエントリがある場合は、手動で追加します。手順2で作成したログイン・ページを使用して、フォーム認証が使用されていることに注意してください。

    <security-constraint>
            <web-resource-collection>
                <web-resource-name>allPages</web-resource-name>
                <url-pattern>/</url-pattern>
            </web-resource-collection>
            <auth-constraint>
                <role-name>Administrators</role-name>
            </auth-constraint>
        </security-constraint>
       <security-constraint>
            <web-resource-collection>
                <web-resource-name>adfAuthentication</web-resource-name>
                <url-pattern>/adfAuthentication</url-pattern>
            </web-resource-collection>
            <auth-constraint>
                <role-name>Administrators</role-name>
            </auth-constraint>
        </security-constraint>
        <login-config>
            <auth-method>FORM</auth-method>
            <realm-name>jazn.com</realm-name>
            <form-login-config>
                <form-login-page>/LoginPage.jsp</form-login-page>
                <form-error-page>/LoginPage.jsp</form-error-page>
            </form-login-config>
        </login-config>
        <security-role>
            <role-name>Administrators</role-name>
        </security-role>
    

    図30-5に、これらのエントリが「Webアプリケーション・デプロイメント・ディスクリプタ」ダイアログにグラフィカルに表示されている様子を示します。

    図30-5 Oracle JDeveloper: Webアプリケーション・デプロイメント・ディスクリプタ

    この図は、周囲のテキストで説明されています。
    「図30-5 Oracle JDeveloper: Webアプリケーション・デプロイメント・ディスクリプタ」の説明

  4. web.xmlに追加したすべての論理セキュリティ・ロールについて、次のように、weblogic.xmlに対応するエントリを作成します。

    <weblogic-web-app>
       <auth-filter>oracle.bpel.services.workflow.client.worklist.util.FDIAuthFilter</
    auth-filter>
       <security-role-assignment>
         <role-name>Administrators</role-name>
          <principal-name>fmwadmin</principal-name>
          <principal-name>users</principal-name>
        </security-role-assignment>
      .
      .
    </weblogic-web-app>
    
  5. 「すべて保存」をクリックします。

これで、ADFタスク・フローのWebアプリケーションに、Excelワークブックで使用できるログイン機能が構成されました。

30.2.3.3 タスク3: Excelワークブックで使用する有効なページ定義ファイルの作成

ページ定義ファイルExcelControlsPageDef.xmlを使用して、Excelワークブックを作成します。これを行うには、次の手順を実行します。

  1. 次の手順を実行して、新規Javaクラスを作成します。

    1. 「テクノロジ」「一般」シンプル・ファイル「Javaクラス」の順に選択します。

    2. 次のように詳細を指定します。

      名前: TaskRetrievers

      パッケージ: (デフォルトのままにします)

      拡張対象: oracle.bpel.services.workflow.client.worklist.excel.TasksRetriever(「参照」をクリックしてこのクラスを選択します)

      これで、新規Javaクラス<default-package>.TasksRetrieverが作成されます。

  1. 新規に作成したこのJavaクラスに対してデータ・コントロールを作成します。このデータ・コントロールは、ユーザーに割り当てられたすべてのタスクを取得するAPIへのアクセスを提供します。 図30-6に、データ・コントロールの作成に使用するメニューを示します。

    図30-6 Oracle JDeveloper: データ・コントロールの作成

    この図は、周囲のテキストで説明されています。
    「図30-6 Oracle JDeveloper: データ・コントロールの作成」の説明

  2. 新規に作成したデータ・コントロール「TasksRetriever」が「アプリケーション・ナビゲータ」下部の「データ・コントロール」パレットに表示されていることを確認します。 図30-7に、「データ・コントロール」パレットが展開された状態の「アプリケーション・ナビゲータ」を示します。

    図30-7 Oracle JDeveloper: 「データ・コントロール」パレットが展開された状態の「アプリケーション・ナビゲータ」

    この図は、周囲のテキストで説明されています。
    「図30-7 Oracle JDeveloper: 「データ・コントロール」パレットが展開された状態の「アプリケーション・ナビゲータ」」の説明

  3. ExcelControls.jspxという名前の新規のJSF JSPページを作成します。これにより、Excelドキュメントの作成時にADF-DIで使用できるページ定義が生成されます。

    図30-8 Oracle JDeveloper: JSF JSPページの作成

    図30-8の説明は次にあります。
    「図30-8 Oracle JDeveloper: JSF JSPページの作成」の説明

  4. タスク・ノードを「データ・コントロール」パレットからExcelControls.jspxにドラッグ・アンド・ドロップします。「ヒューマン・タスク」を選択し、次に「ペイロードを持つ完了済タスク」を選択します。 図30-9に、使用する一連のメニューを示します。表示されたウィンドウで「OK」をクリックします。

    図30-9 Oracle JDeveloper: ADF読取り専用フォームの作成

    この図は、周囲のテキストで説明されています。
    「図30-9 Oracle JDeveloper: ADF読取り専用フォームの作成」の説明

  5. 1つ以上のタスク・アクションを.jspxファイルにドラッグ・アンド・ドロップします。 図30-10に示す例では、「Approve」、「Reject」、「update」および「Suspend」アクションが追加され、ページ定義にエントリが作成されています。

    図30-10 Oracle JDeveloper: ページ定義ファイルの設定

    この図は、周囲のテキストで説明されています。
    「図30-10 Oracle JDeveloper: ページ定義ファイルの設定」の説明

  6. retrieveTasksForUser()メソッドを「データ・コントロール」パレット(TasksRetrieverノードを展開)からExcelControls.jspxにドラッグ・アンド・ドロップします。「アクション・バインディングの編集」ダイアログで「OK」をクリックします。これにより、ログイン・ユーザーに割り当てられたすべてのタスクを抽出するためのバインディングがExcelControlsPageDef.xmlに作成されます。

  7. TaskObjectを「データ・コントロール」パレットからExcelControls.jspxにドラッグ・アンド・ドロップして、ADF読取り専用フォームを作成します。対応する<methodIterator>実行可能ファイルおよび<attributeValues>バインディングがExcelControlsPageDef.xmlに作成されていることを確認します。

    図30-11 Oracle JDeveloper: ページ定義ファイル

    この図は、周囲のテキストで説明されています。
    「図30-11 Oracle JDeveloper: ページ定義ファイル」の説明

  8. Excelワークブックで公開されるタスク詳細の数に応じて、必要な数のADFコントロールをドラッグ・アンド・ドロップします。この例では、使用可能なワークブックを開発するのに最低限必要なタスク詳細のみ公開しています。

  9. リスト・バインディングをExcelControlsPageDef.xmlに作成します。このバインディングは、割り当てられたタスクのリストをExcelワークブックに作成する際に使用できます。次のエントリをページ定義の<bindings>要素に追加します。

    <list ListOperMode="navigation"
            IterBinding="retrieveTasksForUserIterator" id="retrievedTaskList"
     StaticList="false">
          <AttrNames>
            <Item Value="taskNumber"/>
          </AttrNames>
        </list>
    
  10. 同様に、次のリスト・バインディングをExcelControlsPageDef.xmlに追加します。このリスト・バインディングは、後で支出項目の更新可能な表のリストをExcelワークブックに作成する際に使用できます。

    <list ListOperMode="navigation" IterBinding="ItemIterator"
     id="expenseItemsList" StaticList="false">
          <AttrNames>
            <Item Value="itemName"/>
          </AttrNames>
        </list>
    
  11. 「すべて保存」をクリックします。 プロジェクトを右クリックし、「再ビルド」をクリックします。コンパイル・エラーがなく、正常にビルドが完了したことを確認します。

30.2.3.4 タスク4: Excelワークブックの準備

Excelワークブックを作成する手順は、次のとおりです。

  1. ADF-DIソリューションを実行するためのデスクトップ要件については、『Oracle Fusion Middleware Oracle Application Development Frameworkのためのデスクトップ統合開発者ガイド』の第3.1項を参照してください。

  2. Excelに対するセキュリティを設定します。これを行うには、次の手順を実行します。

    1. Excelを開きます。

    2. 「Microsoft Office」ボタンをクリックし、「Excelのオプション」をクリックします。

    3. セキュリティ センター・タブをクリックし、次に、セキュリティ センターの設定をクリックします。

    4. 「マクロの設定」タブをクリックし、「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」というラベルのチェック・ボックスをクリックします。

    5. 「OK」をクリックします。

  3. Oracle ADF-DIモジュールに付属している設定ツールを実行します。この設定ツールは、JDEV_HOME\jdeveloper\adfdi\bin\excel\clientフォルダに格納されています。

  4. 新規のExcelワークブックをproject_home\public_html\ディレクトリに作成します。「表示」をクリックし、次に、「リフレッシュ」をクリックします。これにより、ExcelワークブックがOracle JDeveloperに表示されます。

  5. Excelワークブックに対して変換コマンドを実行します。Oracle ADF-DIモジュールの変換ツールconvert-adfdi-excel-solution.exeは、oracle_jdeveloper_home\jdeveloper\adfdi\bin\excel\convertに格納されています。Excelワークブックを変換するには、convert-adfdi-excel-solution.exe <workbook.xlsx> -attachコマンドを実行します。

    これで、このExcelワークブックはOracle ADF-DIフレームワークで使用できます。

  6. Excelワークブックを開き、ページ定義を選択します。このユースケースでは、ページ定義はexpensereporttaskflow_ExcelControlsPageDefです。

    図30-12 Excel: 「ページ定義」ダイアログ

    図30-12の説明は次にあります。
    「図30-12 Excel: 「ページ定義」ダイアログ」の説明

  7. 「ドキュメントのアクション」ペインで、「ワークブック・プロパティ」を選択します。

  8. ProtectedWebPage: http://application_server:port//workflow/application_name/faces/app/logonを指定します(このURLは保護されており、フォーム認証のトリガーになります。 第30.2.3.2項「タスク2: 認証の設定」を参照してください)。

    WebAppRoot: http://application_server:port//workflow/application_nameを指定します。 「OK」をクリックします。


    関連項目:

    『Oracle Fusion Middleware Oracle Application Development Frameworkのためのデスクトップ統合開発者ガイド』のC-2項

    図30-13 Excel: WebAppRootの設定

    この図は、周囲のテキストで説明されています。
    「図30-13 Excel: WebAppRootの設定」の説明

  9. 「ドキュメントのアクション」ペインから「ADFバインディング」を挿入して、対応するフィールドをExcelワークブックに作成します。特定のコンポーネントの詳細は、『Oracle Fusion Middleware Oracle Application Development Frameworkのためのデスクトップ統合開発者ガイド』を参照してください。 たとえば、バインディングretrievedTaskListを挿入して、値リストを作成します。

    図30-14 Excel: 値リストの作成

    この図は、周囲のテキストで説明されています。
    「図30-14 Excel: 値リストの作成」の説明

  10. methodActionバインディングを挿入して、ボタンをExcelに作成します。

    図30-15 Excel: methodActionバインディングの挿入

    図30-15の説明は次にあります。
    「図30-15 Excel: methodActionバインディングの挿入」の説明

  11. ツリー・バインディングを挿入して、ADF表コンポーネントを作成します。表コンポーネントとは、Excel内のレコードの更新可能な表です。たとえば、リスト・バインディングexpenseItemsListは、表コンポーネントへの候補です。


    関連項目:

    表コンポーネントの作成方法と変更方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Frameworkのためのデスクトップ統合開発者ガイド』を参照してください。

    経費レポート・アプリケーションの完成したExcelワークブックは、図30-16に示すように表示されます。

    図30-16 Oracle ADF-DIに統合されたExcelワークブック

    この図は、周囲のテキストで説明されています。
    「図30-16 Oracle ADF-DIに統合されたExcelワークブック」の説明

  12. 次の手順を実行して、ワークブックを公開します。

    1. ツールバーの「公開」をクリックします。「ワークブックの公開」ダイアログが表示されます。

    2. 「ファイル名」フィールドで、名前をworkflow_name.xlsのように指定します。このワークフロー名は、project_home\adfmsrc\hwtaskflow.xmlで指定したWorkflowName要素の値です。この例では、公開するExcelワークブックの名前はExpenseReportTask.xlsです。

  13. Oracle JDeveloperで、「表示」をクリックし、次に、「リフレッシュ」をクリックします。 公開されたワークブックが、図30-17に示すように、「Webコンテンツ」の下に表示されていることを確認します。

    図30-17 Oracle JDeveloper: 「Webコンテンツ」の下に表示されたワークブックの確認

    この図は、周囲のテキストで説明されています。
    「図30-17 Oracle JDeveloper: 「Webコンテンツ」の下に表示されたワークブックの確認」の説明

  14. 「すべて保存」をクリックします。これで、ADFタスク・フローのデプロイメントの準備ができました。

30.2.3.5 タスク5: ADFタスク・フローのデプロイ

ADFタスク・フローをデプロイする手順は、次のとおりです。

  1. タスクの割当て時にExcelワークブックを添付ファイルとして送信するには、対応するタスクをSCAコンポジットに構成する必要があります。これを行うには、次の手順を実行します。

    1. Oracle JDeveloperで、ADFタスク・フローに対応するSCAコンポジット・プロジェクトを開きます。

    2. .taskファイルを開きます。

    3. 「電子メール通知によるタスクの添付ファイルの送信」というラベルの項目が選択されていることを確認します。

      図30-18 Oracle JDeveloper: SCAコンポジット・タスクの設定

      この図は、周囲のテキストで説明されています。
      「図30-18 Oracle JDeveloper: SCAコンポジット・タスクの設定」の説明

  2. アプリケーションをデプロイします。デプロイするには、SOAコンポジットを右クリックして「デプロイ」を選択し、次に、コンポジット・アプリケーション名を選択して、アプリケーション・サーバーを選択します。 図30-19に、選択する一連のメニュー項目を示します。

    図30-19 Oracle JDeveloper: アプリケーションのデプロイ

    この図は、周囲のテキストで説明されています。
    「図30-19 Oracle JDeveloper: アプリケーションのデプロイ」の説明

  3. ADFタスク・フローをデプロイします。デプロイするには、「アプリケーション・ナビゲータ」で「プロジェクト」を展開し、アプリケーションを選択します。次に、「デプロイ」を選択し、application_TaskFlow(この例では、アプリケーション・タスク・フローはExpenseReportTaskFlowです)を選択して、アプリケーション・サーバーを選択します。 図30-20に、一連のメニュー項目を示します。

    図30-20 Oracle JDeveloper: ADFタスク・フローのデプロイ時の一連のメニュー

    この図は、周囲のテキストで説明されています。
    「図30-20 Oracle JDeveloper: ADFタスク・フローのデプロイ時の一連のメニュー」の説明

これで、ADFタスク・フローは正常にデプロイされました。

30.2.3.6 タスク6: デプロイしたアプリケーションのテスト

デプロイしたアプリケーションをテストする手順は、次のとおりです。

  1. デプロイしたSOAコンポジットを起動し、割当て先が、Excelワークブックを電子メール通知の一部として受信していることを確認します。

    図30-21 電子メール通知に添付されたExcelワークブック

    図30-21の説明は次にあります。
    「図30-21 電子メール通知に添付されたExcelワークブック」の説明


    注意:

    ワークブックを正常に開いて実行するには、ユーザーのデスクトップ・マシンに適切なセキュリティ・ポリシーを設定する必要があります。また、caspolコマンドを実行して、ネットワーク共有でホストされるクライアント・アセンブリに信頼を付与する必要があります。

  2. Excelワークブックを開きます。 「ログイン」ページが表示されます(これは、「ダミーのJSFページの作成方法」LoginPage.jspです)。セキュリティ資格証明を入力します。

    図30-22 デスクトップ統合Excelワークブック: 「ログイン」ページ

    図30-22の説明は次にあります。
    「図30-22 デスクトップ統合Excelワークブック: 「ログイン」ページ」の説明

  3. 次の点についてワークブックを検証します。