呼び出し側アプリケーションのインターフェースを使用するランタイム・タスクの作成

この例では、呼び出し側アプリケーションに属するインターフェースを使用するランタイム・タスクを作成します。例えば、ランタイム・タスクがビジネス・プロセスの Java 断片で作成され、プロセス・アプリケーションからのインターフェースを使用します。

このタスクを実行する理由と実行時期

この例は、リソースがロードされる呼び出し側エンタープライズ・アプリケーションのコンテキスト内のみで実行されます。

このタスクのステップ

  1. ClientTaskFactory にアクセスし、新規タスク・モデルの定義を格納するリソース・セットを作成します。
    ClientTaskFactory factory = ClientTaskFactory.newInstance();
    
    // specify the context class loader so that following resources are found
    ResourceSet resourceSet = factory.createResourceSet
                  ( Thread.currentThread().getContextClassLoader() );
  2. 操作の WSDL 定義および記述にアクセスします。

    収容パッケージ JAR ファイル内でパスを指定します。

    Definition definition = factory.loadWSDLDefinition( resourceSet,
                              "com/ibm/workflow/metaflow/interface.wsdl" );
                          PortType portType = definition.getPortType(
                          new QName( definition.getTargetNamespace(), "doItPT" ) );
    Operation operation = portType.getOperation("doIt", (String)null, (String)null);
  3. 新規ヒューマン・タスクの EMF モデルを作成します。

    タスク・インスタンスを作成する場合は、有効開始日 (UTCDate) は必要ありません。

    TTask humanTask = factory.createTTask( resourceSet,
                                           TTaskKinds.HTASK_LITERAL,
                                           "TestTask",
                                           new UTCDate( "2005-01-01T00:00:00" ),
                                           "http://www.ibm.com/task/test/",
                                           portType,
                                           operation );

    このステップは、タスク・モデルのプロパティーをデフォルト値で初期化します。

  4. ヒューマン・タスク・モデルのプロパティーを変更します。
    // use the methods from the com.ibm.wbit.tel package, for example,
    humanTask.setBusinessRelevance( TBoolean, YES_LITERAL );
    
    // retrieve the task factory to create or modify composite task elements
    TaskFactory taskFactory = factory.getTaskFactory();
    
    // specify escalation settings
    TVerb verb = taskFactory.createTVerb();
    verb.setName("John");
    
    // create escalationReceiver and add verb
    TEscalationReceiver escalationReceiver =
                        taskFactory.createTEscalationReceiver();
    escalationReceiver.setVerb(verb);
    
    // create escalation and add escalation receiver
    TEscalation escalation = taskFactory.createTEscalation();
    escalation.setEscalationReceiver(escalationReceiver);
  5. すべてのリソース定義を含むタスク・モデルを作成します。
    TaskModel taskModel = ClientTaskFactory.createTaskModel( resourceSet );
  6. タスク・モデルを検証し、検証で問題が検出された場合それを訂正します。
    ValidationProblem[] validationProblems = taskModel.validate();
  7. ランタイム・タスク・インスタンスまたはランタイム・タスク・テンプレートを作成します。
    HumanTaskManagerService インターフェースを使用して、タスク・インスタンスまたはタスク・テンプレートを作成します。データ型定義を利用できるように、データ型定義を含むアプリケーション名を指定する必要があります。
    • 以下の断片はタスク・インスタンスを作成します。
      task.createTask( taskModel, "WorkflowApplication", "HTM" );
    • 以下の断片はタスク・テンプレートを作成します。
      task.createTaskTemplate( taskModel, "WorkflowApplication" );

結果

ランタイム・タスク・インスタンスが作成された場合、それを始動することができます。ランタイム・タスク・テンプレートが作成された場合、そのテンプレートからタスク・インスタンスを作成できます。


(c) Copyright IBM Corporation 2005, 2006. All rights reserved.
(c) Copyright IBM Japan 2006
このインフォメーション・センターでは、Eclipse テクノロジー (http://www.eclipse.org) が採用されています。