ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Process Managementによるプロセスの管理とモニタリング
12c (12.2.1)
E69964-01
  目次へ移動
目次

前
次
 

C プロセス・ワークスペースおよびBPMワークリストでのアプリケーションのカスタマイズ

この付録では、Oracle Business Process Management Workspace (プロセス・ワークスペース)で、「ビュー」ペイン、「アプリケーション」ペインおよび「お気に入り」ペインの「お気に入り」リストで使用可能になる、カスタマイズした外部アプリケーションおよびリンクを作成する方法について説明します。また、プロセス・ワークスペースおよびBPMワークリストの両方について、受信ボックスに表示される列を指定する方法についても説明します。

注意:

任意の場所に一時ディレクトリを作成します(例: /scratch/jstein/sharedLib)。このディレクトリは個別のJARファイルすべてと共有ライブラリJARファイル(custom.client.applib.jar)を格納するためのディレクトリです。この作業を行ってから、次の手順を実行してください。

C.1 アプリケーションのカスタマイズ方法

アプリケーションをカスタマイズするには:

  1. Oracle JDeveloperでOracle Application Development Frameworkプロジェクトを作成します。

    図C-1は、「Fusion Webアプリケーション(ADF)の作成」ダイアログ・ボックスを示しています。

    図C-1 JDeveloperでのADFプロジェクトの作成

    「図C-1 JDeveloperでのADFプロジェクトの作成」の説明が続きます
    「図C-1 JDeveloperによるADFプロジェクトの作成」の説明
  2. Javaクラスを作成し、WorkspaceCustomisationImplという名前を付与します。
  3. ワークリスト・アプリケーションJARファイルを含めます。

    図C-2は、追加されるBPMワークリスト・コンポーネント・ライブラリを示しています。

    図C-2 ワークリスト・アプリケーションのライブラリへの追加

    「図C-2 ワークリスト・アプリケーションのライブラリへの追加」の説明が続きます
    「図C-2 ワークリスト・アプリケーションのライブラリへの追加」の説明
  4. カスタマイズ・クラスを作成します。このサンプルのクラスは、受信ボックス列を変更し、外部アプリケーションおよびリンクをカスタマイズします。

    WorkspaceCustomisationImplとその内容を次に示します。

    package view.customisationimpl;
     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    import oracle.bpel.services.workflow.client.IWorkflowServiceClient;
    import oracle.bpel.services.workflow.runtimeconfig.IRuntimeConfigService;
    import oracle.bpel.services.workflow.runtimeconfig.model.AttributeLabelType;
    import oracle.bpel.services.workflow.runtimeconfig.model.AttributeLabelUsageList;
    import oracle.bpel.services.workflow.runtimeconfig.model.AttributeLabelUsages;
     
    import oracle.bpel.services.workflow.verification.IWorkflowContext;
     
    import oracle.bpm.ui.customization.CustomLink;
    import oracle.bpm.ui.customization.IBPMUICustomizations;
     
    public class WorkspaceCustomisationImpl implements IBPMUICustomizations {
      private static Map displayNameMap = new HashMap();
     
      public WorkspaceCustomisationImpl() {
        displayNameMap.put("instanceId", "Instance Id");
        displayNameMap.put("protectedTextAttribute1", "Business Status");
      }
     
      public List<CustomLink> getCustomGlobalLinks() {
        CustomLink globalLink1 =
          new CustomLink("Oracle Home Page", "www.oracle.com", null);
        CustomLink globalLink2 =
          new CustomLink("Self Services Application", "http://global-ebusiness.example.com/",
                         null);
        CustomLink globalLink3 =
          new CustomLink("BUG DB", "https://bug.example.com/", null);
        List<CustomLink> globalLinks = new ArrayList<CustomLink>();
        globalLinks.add(globalLink1);
        globalLinks.add(globalLink2);
        globalLinks.add(globalLink3);
        return globalLinks;
      }
     
      public String getColumnNames() {
        return "title,taskNumber,instanceId,creator,protectedTextAttribute1";
      }
     
      private static void initDisplayMap(IWorkflowServiceClient client,
                                         IWorkflowContext context) {
        // u can use service to load all label name for text attributes
        if (displayNameMap == null) {
          synchronized (String.class) {
            if (displayNameMap == null) {
              displayNameMap = new HashMap();
              try {
                IRuntimeConfigService service = client.getRuntimeConfigService();
                AttributeLabelUsageList list =
                  service.getAttributeLabelUsages(context, "Text");
                List<AttributeLabelUsages> list1 = list.getAttributeLabelUsages();
                for (AttributeLabelUsages usage : list1) {
                  AttributeLabelType type = usage.getLabel();
                  displayNameMap.put(type.getTaskAttribute(), type.getLabelName());
                }
              } catch (Exception exc) {
              }
            }
          }
        }
      }
     
     
      public String getColumnDisplayName(IWorkflowServiceClient client,
                                         IWorkflowContext context,
                                         java.lang.String colName) {
        initDisplayMap(client, context);
        return (String)displayNameMap.get(colName);
      }
    }
    
  5. JARデプロイメント・プロファイルを作成します。customer-impl.jarという名前のJARファイルを作成します。
  6. このファイルを共有ライブラリcustom.client.applib.jarの一部としてデプロイします。

    これを行うには、イメージおよびJARファイルの共有ライブラリJARファイルの一部としてのデプロイの説明のとおり、MANIFEST.MFファイルと共有ライブラリを更新します。

カスタマイズによっては、その効果をここで確認できます。プロセス・ワークスペース用のカスタマイズを実行し、外部アプリケーションの作成と「タスクの詳細」ペインでの受信ボックス列の指定のいずれか(あるいはその両方)を実行した場合、次が表示されます。