2023|飞书低代码平台页面+流程功能升级说明|飞书低代码平台

2023|飞书低代码平台页面+流程功能升级说明|飞书低代码平台

飞书低代码平台手册精选NaN-NaN-NaN
产品功能
升级前必读
  1. Q:如何判断当前应用是否为最新版本?
以「页面」为例,应用编辑器页面为下图效果,即为 2.0 版本,无需更新升级。
250px|700px|reset
image.png
  1. Q:本次升级过程有哪些注意点?
升级【前】
升级【中】
升级【后】
  1. 针对单个应用的升级操作,不影响其他应用
  1. 升级后,应用在开发环境中的搭建会有变化。若应用未发布,不影响线上运行;应用发布后,原页面链接失效,请使用新链接
  1. 确认升级,即可开始执行升级操作。
  1. 升级后,不可回滚至原版本
  1. 全程大约 5-8 分钟
  1. 会持续检测当前应用是否存在不兼容问题,需按照引导修改,直至不兼容问题清零
  1. 升级过程属于强阻塞性,不可进行其他操作,其余开发者进入会看到升级弹窗,均不可进行操作
  1. 可以在任意步骤点击取消升级,确认取消后返回旧版
  1. 取消升级后还可继续在顶部点击重新进入升级流程
  1. 无任何修改点,即完成升级
  1. 部分修改点需在升级完成后操作,如果暂不修改,可能影响正常使用
  1. 升级成功,检测到权限需要升级,点击「升级权限」进入权限的升级
  1. 升级失败,记录失败码,联系技术支持解决
「页面」模块
(一)新版能力要点
  1. 布局和样式能力提升
  • 支持栅格化布局,组件可水平方向排布,能够实现自适应宽度、固定宽度、填充宽度等效果
250px|700px|reset
  • 定位能力:包括绝对定位、固定、粘滞等定位能力
250px|700px|reset
  • 所有组件均支持通用的样式配置,支持配置文字、背景、边框、阴影的样式
250px|700px|reset
  1. 页面及组件,关联能力增强
组件值暴露,支持动态绑定数据
组件支持暴露值,并可以在其他组件内消费
250px|700px|reset
支持页面间传参
支持灵活定义页面入参,页面间跳转可以灵活传递信息
250px|700px|reset
  1. 事件动作功能增强
支持「调用组件方法」
弹窗类组件、表格组件支持暴露组件方法,触发事件时可调用,以操作其他组件
250px|700px|reset
事件动作支持串并行编排
一个事件触发后执行多个动作,支持串行、并行
250px|700px|reset
新版「执行 JS 动作」上线
开发体验提升
  • 编辑态支持“所见即所得”,例如调用数据查询(外部数据源)、执行流程、调用云函数、操作内置对象等
  • 组件暴露 API 的支持语法提示
Pro Code 能力提升
  • 支持消费流程、云函数返回值,支持 Javascript 基础类型 Array、Object
  • 支持气泡弹窗提示
250px|700px|reset
  1. 支持搭建移动端 H5
2.0 中,页面编辑器可搭建移动端 H5,且可用组件和 PC 端保持一致;搭建时,组件均支持选择在哪一端展示,以实现 PC、移动双端不同的搭建诉求。
  • 搭建的 H5 页面支持在飞书内访问,也可以在手机浏览器访问
  • 移动端 H5 和 PC 端具有相同的 URL,因此可以实现一个 URL 在 PC、移动端均可访问
250px|700px|reset
250px|700px|reset
  1. 新增「数据请求」
当想要基于飞书低代码平台页面访问、调用内外部的数据服务时,如:公司内部的数据库、现有系统的 API、飞书开放平台 API 等,可通过「数据请求」相关能力,将飞书低代码平台与外部数据服务创建数据连接
250px|700px|reset
image.png
  1. 新版公式上线
当需要动态控制按钮显隐、字段必填时,可以使用新版公式来消费页面中的数据、函数来实现丰富的逻辑表达式,同时新版公式在体验层面也有所升级,支持原位编写。新版公式不再支持分开配置开发环境和线上环境。
250px|700px|reset
  1. 新版自定义组件开发规范
更丰富的 API、Setter;更完整的组件 Meta 协议,用于描述属性、事件、插槽、样式、暴露的状态;更解耦的组件间通信方式。
详情参见:自定义组件
  1. 无代码搭建自定义组件
支持无代码搭建自定义组件(和低代码自定义组件不同),且支持定义组件属性,并在该应用的所有页面中可用。
(二)能力前后对比
桌面端
💁
仅 2.0 桌面端支持的能力
  • 栅格化布局能力、绝对定位能力
  • 组件样式配置能力
  • 事件动作串并行、各处动作统一
  • 组件值暴露和消费
  • 组件:
  • 导航:顶导航、侧导航
  • 通用:文本、标签、图标、按钮
  • 数据展示:表格容器、列表容器
  • 数据图表:条形图、进度图、瀑布图
