【转】使用PowerApps快速构建基于主题的轻业务应用 —— 入门篇

前言

在上一篇文章 基于Office 365的随需应变业务应用平台 中我提到,随着随需应变的业务需要,以及技术的发展,业务应用的开发的模式也有了深刻的变化。基于微软的平台,有服务于主干业务应用的Dynamic 365 业务应用平台(包括CRM和ERP),也有服务于员工日常工作的Office 365 生产力平台。这看起来非常清晰,但他们的界限其实在逐渐模糊,谁说在Office 365上面就不能进行业务操作呢?又谁说在Dynamics 365这个成熟的平台上用户不能自己去定义自己需要的应用呢?

我曾经在年初的 这篇文章 提到Office 365 这些年本身也在朝微服务方面发展,不仅服务粒度越来越小,易于根据用户的需求进行组合,同时还创新性提供了包括Bookings和Staffhub这种专业性的业务服务,有兴趣的朋友可以参考 bookings, staffhub, 并且我们有理由相信,这只是一个开始。

我们今天要谈论的基于主题的轻业务应用,更多是偏向前台创新应用和差异化应用。而所谓的随需应变,就是让更多的业务人员拥有构建面向主题的业务应用的能力,并且能随时根据捕捉到的信息进行调整,以达到快速响应变化的目标。

为了使得业务用户自己有能力构建基于主题的轻业务应用,微软给出的答案是一套全新定义的商业应用平台,主要包括了PowerApps,Flow,PowerBI这三个组件。他们与Office 365以及Dynamics 365是紧密的集成关系(当然,他们也支持很多其他的外部系统),通过底层的通用连接器、数据模型、网关进行连接,并且在必要的时候,也支持高级定制化。

PowerApps可以根据数据模型快速生成移动优先和云优先的业务应用,这个应用里面如果需要实现业务流程,则通过Flow来解决,而最终产生的大量数据,则通过PowerBI来展现,或者根据数据的规则发起新的流程或者应用操作,它们形成了一个闭环,可以满足不断优化的、随需应变的业务需要,最重要的一个前提是,这一切都是由业务用户自己来做的,无需编程。本文将用实例介绍PowerApps的快速入门,其中包括四个场景:

  1. 基于一个保存在OneDrive for Business个人网盘中的Excel文件创建业务应用
  2. 基于SharePoint Online的列表创建轻业务应用
  3. 基于Dynamics 365 创建自定义应用
  4. 在Microsoft Teams中集成PowerApps

先决条件

在如下的几种情况下,你可以开始使用PowerApps

  1. 你已经拥有下面的Office 365授权
     Office 365 Business Essentials Office 365 Business Premium Office 365 Education Office 365 Education Plus Office 365 Enterprise E1 Office 365 Enterprise E3 Office 365 Enterprise E5
    
  2. 你已经拥有下面的Dynamics 365授权
     Dynamics 365 for Sales, Enterprise edition Dynamics 365 for Customer Service, Enterprise edition Dynamics 365 for Operations, Enterprise edition Dynamics 365 for Field Service, Enterprise edition Dynamics 365 for Project Service Automation, Enterprise edition Dynamics 365 for Team Members, Enterprise edition Dynamics 365 for Financials, Business edition Dynamics 365 for Team Members, Business edition
    
  3. 你单独购买了PowerApps
     PowerApps Plan 1PowerApps Plan 2
    

以上不同的授权存在一定的功能差异,请参考https://powerapps.microsoft.com/en-us/pricing/

截至目前为止,以上提到的PowerApps,Flow,PowerBI,除了PowerBI之外,另外两个组件还没有在中国区部署,据产品组给的一个大致的时间表是在2018年的中期有望落地。目前在国内访问PowerApps服务,偶尔会出现速度稍慢的问题,请大家谅解。

PowerApps是给业务用户来准备的,所以他的使用并不需要你懂编程,甚至都不需要了解数据库这些细节。PowerApps默认已经附带了一些标准的范例,你可以直接体验。

使用标准范例不过瘾?那就让我们用实例来练习一下吧。

基于一个保存在OneDrive for Business个人网盘中的Excel文件创建业务应用

