低代码-常见问题(FAQ)|飞书低代码平台 - 飞书官网

低代码-常见问题(FAQ)|飞书低代码平台

飞书

自定义事件​
自定义组件​
CLI(命令行工具)​
HTML组件​
云函数​
通用​
自定义事件
  1. 如何调试自定义事件?
A:在代码中使用 debugger 打断点,打开浏览器开发者工具:
250px|700px|reset
  1. 在数据表格事件的点击行中,添加执行自定义 JS 代码动作,当点击行时,如何获取点击行的数据?
A:通过如下代码可以获取点击行数据。
250px|700px|reset
  1. 在页面中,使用自定义事件,如何在自定义事件中设置页面变量?
A:在自定义事件中,存在着context全局对象,通过这个对象能够设置页面变量,具体调用方式如下:
await context.page.setPageVar(varApiName, value)
  1. 如何通过自定义页面事件刷新表格数据?
A:
  • 代码实现如下:
// 按钮的自定义事件实现如下:
const newUniqueID = `${Date.now()}`;
// 设置页面变量后,所有依赖此页面变量的组件会刷新
context.page.setPageVar('var_15dpf9k', newUniqueID);
表格组件的过滤条件配置如下:
250px|700px|reset
  • 效果图:
250px|700px|reset
  1. 在低代码中部署了云函数,在哪些地方可以使用?
A:
  1. 在页面事件中的自定义代码中如下调用云函数
kunlun.dataService.kFunction(api_name).invoke();
250px|700px|reset
  1. 在流程管理中的工作流中通过 Node.js 节点调用云函数
250px|700px|reset
调用代码如下:
context.function(api_name).invoke();
  1. 在自定义组件中引入 data-service 调用云函数,代码如下:
import {
kFunction, // 云函数
} from '@kunlun-dx/data-service';
await kFunction(api_name).invoke();
  1. 如何获取标签页的值,用于创建自定义事件
A:通过如下方式回去标签页的值
const urlParams = new URLSearchParams(window.location.search);
const activeKey = urlParams.get('tabld')
自定义组件
  1. 数组遍历渲染报错:[Cannot read properties of undefined (reading 'getStackAddendum')]
250px|700px|reset
A:React17 中 list item 中必须加 key 属性,否则会报这个错
如果使用@kunlun-dx/design中或者使用antd3.x中的Form.Item组件,而且你代码里加上了key属性,但还是出现了上述错误,需要在Form.Item外层增加Fragment节点,对该节点添加key属性。
解决方式如下
250px|700px|reset
  1. 开发组件时 ts 报错:Type '{ children: Element; }' has no properties in common with type 'IntrinsicAttributes && xxProps'
250px|700px|reset
A:可能是 @types/react 版本过高导致的。可以执行 npm ls @types/react 查看项目中是否安装了版本大于 18 的 @types/react,如果有,可以在 package.json 的 resolution 中添加 "@types/react": "^17",重新安装依赖后即可解决
  1. 在 Windows 上执行 ae component dev 命令时可能报错
250px|700px|reset
A:此时只需要在 dev 命令前执行 set-ExecutionPolicy RemoteSigned 即可:
set-ExecutionPolicy RemoteSigned
ae component dev
  1. 自定义组件中如何区分线上和沙箱环境?
A:可以通过截图中的 type 区分
250px|700px|reset
image.png
  1. 自定义组件是否支持配置标准组件中的图标样式?
A:不支持
  1. 如何在自定义组件中使用路由跳转?
A:目前暂无相关实践案例,同时不建议使用该方式,可能会出现未知问题。建议使用官方导航,或重新评估需求,以其它方式满足相关需求。
  1. 自定义组件如何使用 @byted-apaas/server-sdk-node
A:具体可参考《@byted-apaas/server-sdk-node 概览
CLI(命令行工具)
  1. 登录时租户名称(Tenant Name)是什么?
A:相关获取租户域名方法可参见 常见问题 FAQ - 如何查看自己所需调试应用的租户名称 一节了解详情。
  1. ae project clone 时包的命名空间(namespace)是什么?
A:在应用管理界面可以获取:
250px|700px|reset
image.png
  1. 推荐使用的 CLI 和 @kunlun-dx/sdk 的版本是什么?
A:CLI 推荐使用 0.8 版本,@kunlun-dx/sdk 推荐使用 0.9 版本。如果你使用的是低版本的 @kunlun-dx/sdk,可以通过 SDK@0.9.x 升级指南 的建议升级。
  1. 通过 CLI 工作 push 项目后,系统都做了哪些事情?
