Power Apps中ClearCollect从Dataverse取数列名异常及列缺失问题求助
解决Power Apps中Dataverse集合列名与数据缺失问题
问题1:集合显示逻辑名称而非实际列标题
直接通过Sort+FirstN生成的集合会保留Dataverse的系统逻辑列名(即cr32e开头的名称),要显示实际业务列标题,需用RenameColumns函数手动将逻辑名映射为自定义显示名:
修改后的代码示例:
ClearCollect(colPeopleTEST, RenameColumns( FirstN(Sort(PER, PERNAME), 30), "cr32e_pername", "员工姓名", "cr32e_department", "所属部门", "cr32e_hiredate", "入职日期" // 按需继续添加其他列的映射,格式为"逻辑名称", "显示标题" ) )
注:每个字段的逻辑名称可在Dataverse表的列设置中查看,对应替换到代码即可。
问题2:集合未包含全部列、部分列无数据
针对未包含全部列的解决方法
Power Apps查询Dataverse时默认仅返回常用列,需通过SelectColumns函数明确指定要获取的列,结合RenameColumns可同时完成列名映射:
ClearCollect(colPeopleTEST, RenameColumns( SelectColumns( FirstN(Sort(PER, PERNAME), 30), "cr32e_pername", "cr32e_department", "cr32e_hiredate", "cr32e_salary" // 列出所有需要获取的列的逻辑名称 ), "cr32e_pername", "员工姓名", "cr32e_department", "所属部门", "cr32e_hiredate", "入职日期", "cr32e_salary", "薪资" ) )
针对部分列无数据的排查方向
- 先确认Dataverse表
PER中对应行的这些列是否本身未录入数据; - 检查当前Power Apps用户对这些列是否拥有读取权限(可在Dataverse安全角色中配置列级权限);
- 如果是关联列(如查找字段),需用
Expand函数加载关联数据,示例:ClearCollect(colPeopleTEST, RenameColumns( Expand( FirstN(Sort(PER, PERNAME), 30), "cr32e_department" // 关联列的逻辑名称 ), "cr32e_pername", "员工姓名", "cr32e_department_name", "部门名称" ) )
内容的提问来源于stack exchange,提问作者Lukas Fürst
相关产品推荐
相关产品推荐