让我们就从Excel开始吧。假设我们的场景是这样:你是一个销售部门主管,有一个Excel文件,是用来保存订单数据的,你希望快速开发一个轻量级的业务应用,可以让你以及同事快速地在手机上面就可以输入或修改订单信息、查询订单列表,以及其他一些你认为有意思的事情。有了PowerApps,你不需要等待开发人员(不管是你公司内部的IT部门同事,还是外面的专业团队)去开发一个网页,或者定制一个移动App,然后等待一到两周才能看到真正用起来。你要的只是把Excel文件定义好,就像下面这样

这里有一个小技巧:尽量用英文定义标题,否则你可能会遇到一些小问题。

没有什么特别的,除了你需要定义一个表格,然后把这个文件保存在你的OneDrive for Business中即可。(你在第一行输入标题后,选择A1,然后在“插入”菜单中选择“表格”)

接下来,你要做的是打开https://preview.web.powerapps.com这个在线的应用开发平台,用你的账号(不管是Office 365账号,还是Dynamics 365账号,或者单独的PowerApps账号)

点击左侧的Apps,然后选择右上角的"Create an app"

选择“OneDrive for Business” 里面的“Phone Layout”

如果你是第一次运行,则可以通过下面的界面创建一个连接

如果你之前已经创建过连接,则定位到并单击你保存的Excel文件,PowerApps会自动检测文件内部的表格,选中其中一个表格后,点击右下角的Connect按钮

一两分钟后,你就能看到一个自动生成的应用

我们这里先不展开细节,可以直接按F5运行这个应用

点击右上角的加号(+),可以输入订单信息

点击右上角的勾号,可以保存当前这条记录,并且自动给回到主界面,此时会显示所有的订单列表

如果点击某条记录,则会进入订单的详细界面

点击右上角的笔形按钮,可以进入订单的编辑视图

到这里为止,我们就完成了一个最简单、但确实能立即工作的轻业务应用,你已经在预览界面中进行了操作,接下来要做的是什么呢?当然是保存这个应用啦。

正如你看到的,你还可以将这个应用保存在本地计算机(This computer)。这个操作会生成一个扩展名为msapp的文件,收到这个文件的用户也可以双击打开应用。

然后你可以将应用分享给需要的同事

点击“Share this app” 按钮, 你可以一次性添加公司中所有同事,让他们可以使用这个app,也可以单独添加某个同事。后面这种情况下,你还可以授权给这位同事可以一起编辑。如下图所示

我们指定分享的同事会收到一封邮件,大致如下图所示

如果他点击了“Use the app”的话,会弹出下面的页面,要求他进行授权

这里的授权,主要是希望得到用户的许可,OneDrive for Business可以代表用户去进行必要的操作。

但这里需要特别注意的是,如果该同事并没有被授予访问上面提到这个Excel文件的权限的话,虽然能打开OrderApp,但无法读取任何数据,也无法进行操作。作为应用的作者,我需要在OneDrive for Business中选择该文件,然后给同事授予访问权限。

