假设你想要从模型驱动应用中的外部数据源访问、创建、更新和删除有关联系人的一些个人信息。 在此简单演练中,您将在运行时从 OData Web 服务为具有映射到外部架构的列的名为人员的虚拟表建模,来执行这些操作。
数据源详细信息
因为用于此演练的数据源拥有 OData v4 Web 服务,所以可使用您的环境随附的 OData v4 数据提供程序。
Web 服务 URL:https://contosowebservice.azurewebsites.net/odata/
重要
- 用于本演练的 Web 服务 url 不是可工作的 Web 服务。
- 无法使用 OData v4 数据提供程序连接到另一个环境。
本演练需要一个包含下面三个列的虚拟表。
| 外部列名称 | 外部数据类型 | 虚拟表数据类型 | 目的 | 
|---|---|---|---|
| Id | Edm.Guid | 主密钥 | 表的主键 | 
| FirstName | Edm.String | 单行文本 | 人员的名字 | 
| LastName | Edm.String | 单行文本 | 人员的姓氏 | 
| 年龄 | Edm.Int32 | 整数 | 此人的年龄 | 
| LastModifiedOn | Edm.DateTimeOffset | 数据和时间 | 人员记录的上次修改数据和时间 | 
外部数据源中人员表的 OData 元数据:
              
               
              
              
            
创建数据源
为使用 OASIS 开放数据协议 (OData) 示例 Web 服务的 OData v4 数据提供程序创建数据源。
- 转至设置>管理>虚拟实体数据源。 
- 依次选择新建、OData v4 数据提供程序和确定。 
- 输入或选择以下信息。 - 字段 - 价值 - 名称 - 人员示例 OData 数据源 - 网址 - https://contosowebservice.azurewebsites.net/odata- 超时 - 30 - 返回内联计数 - 客户端分页 - 返回内联计数 - True 
将其他列保留 as-is,然后选择“ 保存并关闭”。
小窍门
使用自己的 Web 服务时,请验证 URL 是否有效,方法是将其粘贴到 Web 浏览器中。 如果要了解所感兴趣的表各自的列和数据类型,可以追加 /$metadata 到 URL 末尾,以查看 Web 服务中表的定义。
打开解决方案资源管理器
你创建的任何自定义表的名称的一部分是自定义前缀。 这是根据您在其中工作的解决方案的解决方案发布商设置的。 请确保在非托管解决方案中工作,其中的自定义前缀是您需要的此表的前缀。 详细信息:更改解决方案发布商前缀
打开非托管解决方案
- 在 Power Apps 中,从左侧导航窗格中选择 “解决方案 ”,然后在工具栏上,选择“ 切换到经典”。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。 
- 在 “所有解决方案 ”列表中,打开所需的非托管解决方案。 
创建虚拟表
- 在解决方案资源管理器的左侧导航窗格中,选择 “实体”,然后从主窗格中选择“ 新建 ”。 
- 在 “实体:新建 ”窗体上,选择 “虚拟表 ”选项,然后输入以下信息: - 字段 - 价值 - 数据源 - 人员样本 OData 数据源 - 显示名称 - 人员 - 复数名称 - 人员 - 名称 - 新用户 - 外部名称 - People - 外部集合名称 - People - 备注(包括附件) - 选定 - 活动 - 选定 - 注释 - OData 资源路径语义用于 - EntitySet标识资源。 在示例 OData Web 服务中,- EntitySet被定义为 People。 此值用作虚拟表 Person的外部名称。
- 在 显示此实体的区域旁边,选择“ 销售”,然后选择“ 保存 ”(但不关闭表窗体)。   
为虚拟表创建列
在实体:人员页的左侧导航窗格中,选择字段。 在本演练中,你将编辑两个现有列,并添加三个在外部数据源中可用的列。
重要
外部名称区分大小写。 请参阅 Web 服务元数据以确保使用正确名称。 可空值 false 表示属性为必需属性。 请注意,主键列始终是系统要求的。
- 打开 new_personid 列,并使用此处指示的值更改以下属性: - 外部名称:ID   
- 选择保存并关闭。 
- 打开 new_name 列,并将以下属性更改为具有此处指示的值: - 显示名称:姓氏
- 外部名称:LastName
   
- 选择保存并关闭。 
- 选择“ 新建”,然后在“ 字段:人员新建 ”页上输入以下信息: - 字段 - 价值 - 显示名称 - 名字 - 名称 - new_firstname - 外部名称 - FirstName - 字段要求 - 业务必需的 - 数据类型 - 单行文本   
- 选择保存并关闭。 
- 选择“ 新建”,然后在“ 字段:人员新建 ”页上输入以下信息: - 字段 - 价值 - 显示名称 - 年龄 - 名称 - 新纪元 - 外部名称 - 年龄 - 字段要求 - 业务必需的 - 数据类型 - 整数   
- 选择保存并关闭。 
- 选择“ 新建”,然后在“ 字段:人员新建 ”页上输入以下信息: - 字段 - 价值 - 显示名称 - 上次修改时间 - 名称 - new_lastmodifiedon - 外部名称 - LastModifiedOn - 字段要求 - 业务必需的 - 数据类型 - 日期和时间   
将列添加到主窗体
- 在人员表窗口中,选择窗体。 
- 打开主窗体,将右窗格中的 “名字”、“ 年龄”和“ 上次修改时间” 列拖放到“ 常规 ”部分中的窗体上。   
- 在“ 人员 ”表窗口中,选择“ 保存并关闭”。 
配置默认视图
- 在解决方案资源管理器的左窗格中,在“人员”实体下,选择“视图”。
- 打开 “所有用户 ”视图。
- 在 “常见任务 ”窗格中,选择“ 添加列”。
                
- 选择“ 名字”、“ 年龄”和“ 上次修改时间” 列,然后选择“ 确定”。
- 在视图: 所有人员窗口上,通过选择左移和右移箭头来排列列顺序,然后选择保存并关闭。
- 在“解决方案资源管理器”窗口中,选择“ 发布所有自定义项”。
- 发布了所有自定义项之后,关闭解决方案资源管理器窗口。
在模型驱动应用中使用虚拟表
创建模型驱动应用并将 Person 表添加到站点地图。 然后,选择 “人员” 主窗体和 “人员高级查找” 视图。 发布应用。 详细信息: 从头开始生成第一个模型驱动应用
然后,应用用户可以像Microsoft Dataverse 中的其他任何表一样,使用虚拟表执行读取、创建、更新和删除作。
使用虚拟表创建、查看和删除记录
- 运行模型驱动应用。 选择“ 新建”,完成所需的列,然后保存记录。
- 再次选择 “新建 ”以创建另一条记录并保存。
- 现在,在“ 所有人员 ”视图中,应有两条类似于以下内容的记录。
              
                
- 若要删除记录,请选择人员记录,然后选择“ 删除”。 确认以删除确认页上的记录。