Dynamics 365 for Talent

Licensing Guide for Dynamics 365 Online – October 2019 Update

Overview

With October release right around the corner, Microsoft will be moving away from the plan-based structure to base-and-attach licensing model to allow customers to mix and match applications depending on their consumption. The new licensing model will allow customers to purchase the applications they need when they need them, or as some would like to call it -an a’la carte sales model.

But, as close as we are to the fall update, I am still hearing some concerns and questions regarding the new Dynamics 365 licensing. It may seem a bit complex and might require some to do some math after, but it is intended for customers to have more control of their subscriptions and therefore allow them to “pay only for what they use”  As Alysa Taylor, Corporate Vice President of Business Applications and Global Industry assures us…

In October, Microsoft will be moving from “one-size-fits-all” Microsoft Dynamics 365 licensing plans to focus on providing customers with the specific Dynamics 365 applications that meet the unique needs of their organization. Customers need software that aligns to their functional roles and scenarios, and they require the ability to add or remove applications as their company grows and changes over time. The new licensing model will allow customers to purchase the applications they need, when they need them. Each application is extensible and applications can be easily mixed and matched to configure integrated solutions that align to a customer’s unique business requirements.

How it works

Every user starts with a base license. The Base license is the first application purchased for individual use within an organization.  The Attach licenses can be purchased on top of the base license as incremental applications at a heavy discount.

451642-PEZYQN-621

Both Base and Attach licenses provide access to the same application functionality.

Screenshot_9

This new model allows each organization to use the right layering for each individual user depending on their needs. But depending on your consumption, this new model might still affect your monthly payment. Payment is based on usage per user per month. I suggest reading the full pricing guide and check Microsoft updates.

Restrictions and things to consider…

  • The Dynamics 365 for Marketing app will remain tenant-based and can only be purchased at the standard price of $1500 for new customers. Attach licenses will NOT apply.

451642-PEZYQN-621sc

  • Additionally, Dynamics 365 for Project Service Automation and Talent are NOT available as Attach licenses.
  • The minimum 20 seats for Finance and Operation will still take effect. At least 20 licenses must be purchased for any one of the applications.
  • Common Data Service will still be allocated with Unified Operation apps without additional licensing, but multiplexing issues will still apply.
  • Storage SKUs will remain unchanged and can be purchased and allocated as needed.
  • Base license must be the higher-priced app. For users that require using apps from Customer Engagement and Unified Operations, Unified Operations must always be the Base License. The same applies between CE Enterprise licenses and CE Professional licenses – Enterprise must always be the base license.

Screenshot_11

Customer Engagement

See below for the placemat view pricing guide for Dynamics 365 applications under Customer Engagement.

Some entities are accessible as read-only and are categorized as unrestricted. Update to restricted and unrestricted entities are also being made with the goal of enabling more users to access data directly through a PowerApps application or Flow workflow without requiring a Dynamics license but more on this on a separate post.

But if you require to use all the Customer Engagement Apps, you can purchase Project Service Automation as Base License and add the rest as Attach Licenses.

Screenshot_3

Unified Operations

One of the key changes that are also coming this October is the separation of Finance & Operations module into two separate applications — Supply Chain Management and Finance.

Both of these apps can be purchased as base and attach licenses of one another, depending on your needs, and would still require the 20 seat minimum.

Screenshot_8

The functions are broken down into these two applications…

Screenshot_10

Below is the placemat view of the pricing guide for Unified Operations applications.

Screenshot_14.png

Impact

New customers can no longer purchase the Dynamics 365 CE and UO plans. The new Base and Attach license model will apply from the 1st of October. So, it is important for potential and existing customers to be made aware of these changes.

For existing customers, the changes will only take effect after their renewal date. So, for a 1-year long subscription purchased on January 1, 2018, the changes will take effect on the same date the following year and must be converted before then. To those that still have concerns, make sure to keep an eye out for more updates.

These changes are easy to understand but may still have a substantial impact on your existing subscriptions. Depending on your organization’s needs, it is important to seek the advice of a consultant/partner regarding this matter.

All the voices

“A woman with a voice is by definition a strong woman. But the search to find that voice can be remarkably difficult.”  – Melinda Gates

 

Companies love dashboards. The idea of progress, of something to announce, is like a drug. Naturally, companies use data and dashboards to measure diversity.  With one click, we can see how many people of what origin, education and sexual identity are employed anywhere within that company.  What those dashboards can’t tell you, no matter what your amazing PowerBI skillz (sic) may be, is the actual effectiveness and impact of that diversity down to the team or individual level.   Data and dashboards struggle with the intangible, with context. (I say this with all due respect to data scientists and my “blue” colleagues.)  Dashboards struggle to tell you if all those amazing voices that the company has invested so much in recruiting are actually being heard. This is the nuance of inclusion.

