ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1 (11.1.1.7)
B56238-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

この章では、開発者を対象として、Oracle SOA Suiteのエンタープライズ・システム機能をMicrosoft Excel 2007と統合する方法について説明します。この統合によって、Microsoft ExcelからのBPELプロセスの起動およびワークフロー電子メール通知へのMicrosoft Excelワークブックの添付が可能になります。この統合は、複数のツールを切り替えずに構成できます。

この章には次の項が含まれます:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • プロジェクトでは、Oracle ADF-DIのランタイム・ライブラリを追加します。このライブラリは、クラスパス内で次の.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-DIをプロジェクトに追加すると、web.xmlはさらに変更されます。また、web.xml内の一部のエントリは、そのエントリが存在しない場合のみ追加されます。

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

例35-1 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>

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

例35-2 web.xmlファイルのエントリ

<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のためのデスクトップ統合開発者ガイド』を参照してください。

35.1.5 ステップ1で作成したWebアプリケーションのデプロイ方法

このタスクの実行方法の例については、第35.2.3.5項「タスク5: ADFタスク・フローのデプロイ」を参照してください。

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

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

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

このインストールを実行するには、第35.2.3.4項「タスク4: Excelワークブックの準備」の手順に従ってください。

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

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

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

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

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

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

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

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


    注意:

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


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

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

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

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

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

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

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

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

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

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

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

この項では、電子メール通知にExcelワークブックを添付する方法を説明します。

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

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

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

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

    この図については本文で説明しています。
    「図35-1 サンプル・プロジェクトが開いた状態のOracle JDeveloper」の説明

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

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

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

    図35-2の説明が続きます
    「図35-2 Oracle JDeveloperの「プロジェクト・プロパティ」ダイアログ」の説明

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

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

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

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

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

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

  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. 「すべて保存」をクリックします。

  7. プロジェクトを右クリックし、「再ビルド」をクリックします。

  8. コンパイル・エラーがなく、正常にビルドが完了したことを確認します。

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

35.2.3.2 タスク2: 認証の設定

このタスクでは、Oracle ADF-DIを追加して、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ファイルが表示されていることを確認します。これは、図35-3に示すように表示されます。

      図35-3 Oracle JDeveloper: Login.jspファイル

      この図については本文で説明しています。
      「図35-3 Oracle JDeveloper: Login.jspファイル」の説明

  3. ADFセキュリティを追加した後は、次のエントリがweb.xmlファイルに追加されていることを確認します。欠落しているエントリがある場合は、手動で追加します。第35.2.3.2項「タスク2: 認証の設定」のステップ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>
    

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

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

    この図については本文で説明しています。
    「図35-4 Oracle JDeveloper: アプリケーション・デプロイメント・ディスクリプタ」の説明

  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ワークブックで使用できるログイン機能が構成されました。

