Anlass und Zeitpunkt für die Ausführung dieser Task
Ursprüngliche Tasks, die eine synchrone Schnittstelle
aufrufen, umfassen integrierte ursprüngliche Tasks in einem Mikroprozess, eigenständige ursprüngliche Tasks
in einem Mikroprozess und ursprüngliche Tasks, die beispielsweise eine einfache Java-Klasse
starten.
In diesem Szenario wird eine Instanz einer Taskschablone erstellt, und es werden
einige Kundendaten übergeben. Die Task bleibt so lange im aktiven Status, bis die
bidirektionale Operation zurückgegeben wird. Das Ergebnis der Task (Bestellnr) wird an den Aufrufenden zurückgegeben.
Erforderliche Schritte für diese Task
- Optional: Listen Sie die Taskschablonen auf, um den Namen
der ursprünglichen Task zu finden, die Sie ausführen möchten.
Dieser Schritt
ist optional, wenn Sie den Namen der Task bereits kennen.
TaskTemplate[] taskTemplates = task.queryTaskTemplates
("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_ORIGINATING",
"TASK_TEMPL.NAME",
new Integer(50),
null);
Die Ergebnisse sind nach dem Namen sortiert.
Die Abfrage gibt eine Matrix mit den ersten 50 sortierten ursprünglichen Schablonen zurück.
- Erstellen Sie eine Eingabenachricht des passenden Typs.
TaskTemplate template = taskTemplates[0];
// Erstellen einer Nachricht für die ausgewählte Task
ClientObjectWrapper input = task.createInputMessage( template.getID());
DataObject myMessage = null ;
if ( input.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)input.getObject();
// Festlegen der Teile in der Nachricht (z. B. ein Kundenname)
myMessage.setString("Kundenname", "Schmidt");
}
- Erstellen Sie die Task, und führen Sie sie synchron aus.
Für eine Task,
die synchron ausgeführt werden soll, ist eine bidirektionale Operation erforderlich. In dem Beispiel
wird eine createAndCallTask-Methode zum Erstellen und Ausführen der Task verwendet.
ClientObjectWrapper output = task.createAndCallTask( template.getName(),
template.getNamespace(),
input);
- Analysieren Sie das Ergebnis der Task.
DataObject myOutput = null;
if ( output.getObject() != null && output.getObject() instanceof DataObject )
{
myOutput = (DataObject)output.getObject();
int order = myOutput.getInt("Bestellnr");
}