到现在为止,一个最简单但足够实用的应用就创建好了,你可以通过网页版(https://web.powerapps.com/home) 进行访问,也可以通过免费的一个Windows桌面客户端(PowerApps)来进行使用。但用得最多的场景,我估计是使用手机吧。目前PowerApps这个应用可以在Apple Store和Google Play等应用市场中免费下载。

这个PowerApps其实相当于是一个超级App,它负责来运行我们自定义的业务应用。打开这个PowerApps,输入账号和密码登陆后,可以看到你有权使用的所有应用。

点击某个应用,你就可以进行数据查询和操作了,这一点都不奇怪,以至于我都不想多做截图了。我这里要给大家做一个提示的是,如果某个应用你需要经常使用,你甚至可以将它固定在手机的屏幕上面,而无需每次都进入PowerApps这个主界面,然后再查找了。

最后,所有用户在PowerApps中操作的数据,都将统一保存在Excel文件中。值得注意的是,PowerApps会在表格中增加一个特殊的列: PowerAppsId 用来唯一标识每一行。

以上我用了很长的篇幅,完整地介绍了如何基于OneDrive for Business中保存的一个Excel文件快速开发一个业务应用,并且分发给公司里面的同事,他们可以有多种方式进行使用的场景。接下来,我将继续展示两个最典型的场景。

基于SharePoint Online的列表创建轻业务应用

SharePoint 作为业界领先的团队协作和内容管理平台的能力已经得到了数以亿计的用户所认可。在团队协作这个场景中,有基于文档或者内容(如笔记)的协作,也有基于工作任务的协作。不光是文档,还是工作任务,他们的本质上都是一个列表。列表的强大超过了很多人的想象,以至于我这里并不准备过多地展开细节。我反而要说一说的是列表的简单,只要你会用Excel,你肯定会用列表,而且我鼓励你这样思考:SharePoint的列表是一种服务器技术,用来像Excel那样帮我们保存各种数据,它的共同编辑和协作更加容易。

要创建一个列表非常容易,在你的团队网站的首页上面,点击“新建”按钮,选择“列表”,然后输入一些基本信息即可

然后为这个列表增加一些字段,最终效果如下

细心的朋友肯定都已经发现了,在列表的顶部工具栏中,其实已经看到了PowerApps这个按钮,可以说这是PowerApps与SharePoint无缝整合的有力证明了。点击这个按钮,会有两个选项,一个是“创建应用”,一个是“自定义表单”。我们先选择第一个吧。

点击“创建”按钮,差不多一两分钟时间,PowerApps会根据SharePoint这个列表结构,自动能够生成一个应用。

即便不做任何修改,这个应用也已经能用来填写工作日志了。至于如何分享,如何在移动设备中使用,我这里就不再赘述。但直得注意的是,如果一个列表关联了至少一个PowerApps应用的话,它的主界面会多出来一个对应的视图

点击“打开”按钮将启动PowerApps对列表进行操作

其实PowerApps只是用户界面,所有的数据都是保存在列表里面的

不要忘记,如果你要分享给同事,希望他们能使用这个应用能提交工作日志的话,他们必须被授予访问这个列表的权限。

看起来挺方便的,不是吗?这还不是全部呢。下面介绍另外一个PowerApps与SharePoint结合的场景。我相信,虽然有了PowerApps,还是会有一些用户习惯直接在SharePoint里面编辑和修改列表数据。我们先来看一下默认情况下SharePoint提供的列表项编辑界面吧

这个默认的界面已经很不错了,但如果用户想要有自己的界面,我们该怎么做呢?很久很久以来,我们有一个强大的技术,叫做Infopath,它是一种基于XML定义的表单技术,使用它可以自定义SharePoint列表的界面。我以前写过很多这方面的文章,其中一篇可以参考 http://www.cnblogs.com/chenxizhang/archive/2010/04/22/1718090.html .

但Infopath有它的问题,而且对于SharePoint的版本有依赖。进入SharePoint Online的时代以来,我们已经不使用Infopath了。但直到现在,才揭晓了它的替代方案,那就是PowerApps。

其实很简单,在列表的工具栏中选择“PowerApps”,在下拉菜单中选择“自定义表单”,你就很快看到会生成一个应用。

请注意,为了让大家看到效果,我在界面底部故意加了一个文字。选择左上角的“Back to SharePoint”按钮,按照提示发布应用,然后在SharePoint页面上再次创建列表项的话,就会看到下面这样的界面。

请注意,这个自定义表单功能,只影响网页编辑界面。SharePoint 移动App上面的界面还是会使用默认的。

基于Dynamics 365 创建自定义应用

最后,我们快速来了解一下PowerApps如何跟Dynamics 365结合创建自定义应用。这个场景其实跟前面两个也很类似,无外乎是数据源换成了Dynamics 365而已吧。

选择“Dynamics 365”这个模板, 然后用你的Dynamics 365账号创建一个连接,选择到合适的业务实体对象

然后点击“Connect”,PowerApps又开始根据给定的数据结构自动生成应用的神奇工作了。每到这个时候,我就想起那个“怎么样分三步将一头大象装进冰箱”的经典桥段。

后面的步骤与OneDrive for Business非常类似,我这里就不重复了。

将PowerApps应用集成到Microsoft Teams中

之前使用PowerApps的业务应用至少有三种方式:网页,桌面客户端,移动客户端。现在又多了一个选择,就是将它直接集成到Microsoft Teams这个一站式的协作和沟通工具中。

Microsoft Teams是Office 365的一个组件,如果你还不熟悉,请参考 https://products.office.com/zh-cn/microsoft-teams/group-chat-software

下面是我们看到的一个常见的Team的界面

点击界面上“Wiki”旁边的加号,我们可以添加PowerApps这个功能作为一个选项卡

如果第一次使用,会有一个界面,提示安装,你只需要点击“Install”即可,然后会进入下面的界面

点击“Save”,会自动创建一个选项卡,以后用户就可以直接在Teams中运行这个应用了

请注意,如果是在Microsoft Teams的移动客户端中,会尝试直接打开PowerApps应用,而不是在Teams中打开应用

扩展阅读

看完这一篇入门文章,我不能保证你对PowerApps有了很深的理解,但我确信你可以认识到PowerApps的威力了吧。要把这个工具用好,你可能还需要进一步的阅读,我这个系列后续还有高级篇,我还是推荐大家记住PowerApps的官方文档地址 https://docs.microsoft.com/zh-cn/powerapps/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark内核源码学习(暂未学完)

1) 回顾 1.1 Spark通用运行流程概述 在submit任务条件是需要指定executo个数,executor-CUP个数,可以提高并行度。 什么是并行,什么是并发? 并发:假如有多个任务task,并行是在一个cup中&#x…