能力
2.0 桌面端页面
旧版桌面端页面
页面管理
[+] 新版页面不区分桌面端、移动端,统一管理:
250px|700px|reset
[+] 进入页面编辑器后可切换查看双端自适应效果:
250px|700px|reset
[+] 桌面端页面单独管理:
250px|700px|reset
[+] 页面编辑器内仅能查看单端:
250px|700px|reset
页面能力
[+] 弹窗/侧拉窗/气泡卡片不再是页面形态,而是组件
250px|700px|reset
  • 可通过弹窗组件+内联页组件,实现原弹窗/侧拉窗/摘要浮层形态的页面效果
[+] 可创建弹窗/侧拉窗/气泡卡片形态的页面
250px|700px|reset
[+] 去除了「页面类型」概念
  • 可通过给页面配置可传入的变量参数,实现旧版详情页的效果
250px|700px|reset
[+] 创建页面时支持选择「标准页」、「详情页」两种类型
250px|700px|reset
[+] 页面支持配置 URL 参数(通过传入页面变量)
250px|700px|reset
[-] 不支持设置 URL 参数
[-] 页面变量暂不支持「多语文本」类型
[+] 页面变量支持多语文本
[+] 栅格化布局能力
  • 将页面布局设置为「垂直」即可完全兼容 1.0 的布局
250px|700px|reset
  • 可实现更丰富的布局能力
250px|700px|reset
[-] 从上至下的流式布局能力
250px|700px|reset
[+] 绝对定位能力
  • 通过绝对定位可实现元素固定在页面特定位置、组件堆叠等效果:
250px|700px|reset
250px|700px|reset
[-] 不支持绝对定位
[+] 弹窗/侧拉窗有 URL
[+] 弹窗/侧拉窗有 URL
组件
[+] 支持 Builder 2.0 组件:40 个
  • 导航类:顶导航侧导航、标签页
  • 布局类:区块、分栏
  • 通用类:富文本(旧版「文本」改名)、标题栏、筛选、图片、按钮组、宫格项、下拉选择文本按钮图标标签
  • 数据展示:数据表格、列表、列表详情、记录标题栏、记录详情、操作日志、数据看板、任务详情、表格容器列表容器
  • 弹层类弹窗侧拉窗气泡卡片
  • 图表:旧版报表、矩阵表、指标卡、柱状图、折线图、组合图、环图、散点图、雷达图、词云、条形图进度图瀑布图
  • 数据输入:表单容器、文本输入、数字输入、下拉选择、单选框、复选框、日期、日期时间、电话、邮件、开关、多语文本、头像、富文本、文件、行政区划
  • 高级:HTML、iFrame内联页
[-] 支持 1.0 组件,共 29 个
  • 导航类:标签页
  • 布局类:区块、分栏
  • 通用类:文本、标题栏、筛选、图片、按钮组、宫格项、下拉选择
  • 数据展示:数据表格、列表、列表详情、记录标题栏、记录详情、操作日志、数据看板、任务详情
  • 图表:旧版报表、矩阵表、指标卡、柱状图、折线图、组合图、环图、散点图、雷达图、词云
  • 高级:HTML
[-] 不会支持「分栏」组件
  • 新版布局能力支持水平布局,因此可以直接横向放置组件,无需分栏组件
[+] 支持「分栏」组件
[-] 不会支持「数据看板」组件
  • 部分仍在使用该组件的老应用,迁移后会导致该组件无法使用,需手动修改
[+] 部分老应用在使用「数据看板」组件
250px|700px|reset
  • 22 年初已经下线了该功能,页面中该组件目前不可用
[-] 不支持「旧版报表」组件
  • Builder 2.0 没有「报表」模块,如需使用数据报表,可以在页面中直接搭建:
250px|700px|reset
[+] 1.0 支持「旧版报表」组件
  • 支持在「报表」模块创建报表
250px|700px|reset
  • 支持在页面中引入在「报表」模块创建的报表:
250px|700px|reset
[+] 导航是组件,直接拖入页面内
250px|700px|reset
[+] 导航是页面的配置项
250px|700px|reset
[+] 样式配置能力
  • 所有组件均支持比较完备的样式配置能力
250px|700px|reset
[-] 样式配置能力较弱
  • 仅有部分组件,支持配置特定的样式
[+] 事件动作能力增强,支持串并行
250px|700px|reset
[-] 事件动作不支持串并行,且各个点位的动作不统一
  • 例如数据表格的行点击事件,不允许发起流程