This is where checking the box on the dashboard stops and the application of the sought-after differing points of views begins.  And honestly, this is where so many teams fail.   The representation is in the room, but the team culture hasn’t evolved, the manager is still talking at people, the environment isn’t functioning.  The loudest voice still stands out.  Suggestions are quickly brushed aside until repeated by another more well-known contributor.  Questions are directed at the wrong person.  And then people just shut down, go back to their old ways, and that highly sought-after talent leaves.  Oh well, she wasn’t a good fit anyway. 

The pressure on groups to produce results quickly isn’t going away.  This intangible nuance of hearing all voices is easily pushed aside in the name of speed since it can be very difficult to measure. Worse yet, incorporating all the voices can actually slow things down at first, while in the end making the output so much better. How to show that the end justifies the means?

I propose that the best way to measure something is to start with a remarkable subset.

Enter the #msdyn365 community at 365 Saturday.  For me, it started in Dublin.  Actually, it started way before then, it just became more deliberate in Dublin thanks to the event organizers (looking at you, Janet and Raz) then took further shape in London and most recently solidified in Glasgow.  At these all day events (on a Saturday, just like the name implies), informal groups of women at various stages of career gathered for an hour under the umbrella of Women in Technology (#wit), not quite sure what to expect.

Each session has been different, because as with many things, the conversation is a result of the sum of the amazing diverse parts.  Topics varied, yet it all came down to one overarching theme: communication.  Whether that be the how, the when or the why of when to use our voices.  We talked about #confidencehacks, about how to establish ourselves without crossing a line that makes us uncomfortable (and practicing not caring about making others uncomfortable), about connecting and expanding our networks, and then most importantly we talk about amplification – how we can help others’ voices be heard.  All voices, not just female.

Note: There are so many other cultural considerations here, for which I lack a point of reference.  There is also a whole discussion to be had about how people consume, digest and respond to information.  For example, the work culture that I grew up in was as follows: get in a room, review a PowerPoint, have a passionate discussion where the loudest voice usually wins, determine next steps, assign actions items, repeat.  That format doesn’t work for all.  What about the voice of the incredible introvert in the room that needs time to digest the info, consider all sides, and then voice their opinion?

And there is the other amazing thing about our #msdyn365 community.  Others want to know how they can help.  Sure, I was teased about “super-secret lunches” by male colleagues.  I saw that for exactly what it was – curiosity and a sincere wish for dialogue.  Why is it necessary to have a “womens’ anything”? Shouldn’t it just be about hiring the best person for the job?  How should we feel about this?  We all treat each other with respect, right? Isn’t it up to individuals to make themselves heard?

Truth is, I agree with everything above.  Inclusion, by its intent, is about everyone.  And therefore, everyone has a responsibility to feed this culture and in the end everyone will benefit. We all can and should help amplify the voices of others. What I love about getting small groups of women together is that the coaching and dialogue that happens in a really safe environment then goes out into the diverse world and multiplies. It starts with a subset. Never underestimate the ripple effect of small actions.

Fifty percent (50%) of the speakers at 365Saturday Scotland identified as female.  Fifty percent.  That is crazy insane goodness.  It did not just happen.  This was the result of a community (led by Marc, Janet, Claire , Iain and so many others) rallying to make sure that opportunities were presented and seized, that a safe place was created and maintained, and that voices were heard.  Shouldn’t that just happen naturally?  Yes, ideally someday the flywheel will be spinning with such momentum that this will be the case (oh, and 50% of the attendees will also be women… work to do there as well).  Then the focus will become how to maintain and feed that system.  The moment you take your eye of something, you risk losing the muscle memory. Omission by unintentional oversight does not remove responsibility.

There is a meme about equity vs equality running around our social media feeds.  The one that show people of different heights trying to watch a baseball game over a fence.  The size of the boxes they are standing on depicts the difference between being treated equally (same sized box) and equitably (different sized boxes raising all to the same level).  The lesser known version has a twist – it shows what it would look like if there was no fence at all.

This is the nuance of inclusion.  This is how the #msdyn365 community is working to remove the fence.  It starts with these conversations, these opportunities. Listening to all the voices takes time and deliberate effort.  This community is all in.

Raise your voices. 🙂

Carissa

 

Assigning working hours in Dynamics 365 Talent

So, I don’t know about you but I have always been puzzled where working hours/Calendars exist for resources within Dynamics 365 Talent – they are easy to find in CE (PSA/FS) and FinOps as they sit on the workers record itself. However, it turns out Microsoft decided to shake things up when it came to Talent and I respect that.

To find the working calendars and assign them to resource in Talent simply follow the instructions below.

  1. Go to Organisation Calendars :
  2. Once open, configure to your specification  (please note it is possible to create more than one calendar to assign part-time working hours etc.):
  3. Once you have setup the working days, times and non work time such as “Lunch” you can then assign your workers easily by selecting either “assign to employees” or “assign to contractors” :

It may be good to expose this as a menu item on the personnel management action pane near employment details to help with intuition and consistency 🙂

Skills for the PowerApp developer

It seems to me that PowerApps will prove to be a game-changer by enabling businesses and organisations to build bespoke apps designed to meet very specific needs.

