Starten eines Dauerprozesses, der einen nicht eindeutigen Startservice enthält

Anlass und Zeitpunkt für die Ausführung dieser Task

Ein Dauerprozess kann durch mehrere einleitende Empfangs- oder Auswahlaktivitäten gestartet werden. Zum Starten des Prozesses können Sie die Einleitungsmethode verwenden. Wenn der Startservice nicht eindeutig ist, (z. B. wenn der Prozess mit mehreren Empfangs- oder Auswahlaktivitäten startet oder bei einer Auswahlaktivität mit mehreren onMessage-Definitionen) müssen Sie den aufzurufenden Service identifizieren.

Erforderliche Schritte für diese Task

  1. Optional: Listen Sie die Prozessschablonen auf, um den Namen des Prozesses zu finden, den Sie starten 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_LONG_RUNNING",
       "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 Dauerprozesse gestartet werden können.
  2. Bestimmen Sie den aufzurufenden Startservice.
    ProcessTemplateData template = processTemplates[0];
    ActivityServiceTemplateData[] startActivities = 
            process.getStartActivities(template.getID());
  3. 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. Wenn Sie einen Prozessinstanznamen angeben, darf dieser nicht mit einem Unterstreichungszeichen beginnen. Wird kein Prozessinstanzname angegeben, wird die Prozessinstanz-ID (PIID) im Zeichenfolgeformat als Name verwendet.

    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");
    }
    // Starten des Prozesses
    PIID piid = process.initiate(activity.getServiceTemplateID(),
                                 activity.getActivityTemplateID(),
                                 null,
                                 					input); 

    Diese Aktion erstellt eine Instanz und übergibt einige Kundendaten. Beim Starten des Prozesses gibt die Operation die Objekt-ID der neuen Prozessinstanz an den Aufrufenden zurück.

    Als Starter der Prozessinstanz wird der Aufrufende der Anforderung festgelegt. Er erhält ein Arbeitselement für die Prozessinstanz. Die Prozessadministratoren, Leser und Editoren der Prozessinstanz werden ermittelt und erhalten Arbeitselemente für die Prozessinstanz. Die Folgeaktivitätsinstanzen werden ermittelt. Diese werden automatisch gestartet oder, wenn sie Staff-, Empfangs- oder Auswahlaktivitäten sind, werden Arbeitselemente für die potenziellen Eigner erstellt.

Zugehörige Konzepte
Abfragen für Business-Prozessobjekte und taskbezogene Objekte

Rechtliche Hinweise |

Letzte Aktualisierung: LASTUPDATEDVAR

(c) Copyright IBM Corporation 2005.
Dieses Information Center basiert auf Eclipse-Technologie. (http://www.eclipse.org)