Category: PowerApps

  • Employee recruitment and on-boarding with Office 365 and Power Platform – Pt 1

    Employee recruitment and on-boarding with Office 365 and Power Platform – Pt 1

    In the series of posts, we are going to look at how you can utilise the suite of Office 365 and Power Platform products to automate the recruitment and onboarding of new employees. We will use (among other things) SharePoint Online, Microsoft Teams, PowerApps, Power Automate, Word, Outlook and Power BI.

    We’ll also apply some JSON to format columns and create adaptive cards

    The scenario

    In this scenario, we will start with a request to recruit a new employee, which will then go through an approval process and trigger a series of actions within Power Automate flows.

    During this series, we’ll also create a Microsoft Team to store all details of applications and supporting documents (resumes, cover letters, etc.)

    Request to recruit

    To begin with, we’ll create a SharePoint team site (mine is called People Culture Team). In this site, we’ll create list (mine is called Recruitment Requests). My list has the following columns:

    NameType of column
    TitleSingle line of text
    Type of requestChoice
    (choices are ‘backfill’ & ‘new position’
    Position TitleSingle line of text
    New Position JustificationMultiple lines of text
    Previous Incumbent NameSingle line of text
    Previous Incumbent Reason For LeavingChoice
    (choices are ‘Internal Transfer’ & ‘Termination (including resignation’
    Covered By BudgetYes/No
    Request LocationChoice (for this example, you only need to have two or three choice. In real-life/larger company, you may prefer a lookup column)
    Reports ToPerson or Group
    Reports To PositionSingle line of text
    Employment TypeChoice (My choices are ‘Full-time’, ‘Part-time’, ‘Casual’ & ‘Fixed-term contract’
    Recruitment MethodChoice (My choices are ‘External’ & ‘Internal’)
    Commencement DateDate and time (Date only)
    Position Description AttachedYes/No
    Base SalaryCurrency
    SuperCurrency (might not apply to any readers outside of Australia)
    Mobile AllowanceCurrency
    Laptop AllowanceCurrency
    Link To RequestSingle line of text (we will use JSON to format this column in a later post)
    P&C ApproverPerson or group
    P&C OutcomeSingle line of text
    P&C CommentsMultiple lines of text
    SLT ApproverPerson or group
    SLT OutcomeSingle line of text
    SLT CommentsMultiple lines of text
    GM ApproverPerson or group
    GM OutcomeSingle line of text
    GM CommentsMultiple lines of text

    If you don’t want to manually create this list, here’s a flow I created for you. You just need to change the URL to one that sits inside your tenant, e.g. https://yourtenant.sharepoint.com/sites/peoplecultureteam, and run the flow.

  • Finding your feet with Microsoft PowerApps development – Part 02

    Finding your feet with Microsoft PowerApps development – Part 02

    In the last post, we had a quick introduction to PowerApps. We also demonstrated how to quickly create your first app.

    In this post, we’ll take a look at the app you created and how it can be used to view or edit existing data and create new items in our data source.

    A look at the app

    From top to bottom, the default home screen is in this app is made up of three elements:

    1. Quick action bar
    2. Search bar
    3. Gallery of items

    Quick action bar

    From left to right, the icons in the quick action bar allow a user to:

    1. Refresh the app gallery to show new data
    2. Change the order in which items are displayed (ascending or descending)
    3. Create a new item

    We’ll get back to the quick action bar later.

    Search bar

    The search box isn’t so much of a search option, it’s a filter. In the image below, you’ll see that, after typing ‘fi’, only two of the five items in the gallery still show.

    Gallery

    The gallery (shown above) is a view of items from our SharePoint list and, by default this gallery shows particular details about each item, e.g., title, name and department.

    Clicking on an item in a gallery will take you to a screen that shows more information about the item selected.

  • Finding your feet with Microsoft PowerApps development – Part 01

    Finding your feet with Microsoft PowerApps development – Part 01

    PowerApps makes the creation of business applications significantly easier (and cheaper) than the traditional approach to app development. In this post, we’ll give you some tips to help you find your feet in the world of developing with PowerApps.

    1.What is PowerApps?

    PowerApps is a collection of services that allow organisations to create their own business applications, using the data that they have stored in existing services, e.g., a SharePoint list or Excel spreadsheet, without having to have app development experience.

    2. Accessing PowerApps

    If your organisation already uses Microsoft 365, you’ve probably got access to create and use PowerApps.

    To access PowerApps, you can either go to powerapps.microsoft.com and login or select it from the list of available apps in the Office portal.

    3. Creating an app

    There is more than one way to create your app and here, we’ll look at the simplest way; from a SharePoint list.

    1. You’ll need to create a SharePoint list, similar to below. I recommend creating a new list and using test data to avoid making changes to items in a production list.

    2. Next, select PowerApps from the command bar and the select Create an app

    3. In the fly-out window on the right hand side, name your app and select create

    This will launch PowerApps Studio in a new browser tab.

    4. You first app has been created

    Now, you’ve created your first app. In the next post, we’ll take a look at the PowerApps Studio and how to use it to make some changes to your app.

    Click here to learn how 365 Evergreen can help your organisation make the most of low-code solutions, using PowerApps.



  • Build a policies and procedures hub with Microsoft 365 – Part 02

    Build a policies and procedures hub with Microsoft 365 – Part 02

    Introduction

    In the previous post, we created and configured a SharePoint team site for storing policy and procedure documents and a list that will be used to track who has and who has not read a document.

    In this post, we’ll create a PowerApp that will list documets that are assigned to each user.

    Before we start:

    • upload at least one document to the library that houses your policies and procedures
    • create a task in the task list and assign it to yourself

    Creating the app

    Follow these steps to create a simple app that will list a user’s outstanding documents and allow them to complete an acknowledge task.

    1. Go to https://powerapps.microsoft.com and create a new canvas app from blank
  • Build a policies and procedures hub with Microsoft 365 – Part 01

    Build a policies and procedures hub with Microsoft 365 – Part 01

    Introduction

    Policies and procedures play an essential role in any organisation and it is essential that employees have access to the latest documentation.

    By combining SharePoint and the Power Platform, it is quite easy to create a robust solution that can mange the creation and dissemination of these documents, as well as tracking who has

    In this series of posts, we will:

    • create a policies and procedures team site SharePoint
    • create site columns using the tenant-wide term store
    • use Power Automate to send notifications to readers and creators
    • create a PowerApp to allow users to acknowledge that they have read and understood the document
    • create a policies and procedures hub (using the PnP modern search web parts)
    • create a Power BI dashboard to show reports

    Pre-requisites

    The following instructions are written with the assumption that you have exposure to SharePoint and the Power Platform, as well as sufficient privileges, e.g., Tenant global admin, Term store admin, etc..

    Create terms

    We’re using the term store to provide values for the metadata in the site columns used in the policies and procedures document library.

    You can always skip this step and create other types of columns, e.g., choice or lookup.

    The beauty of using the term store is that the metadata can be used in sites across your whole tenant, i.e., you don’t need to replicate terms for each site collection.

    To create new terms in the term store:

    • Go to Microsoft 365 admin center
    • Select see all > SharePoint
    • Select Content services > Term store
      (https://YOURTENANT-admin.sharepoint.com/_layouts/15/online/AdminHome.aspx#/termStoreAdminCenter)
    • Select Add term group
    Modern term store experience
    • Give the term group a name (we’re using Policies and Procedures)
    • Within this group, create the following term sets and values:
      • Business unit
        • Accounts
        • Business support
        • Finance
        • HR
        • IT
        • Operations
      • Document type
        • Guideline
        • Manual
        • Policy
        • Procedure

    For information about the term store, click here.

    To learn how you populate the term store using Power Automate, click here.

    The SharePoint team site

    Now, we’ll create a SharePoint team site to store the policy and procedure documents. This site will also contain the lists that will be used to track the status of documents, e.g., who has and who hasn’t read a document.

    The team site we are using is called Polices & Procedures Team (https://TENANT.Sharepoint.com/sites/PoliciesProceduresTeam).

    Site columns

    We now need to create the site columns (they need to be site columns to make use of the search functionality later on).

    Use a good naming convention for the internal name for your columns, e.g., create a column called BusinessUnit and rename it Business unit afterwards. This prevents special characters appearing the name of the column.

    The site columns we need to create are:

    NameType
    Business UnitManaged metadata
    (use Business unit term set we just created)
    Document typeManaged metadata
    (use the Document type term set we just created)
    Document ownerPerson or group
    Published dateDate and time
    (Date only)
    Next review dateDate
    (Date only)
    Date assignedDate
    (Date only)
    Assigned toPerson or group
    Acknowledgement statusSingle line of text
    (Default value is Assigned)

    Content types

    Next we need to create the content types and add the necessary site columns.

    NameParentColumns
    Policy and procedure documentDocumentBusiness unit
    Document type
    Document owner
    Published date
    Next review date
    Policy and procedure taskItemAssigned to
    Date assigned
    Acknowledgement status

    Library and list

    Next, we need to create a document library (rather than using Shared documents) and a task list. We’re calling our library ‘Policy and Procedure documents’ and our list ‘Acknowledgements’.

    To make things easier and repeatable, e.g., to move between environments, we have created a site design that you can download from here.

    Next steps

    In this post, we have configured the SharePoint team site that will be used to store our policies and procedures, as well as a list that will track who has and who has not read each document.

    In Part 02, we’ll use PowerApps to create a simple canvas app that displays a list of documents for a user to acknowledge.

  • PowerApps components

    PowerApps components

    What are components?

    Components are reusable building blocks for canvas apps. You can define a set of controls to reuse inside an app. You could import a component into other apps as well. They behave in a master-instance manner, meaning that any updates you make to the original (‘master-instance’) will apply to other copies in the same app.

    So think of a header for your app: you create it once and if you were to change its text, that change would be reflected across each instance within the app.

    Below is a clip introducing components including some of the terminology to know.

    Advanced customization

    Not only can you reuse a set of controls, but you can also define more advanced behaviors with custom properties.

    Today, controls have properties such as Fill, Color, Height, Width, etc. out of the box. When you create your own component, you can invent your own properties of every data type: value, text, record, and table to name a few.

    What you can do with custom properties is only limited by your imagination.

    More experienced makers will want to make controls inside of a component shrink and expand as it is resized. Relative positioning and sizing are best practices now as they have been before this feature.

    Getting Started

    Components are now available as an experimental feature. Follow these steps to get started.

    1. Open the PowerApps Studio.
    2. Go to App settings > Advanced settings.
    3. Turn on “Components” in Experimental features.
    4. In the Tree View, select “Components” and you will land on a square canvas.

    Import and Export a Component

    One effective way of learning a new skill is to see how others have done it. You can watch the video below on how to create your own Header component.

    You can also download and walk through the sample header used in the video.

    1. Download this msapp file for a Header Component.
    2. Start a new blank app in PowerApps.
    3. Click Insert > Components > Import component > Browse for the .msapp file.
    4. The component will appear on the dropdown menu for inserting components.
    5. Click Insert > Components > Header to insert the header.

    Making App Building Easier

    In this first release of components, please take the time to know its current limitations. You can read the full documentation for more details.

    • Instance: a master-instance of a component is scoped to the app. It is a local master. This means that changes you make to the master-instance only affect the copies of the component within the app. The changes do not affect the copies in other apps.
    • Images: it is not yet possible to package media files when importing a component, but this feature is coming soon.
    • Collections: using Collect within a component is not yet fully supported.
    • Data sources: data sources are not saved with components.

    This experimental feature is a step towards better reusability and scalability for more complex apps and distributed app building. The development effort is continuing, and more capabilities are on the way.

    Resources

    Feature Documentation

    Video: Introduction

    Video: Header Component

  • Cascading look ups in Microsoft PowerApps

    In this post, I’ll show you how to create a cascading dropdown that posts back to lookup fields in SharePoint.

    Backend Configuration

    I have two lists in SharePoint Online:

    1) Projects – This list holds project information such as the Project #, Project Name, Description, etc. The list has multiple Project #’s.  A single Project # can be associated with multiple Project Names.

    Figure 1 – Projects List Configuration

    2) Project Hours – This list has two lookup fields: One that looks up the Project # from the Projects list and another that looks up the Project Names from the Projects list.

    Figure 2 – ProjectHours List Configuration

    Desired Functionality

    When the user creates a new item in the Project Hours list, we want them to select a distinct Project # and have that filter out the list of Project Name’s to show only Project Names associated with the selected Project Number.

    Figure 3 – Desired Outcome of Cascading Dropdowns

    The Issue

    You cannot apply the functions to accomplish the cascading functionality directly with the SharePoint Lookup control.

    The Work-Around

    We will need to add two separate Drop Down Controls in the app and apply our cascading function to those controls.  We can then set the Default Value of our SharePoint Lookups to the values of our Drop Down Controls so that they are written back to SharePoint.

    Here are the Steps to Achieve this:

    **I’m going to glance over the basics of creating the PowerApp itself and highlight how to do the cascading piece.

    1. Create a Blank PowerApp
    2. Add a Data Source to the Projects and Project Hours Lists
    3. Add an Edit Form to your PowerApp and include the Project # and Project Name fields
    4.  Insert two Dropdown Controls – One called PrjNumb and another called PrjName
    5. Change the “Items” property of the PrjNumb Dropdown to the following:Distinct(Projects,Title)

    The Distinct function ensures that we only receive unique Project #’s.  This is important because in our Projects lists we have multiple records with the same Project # (See Figure 1).  If we did not have the Distinct function then we would see the same Project # value listed twice.  For the Distinct function, you need to pass in the name of your Data Source first followed by the Field in your Data Source that you want to return.

    Figure 4 – Project # Drop Down Formula

    6. Change the “Items” property of the PrjName DropDown to:Distinct(Filter(Projects,Title = PrjNumb.Selected.Value),Project_x0020_Name)

    In this function we are using the Distinct function again to ensure we get unique values.  Within the Distinct function we are applying a Filter function. Within the Filter we are passing in the name of the Data Source followed by our filter function which is where the Project # (which is the Title field in that list) is equal to our selected value in our Project Number Drop Down field in our PowerApp.  We are then telling it that we want this Drop Down control to return the Project Name’s as our value options.

    Figure 5 – Project Name Filtered Drop Down

    7. Change the “Default” property of your SharePoint Project Number Lookup field to:

    {
    ‘@odata.type’ : “#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference”,
    Id: Value(LookUp(Projects,Title=PrjNumb.Selected.Value,ID)),
    Value: PrjNumb.Selected.Value
    }

    To set the default value of a SharePoint Lookup column, you have to tell it the ID of item in the list as well as the text value.  The text value in this case is just the selected value of our PrjNumb Drop Down field.  To get the ID of that, we have to use a LookUp function.  In that we will pass in the name of our Data Source, followed by a function that says where the Title (Project # value) is equal to our selected Project Number in our form.  We then tell is to return the ID field value.

    Figure 6 – Project # SharePoint Lookup Default Value Configuration 

    8. Change the “Default” property of your SharePoint Project Name Lookup field to:{‘@odata.type’ : “#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference”,Id: Value(LookUp(Projects,Project_x0020_Name = PrjName.Selected.Value,ID)),Value: PrjName.Selected.Value}

    Figure 7 – Project Name SharePoint Lookup Default Value Configuration

    That’s all there is to it.  You now have cascading dropdowns that will update your SharePoint Lookup Columns.