[+] 事件动作支持「调用组件方法」
  • 可实现打开关闭弹窗、刷新表格等:
250px|700px|reset
[-] 不支持「调用组件方法」
低代码
自定义组件
[+]执行 JS 动作,支持新版 byted-apaas SDK
[-] 对旧版自定义组件绝大部分能兼容,但对于非法 API 不兼容:自定义组件兼容手册
自定义组件
[+] 支持开发自定义组件
移动端
能力
新版 H5
旧版 小程序
页面管理
[+] 新版页面不区分桌面端、移动端,统一管理:
250px|700px|reset
[+] 移动端页面单独管理:
250px|700px|reset
[+] 进入页面编辑器后可切换查看双端效果:
250px|700px|reset
[+] 页面编辑器内仅能查看单端:
250px|700px|reset
访问链接和入口
[+] 新版 H5 是 Web 页,有 URL,可以在飞书或浏览器内访问,也可使用网页引用 APPlink
250px|700px|reset
  • 不兼容小程序 AppLink,已经配置了 AppLink 访问的外部点位,无法自动跳到新版 H5
[+] 小程序支持 Applink,可通过规则拼接
访问 Applink 时,系统自动拉起飞书,并在飞书内打开小程序:
250px|700px|reset
[+] 支持发布到飞书工作台,手机端打开后是 H5
[+] 支持发布到飞书工作台,手机端打开后是小程序
页面
[-] 不支持编辑 Header 区域
250px|700px|reset
Runtime 效果(浏览器 Header 部分不可编辑,暂不支持编辑 title):
250px|700px|reset
[+] 支持在 Header 区域添加按钮
250px|700px|reset
Runtime 效果:
250px|700px|reset
组件
[+] 支持所有页面组件:40 个
  • 导航类:顶导航侧导航、标签页
  • 布局类:区块、分栏
  • 通用类:富文本(旧版「文本」改名)、标题栏、筛选、图片、按钮组、宫格项、提示栏底栏按钮文本按钮图标标签
  • 数据展示:数据表格、列表、列表详情记录标题栏、记录详情、操作日志、数据看板、任务详情、表格容器列表容器
  • 弹层类弹窗侧拉窗气泡卡片
  • 图表:旧版报表矩阵表、指标卡、柱状图、折线图、组合图、环图、散点图、雷达图、词云条形图进度图瀑布图
  • 数据输入(灰度功能):表单容器、文本输入、数字输入、下拉选择、单选框、复选框、日期、日期时间、电话、邮件、开关、多语文本、头像、富文本、文件、行政区划
  • 高级:HTMLiFrame内联页
[-] 支持 1.0 小程序专属组件,共 21 个
  • 导航类:标签页
  • 布局类:区块、分栏
  • 通用类:文本、标题栏、筛选、提示栏、宫格项、底栏按钮
  • 数据展示:列表、记录详情、记录标题栏
  • 图表:旧版报表、指标卡、柱状图、折线图、组合图、环图、散点图、雷达图
[-] 不支持「底栏按钮」组件
250px|700px|reset
  • 可通过配置实现底栏按钮
[+] 支持「底栏按钮」组件
250px|700px|reset
[+] 导航是组件,直接拖入页面内
250px|700px|reset
[+] 导航是页面的配置项
250px|700px|reset
[+] 导航中可加入链接
250px|700px|reset
  • 按钮样式与小程序不同且暂不支持调整
[+] 导航中可加入按钮
250px|700px|reset
低代码
自定义组件
[-] 不支持「小程序」组件,也无法兼容,1.0 小程序自定义组件需要改写
[+] 支持开发 H5 自定义组件,写法对齐 Web 自定义组件
自定义组件
[+] 支持开发小程序自定义组件(基于 TARO):开发指南
[-] 将 H5 组件转化为小程序组件(部分可转)
[+] H5 页面内支持写 JS
[-] 小程序页面内不支持写 JS
[-] 支持调用飞书 Native API(比小程序少)
[+] 支持调用飞书 Native API
(三)注意事项 & 风险提示
  1. 产品能力和 1.0 不兼容点
