2020年11月16日,星期一

使用Power Automate自动执行位置签到

地理围栏是每当设备(即用户的移动设备)移入或移出区域时位置服务都会触发动作的想法,并且有很多很好的用例。在个人/家庭自动化方面,您可能想在离开家时自动关闭房灯并启动警报(如果熟悉的话,请考虑使用IFTTT或Zapier),而在工作方面,您的雇主可能会提供该应用程序会根据您所在的位置自动将您签入(签出)办公地点(或签出)-仅举两个示例。我正在研究内部办公桌预订应用程序的后一种情况,这是“在Covid期间对办公室进行有控制的使用”计划的一部分。 

您可以想象很多情况下了解用户的位置以及位置是否已更改可能会很有用。

Power Platform有两种方法可以利用这一点。我一直在研究Power Automate中的Location触发器,它提供了一个名为“当我进入或退出区域时”的Flow动作:

与地理围栏一样,您可以在世界上任何地方指定位置,并在其周围创建半径。由于使用了用户移动设备上的GPS,因此该位置是近似的,但它在大多数情况下都非常有效: 



事情运转了好一阵子,但是后来我遇到了这个问题:

位置触发器已从Power Automate中删除!

触发器仅处于预览状态,可悲的是,自从我撰写本文(并截取了上面的屏幕截图)以来的几周内,触发器已被删除。目前尚不清楚它是否会返回,尽管在Internet上有痕迹,但Microsoft文档中没有提及它。

太可惜了!坦白说,在Power Platform中,无论如何触发器都存在挑战-它只能用于个人流程, 意味着应该使用该功能的每个用户都需要创建自己的Flow。 显然,这不适用于组织提供的任何类型的业务解决方案,但对于个人自动化仍然有用。

我们还可以如何根据用户位置进行自动化?

好消息是Power Automate仍然能够了解用户的设备位置。仅仅通过移入或移出定义区域即可触发的全自动解决方案, 但是如果您希望用户手动单击其设备上的按钮,类似的自动化仍然是可能的。确实,在某些情况下,这种方法可能是 首选 从而实现一定程度的人工控制和选择参与-允许用户避免在情况不允许的情况下触发流程(例如,暂时离开区域半径以享用午餐)。 

因此,让我们看一下如何构建考虑用户位置的Power Platform应用程序。

使用“流程”按钮记录位置访问

流量按钮提供了一种使用超级简单的用户界面构建移动应用程序的好方法-无需深入研究任何类型的编码或 本机 iOS或Android开发。在下面的示例中,我使用了一个简单的按钮和一个非常简单的表单。但是首先,先决条件。

此类解决方案的首要要求是用户必须在其移动设备上安装Power Automate应用程序。您的组织可以使用MDM或MAM解决方案将其推出,或者可以在Apple和Google应用商店中使用:

用户将需要使用其Microsoft 365身份登录该应用程序。另一个重要的事情是,在设备上为Power Automate应用程序启用了位置服务-如果我们要收集和记录位置,这显然是必要的。 

进入应用程序后,用户将 转到应用中的“按钮”区域 使用底部的导航栏。

使用“手动触发流”触发器创建的任何流都将显示在此处: 



在我的解决方案中,我有一个流来记录一次位置访问的详细信息-在上图中这是“报告位置状态”,您还可以看到其他一些也使用按钮触发器的流。正如您可能已经了解到的那样,这些被称为“流程按钮”,它们提供了一种非常快速简便的手动触发过程的方式。无需创建和部署自定义应用程序-相反,我们可以背负Power Platform提供的功能。 

单击该按钮时,可以选择一些信息以输入该过程。在记录位置访问的示例中,流程请求收集“状态”:


就我的解决方案而言,当用户提交此“位置报告”时,我会将详细信息存储在SharePoint列表中。 Power Automate完成了在按下按钮时自动得出用户位置的艰苦工作,并使用一点列格式设置魔术,我可以显示该位置的小地图,而不仅仅是地址文本:

 
 
就是这样了!在Power Platform中花费很少的精力,我们就有了一个移动应用程序,它可以收集用户的位置,收集其他信息并将其登录到中央存储(例如Microsoft 365中的SharePoint列表)。
 

我们如何建立它?

我们已经介绍了用户会看到的内容,但是Power Automate创建它需要什么?我们首先使用“手动触发流程”触发器创建流程。请注意,在我的情况下,我添加了一个名为“状态”的输入,并提供了一些帮助文本:


实际上,您可以堆叠这些输入中的几个,并本质上创建一个微型表单,当用户按下按钮时呈现给用户-当您认为不需要编码并且我们甚至不需要Power App时,该表单将变得非常强大。 

该流程的下一步只是将项目记录到SharePoint。我已经准备好与适当的列一起使用的列表,我只需要配置Flow操作以将数据存储在每个列中:

 
重要的是触发器可以使用多个令牌,包括:
  • 用户名
  • 用户电子邮件
  • 时间戳记
  • 日期
  • fullAddress-这是用户自动获取的位置的完整地址
  • 许多地址子组件:
    • 邮政编码
    • 国家
    • 纬度
    • 经度
  • 就我而言,您添加的所有输入(例如“状态”) 
我的流程的最后一步是向用户发送确认报告已成功记录的确认信息:


结果在设备上出现:


因此,我们设法捕获了用户的位置以及该位置的状态报告,并向他们确认数据已保存。 

概要


Power Platform具有许多用于构建应用程序的惊人功能,对于简单的移动应用程序尤其如此。利用设备功能(例如位置和摄像头)的能力意味着您可以快速构建功能强大的应用程序,而无需编写代码-当然也不必担心本机应用程序开发和发行的所有麻烦。在这篇文章中,我们研究了如何使用“流量”按钮快速从移动应用程序触发流程,以及如何捕获当时的用户位置。 

不幸的是,预览中的“当我进入或退出区域时” Power Automate触发器尚未发布-但我们希望它回来,因为这将解锁围绕自动化和用户位置的一些绝佳方案。来吧微软!