cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
shavora
Post Prodigy
Post Prodigy

Creating a quiz in Dataverse and storing the answers and questions

As Dataverse has the permission structure we need, I am looking into creating a table to collect answers to questions. 

I have 76 questions and the question text exceeds 100 characters.

 

I am wondering how to create it:

QuizTable:

Column1 = Questions

Column2 = Answers (text input)

 

For each participant I would have 76 rows of data.

 

Another option:

Column1 = Question1

Column2 = Answer1

Column3 = Question2

Column4 = Answer2

Column5 = Question3

Column6 = Answer3

 

This would give one row per participant and internally I would have to map the Questions and Answers in the canvasapp. Is this is good option?

 

Third option:

Using power automate add the questions into beginning of the answers columns.

 

----

The use case is that we need to review test results in a manageable way.

In Sharepoint long titles are accepted and you could use the column title as the question, but we can't view this table in Model driven app. 

1 ACCEPTED SOLUTION

Accepted Solutions
shavora
Post Prodigy
Post Prodigy

Solution: 

 

Create the Forms inside the Teams app in a Team. You will get an Excel file under documents and here you can get the Questions. In your flow set the trigger to when a new forms response has been submitted. Get the response details and then fetch the row in question from the excel-document using the responder's email.

 

Screenshot 2022-04-06 at 10.34.10.png

  For my purposes I have decided to store the questions and answers in columns. The questions exceeds the limit on column names in Dataverse, but if your titles are shorter than 41 characters that can be a valid option.

Screenshot 2022-04-06 at 10.35.04.png

Take the body of the row in the excel file and place in an object.

 

Screenshot 2022-04-06 at 10.36.39.png

 I create two more variables. The goal here is to first clean the body of all other properties except the answers.

 

Screenshot 2022-04-06 at 10.51.50.png

 The goal here is to replace special characters like the @ sign so that you later can remove this property. For that to work you first need to make the object into a string and replace them. I also replaced how dots shows up in the excel body (_x002e_ into a dot). Gives a cleaner look.

Screenshot 2022-04-06 at 10.56.12.png

 I decided to place the output in another  variable object, this step might be unnecessary. Next step is to remove all properties that is not a question/answer. If you have special characters in the properties this step won't work, so clean it first.

Screenshot 2022-04-06 at 10.58.29.png

 This. is the solution I found that converts an object into an array, it works but is not so clean. We delete the curly brackets and we split the string at "." to avoid splitting at unwanted places. Then place it into an array.

 

In the next step use an apply to each for the array you just created:

Screenshot 2022-04-06 at 11.03.01.png

 For each item in the array we split it it and take the first/last section to be able to store the question and answer separately.

My choice to store the answers in are in Dataverse, like this: 

Screenshot 2022-04-06 at 11.13.27.png

 Here you can place the questions and answers output. The rest is added stuff that's not necessary.  I also added submission time from the Get a row action. You can also add the email here if needed or any other data from the Get a row action.

 

Result is:

Screenshot 2022-04-06 at 11.16.11.png

 This is just test data ^^

As you can see the quotation marks are not so pretty. There is probably a way to clean them even further...

 

I then used this in canvas power apps:

Screenshot 2022-04-06 at 11.23.20.png

Use a gallery with flexible height and follow a guide on how to make the resizing work like a charm. Put on the scroller bar to be visible if you have many questions.

 

In the items property on the gallery I only want to showcase a specific person's results I use this formula on the items property on the gallery:

Sort(Filter('Review product tests',Candidate.Candidates in First(ColCandidate).key_candidatesid),'Submission time',Ascending)

 (First(ColCandidate).key_candidateid is a way to reference a collection column)

 

 

View solution in original post

3 REPLIES 3
shavora
Post Prodigy
Post Prodigy

Forgot to add we get the form responses from Forms. The titles of the questions doesn't follow when you import the response details so the solution seems to need to be a custom one. 

shavora
Post Prodigy
Post Prodigy

Solution: 

 

Create the Forms inside the Teams app in a Team. You will get an Excel file under documents and here you can get the Questions. In your flow set the trigger to when a new forms response has been submitted. Get the response details and then fetch the row in question from the excel-document using the responder's email.

 

Screenshot 2022-04-06 at 10.34.10.png

  For my purposes I have decided to store the questions and answers in columns. The questions exceeds the limit on column names in Dataverse, but if your titles are shorter than 41 characters that can be a valid option.

Screenshot 2022-04-06 at 10.35.04.png

Take the body of the row in the excel file and place in an object.

 

Screenshot 2022-04-06 at 10.36.39.png

 I create two more variables. The goal here is to first clean the body of all other properties except the answers.

 

Screenshot 2022-04-06 at 10.51.50.png

 The goal here is to replace special characters like the @ sign so that you later can remove this property. For that to work you first need to make the object into a string and replace them. I also replaced how dots shows up in the excel body (_x002e_ into a dot). Gives a cleaner look.

Screenshot 2022-04-06 at 10.56.12.png

 I decided to place the output in another  variable object, this step might be unnecessary. Next step is to remove all properties that is not a question/answer. If you have special characters in the properties this step won't work, so clean it first.

Screenshot 2022-04-06 at 10.58.29.png

 This. is the solution I found that converts an object into an array, it works but is not so clean. We delete the curly brackets and we split the string at "." to avoid splitting at unwanted places. Then place it into an array.

 

In the next step use an apply to each for the array you just created:

Screenshot 2022-04-06 at 11.03.01.png

 For each item in the array we split it it and take the first/last section to be able to store the question and answer separately.

My choice to store the answers in are in Dataverse, like this: 

Screenshot 2022-04-06 at 11.13.27.png

 Here you can place the questions and answers output. The rest is added stuff that's not necessary.  I also added submission time from the Get a row action. You can also add the email here if needed or any other data from the Get a row action.

 

Result is:

Screenshot 2022-04-06 at 11.16.11.png

 This is just test data ^^

As you can see the quotation marks are not so pretty. There is probably a way to clean them even further...

 

I then used this in canvas power apps:

Screenshot 2022-04-06 at 11.23.20.png

Use a gallery with flexible height and follow a guide on how to make the resizing work like a charm. Put on the scroller bar to be visible if you have many questions.

 

In the items property on the gallery I only want to showcase a specific person's results I use this formula on the items property on the gallery:

Sort(Filter('Review product tests',Candidate.Candidates in First(ColCandidate).key_candidatesid),'Submission time',Ascending)

 (First(ColCandidate).key_candidateid is a way to reference a collection column)

 

 

shavora
Post Prodigy
Post Prodigy

Changed to this if people submit more than one respons

Screenshot 2022-04-06 at 18.42.07.png

e: 

Helpful resources

Announcements
Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Community Call Conversations

Introducing the Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Users online (2,783)