需要用户处理的不兼容点速览:
不兼容点
解决方案
解决时机
不支持自定义地址
升级前将全部自定义地址清除
升级前手动操作
「执行操作」升级为「执行流程」
升级前进入页面操作并提交
升级前手动操作
不再支持部分历史物料
升级前重新提交页面
升级前手动操作
公式中存在失效变量
修改失效变量
升级前手动操作
页面有尚未提交的修改
提交页面或撤销修改
升级前手动操作
不再支持「数据看板」、「旧版报表」
用图表组件代替
升级后重新搭建
图表不支持打开明细、多对象
用2.0图表组件代替
升级后重新搭建
不再支持「多语变量」
使用文本变量和表达式搭建
升级后重新搭建
自定义组件仅部分兼容
可能需要修改代码
升级后重新搭建
不支持自定义地址
升级前手动操作
  • 若应用中存在页面配置了自定义地址,将无法升级当前应用。
  • 目前必须将全部自定义地址清除,才能升级,但会影响线上访问,请谨慎操作。
  • 后续会提供无损解决方案,敬请期待。
250px|700px|reset
页面有尚未提交的修改
升级前手动操作
  • 若应用中存在页面有尚未提交的修改,将无法升级当前应用。请进入页面进行提交或撤销修改。
250px|700px|reset
页面类型不再支持「详情页」
用户无需处理
  • 替代搭建方案:给页面配置可传入的变量参数,其他页面跳转该页面时,可传入对应变量,以实现旧版详情页的效果
250px|700px|reset
  • 1.0 的详情页的页面布局,可以选择「含头图的单页」
页面形态不再提供弹窗、侧拉窗、浮层形态
用户无需处理
  • 1.0创建页面时,如果选择页面形态为弹窗、浮层
  • 替代方案:在页面内提供「弹窗」、「侧拉窗」、「气泡卡片」组件
  • 在弹窗组件内配置信息,通过「调用组件方法」,实现弹窗的开启、关闭
250px|700px|reset
不再支持「记录标题栏」、「分栏」组件
用户无需处理
  • 记录标题栏:以「标题栏」组件的能力替代。
  • 分栏:以栅格布局能力替代
不再支持「旧版报表」、「数据看板」组件
升级后重新搭建
  • 可以在 2.0 中直接使用数据图表类组件搭建:
250px|700px|reset
图表不支持打开明细、多对象
升级后重新搭建
  • 可以在 2.0 中直接使用数据图表类组件搭建
数据表格中,多值字段暂不支持点击触发事件
用户无需处理
2.0 数据表格中暂不支持
  • 多值字段点击打开详情页
自定义组件部分兼容
可能需要修改代码
  • 「页面 」2.0 将会 部分兼容 1.0 自定义组件,对于兼容的部分的DX自定义组件无需改动即可在页面 2.0 内运行,具体不兼容范围详见:自定义组件兼容手册
  • 如需修改组件或使用自定义组件 2.0 新增的能力,则需要手动修改代码,适配自定义组件 2.0 的规范。1.0自定义组件手动迁移到2.0自定义组件请参考:自定义组件迁移指南。完整的2.0自定义组件开发请参考:自定义组件
不再支持「系统默认详情页」
用户无需处理
  • 1.0创建页面时的系统默认详情页,在升级2.0后会被迁移成普通的页面。
「执行操作」升级为「执行流程」
升级前手动操作
  • 升级前手动操作:打开页面对应事件面板,点击「编辑动作」-「确定」,并提交页面,即可升级至「执行流程」
250px|700px|reset
不再支持 1.0 历史组件
升级前手动操作
  • 1.0 页面如果存在历史组件 Topbar、Menu.Container、Background、Menu,升级前打开 1.0 页面点击「提交」。
  • 1.0 页面如果存在历史组件 MinAppLowVersion、SimpleTabs、ListCompositeType,升级前打开 1.0 页面,点击对应组件打开属性面板,再点击「提交」。
  • 2.0 将不再提供上述组件。
变量类型不再支持「多语变量」
升级后重新搭建
  • 升级后,需要新建两个文本变量配合表达式来实现
移动端不再支持飞书小程序,支持 H5
用户无需处理
  • Builder 2.0 不提供小程序搭建能力,也不支持发布飞书小程序
  • Builder 2.0 支持搭建移动端 H5 页面。支持自适应,可实现一次搭建 PC/移动 双端可用,同样也支持将 H5 发布到飞书工作台,用户可以在飞书内搜索到该应用的移动端并访问
  • 对于移动端开发者,H5 容器内可用的飞书 API 能力,和小程序有所差异。
移动端不再支持设置顶部栏
用户无需处理
  • 升级后,不展示标题,顶栏按钮用悬浮按钮替代
250px|700px|reset
移动端「导航」组件不支持设置按钮tab
用户无需处理
  • 升级后,自动变为「按钮」组件,实现类似效果
250px|700px|reset
移动端不再支持设置背景色和背景图、背景高度
用户无需处理
  • 升级后,自动变为「区块」组件,实现类似效果
250px|700px|reset
250px|700px|reset
移动端不再支持「提示栏」「底部按钮」
用户无需处理
  • 升级后,自动变为用2.0组件实现类似效果
