Power Apps 中关联 CDS Lookup

做过D365开发的应该非常清楚lookup的作用. 

我们首先先看一下lookup字段在Microsoft Docs中的定义

 

大致意思呢, 就是创建一个N:1 的引用关系. 能够关联到两个entities.

 

那lookup在PowerApps中怎么使用呢?

Lookup的Data Type = Record

首先我们要知道, Lookup在PowerApps中的data type 是record(什么是PowerApps Record)

 

 

 

Lookup Field 的 GUID 值

在DataFlex Pro(CDS)中, 每一条数据都有对应的GUID值

Record 可以直接用  Record.'Record Name" 获取到GUID

 

我们可以看到下图D365中, 我们可以通过这个GUID搜索到这个用户.

 

 

 

 

使用GUID值和Patch来更新 Lookup 字段

因为lookup是一个record, 所以我们需要赋值这个record到lookup字段, 而不是只绑定这个lookup的GUID. 怎么使用patch

 

 Patch(  
   Contacts,  
   First(Contacts),  
   {  
     'Created By': LookUp(  
       SystemUsers,  
       SystemUser = GUID("cd6843b8-d603-ea11-a811-000d3a300000")  
     )  
   }  
 )  

 

PowerApps中不能跨多个lookup level

e.g. 下面这个例子是获取account中的primary contact(第一个lookup)中的created by(第二个lookup)

 

 

 

在Collection中使用lookup字段

我们同样可以在collection中使用lookup字段. (ClearCollect使用方法)

 

 

 

 

posted @ 2020-08-24 00:57  TheMiao  阅读(776)  评论(2编辑  收藏  举报