In diesem Beispiel wird eine Laufzeit-Task erstellt, die in ihrer Schnittstelle
komplexe Typen verwendet. Die komplexen Typen sind bereits definiert, d. h., das lokale Dateisystem
auf dem Client verfügt über XSD-Dateien, die die Beschreibung der komplexen
Typen enthalten.
Anlass und Zeitpunkt für die Ausführung dieser Task
Das Beispiel funktioniert nur im Kontext der aufrufenden Enterprise-Anwendung,
für die die Ressourcen geladen werden.
Erforderliche Schritte für diese Task
- Greifen Sie auf die ClientTaskFactory zu, und erstellen Sie eine Ressourcengruppe,
die die Definitionen des neuen Taskmodells enthalten soll.
ClientTaskFactory factory = ClientTaskFactory.newInstance();
ResourceSet resourceSet = factory.createResourceSet();
- Fügen Sie die XSD-Definitionen Ihrer komplexen Typen zur Ressourcengruppe hinzu,
sodass sie bei der Definition Ihrer Operationen verfügbar sind.
Die Dateien
befinden sich in relativer Position zu der Position, an der der Code ausgeführt wird.
factory.loadXSDSchema( resourceSet, "InputBO.xsd" );
factory.loadXSDSchema( resourceSet, "OutputBO.xsd" );
- Erstellen Sie die WSDL-Definition, und fügen Sie die Beschreibungen Ihrer Operationen hinzu.
// Erstellen der WSDL-Schnittstelle
Definition definition = factory.createWSDLDefinition
( resourceSet, new QName( "http://www.ibm.com/task/test/", "test" ) );
// Erstellen eines Porttyps
PortType portType = factory.createPortType( definition, "doItPT" );
// Erstellen einer Operation; die Eingabenachricht ist InputBO, und
// die Ausgabenachricht ist OutputBO;
// Eine Fehlernachricht wird nicht angegeben
Operation operation = factory.createOperation
( definition, portType, "doIt",
new QName( "http://Input", "InputBO" ),
new QName( "http://Output", "OutputBO" ),
null );
- Erstellen Sie das EMF-Modell Ihrer neuen Benutzertask.
Wenn Sie eine
Taskinstanz erstellen, ist kein Gültigkeitsstartdatum (UTCDate) erforderlich.
TTask humanTask = factory.createTTask( resourceSet,
TTaskKinds.HTASK_LITERAL,
"TestTask",
new UTCDate( "2005-01-01T00:00:00" ),
"http://www.ibm.com/task/test/",
portType,
operation );
Durch diesen Schritt werden die
Merkmale des neuen Taskmodells mit den Standardwerten initialisiert.
- Ändern Sie die Merkmale Ihres Benutzertaskmodells.
// Verwenden der Methoden aus dem Paket com.ibm.wbit.tel, z. B.:
humanTask.setBusinessRelevance( TBoolean, YES_LITERAL );
// Abrufen der Task-Factory zum Erstellen oder Ändern von zusammengesetzten Taskelementen
TaskFactory taskFactory = factory.getTaskFactory();
// Angeben der Eskalationseinstellungen
TVerb verb = taskFactory.createTVerb();
verb.setName("John");
// Erstellen des Eskalationsempfängers und Hinzufügen eines Verbs
TEscalationReceiver escalationReceiver =
taskFactory.createTEscalationReceiver();
escalationReceiver.setVerb(verb);
// Erstellen einer Eskalation und Hinzufügen eines Eskalationsempfängers
TEscalation escalation = taskFactory.createTEscalation();
escalation.setEscalationReceiver(escalationReceiver);
- Erstellen Sie das Taskmodell, das alle Ressourcendefinitionen enthält.
TaskModel taskModel = ClientTaskFactory.createTaskModel( resourceSet );
- Prüfen Sie das Taskmodell, und korrigieren Sie sämtliche gefundenen Prüffehler.
ValidationProblem[] validationProblems = taskModel.validate();
- Erstellen Sie die Laufzeit-Taskinstanz bzw. die Laufzeit-Schablone.
Verwenden Sie die
Schnittstelle HumanTaskManagerService, um die Taskinstanz oder die Taskschablone zu erstellen. Sie müssen einen
Anwendungsnamen angeben, der die Datentypdefinitionen enthält, damit
ein Zugriff möglich ist. Die Anwendung muss auch eine Mustertask oder einen Musterprozess enthalten, sodass die Anwendung
von Business Process Choreographer geladen wird.
- Durch das folgende Snippet wird eine Taskinstanz erstellt:
task.createTask( taskModel, "BOapplication", "HTM" );
- Durch das folgende Snippet wird eine Taskschablone erstellt:
task.createTaskTemplate( taskModel, "BOapplication" );
Ergebnis
Wenn eine Laufzeit-Taskinstanz erstellt wurde, kann sie nun gestartet werden. Wenn eine
Laufzeittaskschablone erstellt wurde, können Sie nun auf der Basis der Schablone Taskinstanzen erstellen.