The curious thing about PowerApps is that the product is pretty well where it needs to be as of today but the major blocker for a global revolution is that there simply aren’t enough people out there with anything like the skills that they would need to be able to build robust business product.

So let’s assume that you can’t buy in PowerApps skills or maybe that you have some but need to grow some more.  What would you be looking for in an individual to identify them as a potential PowerApps developer?  In this article I’m going to outline some of the skills that I would be looking for when identifying candidates with the potential to be high performers.

Excel

It feels kind of strange to start with a product rather than personal skills but in this case the Excel formula structure and Excel cell construction is so closely related to that of PowerApps that is the number 1 skill.

The Excel and PowerApps teams work closely together so that any new formulas created are aligned to each other.  With this in mind this also opens the door to the many years of formulas created by individuals within excel that can theoretically be borrowed or referenced to enhance a PowerApp.

Maths

PowerApps is the product that is the most mathematical that I’ve ever seen.  Variables can be easily created that can be used in an algebraic fashion.  X and Y properties exist to govern the position of everything that you see on a screen.

Empathy

You need to be able to consider your products from the perspective of other users.  If people don’t like your product they won’t use it, and you should be aiming for them to love them.

Logic

To my mind there are 2 kinds of logic.  Firstly, the more mathematical/excel based ‘If X=1 to this otherwise do that’ and secondly there is the type of logic where you put yourself in the shoes of a user or administrator and be able to see whether or not a form (as in business world this is the most likely application) has a logical flow.

Design

Having an eye for design is a skill people have to a greater or lesser extent.  To be fair it doesn’t come naturally to me, but I do know that from making lots of products some designs work better than others and it is a skill that can be learned.

Initiative

PowerApps won’t go to you, you have to go to PowerApps.  If you create a blank app it will stay blank until you do something.  Additionally, many technical solutions may require techniques that feel like work-arounds mainly because the problems you have been facing haven’t been faced before, so looking them up on Google won’t necessarily yield any results.

Lifelong Learning

The product is ready, but is changing all the time.  Good sources for keeping up to date are twitter and the PowerApps blog, but even the latter tend to focus on ‘big’ updates whereas some of smaller adjustments can still be game changers.  Keep up with it.  I’ll be honest in saying that there are times when staying at the cutting edge can be difficult to manage versus traditional tools and skills that stay very similar over long periods of time.

Perseverance

Some problems will require high levels of determination to find the exact syntax you need to solve your problem and when those fail you may need to pull back stick your head up and work out if there ways around the problem or if the items is even needed (i.e. do you really need to collect the data at all or is it a nice to have)

Patience

Not necessarily my forte, but patience may be required of yourself as you may not have the skills that you need at your fingertips and similarly the same may be true of those around you.  You’ll also need a level of patience on the part of your sponsors or users.  I can almost guarantee that unless they are very familiar with digital form building you may produce a product to the exact specification requested but nevertheless you, and they, know that it’s not quite right and that adjustments, sometimes significant may be required.

Use the community

The PowerApps community at this stage is currently populate by a relatively small but passionate group of individuals building highly imaginative solutions designed to stretch the product.  Make use of these by joining https://powerusers.microsoft.com, follow people on twitter posting using the #powerapps or @PowerApps references.  By all means take a look at my youtube channel www.youtube.com/dataspinners and don’t forget to join https://dynamics365society.uk which contains a PowerApps bank that you can make use of once you sign up (for free).

Go on a course

Personally, I’m quite happy with an online course as typically these are completed over a longer period of time which for me is a better way of allowing the learning to sink in.  The best single free resource is https://courses.edx.org where DAT207x is a very useful starting point.  You can search up courses run in a classroom setting, but you will need to ensure that you invest time in utilitizing the product one you’ve completed it as otherwise you’ll lose your knowledge quite quickly.

Concluding remarks

This article was intended for hirers or individuals trying to make some sense as to the range skills needed for PowerApps excellence.  Hopefully, it isn’t too daunting.  Whatever you do, start small but build usable solutions.  This particular tool offers us astonishing scope for us to run our businesses in efficient ways and the more we can grow as a community the closer we will all get to a culture of efficiency the impact of which may be widespread, more operations, better scheduling less wastage all by putting the right information in front of the right people at the right time.

 

 

PowerApps – Camera Integration Part 2

So we left the last article (Part 1 – if you have not read Part 1 please do before moving onto Part 2) with a glorious self app that involved putting a camera element into a new screen then configuring the ‘OnSelect’ command to capture the image from the camera and store it in a collection. Which looked a little something like this:

 

Please note I foolishly forgot to ‘Save’ my app (more a rush to start the weekend and grab a beer) so some of the control and component names may have changed but please just engage logic for this.

 

Displaying the collection to show the person using the app the image they have just captured:

Now the next stage is to allow the users of the application to quickly see the image they have just taken. The first step in this glorious journey is to add an image under the Camera component go to ‘Insert’>Media>Image and place it under the camera element – which should look something like this:

I think it’s important that I publicly apologise for the amount the readers of this article has to keep seeing my face, sorry ;-).

Now we need to instruct the image to show what is in the collection (remember we are using the ‘ClearCollect’ formula for storing the captured camera image in the collection which means only one will be stored at a time, so this is the main reason for choosing an ‘image’ component rather than a ‘gallery’). Select the image and go to the advance settings and set the ‘Image’ as: Camera1.Photo (previous article would be Camera3) as shown below:

Now the last piece that i’d like us to is to flip the image horizontally, to achieve this select the image and go to the ‘Design’ grouping area withing the advanced options and then select “more Options”:

Then scroll down to the ‘FlipHorizontal’ property and change it from ‘False’ to ‘True’ this will flip the image horizontally and marry up with the camera.

This finishes Part 2, Part 3 will focus on sending this image via Flow to an email address as an attachment as well as storing it on SharePoint!

If you like the articled then please do ‘Like’ it below and if you have any questions please use the questions functionality in the main menu of the site.

 

PowerApps – limitations, requirements & configuration values

Here is some more great reference material lifted from Microsoft regarding PowerApps requirements, limitations and configuration values.

 

Supported platforms for running apps using the PowerApps app

Minimum required Recommended
iOS 9.3 or later iOS 10 or later with at least 2GB of RAM
Android 5 or later Android 7 or later with at least 4GB of RAM
Windows 8.1 or later (PC only) Windows 10 Fall Creators Update with at least 8 GB of RAM)

 

Supported browsers for running apps

Browser Operating system
Google Chrome (latest version)
(recommended)
Windows 7 SP1, 8.1, and 10
Android 5 or later
iOS 8 or later
macOS
Microsoft Edge (latest version)
(recommended)
Windows 10
Microsoft Internet Explorer 11 (with Compatibility View off) Windows 7 SP1, 8.1, and 10
Mozilla Firefox (latest version) Windows 7 SP1, 8.1, and 10
Android 5 or later
iOS 8 or later
macOS
Apple Safari (latest version) iOS 8 or later
macOS

 

Supported browsers for PowerApps Studio

Browser Operating system
Google Chrome (latest version)
(recommended)
Windows 7 SP1, 8.1, and 10
macOS
Microsoft Edge (latest version)
(recommended)
Windows 10
Microsoft Internet Explorer 11 (with Compatibility View off) Windows 7 SP1, 8.1, and 10

 

Request limits

These limits apply to each single outgoing request:

Name Limit
Timeout 180 Seconds
Retry attempts 4

Note

The retry value may vary. For certain error conditions, it’s not necessary to retry.

 

IP addresses

Requests from PowerApps use IP addresses that depend on the region of the environment that the app is in. We don’t publish fully qualified domain names available for PowerApps scenarios.

Calls made from an API connected through an app (for example, the SQL API or the SharePoint API) come from the IP address specified later in this topic.

You should use these addresses if, for example, you must whitelist IP addresses for an Azure SQL database.

Region Outbound IP
Asia 52.163.91.227, 52.163.89.40, 52.163.89.65, 52.163.95.29, 13.75.89.9, 13.75.91.198, 13.75.92.202, 13.75.92.124
Australia 13.77.7.172, 13.70.191.49, 13.70.189.7, 13.70.187.251, 13.70.82.210, 13.73.203.158, 13.73.207.42, 13.73.205.35
Canada 52.233.30.222, 52.233.30.148, 52.233.30.199, 52.233.29.254, 52.232.130.205, 52.229.126.118, 52.229.126.28, 52.229.123.56
Europe 52.166.241.149, 52.166.244.232, 52.166.245.173, 52.166.243.169, 40.69.45.126, 40.69.45.11, 40.69.45.93, 40.69.42.254
India 52.172.54.172, 52.172.55.107, 52.172.55.84, 52.172.51.70, 52.172.158.185, 52.172.159.100, 52.172.158.2, 52.172.155.245
Japan 104.214.137.186, 104.214.139.29, 104.214.140.23, 104.214.138.174, 13.78.85.193, 13.78.84.73, 13.78.85.200, 13.78.86.229
United States 104.43.232.28, 104.43.232.242, 104.43.235.249, 104.43.234.211, 52.160.93.247, 52.160.91.66, 52.160.92.131, 52.160.95.100, 40.117.101.91, 40.117.98.246, 40.117.101.120, 40.117.100.191
United States (Early Access) 52.161.26.191, 52.161.27.42, 52.161.29.40, 52.161.26.33, 13.66.213.240, 13.66.214.51, 13.66.210.166, 13.66.213.29

 

Required services

This list identifies all services to which PowerApps Studio talks and their usages. Your network must not block these services.