250px|700px|reset
250px|700px|reset
移动端标题栏不再支持配置标题颜色
用户无需处理
  • 升级后,自动变为用2.0组件实现类似效果
250px|700px|reset
移动端「列表」不再支持搜索、底部按钮
用户无需处理
  • 搜索:升级后,自动变为用「文本输入」组件,实现类似效果
250px|700px|reset
250px|700px|reset
  • 底部按钮:升级后,自动变为用「区块 」+「按钮组」组件,实现类似效果
移动端「记录详情」不再支持「数据-入口」
无需搭建,迁移有损
  • 升级后,自动变为用2.0组件,实现类似效果,但运行时无法跟随整体loading
250px|700px|reset
250px|700px|reset
移动端宫格项布局改为垂直布局
用户无需处理
  • 2.0 宫格项移动端为垂直布局
公式中存在失效变量
升级前手动操作
  • 升级前手动操作:修改公式中的失效变量,确保公式能正常保存提交。
多环境配置下线
无需处理
  • 页面设计中不再支持开发环境和线上环境分开配置,如果左值是记录类型字段,升级后会自动批量生成环境变量替换右值的具体记录
250px|700px|reset
  1. 搭建方式有明显变化,搭建成本显著提升
由于 2.0 组件、样式能力都变得更加原子化,以满足更灵活的搭建需要,因此搭建成本会显著提升,这将导致在很多场景中,搭建耗时显著变长。
  • 提供了原子化的样式能力,支持配置文本、背景、边框、阴影样式,配置相比旧版复杂很多
250px|700px|reset
  • 可配合原子组件实现较复杂的表格/列表,但同样,配置的复杂度提升比较大
250px|700px|reset
  1. 其他
由于技术限制,目前页面搭建器仅能确保满足特定限制下的搭建态和终端页面性能
  • 单一页面内,组件节点数量不超过 1000 个
  • 单一页面内,页面变量数不超过 100 个
  • 自定义组件右侧面板的设置项不超过 100 个
  • 数据表格的列数不超过 100 个
随着性能优化,以上限制有可能逐步提升。
另外:升级成功后,通过「应用管理页面-开发环境-测试应用」访问,以及通过首页中「测试」访问的都是 1.0 预览页。需要将应用发布后,从这两个入口可访问 2.0 预览页。
「流程」模块
(一)新版能力要点
  • 画布升级:画布调整为居中布局,支持灵活展开收起、节点移动、圈选操作等,提升编排灵活性
  • 能力强化:新增条件循环、子流程、错误监控与处理等节点,无码搭建能力大幅提升
  • 性能提升:画布性能、引擎性能优化,画布配置、流程运行的速度提升
  1. 画布升级
功能说明
功能演示
😊 画布整体布局优化
居中布局
250px|700px|reset
触发器应用事件支持分组展示
250px|700px|reset
添加节点支持浮窗展示
250px|700px|reset
节点所有配置项支持分 Tab 展示
250px|700px|reset
节点支持拖拽移动
250px|700px|reset
image.png
节点圈选多个流程节点,进行批量复制或删除
250px|700px|reset
image.png
控制节点支持灵活展开收起
250px|700px|reset
image.png
  1. 能力强化
功能说明
功能演示
新增「子流程触发器」和「调用子流程」的逻辑节点
以飞书人事 - 外包管理系统为例:员工变动的流程均需要走合规 & 黑名单校验
Before:有 n 个人员变动流程就需要搭建、维护 n 套相同校验逻辑
After:只需要维护 1 套校验逻辑,所有「人员」变动流程均支持调用
通过子流程,大幅度提高流程的可复用性,配置、维护成本降低 50 % 以上
250px|700px|reset
image.png
支持从已有流程中「圈选多个节点」生成子流程
可以快速从已有流程中抽象可复用的逻辑,实现编排的复用,提升编排效率
250px|700px|reset
image.png
新增「条件循环」逻辑节点
以飞书用户反馈为例:获取群聊里调研用户的名单,方便下次调研问卷分发
Before:连接器只支持分页传输,只能通过「写代码」获取
After:通过「条件循环」来重复请求,直至所有数据获取完毕
支持按条件重复执行,丰富逻辑编排能力
250px|700px|reset
image.png
新增「错误监控与处理」逻辑节点
以新增记录为例:监控新增记录节点发生错误后,先发送飞书消息告警,然后再结束流程
通过错误监控与处理,支持捕获并处理流程错误,提升流程运行的容错性和健壮性
250px|700px|reset
image.png
支持「终止」进行中的流程
loading...
飞书消息连接器支持新版「消息卡片编辑器
250px|700px|reset
image.png
新增 AI 节点:「大语言模型」和「智能文档处理」灰度中
  • 智能文档处理:支持发票自动识别
  • 大语言模型:进行信息智能提取
