In questo esempio viene creata un'attività di runtime che utilizza un'interfaccia che è già definita, ovvero il file system locale sul client dispone di un file che contiene la descrizione dell'interfaccia.
Perché e quando effettuare questa attività
L'esempio viene eseguito solo all'interno del contesto dell'applicazione aziendale chiamante, per cui vengono caricate le risorse.
Procedura di questa attività
- Accedere a ClientTaskFactory, quindi creare una serie di risorse che contenga le definizioni del nuovo modello di attività.
ClientTaskFactory factory = ClientTaskFactory.newInstance();
ResourceSet resourceSet = factory.createResourceSet();
- Accedere alla definizione WSDL e alle descrizioni delle operazioni.
La descrizione dell'interfaccia si trova nella posizione in cui viene eseguito il codice.
Definition definition = factory.loadWSDLDefinition(
resourceSet, "interface.wsdl" );
PortType portType = definition.getPortType(
new QName( definition.getTargetNamespace(), "doItPT" ) );
Operation operation = portType.getOperation("doIt", (String)null, (String)null;
- Creare il modello EMF del nuovo human task.
Se si sta creando un'istanza di attività, non è richiesta una data Valido da (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 );
Questo passo inizializza le proprietà del modello di attività con i valori predefiniti.
- Modificare le proprietà del modello human task.
// utilizzare i metodi dal pacchetto com.ibm.wbit.tel, ad esempio,
humanTask.setBusinessRelevance( TBoolean, YES_LITERAL );
// richiamare la produzione attività per creare o modificare gli elementi
dell'attività compositi
TaskFactory taskFactory = factory.getTaskFactory();
// specificare le impostazioni di escalation
TVerb verb = taskFactory.createTVerb();
verb.setName("John");
// creare escalationReceiver, quindi aggiungere il verbo
TEscalationReceiver escalationReceiver =
taskFactory.createTEscalationReceiver();
escalationReceiver.setVerb(verb);
// creare l'escalation, quindi aggiungere il destinatario dell'escalation
TEscalation escalation = taskFactory.createTEscalation();
escalation.setEscalationReceiver(escalationReceiver);
- Creare il modello dell'attività che contiene tutte le definizioni della risorsa.
TaskModel taskModel = ClientTaskFactory.createTaskModel( resourceSet );
- Convalidare il modello dell'attività, quindi correggere eventuali problemi di convalida che vengono trovati.
ValidationProblem[] validationProblems = taskModel.validate();
- Creare l'istanza o la maschera di attività di runtime.
Utilizzare l'interfaccia HumanTaskManagerService per creare l'istanza o la maschera dell'attività. È necessario fornire un nome dell'applicazione contenente le definizioni del tipo di dati, in modo che sia possibile accedervi. Inoltre, l'applicazione deve contenere un'attività o un processo fittizio, in modo che l'applicazione sia caricata da Business Process
Choreographer.
- Il frammento di seguito riportato crea un'istanza dell'attività:
task.createTask( taskModel, "BOapplication", "HTM" );
- Il frammento di seguito riportato crea una maschera dell'attività:
task.createTaskTemplate( taskModel, "BOapplication" );
Risultato
Se viene creata un'istanza di attività di runtime, ora può essere avviata. Se viene creata una maschera di attività di runtime, ora è possibile creare istanze di attività dalla maschera.