【转】使用PowerApps快速构建基于主题的轻业务应用 —— 进阶篇
在上一篇?使用PowerApps快速構建基于主題的輕業務應用 —— 入門篇?中,我用了三個實際的例子演示了如何快速開始使用PowerApps構建輕業務應用,你可能已經發現,我都是使用默認生成的設置,沒有做任何修改。當然,那樣做出來的應用看起來不那么酷,但已經可以運行了,作為一個起點,已經不錯了,不是嗎?
但這樣自動生成的應用,估計也不能直接用于咱們實際的工作中,為了達到這個目的,你還多多少少需要掌握一些“高級”知識,并且要多一些練習。這一篇將從如下幾個方面展開介紹
布局與控件
讓我們再次回到之前自動生成好的基于Excel文件的訂單應用吧。
我們先從左側開始來剖析一下這個應用。作為一個給最終的業務用戶使用的應用,它是怎么構建用戶界面的呢?這個應用雖然簡單,但其實已經包含了我們常說的“增刪改查”的四項基本功能。PowerApps的應用是由一個一個的Screen(屏幕)組成的,一個屏幕通常代表了某一項功能,例如
值得注意的是,以上名稱只是推薦的做法,并不強制要求查詢的屏幕名稱必須叫BrowseScreen,也不要求你必須要上面三個屏幕。事實上,你隨時可以添加自己需要的屏幕(Screen)。
順便要提一下的是,PowerApps的應用天生就是面向移動設備來使用的,所以它默認是有兩種布局:手機的布局,和平板電腦的布局。我們此前自動生成應用的時候,是選擇“手機的布局(Phone Layout),這個取決于模板的設置。但一旦熟悉之后,我們完全可以自己選擇布局,然后開始設計。
你可以從零開始做,也可以從一個模板開始做,但請注意這次選擇“Tablet Layout”
回到應用本身,我們剛才說了,PowerApps的應用是由一個一個屏幕組成的,那么屏幕又是由什么組成的呢?控件。
PowerApps的控件,總體來說,分為兩大類,一類是容器控件,一類是普通控件。容器控件是可以包含其他控件的控件。主要包括下面兩類:
相比較而言,普通控件則更多,也更加有意思。總體來說,可以分為下面幾個類別,請注意粗體部分,這是PowerApps在移動優先這個目標之下的一些亮點功能。
現在你對于PowerApps所支持的一些圖形化界面元素都有了一個基本的了解,接下來就是怎么真正地使用好它們了。你不需要去學一門編程語言,只需要知道這些控件的使用無外乎兩個方面
為控件的屬性賦值。一般是選中一個控件后,在右側會有一個屬性面板,列出了所有可以設置的屬性。當然,如果你已經比較熟悉的話,則可以在工具欄下面的編輯欄中直接輸入屬性名和值,快速來完成設置。
為控件的事件綁定表達式。除了純粹顯示數據的控件,大部分控件都是可以交互式操作的,例如接受用戶的點擊等。如何為這種行為做出響應呢?在編程中,我們的專業術語叫編寫事件處理程序。PowerApps不需要編碼,所以它提供了一些特殊的表達式來實現簡單的事件處理邏輯。例如下面是一個最常見的按鈕事件,當用戶點擊后,它會從第一個屏幕切換到第二個屏幕。這里用的是navigate函數(另外還有Back,Forward函數來表示后退和前進)。你其實不需要記住這些東西,選擇你的控件后,在頂部的Action菜單中,一般會列出來該控件支持的常見的操作。Navigate是一個導航的功能,Collect是一個收集數據的功能(我在下一節會介紹),Remove則是刪除數據的操作,跟Collect對應。Flows能夠發起一個外部流程,這里先不做展開,后續有專門的文章介紹。
請注意,你可以在事件表達式中定義多個操作,只要用分號將他們分開即可,例如?Collect(TestData,Dropdown1.Selected);Navigate(Screen2, ScreenTransition.Fade)
在這里,我建議大家花個半天的時間,逐一地了解這些控件,理解常見的屬性以及事件,只要大致做過一次,我相信對于你日后使用PowerApps將有極大的幫助。
使用數據
接下來要談一談數據。大家知道,界面只是一個表象,真正用戶在交互的其實是數據。我在?入門篇?中已經介紹了Excel文件,SharePoint List,Dynamics 365的業務實體作為數據的場景。今天要進一步深入探討一下。
首先,你要知道的是,一個PowerApps的應用可以使用多個數據源,一個數據源反過來也可以用于多個PowerApp的應用中。在頂部菜單中找到View,點擊Data Source可以查看到當前這個應用中能用到的所有數據源,當然也可以添加你需要的其他數據源。
其次,你需要掌握幾個常見的數據篩選函數。雖然一個應用中能支持多個數據源,但是它沒有辦法像PowerBI 那樣在這些數據源建立映射和關系。那么,當我希望根據用戶的選擇,決定對某個數據集合進行篩選、排序等操作時應該怎么辦呢?答案是使用數據篩選函數。PowerApps提供了三個非常強大的函數:Filter、Search 和 LookUp。我非常推薦大家要詳細閱讀?https://docs.microsoft.com/zh-cn/powerapps/functions/function-filter-lookup?這篇文章并且進行實際的操作來加深了解,這是你從會做一個Hello world這樣的應用到一個實際能用在工作中的應用必須要學會的。
最后,你需要了解如何在屏幕傳遞數據。如果我們需要從一個屏幕切換到另外一個屏幕,如何將前一個屏幕的數據傳遞過來呢?PowerApps提供了上下文變量的概念,而且在很多函數中都自帶了這個功能,例如Navigate函數,就可以在第三個參數定義要傳遞下去的變量和值。下圖定義了一個Language的變量,僅在這個Navigate的生命周期內有效。
你還可以通過下面的功能查看所有的變量,以及它們被使用的情況
關于PowerApps的上下文變量的細節,請參考?https://docs.microsoft.com/zh-cn/powerapps/functions/function-updatecontext
如果想要定義在整個應用程序都能用的全局變量,請參考Collect函數?https://docs.microsoft.com/en-us/powerapps/functions/function-clear-collect-clearcollect
對于絕大部分數據源來說,每次都是以當前用戶的身份去訪問的。所以不管你是一個Excel文件放在OneDrive for Business,還是一個SharePoint List,在分享給同事們之前,你需要確保他們是有權限訪問到的。
PowerApps也提供了一個專門的函數(User),用來獲取當前用戶的郵箱,顯示名稱,個人頭像這三個數據。
使用網關
PowerApps默認支持上百種數據源,尤其是對于云端的SaaS應用有極好的支持。但是,假設你的數據不在支持列表中,或者你的數據是在公司內部的服務器,能否一樣享受到PowerApps帶來的好處呢?答案是可以,PowerApps通過一個網關(gateway)的技術,可以在你授權的情況下安全地連接到你私有的數據。
點擊右上角的New Gateway按鈕,你將被引導到一個下載界面
下載完成后雙擊安裝,最后輸入你能登錄到PowerApps的賬號進行身份認證
如果你看到下面這樣的界面,則表示配置成功了。我們發現PowerApps,Microsoft Flow,Power BI是共用Gateway這個基礎設施的,無需配置三套。
那么怎么使用這個網關呢?我們還是要回到網關的管理界面,你看到現在多出來一個gatewaydemo的網關
接下來,你在新建連接的時候,選擇你的數據源類型(例如SQL Server)后,在具體配置的時候,選擇使用Connect using on-premises data gateway
詳細步驟你還可以參考?這篇文章
應用生命周期管理
本文的結束,我想要給大家介紹關于PowerApps的應用生命周期管理的概念。PowerApps是面向業務用戶、快速開發和迭代的一個平臺,只有這樣才能滿足隨需應變的業務需求。所以,你會快速開始工作,發布你的應用,然后在使用過程中,根據反饋再快速調整設計,然后又重新發布。這樣就帶來一個版本管理(或者再往大里說——應用生命周期管理)的問題。
PowerApps會為每次發布保存一個版本,例如下圖可以看到我的AppTest這個應用,目前兩個版本,而版本2是目前在使用的(Live)
如果你發現版本2并不是很穩定,或者某些功能并不是你所預期的那樣正常工作,你完全可以在這里回滾到版本1,通過點擊版本1的Restore按鈕即可。
總結
以上是生活随笔為你收集整理的【转】使用PowerApps快速构建基于主题的轻业务应用 —— 进阶篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 沪金期货买一手需要多少钱?举例计算
- 下一篇: 新基建指数与新基建50指数有什么区别?一