2016-11-20 1 views
1

Verwenden von WSO2 BPS 3.6.0 - Gibt es eine (Standard) Möglichkeit, eine Instanzvariable in einer bereits laufenden Instanz zu aktualisieren?Aktualisieren einer Instanzvariable in BPS

Der Grund dafür ist - der Client übergibt bei der Prozessinitialisierung falsche Daten, der Client kann seine Daten korrigieren, aber die Prozessinstanz merkt sich die falschen Werte.

Ich glaube, ich kann immer noch ein Datum in der Datenbank aktualisieren, aber ich möchte nicht verarbeiten admins Messing mit der Datenbank

bearbeiten sehen: Ich arbeite mit dem BPEL-Engine und meine Idee ist, zu aktualisieren eine Variable nicht von einem Prozessdesign, sondern als eine Korrekturmaßnahme (Admin-Konsole? API?)

Vielen Dank für alle Ideen.

Antwort

0

Sie legen die Instanzvariablen während der Prozessinitialisierung basierend auf der Clientanforderung fest.

Für Ihre Anforderung, wo die Variablen für die Anfrage abgerufen werden müssen. Sie können dazu die Ausführungsentität verwenden, um die Daten anstelle der Instanzvariablen zu lesen, die während der Prozessinitialisierung festgelegt wurden.

Siehe Beispiel unten:

public class SampleTask implements JavaDelegate { 

    public void execute(DelegateExecution execution) throws Exception { 
      String userId = execution.getVariable("userId"); 
     //perform your logic here 
    } 
} 

Wenn Sie mit den Instanzvariablen halten wollen, empfehle ich Ihnen die Instanz-Variable Ausführung während des Prozesses zu ändern.

public class SampleTask implements JavaDelegate { 

    private String userId; 

    public void execute(DelegateExecution execution) throws Exception { 
      String newUserId = execution.getVariable("userId"); 
      setUserId(newUserId); 
     //perform your logic here 
    } 

    public void setUserId(String userId) { 
      this.userId = userId; 
    } 

    public String getUserId() { 
      return userId; 
    } 
} 
+0

Danke für die Antwort. Allerdings - ich benutze die BPEL-Engine (nicht die Activiti) und meine Frage ist eine Korrekturmaßnahme, wenn der Prozess läuft und wir finden, dass die eingegebenen Daten nicht korrekt sind. Unser bester Rat (um die Datenaktualisierungen zu unterstützen) besteht darin, die Produktionsdaten beiseite zu legen und vor jeder Operation neu zu laden, jedoch wurde dies nicht auf diese Weise implementiert – gusto2

Verwandte Themen