35.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へのアクセスを提供します。図35-5に、データ・コントロールの作成に使用するメニューを示します。

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

    この図については本文で説明しています。
    「図35-5 Oracle JDeveloper: データ・コントロールの作成」の説明

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

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

    この図については本文で説明しています。
    「図35-6 Oracle JDeveloper: 「データ・コントロール」パレットが展開された状態の「アプリケーション・ナビゲータ」」の説明

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

    図35-7 Oracle JDeveloper: JSF JSPページの作成

    図35-7の説明が続きます
    「図35-7 Oracle JDeveloper: JSF JSPページの作成」の説明

  4. タスク・ノードを「データ・コントロール」パレットからExcelControls.jspxにドラッグ・アンド・ドロップします。

  5. 「ヒューマン・タスク」を選択し、次に「ペイロードを持つ完了済タスク」を選択します。図35-8に、使用する一連のメニューを示します。

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

    この図については本文で説明しています。
    「図35-8 Oracle JDeveloper: ADF読取り専用フォームの作成」の説明

  6. 表示されたダイアログで「OK」をクリックします。

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

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

    この図については本文で説明しています。
    「図35-9 Oracle JDeveloper: ページ定義ファイルの設定」の説明

  8. retrieveTasksForUser()メソッドを「データ・コントロール」パレット(TasksRetrieverノードを展開)からExcelControls.jspxにドラッグ・アンド・ドロップします。

  9. 「アクション・バインディングの編集」ダイアログで「OK」をクリックします。これにより、ログイン・ユーザーに割り当てられたすべてのタスクを抽出するためのバインディングがExcelControlsPageDef.xmlに作成されます。

  10. TaskObjectを「データ・コントロール」パレットからExcelControls.jspxにドラッグ・アンド・ドロップして、ADF読取り専用フォームを作成します。

  11. 対応する<methodIterator>実行可能ファイルおよび<attributeValues>バインディングがExcelControlsPageDef.xmlに作成されていることを確認します。図35-10に詳細を示します。

    図35-10 Oracle JDeveloper: ページ定義ファイル

    この図については本文で説明しています。
    「図35-10 Oracle JDeveloper: ページ定義ファイル」の説明

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

  13. リスト・バインディングをExcelControlsPageDef.xmlに作成します。このバインディングを使用すると、割り当てられたタスクのリストをExcelワークブックに作成できます。

  14. 次のエントリをページ定義の<bindings>要素に追加します。

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

    <list ListOperMode="navigation" IterBinding="ItemIterator"
     id="expenseItemsList" StaticList="false">
          <AttrNames>
            <Item Value="itemName"/>
          </AttrNames>
        </list>
    
  16. 「すべて保存」をクリックします。

  17. プロジェクトを右クリックし、「再ビルド」をクリックします。

  18. コンパイル・エラーがなく、正常にビルドが完了したことを確認します。

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

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

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

  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ディレクトリに作成します。

  5. 「表示」をクリックし、次に、「リフレッシュ」をクリックします。これにより、ExcelワークブックがOracle JDeveloperに表示されます。

  6. 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フレームワークで使用できます。

  7. Excelワークブックを開き、ページ定義を選択します。このユースケースでは、ページ定義はexpensereporttaskflow_ExcelControlsPageDefです。図35-11に詳細を示します。

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

    図35-11の説明が続きます
    「図35-11 Excel: 「ページ定義」ダイアログ」の説明

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

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

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

    図35-12に詳細を示します。

    図35-12 Excel: WebAppRootの設定

    この図については本文で説明しています。
    「図35-12 Excel: WebAppRootの設定」の説明

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

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

    図35-13 Excel: 値リストの作成

    この図については本文で説明しています。
    「図35-13 Excel: 値リストの作成」の説明

  11. methodActionバインディングを挿入して、ボタンをExcelに作成します。図35-14に詳細を示します。

    図35-14 Excel: methodActionバインディングの挿入

    図35-14の説明が続きます
    「図35-14 Excel: methodActionバインディングの挿入」の説明

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


    関連項目:

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


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

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

    この図については本文で説明しています。
    「図35-15 Oracle ADF-DIに統合されたExcelワークブック」の説明

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

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

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

  14. Oracle JDeveloperで、「表示」「リフレッシュ」の順にクリックします。

  15. 公開されたワークブックが、図35-16に示すように、「Webコンテンツ」の下に表示されていることを確認します。

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

    この図については本文で説明しています。
    「図35-16 Oracle JDeveloper: 「Webコンテンツ」の下に表示されたワークブックの確認」の説明

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

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

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

  1. タスクの割当て時にExcelワークブックを添付ファイルとして送信するには、対応するタスクをSOAコンポジット・アプリケーションに構成する必要があります。

    1. Oracle JDeveloperで、ADFタスク・フローに対応するSOAコンポジット・アプリケーションを開きます。

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

    3. ヒューマン・タスク・エディタの「通知」セクションの「詳細」タブで、「電子メール通知によるタスクの添付ファイルの送信」チェック・ボックスが選択されていることを確認します。

  2. アプリケーションをデプロイします。デプロイメントを実行するには、SOAコンポジット・アプリケーションを右クリックして「デプロイ」を選択し、次に、プロジェクト名を選択して、デプロイメント・ウィザードの各ページの指示に従います。

  3. ADFタスク・フローをデプロイします。

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

    2. 「デプロイ」を選択し、application_TaskFlowを選択します(この例の場合、アプリケーション・タスク・フローはExpenseReportTaskFlowです)。

    3. デプロイメント・ウィザードの各ページの指示に従います。

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

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

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

  1. デプロイしたSOAコンポジット・アプリケーションを起動し、割当て先が、Excelワークブックを電子メール通知の一部として受信していることを確認します。図35-17に詳細を示します。

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

    図35-17の説明が続きます
    「図35-17 電子メール通知に添付されたExcelワークブック」の説明


    注意:

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


  2. Excelワークブックを開きます。ログイン・ページが表示されます。(これは、第35.1.2項「ダミーのJSFページの作成方法」LoginPage.jspです。)

  3. セキュリティ資格証明を入力します。図35-18に詳細を示します。

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

    図35-18の説明が続きます
    「図35-18 デスクトップ統合Excelワークブック: 「ログイン」ページ」の説明

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