😊 获取记录节点,支持分页查询
获取记录节点,原来仅支持获取 10,000 条记录,通过分页查询,处理数据的上限可以提升到 10w+
250px|700px|reset
image.png
😊 新增记录节点,支持返回新增的记录在下游消费
250px|700px|reset
image.png
  1. 性能提升
功能说明
功能演示
😊 画布编辑性能提升
250px|700px|reset
image.png
(二)注意事项和风险提示
  1. 获取记录
由于流程运行内存限制,单次获取记录条数上限从 10,000 调整为 500 条,支持通过条件循环,分批次获取,分批查询可处理的数据量级在 25w+
💡
升级后,应用中已有流程,若查询超过 500 条,可兼容执行,不影响线上流程运行;若再次进行编辑,则会有单次最多 500 条的限制,若希望处理超过 500 条的数据,需要配置条件循环来进行分批处理;
升级前:不允许配置获取条数,单次最多 10,000 条
升级后:可配置获取条数,单次最多 500,可分页查询
250px|700px|reset
c0982bad-1792-4676-9f20-f838a448d14c.png
250px|700px|reset
a2eab146-020f-485f-af05-d327b748f205.png
  1. Node.js
不再支持 Node.js 节点,升级后,原 「Node.js」 节点将默认兼容为「调用函数」节点。
💡
功能说明:通过「调用函数」可以实现同一函数的跨流程、跨节点复用;但是函数无法直接通过 context.flow.variables 访问流程中的数据,需要通过出入参配置,实现数据的传递;
升级前:Node.js 节点
升级后:调用函数节点
250px|700px|reset
250px|700px|reset
  1. 飞书消息与群组
不再支持「飞书消息与群组」的连接器,拆分为「飞书消息」、「飞书群组」两个连接器。
💡
升级后,「飞书消息与群组」将根据配置,默认兼容为新版「飞书消息」、「飞书群组」节点
升级前:可使用旧版「飞书消息和群组」连接器
升级后:仅支持新的「飞书消息」、「飞书群组」
250px|700px|reset
250px|700px|reset
(三)迁移不可兼容点处理方式
  1. 函数节点使用不兼容 API 「update variable」
函数中,不再支持通过「update variable」的方法,直接更新流程变量。
需要改为:利用函数出参,将需要更新的值,更新至函数出参,在流程中,再将函数出参来更新流程中的变量。
具体步骤为:
  1. 找到 update variable 方法,将需要更新的变量,创建为函数出参
  1. 删除相关代码,并按更新逻辑,更新函数出参值
250px|700px|reset
  1. 在流程中,将函数出参赋值更新给流程变量
250px|700px|reset
  1. 函数节点中有间接引用云函数
需检查代码中,是否使用「context.flow.updateVariable」:
  1. 若未使用,则无需修改
  1. 若使用,需参考「1. 函数节点使用不兼容 API 「update variable」」的方案,处理
  1. 函数节点中使用了context.workflow.variables
函数中,不再支持通过「context.workflow.variables」的方法,使用流程中的变量。
需要改为:利用函数入参,将需要使用的变量值,通过函数入参进行传入。
具体步骤为:
  1. 找到 context.workflow.variables 方法,将使用到的变量,创建为函数入参
  1. 删除 context.workflow.variables 方法,并将使用到的变量,替换为函数入参
250px|700px|reset
  1. 在流程中,将使用到的变量,给函数入参赋值
250px|700px|reset
「权限」模块
(一)新版能力要点
  1. 角色中权限点更完备
  • 可以分别配置每个数据模型的操作(增删改查)权限、分别设置每个字段的查看和编辑权限,提升了权限配置的灵活性。
  • 配置数据模型的操作权限
250px|700px|reset
  • 配置字段的查看和编辑权限
250px|700px|reset
  • 支持对「前端SDK调用」的函数控制调用权限,无权限将调用失败。
250px|700px|reset
  1. 记录权限配置更灵活
  • 记录权限按照数据模型进行管理:单个数据模型可添加 n 条记录权限规则
250px|700px|reset
  • 记录权限不再与角色绑定,而是直接授予用户,授予用户的方式有四种模式:
  • 全部:授予应用可用范围中的全部用户
  • 指定用户:授予指定某些用户
  • 指定角色成员:该规则对指定角色的成员生效,通过该模式可以实现不同角色的记录权限共用
  • 自定义:根据用户的属性授权
