Hello! It has been released a new update of Creator Kit. If you’re not familiar with Creator Kit, you can learn more by reading this article before continue reading.
Bug Fixing
Has been fixed some bugs:
DetailList : ColHeaderPaddingLeft property does not work
Dialog & Panel: All dialogs and side panels in the kit are broken
New Controls
Donats Chart
Horizontal bar chart
Guage chart
Stacked bar
Masked TextField (Customizable text field)
Considerations
I hope these information can help you…Here you can find official release page on GitHub for this update.
In this article, let’s see how we can work with JSON format in our Canvas App.
What JSON is?
JavaScript Object Notation (JSON) is a lightweight format for exchanging data. It is based on JavaScript syntax, but is language independent and is commonly used for the transmission of structured data.
JSON’s foundation is two structures:
A collection of name/value pairs
An ordered list of values
These universal structures make JSON versatile across programming paradigms. It represents data as key/value pairs with keys as strings and values as various data types.
Incorporate the JSON() function into your applications to seamlessly transform your data into JSON format, and employ the ParseJSON() function to convert a string, provided it is formatted in JSON, into a usable object.
JSON( DataStructure [, Format ] )
DataStructure – Required. The data structure to convert to JSON. Tables, records, and primitive values are supported, arbitrarily nested.
Format – Optional. JSONFormat enum value. The default value is JSONFormat.Compact, which doesn’t add newlines or spaces and blocks binary data and unsupported columns.
ParseJSON( JSONString )
JSONString – Required. The JSON structure represented as text.
JSON format example:
{
"title": "The Lord of the Rings",
"author": "J.R.R. Tolkien",
"publication_year": 1954,
"genre": ["Fantasy", "Adventure"],
"publisher": {
"name": "Mondadori",
"location": "Milan, Italy"
},
"price": 20.99,
"available": true
}
From Data to JSON
Let’s explore how these functions work in Power Apps. First, we’re going to create a collection with random data.
JSONFormat.Compact: Output is compact with no added spaces or newlines.
JSONFormat.FlattenValueTables: Flatten Power Fx Value tables to JSON friendly arrays.
JSONFormat.IndentFour: Output contains newlines and four-space indentation for readability.
JSONFormat.IncludeBinaryData: Result includes image, video, and audio-clip columns.
JSONFormat.IgnoreBinaryData: Result excludes image, video, or audio-clip columns.
JSONFormat.IgnoreUnsupportedTypes: Allows unsupported data types but excludes them from the result.
Keep in mind that if your data includes a type that is not supported, you should utilize the IgnoreUnsupportedTypes option to avoid errors. For a list of supported data types, please consult this resource.
From JSON to Text
Let’s assume that we’ve securely stored our JSON data in our data repository. In this example, I’ll demonstrate how to transfer textual data to a different screen. However, in real-world scenarios, I’ve stored JSON data within a text column on SharePoint. Now, we aim to convert text to JSON to display the record in a table.
During the “OnVisible” event, our task is to transform JSON text into a structured object. To accomplish this, we need to loop through (using ForAll) each record within our Parsed JSON data, then systematically access fields within the untyped object and cast them into identifiable types.
I developed a true custom application for a client designed to simplify the management of corporate travel requests. In this scenario, my client is presented with a plethora of options to select when planning a trip. To efficiently manage the many choices, I chose to use a single text field in my database to store a JSON text containing all the selected options. This approach eliminated the need to create more than 25 individual fields. I was able to use this mode since none of these 25 fields were needed for me to thread travel requests.
In this article, let’s see how we can integrate ChatGPT with our Canvas App to add AI functionality.
ChatGPT is an artificial intelligence-based chatbot developed by OpenAI, specialized in conversing with human users. The acronym GPT stands for Generative Pre-trained Transformer, which means “pre-trained generative transformer.” With ChatGPT we can, for example, generate content, answer questions, Translate, summarize, complete sentences etc.
Basically, the Idea is call ChatGPT Service via Power Automate, get response and pass it to our App. Before start, you need ensure to have:
Premium Licence (Or Trial) to make Http Post request from Power Automate
An account with some cretit on OpenAI
Valid OpenAI API key
Build flow
In this Example, we’re going to call our flow from a Canvas App, passing a prompt and get an output. Trigger is Standard Power Apps connector:
Then, we must do an HTTP Post request to call OpenAI Service. According to Open AI documentation (at this this link) we need to specify in the following headers to make request:
URL: https://api.openai.com/v1/chat/completions
Content-Type: application/json
Authorization: Bearer $OPENAI_API_KEY
And as Body, a Json with:
Model
Messages
Temperature
Example:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"temperature": 0.7
}
In my case I parameterized the prompt, but of course you could also parameterize model or temperature, So, the action to call ChatGPT from flow is:
Now, we must get body response, parse it, extract result and pass information back to our app.
Add “Parse Json” action and use this schema (I suggest you do to first call to service and get response and then use “Generate from sample” option):
Finally, we can create an App to test it. I created a screen with two textbox , firstone for prompt and secondone for output, then I added a button to call our flow and store result in variable.
Formula columns are a powerful feature of Microsoft Dataverse for Teams. With this data type, you can quickly add a calculated column to your table. This is made possible by the Power Fx, a language that enables you to write formulas and expressions that can be used in Dataverse for Teams.
If you still using it, but you have problem with Data columns, go directly here.
Supported data type:
Text
Decimal Number
Yes/No (boolean)
Date
Supported operators:
+, -, *, /, %, ^, in, exactin, &
Create it
Let’s start! Go to edito your Dataverse table, and create create new column:
Select “Formula” Column. In my Example I want to calculate how old employees are. So:
Formula:
DateDiff('BirthYear ', UTCNow(),TimeUnit.Years)
Result:
Problem with Data column
If you get some error, when using Datacolumn , for Example errors about “Time zone conversion”. You should try to edit your Data column and set “Time Zone Adjustment” property to : “Time zone Indipendent“
Available functions
There are about 54 function available at time I’m writing this article, for Example:
Keep mind this attention point from MS: “The Text and Value functions only work with whole numbers, where no decimal separator is involved. The decimal separator varies across locales. Since formula columns are evaluated without locale knowledge, there’s no way to properly interpret or generate the decimal separator.”
Considerations
I hope these information can help you! Here link to official documentations.
Power Apps have now a great feature that allows you to preview your app on different devices and layouts. This is an incredibly useful tool to allows us to test our apps on multiple platforms and make sure that the user experience is consistent across all of them. With this feature, developers can make sure that their apps look great no matter what device or layout they are viewed on.
Press Preview App (F5)
When you click on option, you can choose Device:
Available Options:
Tablet Device
Mobile Device
Web View
Orientation Switcher
If you don’t find devices you need, you can put custom Width and Height properties.
Enabled Preview
To enable preview, you must enable set authoring version to last one available 3.23053.23 (save and refresh app):
Considerations
I hope these information can help you! If you need more information, you can go here.
Dataverse is a secure platform used for managing and storing data used by business applications. If you’re using Dataverse (or Dataverse for Teams 🙂 ) and your’re trying to creare (or update) row with lookup field, you may can find useful this article.
Initial situation
We have two tables:
Customers
CustomerContacts
In our table “CustomerContacts” we have two field: Name and Customer, wich is Lookup Column who refers to Customer table.
I created three record for customer:
Table CustomerContracts is empty:
Create new customer contact
Let’s assume we need to create through Power Automate (eg for an import from Excel File) our Customer Contacts. How should we do that?
Our Excel File:
Let’s see our Flow.
NB: We use “Microsoft Dataverse” actions for both Dataverse and Dataverse for Teams.
This flow don’t need to much explications. We get our Excel File and for each row, we use “Add new row” action to create row. But it doesn’t work. We got this error:
URL was not parsed due to an ODataUnrecognizedPathException. Resource not found for the segment provided in the URL.
We can’t create row using text field (from Excel) in Lookup field.
How can we set Lookup field value?
We need logical name of table and RowId of record we want to refer:
Now we can update our flow to use this costruct using Row ID:
cr3e4_customers([ROW_ID])
Or @odata.id directly:
@odata.id
To get row id, we need get correct items to refer. To do that, we should get logical name of field, before:
So our flow become:
In Customer field i wrote:
first(body('List_rows')?['value'])?['@odata.id']
To get first row form “List row actions” (filtered by customer name) and use @data.id value.
If you don’t like standard canvas app control, you can enable this new (experimental) feature to enable a new set of controls , called “Modern Controls”.
NB: This is Experimental Feature, as an experimental feature, do not use it in production apps.
Modern Controls has about 13 new controls wich you can use for your applications:
Enabled Modern Controls
Firs of all, you must enable set authoring version to last one available 3.23034.5 (save and refresh app):
Then, you should find , in experimental features, “Try out the modern controls”:
Save, refresh and you should see new group of controls called “Modern Controls“.
Considerations
I hope these information can help you! I didn’t find much documentation about it at the moment I’m writing this article, I’ll add some information as soon as I find out 🙂
At the time of writing this article, when you add Library Component of Creator Kit, you may find some errors. If you don’t know what Creator Kit is, you can read my article here.
Add control to your App
Add one of Library control to your app. If you didn’t have installed Creator Kit in your environment, you can read this article to do it.
Let’s see how to use this control.
Errors
As you can see, now you have 10 errors on your app. All errors are relative to our Panel Control:
Our control should look like this:
How to fix it
To fix, you should follow these step:
Create a local copy of your control
Fix errors
Use copied control
Let’s start to create local copy. Click on Edit and then Create Copy:
Now you have local copy and you can fix errors:
In this case (But the errors will change depending on the control you have), I fixed:
Today , we’re introducing one of the “Surface” controls group of Creator Kit: “Panel Control“. Let’s see What is it and how it works. If you don’t know what Creator Kit is, you can read my article here.
Add control to your App
Before use it, you should add it to your app. If you didn’t have installed Creator Kit in your environment, you can read this article to do it.
Let’s see how to use this control.
Panel Control
This control is usefull to create complex creation, edit, or management experiences of items or settings. Let’s understand how can we use it. When you add it on your app, you should see something this:
Position– (Default Right”) You can write “Left” if you want left panel
Visible– True or False, to show or hide panel. I usually use a local variable to show or Hide it
Buttons– Table to define buttons of your panel
OnButtonSelect– Event to manage select event of your button
Theme : Property to set Json theme on controls, as you can see also in others controls of creator Kit. I usually set it when my application starts, and set it on all controls of Creator Kit who support it. You can create your theme here.
Today , I want to explain a really cool feature, in order to improve performance of your app and make it “code” more tidier.
NB: This is Experimental Feature, as an experimental feature, do not use named formulas in production apps.
We can use App.OnStart to inizializiate variables, load data and do some operations. These actions my be cause slow starting of your application. Sometimes we use , for example hidden button to write “reusable” code.
Now , we can write formulas and reuse it in any part of our application.
Enabled Named Formulas
Firs of all, you must enable experimental feature. Click on “Settings” and enable it:
Use it
Now, you should see new property of your app, called “Formulas”. Here you can add your formula!
Here you can add your formulas. For example:
ParamID = Param("ID");
UserEmail = User().Email;
But, of course, you can add more complex formula.
Advantages
Why we should use named formulas? let’s see some advantages:
The formula’s value is always available. There is no timing dependency, no event likes App.OnStart should be executed.
Formulas can be calculated in parallel.
The formula’s value is always up to date.
The formula’s definition is immutable. As opposed to variables, the definition in App.Formulas is the only “source of truth” and the value can’t be changed somewhere else in the app.
Calculated when needed. Value are calculated when app need it so this can improve app load time.
Considerations
I hope these information can help you! Here link with additional informations.
Today , I want to explain how to fix Error 0x80040217. If you created custom connector and put it inside solution with for example your flow or your App, may you find in this error, when you try import solution on new Environment:
Some note to remember:
You have created custom connector
You have created app or flow who using your custom connector
You have put together in same solution
You have exported it from your environment
You are trying to import in new environment, but you got and error
How to fix It
Really, really simple!
Create a new solution ed import your custom connector. Then , remove it from previus solutions. Basically, you must import your custom connector before, then import your flows or app that using it.
You can’t recover your flow if it was deleted more than 20 days ago
You can recover your flow if it was not part of solution (but if did, you can try to open a ticket support)
Default state of recovered flow is disabled
You can recover flow also with powershell commands
You need use Admin user of environment
You can write me for comment to improve quality of my contents 🙂
Create flow to recover deleted flow
Let’s build a new “Instant cloud flow” with manually trigger.
Now we can add some step to recovery our flow, search “Power Automate Management” and looking for step “List Flows as Admin”, then choose correct Environment and set “Include Soft-Deleted Flows” to Yes.
Now have action to list our flows, included deleted flows. Add “Apply to Each” step (I renamed it “ForEachFlow”) in order to iterate our results and then add “condition” action to filter only “deleted” flow by status property:
Now last step, add action called “Restore Deleted Flow as Admin” set correct Environment (same as step “List flows as Admin”):
and finally run it.
Now , your flow should be appear in list of flow and should be in disabled state:
Considerations
I hope these information can help you to recover your deleted Power Automate Flow…Here you can find official documentation from Microsoft.
Today , we’re introducing one of the menu & nav controls group of Creator Kit: “Nav Control“. Let’s see What is it and how it works. If you don’t know what Creator Kit is, you can read my article here.
Add control to your App
Before use it, you should add it to your app. If you didn’t have installed Creator Kit in your environment, you can read this article to do it.
Let’s see how to use this control.
Nav Control
You can use this control to create a navigation menu in your app. Let’s understand how can we use it. When you add it on your app, you should see something this:
We should set some properties:
Items
Create Table with these attributes:
ItemDisplayName – The Display Name of the menu item
ItemKey – The key of item (must be unique)
ItemEnabled – (Default true) Set to false to disabled
ItemVisible – (Default true) Set to false to hide
You can use OnSelect to get selected item and do some actions like change page. As usual, Just to understand , I show selected item display name in a label:
NavMenu.Selected.ItemDisplayName
Results:
Others useful properties are:
Theme : Property to set Json theme on controls, as you can see also in others controls of creator Kit. I usually set it when my application starts, and set it on all controls of Creator Kit who support it. You can create your theme here.
CollapseByDefault: You can set to True or False. Nav remain collapsed or expanded respectively. Individual Item level expand property is respected.
Let’s see what news are introduced with november update of creator kit. If you don’t know what Creator Kit is, you can read my article here.
New Features
Have been introduced 2 new (in preview) components, SubwayNav and SpinButton:
SubwayNav Control
SpinButton Control
Let’s see a basic introduction to use these controls.
SubwayNav
You can use this control to show a wizard steps in our application. Let’s understand how can we use it. When you add it on your app, you should see something this:
We should set some properties:
Items
Set a Table , with these attributes:
ItemKey: Key of item
ItemLabel: A Display Name of item
ItemState: Icon of the step, it could be one of: “Current”, “Completed”, “Unsaved”, “ViewedNotCompleted”, “Error” , “WizardComplete”
Accourding to source code, try to put this on Items propertie:
If you don’t want specify ItemState , you can set empty string (ItemState: “”) , and you’ll see an empty white dot.
OnSelect
You can use OnSelect to get selected item and change page to show next step of your wizard. Just to understand , in this case I saved selected step on variable (Is just an example, you can use Controlname.Selected insted):
UpdateContext({SeletectStep: Self.Selected})
And on label:
SeletectStep.ItemLabel
Results:
Other useful properties are:
Theme : Property to set Json theme on controls, as you can see also in others controls of creator Kit. I usually set it when my application starts, and set it on all controls of Creator Kit who support it.
Subway Nav State: Property to set state on entire controls. You can choose from: “None”, “Errors”, “WizardComplete”
SpinButton
A spin button is control to allow to add number in small steps. When you add control you should see this:
Today, we’re going to speak about Creator Kit. With this fantastic tool, we have possibility to create Canvas App, with professional look & feel with “Microsoft 365” Style.
What is “Cretor Kit” ?
According to Microsoft , Creator Kit consist in a series of controls , utility and templates , created to increase developer productivity.
Today, we’re going to speak about Environment. Where people starting to create App or Flow, usually, use Default Environment. But in order to have correct governance or our Power Platform solutions, a good idea (but is not only the one) is create more then one Environment. For Example Dev, Quality and Prod.
What is an “Environment” ?
According to Microsoft , and Environment is a a space to store and share data, app , flows. You can image it as a “Container”.
Each environment can have a single Dataverse DB (but you can create environment withoud it)
Default environment is Shared by all users, in my opinion you shouldn’t use it to develop critical app.
Environment types
Basically we can create 4 kinds of environment.
Sandbox: used for non-production environment but for developing and test. It can be reset or copy.
Production: used for permanent work. You need Power Apps license to create and manage it. It will provided with 1 GB database capacity.
Trial: used for short term testing. It will be cleaned automatically after 30 days. I usually use it to try new features. It can be create also as subscription based, and it can be conferted as production environment.
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.
Google Analytics is a web analytics service provided by Google Ireland Limited ("Google"). Google uses the collected personal data to track and examine the usage of this website, compile reports on its activities, and share them with other Google services. Google may use your personal data to contextualize and personalize the ads of its advertising network. This integration of Google Analytics anonymizes your IP address. The data sent is collected for the purposes of personalizing the experience and statistical tracking. You can find more information on the "More information on Google's handling of personal information" page.
Google reCAPTCHA is a SPAM protection service provided by Google Ireland Limited. The use of reCAPTCHA is subject to the Google privacy policy and terms of use.