public class InfoPlusResponse extends Object
流程平台事件处理响应结果的封装,也是所有事件处理方法的返回值。
常用方法举例: 假设e为入参InfoPlusEvent对象, form为处理后的表单数据对象
返回验证错误: | return new InfoPlusResponse(true, true, "金额不能大于1000元"); |
处理成功,不修改表单数据: | return new InfoPlusResponse(); |
处理成功,修改表单数据: | return new InfoPlusResponse(e, form); |
处理成功,修改表单数据,并设置其他变量: | return new InfoPlusResponse(e, form).addAttribute("tag1", "value1"); |
限定符和类型 | 字段和说明 |
---|---|
static Date |
EMPTY_DATE
表示空日期的特殊表单字段值常量。
|
构造器和说明 |
---|
InfoPlusResponse()
构造默认事件处理响应。
|
InfoPlusResponse(boolean _break,
boolean cancel,
String prompt)
构造不改变表单数据的事件处理响应。
|
InfoPlusResponse(boolean _break,
boolean cancel,
String prompt,
boolean retry)
构造不改变表单数据的事件处理响应。
|
InfoPlusResponse(InfoPlusEvent e,
Object instance)
构造修改表单数据的事件处理响应。
|
InfoPlusResponse(InfoPlusEvent e,
Object instance,
Map<String,Object> variables)
构造修改表单数据,修改非表单字段的表单变量的事件处理响应。
|
InfoPlusResponse(InfoPlusEvent e,
Object instance,
Map<String,Object> variables,
Set<String> updateFields)
构造修改部分表单字段、修改非表单字段数据的事件处理响应。
|
InfoPlusResponse(InfoPlusEvent e,
Object instance,
Map<String,Object> variables,
String... properties)
构造修改部分表单字段、修改非表单字段数据的事件处理响应。
|
InfoPlusResponse(InfoPlusEvent e,
Object instance,
Set<String> updateFields)
构造修改部分表单字段数据事件处理响应。
|
InfoPlusResponse(InfoPlusEvent e,
Object instance,
String... properties)
构造修改部分表单字段数据事件处理响应。
|
限定符和类型 | 方法和说明 |
---|---|
InfoPlusResponse |
add(InfoPlusResponse that)
合并两个响应结果
|
InfoPlusResponse |
addAttribute(String name,
String value)
在返回结果的表单数据中添加任意字段和值。
|
void |
formChangeObject(Object changedObject)
已过时。
|
List<CodeList> |
getCodes()
获取响应结果中的代码表数据。
|
String |
getDetail()
获取响应结果中的提示详细信息。
|
String |
getExportFileName()
获取响应结果中的导出文件名。
|
Map<String,Object> |
getFormData()
获取响应结果中的表单数据。
|
String |
getPrompt()
获取响应结果中的提示信息。
|
Timer |
getTimer()
获取响应结果中的超时处理设置。
|
boolean |
isBreak()
获取响应结果的break标志。
|
boolean |
isCancel()
获取响应结果的cancel标志。
|
void |
setBreak(boolean _break)
设置响应结果的break标志。
|
void |
setCancel(boolean cancel)
设置响应结果的cancel标志。
|
void |
setCodes(List<CodeList> codes)
设置响应结果中的代码表数据。
|
void |
setDetail(String detail)
设置响应结果中的提示详细信息。
|
void |
setExportFileName(String exportFileName)
设置响应结果中的导出文件名。
|
void |
setFormData(Map<String,Object> formData)
设置响应结果返回的表单数据。
|
void |
setPrompt(String prompt)
设置响应结果中的提示信息。
|
void |
setTimer(Timer timer)
设置响应结果中的超时处理设置。
|
void |
toForm(InfoPlusEvent e,
Object instance)
构造Map格式的表单数据。
|
void |
toForm(InfoPlusEvent e,
Object instance,
Set<String> updateFields)
构造Map格式的表单数据,且排除updateFields指定的字段名以外的所有字段。
|
void |
toForm(InfoPlusEvent e,
Object instance,
String... properties)
构造Map格式的表单数据,且排除properties指定的属性以外的所有属性。
|
public static final Date EMPTY_DATE
根据流程平台的处理规则,在返回的结果中将表单字段设置为null值表示不修改该字段。 如果需要清除日期类型的字段,可以将字段设置为此常量。
public InfoPlusResponse()
等同于InfoPlusResponse(false, false, null),表示处理成功,不修改表单数据。
public InfoPlusResponse(boolean _break, boolean cancel, String prompt)
_break
- 是否中断后续Messenger的调用。true:中断,false:继续执行。针对当前事件配置有多个Messenger时,此设置起作用。cancel
- 是否取消当前事件。true:取消,阻止当前事件代表的操作继续进行,false:正常执行。仅在当前事件的配置为阻塞调用时起作用。prompt
- 取消当前事件时的额外提示信息。提示信息支持显示网页链接,语法为[显示的文字](http://xxx.xx.com)public InfoPlusResponse(boolean _break, boolean cancel, String prompt, boolean retry)
_break
- 是否中断后续Messenger的调用。true:中断,false:继续执行。针对当前事件配置有多个Messenger时,此设置起作用。cancel
- 是否取消当前事件。true:取消,阻止当前事件代表的操作继续进行,false:正常执行。仅在当前事件的配置为阻塞调用时起作用。prompt
- 取消当前事件时的额外提示信息。提示信息支持显示网页链接,语法为[显示的文字](http://xxx.xx.com)retry
- 是否需要重试当前事件。true:需要重试,仅当cancel为true时有效,指示前端需要重新尝试当前事件(当前仅支持FIELD_CHANGING事件)。false:不需要重试。public InfoPlusResponse(InfoPlusEvent e, Object instance)
对表单数据修改的最终作用由事件类型确定,可能是做持久化,可能是返回前端,也可能是丢弃。
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 修改后的表单数据实例。参考 InfoPlusEvent.toBean(Class)
public InfoPlusResponse(InfoPlusEvent e, Object instance, Map<String,Object> variables)
对表单数据和其他表单变量的修改的最终作用由事件类型确定,可能是做持久化,可能是返回前端,也可能是丢弃。
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 修改后的表单数据实例。参考 InfoPlusEvent.toBean(Class)
variables
- 非表单字段的其他表单变量public InfoPlusResponse(InfoPlusEvent e, Object instance, String... properties)
对表单数据的修改的最终作用由事件类型确定,可能是做持久化,可能是返回前端,也可能是丢弃。
这样构造的响应结果的表单数据中,将只包含指定的字段,流程平台对未包含在响应结果里的字段值,默认策略为保持原值。 如果可以明确事件处理只修改了个别字段,这个方式构造的响应数据量会明显减少。
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 修改后的表单数据实例。参考 InfoPlusEvent.toBean(Class)
properties
- 要修改的表单字段。字段以属性名表示,不包括field前缀。public InfoPlusResponse(InfoPlusEvent e, Object instance, Map<String,Object> variables, String... properties)
对表单数据的修改的最终作用由事件类型确定,可能是做持久化,可能是返回前端,也可能是丢弃。
这样构造的响应结果的表单数据中,将只包含指定的字段,流程平台对未包含在响应结果里的字段值,默认策略为保持原值。 如果可以明确事件处理只修改了个别字段,这个方式构造的响应数据量会明显减少。
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 修改后的表单数据实例。参考 InfoPlusEvent.toBean(Class)
variables
- 非表单字段的其他表单变量properties
- 要修改的表单字段。字段以属性名表示,不包括field前缀。public InfoPlusResponse(InfoPlusEvent e, Object instance, Set<String> updateFields)
对表单数据的修改的最终作用由事件类型确定,可能是做持久化,可能是返回前端,也可能是丢弃。
这样构造的响应结果的表单数据中,将只包含指定的字段,流程平台对未包含在响应结果里的字段值,默认策略为保持原值。 如果可以明确事件处理只修改了个别字段,这个方式构造的响应数据量会明显减少。
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 修改后的表单数据实例。参考 InfoPlusEvent.toBean(Class)
updateFields
- 要修改的表单字段集合。字段原始命名表示,包括field前缀。public InfoPlusResponse(InfoPlusEvent e, Object instance, Map<String,Object> variables, Set<String> updateFields)
对表单数据的修改的最终作用由事件类型确定,可能是做持久化,可能是返回前端,也可能是丢弃。
这样构造的响应结果的表单数据中,将只包含指定的字段,流程平台对未包含在响应结果里的字段值,默认策略为保持原值。 如果可以明确事件处理只修改了个别字段,这个方式构造的响应数据量会明显减少。
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 修改后的表单数据实例。参考 InfoPlusEvent.toBean(Class)
variables
- 非表单字段的其他表单变量updateFields
- 要修改的表单字段集合。字段原始命名表示,包括field前缀。public boolean isCancel()
public void setCancel(boolean cancel)
流程平台根据响应结果中的cancel标志决定是否继续执行事件对应的操作,false表示正常执行,true表示取消执行。 比如,ACTION_DOING事件返回设置cancel为true,则提交失败; INSTANCE_KILLING事件返回设置cancel为true,则终止失败。
cancel
- true - 表示处理失败,应阻止事件完成
false - 表示处理成功public boolean isBreak()
public void setBreak(boolean _break)
流程平台和SDK根据响应结果中的break标志决定是否继续调用事件的其他处理方法,false表示继续调用,true表示中断调用。
由于极少用到多个Messenger处理一个事件,因此此标识很少被用到,一般和cancel保持一致。
_break
- true - 表示继续调用其他Messenger(如有的话)
false - 表示不再调用其他Messenger(如有的话)public String getPrompt()
public void setPrompt(String prompt)
提示信息一般和cancel标志(setCancel(boolean)
同步使用,cancel为true时,设置显示给用户的对应提示信息,说明取消执行的原因。
提示信息支持显示网页链接,语法为[显示的文字](http://xxx.xx.com)
prompt
- 提示信息public String getDetail()
public void setDetail(String detail)
提示详细信息作用同提示信息(参考setPrompt(String)
),但作为"详细信息"显示,不支持显示网页链接。
detail
- 提示详细信息public void setFormData(Map<String,Object> formData)
一般不需要直接使用此方法来提供返回的表单数据,InfoPlusResponse提供了多个构造函数来将Bean格式表单数据转换为Map格式,并设置在响应结果中。
formData
- Map格式的表单数据InfoPlusResponse(InfoPlusEvent, Object)
public void setCodes(List<CodeList> codes)
AbstractMessenger.onFieldSuggesting(InfoPlusEvent)
的默认实现调用此方法设置响应结果中的代码表。
如果开发者重载了AbstractMessenger.onFieldSuggesting(InfoPlusEvent)
方法,则需要自行调用此方法为响应结果提供代码表数据的返回值。
STEP_RENDERING和FIELD_CHANGING事件的响应也可以提供代码表数据,与FIELD_SUGGESTION事件不同,这两个事件提供的代码表数据应该提供代码表的全部数据, 和内部代码表做类似于处理,可用于SELECT控件的数据源。
codes
- 代码表结构清单CodeList
public void setTimer(Timer timer)
仅STEP_EXPIRING和INSTANCE_EXPIRING事件的返回结果需要设置此项信息。
超时处理设置可以描述4类超时的后续处理: 忽略/延时/终止/执行,具体可参考 Timer
对象说明。
如果STEP_EXPIRING或INSTANCE_EXPIRING事件没有返回此项信息,超时的后续处理按照流程编辑器中的配置进行,否则以事件返回的超时处理设置优先。
timer
- 超时处理设置Timer
public String getExportFileName()
public void setExportFileName(String exportFileName)
仅STEP_EXPORTING和INSTANCE_EXPORTING事件的返回结果需要设置此项信息。 如果为设置,则导出文件以导出模版的文件名称命名;如果导出模版文件名也不存在,则以步骤号命名。
exportFileName
- 导出文件名,不含扩展名public InfoPlusResponse add(InfoPlusResponse that)
that
- 要合并的另一个响应结果public void toForm(InfoPlusEvent e, Object instance)
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 表单数据实例。参考 InfoPlusEvent.toBean(Class)
public void toForm(InfoPlusEvent e, Object instance, String... properties)
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 表单数据实例。参考 InfoPlusEvent.toBean(Class)
properties
- 结果Map格式表单数据中要包含的属性名。属性名不包括field前缀。public void toForm(InfoPlusEvent e, Object instance, Set<String> updateFields)
e
- 事件处理的入参。参考 InfoPlusEvent
instance
- 表单数据实例。参考 InfoPlusEvent.toBean(Class)
updateFields
- 结果Map格式表单数据中要包含的字段集合。字段原始命名表示,包括field前缀。@Deprecated public void formChangeObject(Object changedObject)
public InfoPlusResponse addAttribute(String name, String value)
一般使用此方法添加非表单字段。
如果添加的字段已存在,则新添加的值覆盖原值。
name
- 添加的字段名value
- 添加的字段值InfoPlusResponse
本身Copyright © 2024. All rights reserved.