250px|700px|reset
  • 支持对记录的操作权限进行单独配置,以实现让某用户能编辑部分记录,而对其他记录只有查看权限的效果。
  • 全部:选择「全部」时,用户对记录的操作权限完全由其角色决定,如用户所属角色只有「图书对象」的查看权限,即使此处选择了「全部」也仅可对这些记录有查看权限。
  • 自定义:选择「自定义」时,用户对记录的操作权限是用户角色与此处所选权限的交集,如用户所属角色对「图书对象」的编辑权限,此处选择了「查看」,则仅可对这些记录有查看权限。
250px|700px|reset
  1. 功能和记录权限分别取并集
功能权限取并集
可以为单个用户添加 n 个角色。当用户拥有多个角色时,该用户在系统内拥有的实际权限是各角色包含权限的并集。此调整可以通过角色的租户来实现更高效灵活的授权。示例如下:
  • 存在多个角色
角色
页面权限
对象权限
角色A
有「订单管理」页面权限
有组件「订单列表」中对象权限
角色B
有组件「商品列表」中对象权限
  • 当角色 A、角色 B 同时授予同一用户
权限版本
授权效果
旧版权限
用户可在「订单管理」页面中查看「订单列表」
新版权限
用户可在「订单管理」页面中查看「订单列表」和「商品列表」
记录权限取并集
记录权限直接授予用户,当用户命中多条记录规则时,该用户在系统内任何页面、流程中均有多条规则中全部记录的权限。示例如下:
  • 存在两个角色,其角色成员各自被授予了记录权限规则
角色
页面权限
对象权限
角色成员授予的记录权限
角色A
有「订单管理」页面权限
有组件「订单列表」中对象权限
有本人跟进订单的权限
角色B
有下属跟进订单的权限
  • 当角色A、角色B同时授予同一用户
权限版本
授权效果
旧版权限
用户可在「订单管理」页面中查看本人跟进的订单
新版权限
用户可在「订单管理」页面中查看本人下属跟进的订单
  1. 流程和函数执行能以用户身份鉴权
流程和函数在执行时都能以用户身份鉴别数据模型、记录和字段权限,以满足开发者严格管控用户权限的诉求。
流程支持以发起人身份鉴权:
  • 流程执行时支持两种鉴权身份「用户身份」和「应用身份」,默认将以「用户身份」执行流程:
  • 应用身份:以应用内最大权限执行,即与旧版权限的鉴权方式保持一致
  • 用户身份:流程执行中的数据操作均以流程发起人身份鉴权,当用户没有所需数据操作权限时将导致流程执行失败,示例如下:
  • 存在两种角色
权限配置
流程发起权限
对象权限
角色A
有「编辑订单」流程权限
有订单对象的查看权限、编辑权限
角色B
有「编辑订单」流程权限
有订单对象的查看权限,无编辑权限
  • 新旧版本鉴权效果
权限版本
角色A
角色B
旧版权限
可发起流程并执行成功
可发起流程并执行成功
新版权限
可发起流程并执行成功
可发起流程但执行失败
  • 设置方式:打开流程编辑页面,点击「设置」在「流程执行鉴权方式」选项中进行设置
250px|700px|reset
函数支持以传入用户身份鉴权:
  • 开发者可使用Auth函数,选择鉴权身份「用户身份」和「应用身份」,未设置时函数将默认以「用户身份」执行函数:
  • 应用身份:以应用内最大权限执行
  • 用户身份:函数执行中的数据操作均以流程发起人身份鉴权,当用户没有所需数据操作权限时将导致函数执行失败
  • 设置方式:
// 通过Auth函数选择「用户身份」鉴权
context.db.object(objectApiName).useUserAuth().findOne()
// 通过Auth函数选择「应用身份」鉴权
context.db.object(objectApiName).useSystemAuth().findOne()
// 未选择鉴权身份时,默认采用用户身份查询数据
context.db.object(objectApiName).findOne()
  1. 角色信息可用于「页面组件显隐」和「流程发起条件」
💁
新版权限支持在「组件显隐规则」和「流程发起条件」中消费用户角色信息,从而实现对流程发起、组件显隐的精细化控制。
「用户.角色」可用于「组件显隐规则」:
可实现「当用户属于指定角色时,才能看到对应组件」的效果。如下图所示,当用户为「销售主管」角色时,才可见数据表格。
250px|700px|reset
「用户.角色」可用于「流程发起条件」:
可实现「当用户属于指定角色时,才能发起对应流程」的效果。如下图所示,当用户为「销售主管」角色时,才可发起「编辑销售分组信息」的流程。
250px|700px|reset
(二)注意事项
  1. 记录权限配置方式变化,会导致配置成本有一定上升