【转】使用PowerApps快速构建基于主题的轻业务应用 —— 进阶篇

在上一篇 使用PowerApps快速构建基于主题的轻业务应用 —— 入门篇 中,我用了三个实际的例子演示了如何快速开始使用PowerApps构建轻业务应用,你可能已经发现,我都是使用默认生成的设置,没有做任何修改。当然,那样做出…

Spark一些组件的定义

Driver program: 运行应用程序的main函数并创建SparkContext的进程 除了RDD的最终执行所写的业务逻辑,剩下的都在Driver里生成,Driver端执行action算子才会到开始执行所创建的DAG-RDD图。 Cluster manager: 用于获取集群资源外部服务 Mas…

【转】D365 FO第三方集成(二)---访问认证(获取访问令牌)

D365 FO 在github上发布了第三方访问D365 FO的示例代码,里面包含了各种调用示例,代码很清晰。https://github.com/microsoft/Dynamics-AX-Integration 这篇blog简单分析一下代码中获取访问令牌的部分代码。 与获取访问令牌相关的代码有两个类ClientConfi…

【转】D365 FO第三方集成(三)---服务实现

D365 FO的Custom Service的实现比AX2012简单了很多。 AX2012服务方法要用属性SysEntryPointAttribute标记,添加到Services以后,还要发布服务并在系统管理入站端口添加操作,服务运行在CIL下,所以每次改动服务方法的代码都要增量生成…

PHP连接sql seaver数据库

我的PHP版本7.0 通过sqlsrv系列函数,需要下载安装Microsoft Drivers for PHP for SQL Server驱动: 地址:https://msdn.microsoft.com/library/dn865013.aspx。 根据自己需求下载安装,安装地址php下ext目录下,我的是4.0…

NoSql理解+传统关系型数据库ACID+Nosql的CAP+BASE的理解

1)什么是Nosql NoSQL(NoSQL Not Only SQL ),意即“不仅仅是SQL”, 泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显…

ztree 点击重载 layui table

ztree 点击重载 layui table <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <HEAD><TITLE> ztree_demo </TITLE><meta http…

数据结构与算法 - 稀疏数组(理解+代码实现案例)

