酒店应用程序的融合开发第3部分:通过使用表单数据扩展应用程序

目录

使用Dataverse API

获取访问令牌

通过API调用插入以前的访问

扩展UI应用程序

做出改变

下一步


这是3部分系列的第3部分,介绍了融合开发的概念,并使用一个实际的用例从专业开发人员的角度展示了它是如何工作的。本文展示了专业开发人员如何将数据插入Dataverse表,在酒店经理不了解后端的情况下完成整个流程。

这个由三部分组成的系列演示了普通开发人员专业开发人员如何通过融合开发一起工作。该系列构建了一个适合酒店业务需求的应用程序,使酒店员工能够快速登记客人并更新公司的中央预订数据库。

通过将数据存储在Dataverse中,普通开发人员无需深入的技术知识即可构建功能齐全的UI。同时,我们可以通过监控Dataverse的变化,在后端SQL数据库中设置信息更新。这种设计将UI与后端分离,如下图所示:

在之前的文章中,我们建立了从员工签到客人到将签到传播到API端点的路径。在上图中,它从右列移到中间,然后移到左侧)。

本文以相反的方向移动数据,从左列到中间,然后到右侧。我们会将新数据从后端传播到客户端,然后再传播到员工。这些操作将数据导入Dataverse

SQL数据库中的另一个表存储有关客户以前访问的信息。目标是让专业开发人员传播有关来宾先前访问Dataverse的信息,以便Power Apps应用程序显示。然后,客户服务代理可以使用此历史信息来个性化客人当前的酒店住宿。

使用Dataverse API

为该项目使用Dataverse API是一个两步过程。我们获取一个访问令牌,然后使用访问令牌将数据插入到Dataverse表中。

获取访问令牌

在获取Dataverse的访问令牌之前,需要设置一些项目。这些链接提供了有关如何执行这些任务的更多详细信息。以下是关键点的摘要:

首先,在Azure应用程序目录中注册一个应用程序(参考文档步骤 1-4)。

然后,将Dataverse权限 (Dynamics CRM)分配给已注册的应用程序(参考文档步骤6-8)。

接下来,转到DataverseOAuth然后单击菜单中的证书和机密。为应用程序创建一个Secret并记下Secret ID

然后,在Overview中,记下Application (client) IDTenant ID

现在,将Manifest中的以下值更新为true :allowPublicClientoauth2AllowImplicitFlow

然后,使用应用程序IDPower Platform管理中心创建一个应用程序用户。

在本教程中,我们将使用Postman来展示如何确保这些API调用与平台无关。这篇Microsoft文章解释了C#开发人员如何使用官方C#库进行连接。

无论采用何种方法,都可以从Power Platform 管理中心获取服务URL 。选择适当的环境以在屏幕上查看环境URL

要获取访问令牌,请使用POST调用https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token

POST /ce22f12e-9766-4af6-bc48-cc0b4a012c9a/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id={client_id}&grant_type=client_credentials
&client_secret={client_secret}&scope=https://{service_url}//.default

{client_id}, {client_secret} and {service_url} are values obtained from previous steps.

然后,进行GET调用以接收未来API调用的访问令牌。

接下来,开始将信息发布到Power AppDataverse

通过API调用插入以前的访问

使用访问令牌,该应用程序现在可以进行API调用,以将有关访客之前访问的信息插入Dataverse

有两个设计选项:将数据插入现有的预订表并让Power App根据记录是否有入住日期进行筛选,或者创建一个新的Dataverse表来存储以前的访问信息。

SQL数据库仍然具有与以前相同的表,另外还有一个表来存储有关客人体验的信息。

第二个选项需要较少的Power Apps维护。普通开发人员不需要了解有关后端如何确定预订是否为新预订的复杂细节。选项二还避免了由普通开发人员和专业开发人员写入保留表引起的潜在冲突。

因此,在New table中创建这个新的Dataverse表:

