Ein Mikroprozess kann durch eine Empfangs- oder Auswahlaktivität gestartet
werden. Der Startservice ist nicht eindeutig, wenn der Mikroprozess mit einer
Auswahlaktivität beginnt, die über mehrere
onMessage-Definitionen verfügt.
Anlass und Zeitpunkt für die Ausführung dieser Task
Wenn der Mikroprozess eine Operation für Antwortanforderung implementiert,
d. h., der Prozess enthält eine Antwort, können Sie den Prozess mit der Aufrufmethode
ausführen, wobei die ID des Startservice im Aufruf übergeben wird.
Wenn es sich
bei dem Mikroprozess um eine unidirektionale Operation handelt,
verwenden Sie die Methode sendMessage zum Ausführen des Prozesses.
Diese Methode wird in diesem Beispiel nicht dargelegt.
Erforderliche Schritte für diese Task
- Optional: Listen Sie die Prozessschablonen auf, um den
Namen des Prozesses zu finden, den Sie ausführen möchten.
Dieser Schritt
ist optional, wenn Sie den Namen des Prozesses bereits kennen.
ProcessTemplateData[] processTemplates = process.queryProcessTemplates
("PROCESS_TEMPLATE.EXECUTION_MODE =
PROCESS_TEMPLATE.EXECUTION_MODE.EXCECUTION_MODE_MICROFLOW",
"PROCESS_TEMPLATE.NAME",
new Integer(50),
null);
Die Ergebnisse sind nach dem Namen sortiert.
Die Abfrage gibt eine Matrix mit den ersten 50 sortierten Schablonen zurück, die
als Mikroprozesse gestartet werden können.
- Bestimmen Sie den aufzurufenden Startservice.
In diesem Beispiel wird die erste
gefundene Schablone verwendet.
ProcessTemplateData template = processTemplates[0];
ActivityServiceTemplateData[] startActivities =
process.getStartActivities(template.getID());
- Starten Sie den Prozess mit einer Eingabenachricht des passenden Typs.
Beim Erstellen der Nachricht müssen Sie den Nachrichtentypnamen so angeben,
dass er die Nachrichtendefinition enthält.
ActivityServiceTemplateData activity = startActivities[0];
// Erstellen einer Nachricht für den aufzurufenden Service
ClientObjectWrapper input =
process.createMessage(activity.getServiceTemplateID(),
activity.getActivityTemplateID(),
activity.getInputMessageTypeName());
DataObject myMessage = null;
if ( input.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)input.getObject();
// Festlegen der Zeichenfolgen in der Nachricht (z. B. ein Kundenname)
myMessage.setString("Kundenname", "Schmidt");
}
// Ausführen des Prozesses
ClientObjectWrapper output = process.call(activity.getServiceTemplateID(),
activity.getActivityTemplateID(),
input);
// Prüfen der Prozessausgabe (z. B. eine Bestellnummer)
DataObject myOutput = null;
if ( output.getObject() != null && output.getObject() instanceof DataObject )
{
myOutput = (DataObject)output.getObject();
int order = myOutput.getInt("Bestellnr");
}
Diese Aktion erstellt eine Instanz der
Prozessschablone 'Kundenschablone' und übergibt die Kundendaten. Die Operation
gibt das Ergebnis erst zurück, wenn der Prozess abgeschlossen ist.
Das Ergebnis des Prozesses (Bestellnr) wird an den Aufrufenden
zurückgegeben.