举例 稀疏数组第一行是原数据几行几列和几个有效数据的个数 下面的行是各个有效数组的行列与具体值 稀疏数组实现 代码实现 package DataStructures.sparsearray;/*** 二维数组转稀疏数组 与 稀疏数组转成二维数组*/ public class SparseArray {public static void main(Stri…

数据结构 - 队列(非环形队列,以及优化成环形队列)

1&#xff09;队列的定义与实现形式-方式 2&#xff09;队列实现思路&#xff08;非环形&#xff0c;下面进行优化&#xff09; 3&#xff09;代码实现&#xff08;注意并不是环形&#xff09; package DataStructures.queue;import java.util.Scanner;/*** 使用数组模拟队列*…

爬取网易云音乐歌曲特色榜单信息

网易云音乐(iframe内的歌单) 刚开始学习做下记录 需要先下载好所需浏览器内核 我时谷歌&#xff0c;下载地址 http://chromedriver.storage.googleapis.com/index.html 然后没了&#xff0c;自己F12扒拉下就行了 运行&#xff1a; 左侧随便点击一个榜单后&#xff0c;复制ur…

数据结构 - 单链表(Linked List)实现在内存中实现数据以链表形式生成并根据序号排序

下面实现一个例子来进行学习 1&#xff09;介绍 单链表的逻辑结构 在内存中的实际结构 具体创建示意图&#xff1a; 2&#xff09;代码实现 例子 1。第一个程序在添加的时候并没有按照序号排序&#xff0c;如果在添加的时候把位置改变输出的时候序号会改变 package DataStr…

Mysql count() 语句

百万数据测试 select count(主键) from table 执行效率&#xff1a; select count(*) AS AGGREGATE from table 以上测试均再 navicat 工具进行 由于各种原因&#xff0c;sql执行时间可定存在一定误差&#xff0c;但最终结果不变。

phpStydy+wordpress 安装部署

1、先准备工具包 下载phpstudy&#xff0c;下载地址&#xff1a;https://www.xp.cn/ 下载wordpress &#xff0c;下载地址&#xff1a;https://cn.wordpress.org/download/ 2、安装phpStudy&#xff0c;下一步操作即可 3、安装完成后&#xff0c;检测环境配置&#xff0c;php、…

java数据结构 - 单链表(腾讯面试题实现单链表反转)

直接上实现代码 //单链表的反转public static void reverseList(HeroNode head){//如果当前链表为空&#xff0c;或只有一个节点&#xff0c;无需反转if (head.next null || head.next.next null){return ;}//定义一个辅助变量&#xff0c;帮助我们遍历HeroNode cur head.n…

数据结构 - 链表(双向链表学习)

程序里有几个注释的地方还是需要特别注意的&#xff0c;根据单链表自己的逻辑来写一遍双向链表&#xff0c;可能有几个细节处理的不到位。 package DataStructures.LinkedList;public class DoubleLinkedListDemo {public static void main(String []args){System.out.println…

【转】Mac下 如何配置虚拟机软件Parallel Desktop--超详细

Mac下 如何配置虚拟机软件Pparallel Desktop--超详细 Mac 的双系统解决方案有两种&#xff0c;一种是使用Boot Camp分区安装独立的Windows&#xff0c;一种是通过安装Parallels Desktop一类的虚拟机软件运行Windows。采用虚拟机的方式优势更明显&#xff0c;可以灵活的在两个系…

数据结构 - 链表(单向环形链表)(约瑟夫问题)

问题如下&#xff08;与分析&#xff09; 构建思路 输入一个数&#xff0c;数到这个数的小孩出圈&#xff0c;出圈顺序的思路 代码实现 根据图解&#xff0c;来一步一步实现 //根据用户输入&#xff0c;计算小孩出圈顺序/**** param startNo 表示从第几个小孩开始数数* param …

【转】什么是ERP、SCM、CRM?

ERP、SCM、CRM的区别 &#xff08;1&#xff09;从管理理念上来说&#xff0c;ERP的管理理念是提高企业内部资源的计划和控制能力&#xff0c;讲究的是在满足客户、及时交货的同时最大限度地降低各种成本&#xff0c;通过提高内部运转效率来提高对客户的服务质量&#xff0c;是…

【转】理解OAuth 2.0

作者&#xff1a; 阮一峰 日期&#xff1a; 2014年5月12日 OAuth是一个关于授权&#xff08;authorization&#xff09;的开放网络标准&#xff0c;在全世界得到广泛应用&#xff0c;目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程&#xff0c;做一个简明通俗的解…