You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerApps带深度链接审批表单报错:记录与文本类型不兼容

PowerApps业务问题追踪应用权限控制解决方案

错误原因分析

你遇到的"Incompatible types for comparison. These types can't be compared, Record: Text"错误,是因为SharePoint的**Line Manager(人员类型列)**返回的是包含Email、DisplayName等属性的记录对象,而User().Email是纯文本,两者类型无法直接比较。

修正启动屏幕判断代码

将启动屏幕的公式修改为:

If(
    !IsBlank(Param("ID")) && LookUp('Business Tracker', ID = Value(Param("ID"))).'Line Manager'.Email = User().Email,
    Newform_1,
    MainScreen
)

核心改动:在'Line Manager'后追加.Email,提取人员列中的邮箱文本值,再和当前用户邮箱做比较,解决类型不匹配问题。

优化OnStart逻辑(可选但推荐)

为简化后续权限控制,建议在OnStart中一次性完成数据查找与权限验证:

If(
    !IsBlank(Param("ID")),
    Set(VarItem, LookUp('Business Tracker', ID = Value(Param("ID"))));
    Set(varIsLineManager, VarItem.'Line Manager'.Email = User().Email);
    Set(varFormMode, If(varIsLineManager, FormMode.Edit, FormMode.View))
)

后续可直接通过varIsLineManager变量控制字段权限,varFormMode控制表单整体模式。

配置表单字段编辑权限

在表单控件中,针对Priority和Additional comments字段,设置它们的DisplayMode属性为:

If(varIsLineManager, DisplayMode.Edit, DisplayMode.View)

确保只有直线经理能编辑这两个字段,其他用户仅可查看。

流程验证

  1. 用户提交新问题后,Power Automate发送带应用链接(包含ID参数)的邮件给指定Line Manager
  2. 直线经理点击链接打开应用,启动屏幕验证其邮箱与记录中的Line Manager邮箱匹配,进入编辑表单
  3. 非直线经理打开该链接,会直接跳转到主屏幕,无法进入编辑页面

内容的提问来源于stack exchange,提问作者fyfyJekwe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:55:23