Activiti 从属性渲染器访问过程变量
我正在尝试编写一个渲染器,它根据上一个任务中设置的字符串数组输出一个选择列表。在上一个任务的execute方法中,我有: 列表名称=新的ArrayList; name.addBob; name.addFred; delegate.setVariablenames,名称; 然后,我尝试扩展EnumFormPropertyRenderer,并覆盖getPropertyField: @凌驾 公共字段getPropertyFieldFormProperty formProperty{ ComboBox ComboBox=新ComboBoxgetPropertyLabelformProperty; //从EnumFormPropertyRenderer中的getPropertyField复制的位 如果值!=null{ ... 我的问题是在getPropertyField中找不到访问数组名称的方法-我看不到formProperty的一部分,在ProcessEngines.getDefaultProcessEngine.getRuntimeService中也看不到它,因为我似乎无法访问任何调用获取变量所需的执行IDActiviti 从属性渲染器访问过程变量,activiti,Activiti,我正在尝试编写一个渲染器,它根据上一个任务中设置的字符串数组输出一个选择列表。在上一个任务的execute方法中,我有: 列表名称=新的ArrayList; name.addBob; name.addFred; delegate.setVariablenames,名称; 然后,我尝试扩展EnumFormPropertyRenderer,并覆盖getPropertyField: @凌驾 公共字段getPropertyFieldFormProperty formProperty{ ComboBox
因此-在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