A:
目前的流程是:
Step1: 先 pull 远端的组件源码与本地进行 merge
Step2: merge 后的源码打包 push 到远端,并触发构建及发布的流程。
  1. 在 mac/windows 中如何进入终端?
A:
在 mac 中
Step1:进入启动台,在上方的搜索中输入终端
250px|700px|reset
250px|700px|reset
Step2: 点击终端图标,进入终端
250px|700px|reset
在 windows 中
方法一:按下快捷键win+R,输入cmd,回车
方法二:在某个目录中点击鼠标右键打开命令窗口
250px|700px|reset
  1. 安装 CLI 时报以下错误 ,Error: EACCES:permission denied,mkdir '/usr/local/lib/node_modules/@kunlun-dx'
250px|700px|reset
A:是文件系统权限问题,用 sudo npm install -g @byted-apaas/cli 命令安装即可
  1. 安装 CLI 时报以下错误,reason: certificate has expired
250px|700px|reset
其他同类问题:
  • ae component create 创建组件失败,DX_CLI_41062, connect timeout
A: 频发于公网用户,npm 源需指定到公网。 用 npm config set registry https://registry.npmmirror.com 设置公网源即可。
  1. 升级 CLI 时报错: ERESOLVE unable to resolve dependency tree
250px|700px|reset
A:在命令后添加 --legacy-peer-deps 参数即可解决。详情参见:
  1. 命令行自动补全不能正常工作
A: 在安装 CLI 后,系统会自动对 bash/zsh 终端进行配置完成自动补全的脚本注入。
不能工作可能是因为脚本注入失败, 可以尝试运行 ae completion setup 来进行主动注入,再根据命令返回结果进一步排查问题。
可能的原因有:
  1. EACCES Permission denied, open /Users/xxx/.zshrc: zshrc 系统文件权限问题
需要执行 sudo ae completion setup
250px|700px|reset
  1. 在 Windows 10 系统下, 执行 ae component dev 进行自定义组件调试时,显示报错进而无法进行调试:
报错信息: DX_CLI_41031 Error: EPERM: operation not permitted, symlink 'C:\Users\xxx\node_modules' -> 'C:\Users\xxx\.kldx\cache\xxx\intermediate\node_modules'
250px|700px|reset
A: 由于 Windows 10 的安全策略,nodejs 使用 fs.symlink 创建目录短链接时可能(不排除在后续版本修复了此问题)需要管理员权限或者开启 “开发者选型”。详见 https://github.com/nodejs/node/issues/18518#issuecomment-513831915
遇到上述问题,建议开启 Windows 10 的开发者选型
250px|700px|reset
  1. Mac 或 Linux 系统下首次安装 @byted-apaas/cli 工具时可能会报 permission denied
250px|700px|reset
A: 这是因为当前登录用户没有全局 NPM 目录写权限,可通过创建一个新的安装目录解决:
  1. 创建一个新的目录:
mkdir ~/.npm-global
  1. 设置安装目录:
npm config set prefix '~/.npm-global'
  1. 修改环境变量:
echo "export PATH=~/.npm-global/bin:$PATH" >> ~/.profile
source ~/.profile
  1. 再次执行安装命令即可:
npm i -g @byted-apaas/cli
  1. 输入 ae dev 报错 namespace 未提供,
报错:The namespace should be provided in kldx-project.json
250px|700px|reset
A:由于编译自定义组件时必须明确 namespace,所以需要在 kldx-project.json 中明确指定。
  1. 输入 ae auth login 报错: Tenant not found
A:输入正确的namespace,查看【DX_CLI_02003】
250px|700px|reset
  1. 使用 ae source push 报错 Can not resolve component in 'xxxx/xxx'
250px|700px|reset
A:
解析组件时未找到入口文件,请检查components下的自定义组件中是否有以下文件之一:
250px|700px|reset
250px|700px|reset
  1. 报错的文件路径中包含了 .ae/merge
删除 .ae/merge 文件后,再重试相关 ae 命令
250px|700px|reset
  1. 使用 ae component create/ ae component dev/ yarn install/ npm install 等动作时,出现: Execute command 'yarnpkg' failed with exit code 1.
