単純 Java 型を使用するランタイム・タスクの作成

この例では、インターフェースで単純 Java 型 (例えば String オブジェクト) のみを使用するランタイム・タスクを作成します。

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

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

このタスクのステップ

  1. ClientTaskFactory にアクセスし、新規タスク・モデルの定義を格納するリソース・セットを作成します。
    ClientTaskFactory factory = ClientTaskFactory.newInstance();
    ResourceSet resourceSet = factory.createResourceSet();
  2. 操作の WSDL 定義を作成し、記述を追加します。
    // create the WSDL interface
    Definition definition = factory.createWSDLDefinition
             ( resourceSet, new QName( "http://www.ibm.com/task/test/", "test" ) );
        
    // create a port type
    PortType portType = factory.createPortType( definition, "doItPT" );
    
    // create an operation; the input and output messages are of type String:
    // a fault message is not specified
    Operation operation = factory.createOperation
            ( definition, portType, "doIt",
              new QName( "http://www.w3.org/2001/XMLSchema", "string" ),
              new QName( "http://www.w3.org/2001/XMLSchema", "string" ),
              (Map)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 インターフェースを使用して、タスク・インスタンスまたはタスク・テンプレートを作成します。アプリケーションが単純 Java 型のみを使用するため、アプリケーション名を指定する必要はありません。
    • 以下の断片はタスク・インスタンスを作成します。
      task.createTask( taskModel, (String)null, "HTM" );
    • 以下の断片はタスク・テンプレートを作成します。
      task.createTaskTemplate( taskModel, (String)null );

結果

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


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