Domain(s) Protocols Uses
management.azure.com https RP
msmanaged-na.azure-apim.net https Runtime of Connectors/Apis
login.microsoft.com
login.windows.net
login.microsoftonline.com
secure.aadcdn.microsoftonline-p.com
https ADAL
graph.microsoft.com
graph.windows.net
https Azure Graph – For getting user info (e.g. profile photo)
gallery.azure.com https Sample and Template apps
*.azure-apim.net https Api Hubs – Different sub-domains for each locale
*.powerapps.com https WebAuth + Portal
*.azureedge.net https WebAuth
*.blob.core.windows.net https Blob storage
vortex.data.microsoft.com https Telemetry

[Source: https://docs.microsoft.com/en-gb/powerapps/maker/canvas-apps/limits-and-config]

PowerApps Formula reference for PowerApps

Formula reference for PowerApps

When building PowerApps I have found the below from Microsoft incredibly really helpful, an index of awesomeness for all things related to PowerApp formulas. I have lifted this from the Microsoft page but kept all the hyper links to allow you to drill into each piece of functionality.

A

Abs – Absolute value of a number.

Acceleration – Reads the acceleration sensor in your device.

Acos – Returns the arccosine of a number, in radians.

Acot – Returns the arccotangent of a number, in radians.

AddColumns – Returns a table with columns added.

And – Boolean logic AND. Returns true if all arguments are true. You can also use the && operator.

App – Returns information about the currently running app, such as which screen is currently displayed.

Asin – Returns the arcsine of a number, in radians.

Atan – Returns the arctangent of a number, in radians.

Atan2 – Returns the arctangent based on an (x,y) coordinate, in radians.

Average – Calculates the average of a table expression or a set of arguments.

B

Back – Displays the previous screen.

Blank – Returns a blank value that can be used to insert a NULL value in a data source.

C

Calendar – Retrieves information about the calendar for the current locale.

Char – Translates a character code into a string.

Clear – Deletes all data from a collection.

ClearCollect – Deletes all data from a collection and then adds a set of records.

Clock – Retrieves information about the clock for the current locale.

Coalesce – Replaces blank values while leaving non-blank values unchanged.

Collect – Creates a collection or adds data to a data source.

Color – Sets a property to a built-in color value.

ColorFade – Fades a color value.

ColorValue – Translates a CSS color name or a hex code to a color value.

Compass – Returns your compass heading.

Concat – Concatenates strings in a data source.

Concatenate – Concatenates strings.

Connection – Returns information about your network connection.

Count – Counts table records that contain numbers.

Cos – Returns the cosine of an angle specified in radians.

Cot – Returns the cotangent of an angle specified in radians.

CountA – Counts table records that aren’t empty.

CountIf – Counts table records that satisfy a condition.

CountRows – Counts table records.

D

DataSourceInfo – Provides information about a data source.

Date – Returns a date/time value, based on YearMonth, and Day values.

DateAdd – Adds days, months, quarters, or years to a date/time value.

DateDiff – Subtracts two date values, and shows the result in days, months, quarters, or years.

DateTimeValue – Converts a date and time string to a date/time value.

DateValue – Converts a date-only string to a date/time value.

Day – Retrieves the day portion of a date/time value.

Defaults – Returns the default values for a data source.

Degrees – Converts radians to degrees.

Disable – Disables a signal, such as Location for reading the GPS.

Distinct – Summarizes records of a table, removing duplicates.

Download – Downloads a file from the web to the local device.

DropColumns – Returns a table with one or more columns removed.

E

EditForm – Resets a form control for editing of an item.

Enable – Enables a signal, such as Location for reading the GPS.

EndsWith – Checks whether a text string ends with another text string.

Errors – Provides error information for previous changes to a data source.

EncodeUrl – Encodes special characters using URL encoding.

Exit – Exits the currently running app.

Exp – Returns e raised to a power.

F

Filter – Returns a filtered table based on one or more criteria.

Find – Checks whether one string appears within another and returns the location.

First – Returns the first record of a table.

FirstN – Returns the first set of records (N records) of a table.

ForAll – Calculates values and performs actions for all records of a table.

G

GroupBy – Returns a table with records grouped together.

H

HashTags – Extracts the hashtags (#strings) from a string.

Hour – Returns the hour portion of a date/time value.

I

If – Returns one value if a condition is true and another value if not.

IfError – Detects errors and provides an alternative value or takes action.

IsBlank – Checks for a blank value.

IsEmpty – Checks for an empty table.

IsMatch – Checks a string against a pattern. Regular expressions can be used.

IsNumeric – Checks for a numeric value.

IsToday – Checks whether a date/time value is sometime today.

L

Language – Returns the language tag of the current user.

Last – Returns the last record of a table.

LastN – Returns the last set of records (N records) of a table.

Launch – Launches a web address or an app.

Left – Returns the left-most portion of a string.

Len – Returns the length of a string.

Ln – Returns the natural log.

LoadData – Loads a collection from PowerApps private storage.

Location – Returns your location as a map coordinate by using the Global Positioning System (GPS) and other information.

LookUp – Looks up a single record in a table based on one or more criteria.

Lower – Converts letters in a string of text to all lowercase.

M

Max – Maximum value of a table expression or a set of arguments.

Mid – Returns the middle portion of a string.

Min – Minimum value of a table expression or a set of arguments.

Minute – Retrieves the minute portion of a date/time value.

Mod – Returns the remainder after a dividend is divided by a divisor.

Month – Retrieves the month portion of a date/time value.

N

Navigate – Changes which screen is displayed.

NewForm – Resets a form control for creation of an item.

Not – Boolean logic NOT. Returns true if its argument is false, and returns false if its argument is true. You can also use the ! operator.

Now – Returns the current date/time value.

O

Or – Boolean logic OR. Returns true if any of its arguments are true. You can also use the || operator.

P

Param – Provides access to parameters passed to the app when the user opened it.

Parent – Provides access to a container control’s properties.

Patch – Modifies or creates a record in a data source, or merges records outside of a data source.

Pi – Returns the number π.

PlainText – Removes HTML and XML tags from a string.

Power – Returns a number raised to a power. You can also use the ^ operator.

Proper – Converts the first letter of each word in a string to uppercase, and converts the rest to lowercase.

R

Radians – Converts degrees to radians.

Rand – Returns a pseudo-random number.

Refresh – Refreshes the records of a data source.

Remove – Removes one or more specific records from a data source.

RemoveIf – Removes records from a data source based on a condition.

RenameColumns – Renames columns of a table.

Replace – Replaces part of a string with another string, by starting position of the string.

Reset – Resets an input control to its default value, discarding any user changes.

ResetForm – Resets a form control for editing of an existing item.

Revert – Reloads and clears errors for the records of a data source.

RGBA – Returns a color value for a set of red, green, blue, and alpha components.

Right – Returns the right-most portion of a string.

Round – Rounds to the closest number.

RoundDown – Rounds down to the largest previous number.

RoundUp – Rounds up to the smallest next number.

S

SaveData – Saves a collection to PowerApps private storage.

Search – Finds records in a table that contain a string in one of their columns.

Second – Retrieves the second portion of a date/time value.

Set – Sets the value of a global variable.

ShowColumns – Returns a table with only selected columns.

ShowError – Displays an error message to the user.

Shuffle – Randomly reorders the records of a table.

Sin – Returns the sine of an angle specified in radians.

Sort – Returns a sorted table based on a formula.

SortByColumns – Returns a sorted table based on one or more columns.

Split – Splits a text string into a table of substrings.

Sqrt – Returns the square root of a number.

StartsWith – Checks if a text string begins with another text string.

StdevP – Returns the standard deviation of its arguments.

Substitute – Replaces part of a string with another string, by matching strings.

SubmitForm – Saves the item in a form control to the data source.

Sum – Calculates the sum of a table expression or a set of arguments.

Switch – Matches with a set of values and then evaluates a corresponding formula.

T

Table – Creates a temporary table.

Tan – Returns the tangent of an angle specified in radians.

Text – Formats a number as a string for display.

ThisItem – When in a gallery or form, returns the data for the current item from the container.

Time – Returns a date/time value, based on HourMinute, and Second values.

TimeValue – Converts a time-only string to a date/time value.

TimeZoneOffset – Returns the difference between UTC and the user’s local time in minutes.

Today – Returns the current date/time value.

Trim – Removes extra spaces from the ends and interior of a string of text.

TrimEnds – Removes extra spaces from the ends of a string of text only.

U

Ungroup – Removes a grouping.

Update – Replaces a record in a data source.

UpdateContext – Sets the value of one or more context variables of the current screen.

UpdateIf – Modifies a set of records in a data source based on a condition.

Upper – Converts letters in a string of text to all uppercase.

User – Returns information about the current user.

V

Validate – Checks whether the value of a single column or a complete record is valid for a data source.

Value – Converts a string to a number.

VarP – Returns the variance of its arguments.

ViewForm – Resets a form control for viewing of an existing item.

W

Weekday – Retrieves the weekday portion of a date/time value.

Y

Year – Retrieves the year portion of a date/time value.

 

[Source: https://docs.microsoft.com/en-gb/powerapps/maker/canvas-apps/formula-reference]

PowerApps – Camera Integration Part 1

Part one of the ‘Those Dynamics Guys’ PowerApps Series.

As promised via Linked-In I am going to publish a series of Blogs on how to start using PowerApps. PowerApps is part of the Dynamics 365 stack that allows a user to create various application that connect with not only Dynamics 365 Data Sources but a prodigious plethora of others such as:

  • WordPress
  • SharePoint
  • Twitter
  • Skype For Business
  • Outlook
  • Bing Maps
  • Google Maps

 

Selecting a connection/data set:

This will then take you to the next step which is where you can either create a new connection and select a connector of your choice (this example would use Dynamics 365 for Finance and Operations – known as jsut Dynamics 365 for Operations in PowerApps) or if you have pre-existing connections available select the Dynamics 365 for Operations connector and choose an environment, preferably Test Environment that you have full System Administrative access too,  and select it as your data set.

 

Selecting a table:

Now we have our data source we need to let the system know which Data Entity we wish for it to use – for this example we are going to use ‘Projects’, use the search functionality to filter through the various DEs to find the correct one choose it and select “Connect”:

A ‘Building Your App’ process will kick off then you’ll be greeted by the PowerApps designer. Then we are ready to start throwing this beast together!

 

Navigation of the PowerApps Designer (an Introduction):

Please note the menu is dynamic in nature so options will disappear and reappear depending on what has been selected – the navigation shown here is when no items are selected and should be seen as an introductory overview.

  1. Home – the home area on the action pane allows the user to choose from a various array of formatting option (text size, text weight, Italics, borders, fill, pre-set themes etc.)
  2. Insert – Allows the user to insert various items such as; buttons, icons, various controls, input text, labels, data, media, charts etc.
  3. Action – this allows you to create certain actions for various items including; ‘Navigation’ (where you’d like a certain item (Icon, button etc.)) to take you to a certain screen within the app, ‘Collect’ allows the user to create collections (this will be covered later on in the article), ‘Flows’ allows to integrate a flow or the option to create a new one. There are other options but this is enough to start with.
  4. Screen – select images for the background of the screen, state positioning for background images and select various colours to fill the background with.
  5. New Screen (Home Tab) – this allows the user to insert a new screen and select from various options such as whethere you wish for a blank fixed screen, a scroll enabled screen etc.
  6. Tree View – this view displays a break-down structure of the selected screen. Which allows you to navigate around the design of your app.
  7. Thumbnail view – this view represents the screens via small thumbnail images. Which allows you to navigate around the design of your app.
  8. Tree View (break-down) – separates into various items that can be drilled into to focus on each item independently.
  9. Play Icon – this allows the user to preview the app in it’s current, unpublished, state – you can also push F5 as a shortcut.
  10. Properties – allows to set various options for the selected item such as formatting of the item itself, default values etc.
  11. Rules – this allows the user to apply a rule that modifies an app based on predetermined criteria on the item selected.
  12. Advanced- depending the item selected this is where the user can apply various commands (some of which we’ll address in this article) applied to data elements, action elements and design elements.

One final item is the ‘View’ tab which allows the user to view the ‘Data Sources’ being used by the application (create new connections, refresh connections and delete connections), view any media being used by the App, view collections and variables.

 

Presenting the ‘Projects’ DE in a more useful manner:

The first stage to build our camera app is to have the first browse screen render the data in a more useful manner. Currently it is browse screen with some values in my case the “Allow Negative Values To Be Carried Forward” value:

To achieve this select the main ‘Browse Gallery 1’ area – then select, from the ‘Properties’ area within the ‘Layout’ grouping “Title, Subtitle and body” this will bring up the data dialogue where was can start picking and choosing the data from the Projects Data Entity that we wish to expose onto the gallery.

To change what is shown in the gallery we can change the following data inputs for the labels:

  • Body1
  • Subtitle1
  • Title1

I am going to change the drop down for each one of these to the following values:

  • Body1 = DeliveryName
  • Subtitle1 = ProjectStage
  • Title1 = ProjectName

This will then populate the Gallery with the selected values (push F5 of the play icon to view the app in it’s current state).

Now we have presented the Gallery in a more readable manner we now have a basic app that will allows us to view projects, select a project to view further details on the selected project and even edit certain values and publish them back to Dynamics 365 for Finance & Operations.

We will come back to adding further fields to the project details area but for now let’s jump straight in to, what I deem, the more exciting part- building the camera functionality and storage.

 

Building the camera functionality:

Right now on to the awesome part let’s build a camera app! First stage is creating a new screen. To achieve this go Home>New Screen then select Scrollable Screen.

Insert a new screen:

Change a label value:

This will generate and insert a new screen into the viewing pane and the designer will take you to the newly inserted screen The first thing i’d like to do and familarise ourselves with is changing the label which in this case is the Title. It is possible to change the label text in three locations:

  • Formula bar (by selecting ‘Text’ from the list and put quotations “” around it)
  • Properties – within the ‘Text’ area
  • Direct – by typing into the label itself

 

The next stage is to insert the ‘Camera’ Control – to achieve this first select the ‘Add an item from the insert tab’ (this isn’t a necessity but is a quick and easy way to remove the text from the screen) from the ‘Insert’ tab on the action pane and select Media>Camera.

Insert Camera and capture images:

This will then insert the Camera:

Now we need to start a collection that allows us to capture a picture and store it (we will then look into passing the image through to SharePoint and email later on in this article series). First select the Camera and go to the ‘Advanced’ area- we are now going to put in an ‘OnSelect command’ this come be achieved in two ways:

  • Advanced – within the advanced area there is an OnSelect field.
  • Formula Bar – change the list to ‘OnSelect’.

Type in the ‘OnSelect’ field the following:      ClearCollect(CameraImage,Camera3.Photo)

  • ClearCollect means that it’ll only store one image in the collection at a time (remove ‘Clear’ to amass a large collection.
  • “CameraImage” is the name of the collection – rename this this to whatever you’d like the collection to be called.
  • “Camera3” is the name of the Camera item and “Photo” the media the collection is expected to capture.

Now whilst still in the screen that contains the Camera ‘Play’ (Push F5) the app – this will open the App in the screen that you are currently in – now click the area that contains the camera. This will engage the ‘OnSelect’ command which will engage the ‘Collection’ to grab a still image from the camera.

Now let’s view the image. Go to  View>Collections:

This will take you to the collections list where we can select ‘CameraImage’ (the name we chose as the collections name in the step above) and view the captured photo.

The next article will show us how to present the image under the camera (shown below), then we’ll move on to flows! Article 2 click here!

 

 

 

 

Dynamics 365 for Talent –a review

This blog gives a quick insight into the functionality offered by Microsoft’s new Dynamics 365 for Talent system!

Attract module:

The new ‘Attract’ module, allows you to list all new jobs currently hiring and add the potential employees applying (including Linkedin integration):

An advanced profile can be built up of potential candidates, I’m pretty sure Chris is the right man for the job!

If you have found the right lady/man for the job then you can advance the process into the screening stage; this is where you can request candidate availability, interviewer availability and send on any feedback you may have to the interviewers- this is all integrated with Outlook where you can see interviewer availability immediately which adds that extra sprinkle of efficiency and awesomeness!

If the screening goes well you can ‘advance’ to an interview then to a job offer all in one screen that feedback into various other areas of the Talent Management System!

Benefits module:

The new benefits module allows you to list all benefits your company offers, assess the overall enrollment of the benefits through powerful Power BI infographics and dashboards:

Leave and Absence management:

Allows a company to specify the various types of leave and absence they allow for employees (and assign certain leave types to particular employees if they wish), see below. Although I could not see team management where I know other Partner IP does offer this as bolt-ons for existing Dynamics 365 for Operations environments.

 

The employees can use the self-service portal to request time off:

 

Personnel Management:

The personnel management area allows you to monitor all human resource related activity including; candidates to hire, starting soon, recent hires and leavers. On top of this you can use the tabs to monitor open positions and various Power BI driven analytics to get a snapshot of a company’s personnel metrics. To me it acts more as a workspace as you’d see in Dynamics 365 for Operations, where you can access information on the most pressing matters and initiate your more frequent tasks – a time saver!

Task Management:

This module wraps all you’ve seen in the other modules and allows you to stay on top of tasks that need to be carried out to keep the personnel management side of your business flowing smoothly. Look and see if there are any task related items linked to Onboarding, Offboarding and transitions, whether it be a new starter that needs to know where the coffee machine is or a party that is required for a leaver. According to the screenshot below I’m in for an EASY day!

Compensation Management:

Now on to the most important bit, well, MONEY- how do we reimburse this awesome pool of talent we have!? From the Compensation Management area you can see a snapshot summary of the various compensation plants your personnel are on, this is presented in a workspace with tiles, lists and graphs as we have grown accustom to in the Dynamics 365 world, break it down by department, region or job function at a click of a button!

View sleek Power BI charts to get that blood pumping:

And of course create new compensation packages where you can apply it to particular plans and how much the package will go up (or down if your cruel) each month, year, quarter etc.

Employee Development:

This area is completely devoted to beautiful Power BI charts letting the user know in a glance how many skills exist within the company where they sit in departments and the skill type! However, to set these up the user can select links and create all the various items that will be needed for an employee development solution.

Learning:

The learning module is very much the same setup as the employee development module, WHAM hit by Power BI (nothing wrong with that) then a section for all the maintenance which populates the awesome charts such as setting up various courses and assigning them to employees etc.

Compliance:

The compliance module is location specific e.g. if you are in the USMF module (USA) you will see compliance related to I-9, however it does seem this module is at it’s most basic for the UK and only reports on Injury and Illness but as we know Dynamics 365 grows everyday, month, year and is becoming a BEAST- a force to be reckoned with so give it time!

Business Process:

In this area you can stipulate the various processes that related to Talent management in the company and initiate them e.g. emergency numbers:

Once the person kicking of the process has stated a desired delivery date the process starts and will be added to the many process tasks within the company to be completed:

 

 

 

Dynamics 365 for Talent – a review

Microsoft have been advertising for some time now that they had in development their new Talent management system- this has now been released. In this, soon to be released, review I will go through the main functionality of the Talent system to see what it has to offer. WATCH THIS SPACE.

What Microsoft state can be achieved:

  • Develop a strategy for managing your Human Resources

  • Retain and motivate your employees

  • Develop and train your employees

  • Create and maintain benefits

  • Efficient and effective onboarding

  • Attraction of talent

  • Maintain work safety and compliance

  • Gather information using questionnaires

  • Integration with linkedin

  • Much more!

This all sounds amazing and I look forward to sharing more with you!