Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Activiti 从属性渲染器访问过程变量_Activiti - Fatal编程技术网

Activiti 从属性渲染器访问过程变量

Activiti 从属性渲染器访问过程变量,activiti,Activiti,我正在尝试编写一个渲染器,它根据上一个任务中设置的字符串数组输出一个选择列表。在上一个任务的execute方法中,我有: 列表名称=新的ArrayList; name.addBob; name.addFred; delegate.setVariablenames,名称; 然后,我尝试扩展EnumFormPropertyRenderer,并覆盖getPropertyField: @凌驾 公共字段getPropertyFieldFormProperty formProperty{ ComboBox

我正在尝试编写一个渲染器,它根据上一个任务中设置的字符串数组输出一个选择列表。在上一个任务的execute方法中,我有:

列表名称=新的ArrayList; name.addBob; name.addFred; delegate.setVariablenames,名称; 然后,我尝试扩展EnumFormPropertyRenderer,并覆盖getPropertyField:

@凌驾 公共字段getPropertyFieldFormProperty formProperty{ ComboBox ComboBox=新ComboBoxgetPropertyLabelformProperty; //从EnumFormPropertyRenderer中的getPropertyField复制的位 如果值!=null{ ... 我的问题是在getPropertyField中找不到访问数组名称的方法-我看不到formProperty的一部分,在ProcessEngines.getDefaultProcessEngine.getRuntimeService中也看不到它,因为我似乎无法访问任何调用获取变量所需的执行ID


因此-在getPropertyField中,如何获取数组名称?或者我只是从错误的角度处理问题?

我不确定这是否是理想的解决方案,但对我有效的方法是使用实例ID。在流程开始时,我添加了一个包含以下内容的服务任务:

@凌驾 public void executeElegateExecution委托引发异常{ delegate.setVariableinstanceId,delegate.getProcessInstanceId; } 在此过程中,我的任务像以前一样设置数组,针对当前委托设置变量:

列表名称=新的ArrayList; name.addBob; name.addFred; delegate.setVariablenames,名称; 然后,当我需要在下拉列表中显示它们时,我将其绑定到变量instanceId:

这意味着在属性渲染器中,我可以使用以下内容检索实例ID:

String currentInstanceId=String formProperty.getValue; 最后使用以下命令检索我的数组:

ProcessEngine ProcessEngine=ProcessEngines.getDefaultProcessEngine; RuntimeService RuntimeService=processEngine.getRuntimeService; 列表名称=列表runtimeService.getVariable currentInstanceId,名称; 用于重新填充到下拉列表中

唯一的潜在问题是它重新填充到变量instanceId中,在我的例子中这不是问题,但可能在其他地方;如果再次需要相同的下拉列表,则需要对第一个服务任务进行另一次调用以重置instanceId