Display name: Previous Visit
Plural Display Name: Previous Visits
Name: previousvisits
 
Primary Name Column
Display name: Reservation Code
Name: reservationcode

Columns:
Customer Name: Text
Check Out Date: Date And Time
Rating: Whole Number
Comments: Text

请注意,表名和列名前面有一个唯一的前缀,以确保名称在不同环境中是唯一的。

应用程序将使用这些完整的表名来进行插入调用。

要在Previous Visits表中插入一行,请使用POST访问令牌 ({access token})进行以下调用。

POST {service_url}/api/data/v9.2/cxxxx_previousvisits HTTP/1.1
Authorization: Bearer {access token}
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"cxxxx_reservationcode": "CRB967348",
"cxxxx_customername": "Sample Guest",
"cxxxx_checkoutdate": "2022-01-12T15:06:26Z",
"cxxxx_rating":7
}

在上面的代码中,替换cxxxxPower Apps环境生成的前缀。请注意,表名应为复数形式,末尾带有s

接下来,将方法切换到GET以验证是否已创建条目。

同样,通过将数据写入cxxxx_reservations表来插入新的预订:

POST /api/data/v9.2/cxxxx_reservations HTTP/1.1
Host: {service_url}
Authorization: Bearer {access token}
{
"cr7ec_reservationcode": "CRX767348",
"cr7ec_customername": "Fourth Test"
}

现在,在UI应用程序中添加功能以显示有关客人以前访问的信息。

扩展UI应用程序

以下部分介绍修改Power Apps应用程序。普通开发人员可以自己执行这些任务。

有许多选项可用于显示有关客人的相关信息。在本教程中,我们将在同一屏幕上将它们呈现为垂直图库。

此屏幕截图提醒了现有应用的外观和功能:

我们将应用修改为如下截图:

做出改变

首先,单击数据选项卡并将Previous Visits表添加到应用程序以更新Power App

然后,点击Tree view,选择右侧的垂直容器,在容器内插入一个垂直图库。

在新图库中,将数据源设为Previous Visits

然后,选择适当的字段和布局。例如,上面的屏幕截图使用标题、副标题和正文布局来显示预订代码、评级和结帐日期。

该图库目前将显示所有客人的所有访问。回想一下,第一篇文章设置了一个变量selectedItem作为员工选择的预订。

因此,使用selectedItem过滤图库。 Advanced选项卡的Data部分中,将Items更改为以下内容:

Filter('Previous Visits', 'Customer Name'=selectedItem.'Customer Name')

此设置告诉图库只为进行预订的同一客户显示Previous Visits表中的项目。

使用ID进行比较更可取,但这超出了本系列的范围。要了解更多信息,请查看Dataverse表中的关系

下一步

在本教程中,我们了解了如何使用Dataverse API将数据插入Dataverse。普通开发人员可以轻松添加UI以连接到新数据。

本系列展示了普通开发人员和专业开发人员如何协同工作来满足业务需求。当员工签入来宾时,Dataverse会保存数据,Function应用会将数据传输到SQL数据库。当新数据进入SQL数据库时,专业的开发人员还可以使用Dataverse API更改Dataverse中的数据。

这种融合开发方法使每个人都能够专注于他们最擅长的事情。普通开发人员利用他们对业务需求和卓越客户服务的了解来构建UI。然后,专业开发人员专注于维护UI应用程序和后端之间的数据完整性。

同时,酒店客人可以享受更轻松的入住流程,并返回个性化体验。

Power Apps生态系统使无代码和低代码普通开发人员能够创建功能性应用程序,并帮助专业开发人员节省时间来构建更高级的功能。

使用新功能扩展此酒店预订应用程序,或使用Power Apps从头开始​​创建新内容。

要了解如何加速基础应用程序开发,请查看开发人员的低代码应用程序开发 7 步指南

https://www.codeproject.com/Articles/5327554/Fusion-Development-for-Hospitality-Apps-Part-3-Exp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值