现状说明
相对于旧版权限,新版权限对于记录权限配置进行了较大调整。涉及以下2个方面:
  • 被拆分成原子化的配置方式:旧版权限给一个角色设置记录授权只用在一个表单中配置一遍,新版权限进行同一操作时需要打开n(n为数据模型的数量)个表单配置n遍
250px|700px|reset
  • 配置项更多:
  1. 需要手动配置规则名称
  1. 记录权限需要独立于角色设置「用户生效范围」(将记录权限授予谁)
  1. 记录权限支持独立于角色设置「操作权限」
250px|700px|reset
解决办法
  • 开发者配置记录权限的时候可以站在记录权限复用的角度进行配置,如「销售主管」与「普通销售」可以复用同一条记录权限规则「所有销售可以编辑本人及下属的商机信息」,从而一定程度上降低配置成本
250px|700px|reset
  • 敬请期待,即将 提供以下两类能力以降低记录权限的配置成本:
  1. 支持批量新增、编辑记录权限规则
  1. 开发记录权限配置的API,支持在OpenAPI中调用,从而以代码的方式实现批量配置
  1. 流程默认以用户身份执行,数据模型权限配置成本上升
现状说明
流程和函数在执行时都能以用户身份鉴别数据模型、记录和字段权限,以满足开发者严格管控用户权限的诉求。因此当选择「用户身份」执行时,需要同时开启对应流程和函数中涉及的「数据模型权限」、「字段权限」和「记录权限」。
解决办法
针对这个特性我们提供了两种方式来降低配置成本
  • 配置流程时会推荐开启流程中涉及的数据模型、字段权限,并提供一键开启的功能,降低开发者配置成本
250px|700px|reset
  • 对于部分简单应用,开发者没有细粒度管理流程执行权限的诉求,可以在流程的设置中将应用切换至「应用身份鉴权」,则无需以用户身份鉴别流程中涉及的数据模型、对象和记录权限,因此也无需给用户配置对应的权限
250px|700px|reset
  1. 功能和记录权限分别取并集,用户被授予多角色时效果与旧版不同
场景1:组件显隐效果变化
  • 实际存在多个角色
角色
页面权限
对象权限
角色A
有「订单管理」页面权限
有组件「订单列表」中对象权限
角色B
有组件「商品列表」中对象权限
  • 当角色 A、角色 B 同时授予同一用户
权限版本
授权效果
是否可达到与旧版一致效果
旧版权限
用户可在「订单管理」页面中查看「订单列表」
新版权限
用户可在「订单管理」页面中查看「订单列表」和「商品列表」
可以,增加组件的显隐条件,在组件显隐条件中使用用户角色信息
场景2:组件内记录范围变化
  • 实际存在多个角色
角色
页面权限
对象权限
角色成员授予的记录权限
角色A
有「订单管理」页面权限
有组件「订单列表」中对象权限
有本人跟进订单的权限
角色B
有组件「订单列表」中对象权限
有下属跟进订单的权限
  • 当角色A、角色B同时授予同一用户
权限版本
授权效果
是否可达到与旧版一致效果
旧版权限
用户可在「订单管理」页面中查看本人跟进的订单
新版权限
用户可在「订单管理」页面中查看本人或下属跟进的订单
可以,增加组件的数据过滤条件,在数据过滤条件中使用用户角色信息
场景3:流程发起权限变化
  • 实际存在多个角色
角色
页面权限
对象权限
流程权限
角色成员授予的记录权限
角色A
有「订单管理」页面权限
有组件「订单列表」中对象权限
有「编辑订单」流程权限
有本人跟进订单的权限
角色B
有组件「订单列表」中对象权限
无「编辑订单」流程权限
有下属跟进订单的权限
  • 当角色A、角色B同时授予同一用户
权限版本
授权效果
是否可达到与旧版一致效果
旧版权限
用户在「订单管理」页面中可编辑本人跟进订单
新版权限
用户在「订单管理」页面中可编辑本人及下属跟进订单
可以,增加流程发起条件,在流程发起条件中使用用户角色信息
(三)常见问题
Q:已经配置了角色和授权,在测试/访问时,显示“暂无权限查看此组件”,是什么原因?
A:这是因为用户所在的角色,没有记录的权限。可以确认下:是否是「记录权限」没配置到角色身上。
250px|700px|reset
image.png
附一:各功能帮助文档
点击下面文字,即可跳转到对应帮助文档
附二:新版功能的培训课程
点击下面文字,即可跳转到对应课程
附三:应用搭建常见问题自查
先进生产力和业务协同平台
联系我们立即试用

先进团队,先用飞书

欢迎联系我们,飞书效能顾问将为您提供全力支持
分享先进工作方式
输送行业最佳实践
全面协助组织提效
联系我们立即试用