iBizModel 实体界面行为(PSDEUIACTION)及实体界面行为组(PSDEUAGROUP)模型详解
实体界面行为及实体界面行为组模型详解
引言
在iBizModel模型体系中,实体界面行为(PSDEUIACTION)和实体界面行为组(PSDEUAGROUP)是构建丰富用户交互体验的核心组件。这些模型定义了用户在界面上执行的各种操作行为及其组织方式,从简单的按钮点击到复杂的业务流程触发,为系统提供了灵活且可配置的交互能力。本文将深入探讨这两个模型的结构、属性、应用场景,并通过实际DSL示例和图例进行详细说明。
实体界面行为模型(PSDEUIACTION)
模型定义与核心属性
实体界面行为模型是iBizModel中定义界面操作行为的基础单元,它封装了行为的执行逻辑、目标数据、显示样式等关键信息。该模型包含40多个属性,涵盖了行为定义的各个方面。
关键属性分类说明:
-
行为基本属性:
name
(必填):界面行为名称,用于标识行为codename
:代码标识,在模型域内唯一caption
(必填):行为标题,显示给用户的文本uiactiontype
(必填):行为类型,包括系统预定义、前台调用、后台调用和自定义代码
-
行为执行属性:
actiontarget
:操作目标,定义行为作用的数据范围(单项数据、多项数据等)actionlevel
:行为级别,区分操作的常用程度(不常用、一般操作、常用操作、关键操作)userconfirm
:是否需要用户确认执行confirminfo
:确认提示信息
-
界面显示属性:
buttonstyle
:按钮样式,支持多种预定义样式pssysimageid
:显示图标引用tooltipinfo
:悬停提示信息showmode
:显示模式(图标+短词、仅图标、仅短词)
-
逻辑控制属性:
enablelogic
:启用逻辑,控制行为是否可用visiblelogic
:可见逻辑,控制行为是否显示
行为类型详解
后台调用
后台调用类型的行为直接调用实体行为(PSDEACTION)完成业务处理,适用于需要服务器端复杂逻辑的场景。
//后台调用示例:更新操作
psdeuiaction (name: "更新数据",codename: "UPDATE",caption: "更新",uiactiontype: "BACKEND",psdeid: "Module.USER",actiontarget: "SINGLEDATA",psdeactionid: "Module.USER.UPDATE",userconfirm: 1,confirminfo: "确定要更新用户信息吗?",buttonstyle: "PRIMARY",actionlevel: 200
)
前台调用
前台调用类型的行为通过打开各种视图界面完成交互,支持多种处理模式。
//打开编辑视图
psdeuiaction (name: "编辑用户",codename: "EDIT",caption: "编辑",uiactiontype: "FRONT",frontprotype: "WIZARD",psdeviewbaseid: "Module.USER.edit_view",actiontarget: "SINGLEKEY",buttonstyle: "INFO"
)//打开打印界面
psdeuiaction (name: "打印报表",codename: "PRINT",caption: "打印",uiactiontype: "FRONT",frontprotype: "PRINT",psdeprintid: "Module.USER.user_report",actiontarget: "MULTIKEY"
)//打开AI聊天界面
psdeuiaction (name: "智能助手",codename: "CHAT",caption: "AI助手",uiactiontype: "FRONT",frontprotype: "CHAT",psdeacmodeid: "Module.USER.chat_mode"
)
实体界面行为组模型(PSDEUAGROUP)
模型定义与组织结构
实体界面行为组模型用于将相关的界面行为组织在一起,形成逻辑上的行为集合。通过行为组,可以实现行为的分类、分组显示和统一管理。
核心属性说明:
name
(必填):行为组名称codename
:代码标识,在模型域内唯一uagtag
系列属性:行为组标记,用于扩展分类userrefflag
:用户引用标志
行为组成员管理
行为组通过PSDEUAGROUPDETAIL模型管理成员行为,支持两种成员类型:
DEUIACTION
:实体界面行为DEUIACTIONGROUP
:引用其他行为组(支持嵌套)
核心引用关系分类
根据模型功能和使用场景,PSDEUAGROUP的外部引用可以分为以下几大类:
界面部件引用类模型
这些模型直接在前端界面中引用PSDEUAGROUP来提供用户交互功能:
- PSDEDATAVIEW(实体卡片视图部件):通过
grouppsdeuagroupid
、no2psdeuagroupid
、psdeuagroupid
属性为分组数据提供功能操作入口 - PSDEGRID(实体表格):
grouppsdeuagroupid
为分组数据提供操作入口 - PSDEGRIDCOL(表格列):
psdeuagroupid
绑定操作列的行为组 - PSDELIST(实体列表):支持左右滑动操作的行为组绑定
- PSDETOOLBAR(实体工具栏):支持多个占位符的行为组绑定
- PSDETREE相关模型:为树形结构提供节点级别的操作支持
系统组件引用类模型
这些模型在系统级功能中引用PSDEUAGROUP:
- PSSYSPORTLET(系统门户部件):为门户部件提供操作能力
- PSSYSBICUBE(智能立方体):
portletpsdeuagroupid
支持BI分析操作 - PSWFPROCESS(流程处理节点):为工作流节点附加界面行为
自引用和嵌套模型
- PSDEUAGROUPDETAIL:通过
refpsdeuagroupid
实现行为组的嵌套引用 - PSDEACMODE:为自填模式提供附加操作集合
DSL定义示例
//基本行为组定义
psdeuagroup (name: "常用操作",codename: "COMMON_ACTIONS",psdeid: "Module.PRODUCT"
){//添加界面行为成员psdeuagroupdetail(detailtype: "DEUIACTION",psdeuiactionid: "Module.PRODUCT.product_edit",buttonstyle: "PRIMARY")psdeuagroupdetail(detailtype: "DEUIACTION",psdeuiactionid: "Module.PRODUCT.product_delete",buttonstyle: "DANGER",addseparator: 1)//引用其他行为组psdeuagroupdetail(detailtype: "DEUIACTIONGROUP",refpsdeuagroupid: "Module.PRODUCT.advanced_actions")
}//高级操作组
psdeuagroup (name: "高级操作",psdeid: "Module.PRODUCT",codename: "advanced_actions"
){psdeuagroupdetail(detailtype: "DEUIACTION",psdeuiactionid: "Module.PRODUCT.export")psdeuagroupdetail(detailtype: "DEUIACTION",psdeuiactionid: "Module.PRODUCT.import")
}
界面行为组成员模型(PSDEUAGROUPDETAIL)
成员配置灵活性
PSDEUAGROUPDETAIL模型提供了丰富的配置选项,允许对每个行为组成员进行精细化控制,甚至可以覆盖原始界面行为的某些设置。
关键特性:
-
显示控制:
ordervalue
:显示次序控制showmode
:显示模式(图标+短词、仅图标、仅短词)buttonstyle
:覆盖原始按钮样式
-
逻辑控制:
enablelogic
:成员级别的启用逻辑visiblelogic
:成员级别的可见逻辑uiactionparams
:附加参数传递
-
内容附加:
beforecontent
/aftercontent
:前后置内容addseparator
:添加分隔符- 支持样式和资源引用
高级特性与最佳实践
行为级别管理
通过actionlevel
属性实现行为的优先级管理:
- 关键操作(250):如支付、提交审批等核心业务操作
- 常用操作(200):日常使用频率高的操作
- 一般操作(100):常规功能操作
- 不常用操作(50):辅助性或高级功能
逻辑附加与扩展
利用vlexecmode
和viewlogictype
实现复杂的交互逻辑:
//执行后触发界面逻辑
psdeuiaction (name: "数据保存",codename: "SAVE",uiactiontype: "BACKEND",actiontarget: "SINGLEDATA",psdeactionid: "Module.USER.UPDATE",vlexecmode: "AFTER",viewlogictype: "DEUILOGIC",psdeviewlogicid: "Module.USER.save_success_logic",successinfo: "数据保存成功"
)//替换系统预置逻辑
psdeuiaction (name: "自定义删除",codename: "CUSTOM_DELETE",uiactiontype: "CUSTOM",vlexecmode: "REPLACE",viewlogictype: "SYSVIEWLOGIC",pssysviewlogicid: "global_delete_logic"
)
移动端适配
通过mobpsdeviewid
属性支持移动端特定视图:
psdeuiaction (name: "移动端查看",codename: "MOBILE_VIEW",frontprotype: "WIZARD",psdeviewbaseid: "Module.Entity.Product.desktop_view",mobpsdeviewid: "Module.Entity.Product.mobile_view",actiontarget: "SINGLEKEY"
)
总结
实体界面行为及行为组模型为iBizModel提供了强大的界面交互能力支撑。通过PSDEUIACTION定义具体操作行为,PSDEUAGROUP组织相关行为,PSDEUAGROUPDETAIL实现精细化控制,三者协同工作,可以构建出灵活、可配置、易维护的界面交互体系。
在实际应用中,这些模型支持:
- 业务场景适配:根据不同业务状态动态调整可用操作
- 权限控制:基于用户角色显示相应的功能集合
- 用户体验优化:通过行为级别和显示控制提升操作效率
- 移动端兼容:支持多端差异化体验
- 扩展性:通过自定义代码和逻辑附加满足特殊需求