最近在梳理 SAP Fiori draft 应用里的 message 处理时,最容易被低估的地方,往往不是消息文案怎么写,而是 message object 上那些看起来很技术化的属性。很多项目里,后端校验已经写了,前端也能弹出错误,可是真正到业务人员录入采购订单、销售订单、费用申请、物料主数据时,体验却总差一点。字段没有红框,刷新后错误消失,保存按钮被拦住但 message popover 里找不到具体原因,或者一个只该出现一次的提示反复冒出来。问题往往不在 SAP UI5 控件,也不一定在 Fiori Elements 模板,而是在 BOPF 或 RAP 风格的后端 message 建模里,没有把 message 的身份、严重程度、生命周期、业务位置和附加上下文说清楚。SAP 官方文档对 BOPF message attribute 的定义很直接,TEXTID用来定位消息文本,SEVERITY用来表达 error、warning、information 等严重程度,LIFETIME影响消息有效期,MS_ORIGIN_LOCATION则把消息绑定到业务对象的节点实例和字段上。SAP Fiori Design Guideline 也强调,错误必须容易被看见、可识别,并且应当帮助使用者识别、诊断和修复问题。(
SAP Fiori 消息属性设计,别把一条 message 只当成一段提示文字
最近在梳理 SAP Fiori draft 应用里的 message 处理时,最容易被低估的地方,往往不是消息文案怎么写,而是 message object 上那些看起来很技术化的属性。很多项目里,后端校验已经写了,前端也能弹出错误,可是真正到业务人员录入采购订单、销售订单、费用申请、物料主数据时,体验却总差一点。字段没有红框,刷新后错误消失,保存按钮被拦住但 message popover 里找不到具体原因,或者一个只该出现一次的提示反复冒出来。问题往往不在 SAP UI5 控件,也不一定在 Fiori Elements 模板,而是在 BOPF 或 RAP 风格的后端 message 建模里,没有把 message 的身份、严重程度、生命周期、业务位置和附加上下文说清楚。SAP 官方文档对 BOPF message attribute 的定义很直接,TEXTID用来定位消息文本,SEVERITY用来表达 error、warning、information 等严重程度,LIFETIME影响消息有效期,MS_ORIGIN_LOCATION则把消息绑定到业务对象的节点实例和字段上。SAP Fiori Design Guideline 也强调,错误必须容易被看见、可识别,并且应当帮助使用者识别、诊断和修复问题。(