250px|700px|reset
A: 此类问题多发于本地网络请求不到公网的 npm 包资源导致的,两个方向自查
  • 查找本地目录中是否存在 yarn.lock package-lock.json 若存在,删除后重试
HTML 组件
  1. 为什么在设计态我的 js 代码没有执行?
A:目前设计态下,HTML组件代码中的 <script></script> 标签中的代码不会执行。
  1. 为 buttion 标签配置 onclick 事件属性时为何报错?
A:JS 脚本仅支持在 script 标签中编写,不再支持在常规标签中编写 onclick 等属性。如果需要给 DOM 绑定事件,可用 element.onclick = handlerFunc 或 element.addEventListener("click", handlerFunc) 中的任意一种写法。
云函数
  1. 我想让外部系统调用云函数,该怎么做?
新建一个 Open API 文档,文档内会将云函数转换为一个 API,外部系统调用该 API,即可实现调用云函数
250px|700px|reset
  1. 云函数有什么案例?
可参考帮助中心「云函数案例」部分
  1. 如何获取当前用户的时区、语言?
关键词:时区,语言
云函数内使用 conetxt.user.getLocal()可以获取到当前用户的时区和语言
const userLocal = context.user.getLocal(user_id|number[])
console.log(userLocal)
---------- console -------------
{
language: string;
timeZone: {
location: string;
offset: string;
},
userId: number;
}
  1. 云函数用户需要出口 IP 解决方案
A:目前产品上没提供出口 IP 能力的,如果用户需要出口 IP 的场景是配置鉴权(如云函数内访问外部需要鉴权的服务,外部服务通过访问 IP 鉴权)建议用户通过其他方式实现:
  • 若待访问外部服务用户可进一步开发,则建议用户在 aPaaS 云函数调用外部服务时添加鉴权参数,比如 token,然后在外部服务对鉴权参数进行验证;
  • 若待访问外部服务用户没权进一步开发,则建议用户自己配置代理服务,云函数先调用代理服务(添加鉴权参数),代理服务中对鉴权参数做验证,验证通过后调用待访问外部服务(外部服务设置代理服务的 IP )
  1. GO函数如何进行日期比较?
A:日期比较可使用 IsOnOrBefore 和 IsOnOrAfter。
  1. 如何获取全局选项?
A:可参考文档如何正确获取全局选项
  1. 如何获取全局变量?
A:可参考文档:application.GlobalVar
  1. 云函数使用了哪个 npm 包源?
A:使用了外部 npm 源 npm config set registry https://registry.npmjs.org/
  1. 云函数请求报错 k_cf_ec_200001
  • 内网环境使用 opensdk 外网版(内部请求公网域名)容易出现超时,如果用内网需要切换至内网版
  • 检查代码以及请求入参格式是否正确
  1. 变量无法识别 .oql(select * from testPlan where name LIKE '%$searchValue%', { searchValue })
A:这可能是由于在 OQL 查询中,变量的使用方式不正确导致的。在 OQ L查询中,需要使用 `${}` 来引用变量,而不是 `%$searchValue%`。正确的使用方式应该是:
const records = await application.data.oql("select text, multilingual from allFieldObject where email=$email limit 3",
{
"email": "abc@abc.com",
}).execute();
具体可参考文档《application.data.oql
  1. 在云函数中使用哪个 context API 可以调用其他云函数?
A:通过云函数调用其他云函数,可以通过调用 faas.function 方法实现,具体云函数相关接口请参考:《云函数-学习指引
  1. 云函数返回 ERR_BAD_RESPONSE 是什么意思
A:一般是 http 返回结果有问题
  1. 执行 ae function dev 报错
A:执行 ae function dev 报错报错的原因有很多,具体可以根据返回错误信息进行判断,以下是可能出现报错的原因:
  • 确认node版本是否过低
  • 确认调试时包体积是否过大
  • 确认引用的仓库是否是公网的
  1. batchCreate() 的语法格式是什么?
batchCreate() 的语法格式是:
await context.db.object("_user").batchCreate(
[
{_name: "John", age: 19, gender: "male"},
{_name: "Alis", age: 16, gender: "female"}
]
);
  1. 执行函数报错 ERROR DX_CLI_41076 使用 yarn 安装依赖项失败: yarn install v1.22.19 warning package.json: No license field
  • 如果有 momentjs,需要卸载掉,此依赖已废弃
  • 删除 yarn.lock
通用
  1. 什么是 Open API? 我该怎么用?
