本示例创建一个运行时任务,该任务使用调用应用程序中的接口。例如,该运行时任务是在业务流程的 Java 片段中创建的,并且使用流程应用程序中的接口。
ClientTaskFactory factory = ClientTaskFactory.newInstance(); // specify the context class loader so that following resources are found ResourceSet resourceSet = factory.createResourceSet ( Thread.currentThread().getContextClassLoader() );
指定外层包 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", null, null );
如果创建任务实例,则不需要“生效日”日期(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 );
此步骤使用缺省值来初始化任务模型的属性。
// 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);
TaskModel taskModel = ClientTaskFactory.createTaskModel( resourceSet );
ValidationProblem[] validationProblems = taskModel.validate();
task.createTask( taskModel, "WorkflowApplication", "HTM" );
task.createTaskTemplate( taskModel, "WorkflowApplication" );
如果创建了运行时任务实例,则现在可以启动它了。如果创建了运行时任务模板,则现在可以根据该模板创建任务实例了。