使用WSO2 BPS3.6.0-有没有一种(标准)方法来更新已经运行的实例中的实例变量?
背后的原因是-客户端在流程初始化时传递了不正确的数据,客户端可能会修复其数据,但流程实例会记住错误的值。
我相信我仍然可以更新数据库中的数据,但我不希望看到进程管理员扰乱数据库
编辑:我正在使用BPEL引擎,我的想法是更新一个变量,而不是来自流程设计的变量,而是一种纠正操作(管理控制台?api?)
谢谢你所有的想法。
发布于 2016-11-22 02:29:52
您正在根据客户端的请求在进程初始化过程中设置实例变量。
对于您的需求,其中需要为请求检索变量。为此,您可以使用执行实体读取数据,而不是使用在进程初始化期间设置的实例变量。
请参考下面的示例:
public class SampleTask implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
String userId = execution.getVariable("userId");
//perform your logic here
}
}如果您想继续使用实例变量,我建议您在流程执行期间更改实例变量。
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;
}
}https://stackoverflow.com/questions/40702417
复制相似问题