帮助文档:《Open API 使用指南》
关键词:外部系统,获取对象记录数据,下载附件
使用飞书低代码平台搭建出的应用,可以自动生成供外部系统调用的 Open API 文档,更加方便企业内灵活的连接各个业务系统。
通过下面的步骤你可以新建 Open API,可以根据自己的需求设置该 Open API 可访问的方法,如:
  • 了解对象元数据信息(对象字段配置、字段详情……)
  • 增删改查(CURD)应用内的记录……
  • 执行应用的流程、云函数……
  • 获取全局选项、全局参数……
  • 获取应用的页面链接、页面配置……
  • 上传、下载附件
  • 获取应用 tenantAccessToken
  • ……
开发环境:
线上环境:
进入集成 -> API 凭证管理 -> 新建API凭证
进入应用管理页 -> Open API -> 新建API凭证
250px|700px|reset
250px|700px|reset
250px|700px|reset
250px|700px|reset
250px|700px|reset
image.png
  • 调用频率限制
获取凭证 Token
单应用 QPS 限制为:40
记录 增、删、改(单条)
单应用 QPS限制为:
  • 创建记录 150
  • 更新记录 200
  • 删除记录 80
记录 增、删、改(批量)
单应用 QPS 限制为:
  • 创建记录 10
  • 更新记录 8
  • 删除记录 10
  • 单次请求最大数据:100 条
记录查询
单应用 QPS 限制为:
  • 记录详情 200
  • 记录列表 400
  • 记录列表单次请求最大数据:200 条
执行函数
单应用 QPS 限制为:50
执行流程
仅可执行 「直接运行流程」,其他诸如「表单、webHook」流程不可由 OpenAPI 触发
文件上传
最大 300M
文件下载
最大 500M,更大的文件需要用分片接口(开发中)。
分布式任务
数据集最大 50M
其他未标注接口
单应用 QPS 限制为:500
  1. 为什么记录存在,但是 Open API 查询不到数据
A:通常是因为使用的 token 凭证使用错误导致的,不是对应的 token。
  1. 如何调用 OneService 的 API ?
A:可先参考 OneService 的 API 文档,用 Go 或 Node SDK 的方式来调用,具体请参考:云函数快速上手
  1. 如何调用 RPC 接口
A:字节内部开发者可以走自定义连接器选择 Kitex 协议;外部开发者可通过 OpenAPI 使用 HTTP 连接器调用。
250px|700px|reset
  1. 如何从第三方应用集成飞书低代码平台账号,实现自动登录?
A:考虑到安全风险,不支持 sso 接入
  1. VUE3 有办法和低代码结合使用吗?
A:暂不支持
  1. 如何通过代码来邀请外部用户
A:暂不支持通过代码的方式邀请外部用户,如有需要可通过流程中的「邀请外部用户」节点实现,具体请参考文档:《邀请外部用户
  1. 可以通过 JS 代码打开弹窗组件吗?
A:可以在目标组件中配置「与组件交互」事件,实现与弹窗组件交互,具体可参考《页面事件与动作说明
  1. 出现 Request limited current 的报错是什么原因?
Request limited current 的报错意味着接口的调用频率超过了限制。接口的调用频率限制为 15QPS,超过此限制时,会返回错误代码 k_op_ec_20003。
  1. 出现 api_response_builtin_abort_error 的报错是什么原因?
api_response_builtin_abort_error 表示请求被取消。这种错误常见于搜索页面,在连续进行搜索时,系统会取消上一次的请求,从而产生这个错误码。
  1. 飞书低代码平台的系统时间戳是如何生成的?底层使用了什么?
飞书低代码平台调用了 golang 的 time 包来获取时间戳,服务运行在 TCE 上,取的是机器的系统时间戳。
  1. 报错:ERROR DX_CLI_41109 install-pkg: "yarn add --cached" run failed with errors in file:/var/folders/j_/mpb8vjfx2c75sghzhwzt0s_m0000gn/T/.ae/devtools/HTML/0.5.1/.yarn_errors.log
执行 npm install -g @byted-apaas/cli@1.2.2 指定版本到1.2.2试试
250px|700px|reset
image.png
预约飞书企业效能顾问 深度诊断企业痛点,定制专属 AI 办公方案

字节跳动旗下 AI 工作平台

关联文章推荐

优质内容,精华实践

先进团队,先用飞书

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

字节跳动旗下 AI 工作平台

联系我们立即试用