cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
AOZ
Helper III
Helper III

uploading collection contents online

Dear all,
I have to upload the images (and also some form values) into sharepoint.
The ColItemsToKeep are correctly synchronised to the sharepoint list. Even if i have 2 records in the collection, sharepoint is correctly updated with 2 records.

However for the ColImage, sharepoint is updating my site with only the last record.
Both collections however contains all records and photos.

The above are used only when working offline. Items are saved in 2 collections and then via power automate, the items are synchronised to list and sharepoint site.
When online, everything works fine - all records and images are correctly created.

Here is the code:

 

ForAll(ColItemsToKeep,Patch('Take5 V1',Defaults('Take5 V1'),
{
Title: Order_No,
Covid_Choice: Covid_Choice,
Je_Respecte_Les_Regles: Je_Respecte,
EPI_ND: EPI_ND,
Je_Dois_Acceder_a_la_Machine: Acces_cabine,
'Sanitize Cabin': Sanitize_cabin,
'Sanitize Keys': Sanitize_Keys,
'Air Vehicle': Sanitize_vehicle,
'Sanitize Knobs': Sanitize_knobs,
'Sanitize Interior': Sanitize_int_ext,
'Sanitize all other': Sanitize_others,

Compétences: Compétences,
Manuels_Techniques: Manuels_Techniques,
Instructions: Instructions,
Outils: Outils,
EPI_Pas_Disponible: EPI_Pas_Dispo,
Sortie_De_Secours: Sortie_secours,
Places: Places,
Environnement_pas_securisé: Environnement,
Machine_pas_propre: Machine_pas_propre,
Autres_Moyens: Autres,

'Des Machines': Des_Machines,
'Dautres Personnes': Dautres_Personnes,
'De lElectricité': De_Lelectricite,
'Des Bruits': Des_Bruits,
'Des charges lourdes': Des_charges,
'Des Produits Chimiques': Produits_chimiques,
'Des Véhicules': des_vehicules,
'La Hauteur': la_hauteur,
'Autre(s) Risque(s)': Autres_risques,

'I Plan': Je_Planifie,
I_Plan_Comments: Je_Planifie_Comment,

SAFE: Je_Realise,
'General Comments': Autres_Commentaires
}
));


ForAll(ColImage,
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3.Text,DataCardValue36.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_1.Text,DataCardValue36_1.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_2.Text,DataCardValue36_2.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_3.Text,DataCardValue36_3.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_4.Text,DataCardValue36_4.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_5.Text,DataCardValue36_5.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_6.Text,DataCardValue36_6.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_7.Text,DataCardValue36_7.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_8.Text,DataCardValue36_8.Image),false);
If(Label8.Text= "Connected",UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_9.Text,DataCardValue36_9.Image),false);
)

 

1 ACCEPTED SOLUTION

Accepted Solutions

@AOZ 

It's a classy pen!! 😁

 

Yes, I know you would use the Default to set it, but where is the fact that it is true or false coming from?  This would imply that there is some record of information that it is getting that from.

 

So without knowing that bit of information, I will proceed with some options for you.

 

Keeping the Camera control option.

1 - Place a blank Flexible Height Gallery on your screen.

 

2 - Set the Items property to:

Table(
    {Name:"Competences", Missing:true},
    {Name:"Manuels_Tech", Missing:false},
    {Name:"Instructions", Missing:false},
    {Name:"Outils", Missing:true},
    {Name:"EPI", Missing:false},
    {Name:"Sortie_Sec", Missing:false},
    {Name:"Places", Missing:false},
    {Name:"Env", Missing:false},
    {Name:"machine_prop", Missing:false},
    {Name:"Autres", Missing:false}
)

Again, not clear how you get the true or false for if it is missing, but we would just need to substitute that into the above.

 

3 - Add a Label (lblTitle) to the Gallery and set its Text property to: ThisItem.Name

 

4 - Add a Toggle (tglMissing) to the Gallery and set its Default to : ThisItem.Missing  also adjust true and false text as well as colors as desired.

 

5 - Add a Label (lblFileName) to the gallery and set the:

    Text property to : yourForm.Updates.serviceOrderColumn & "-" & ThisItem.Name

    Visible property to: tglMissing.Value

 

6 - Add a Camera control (camImage) to the Gallery.  Set the OnSelect action formula to:

If(ThisItem.Name in ColImage.Name,
   UpdateIf(ColImage, Name=ThisItem.Name && SO=yourForm.Updates.ServiceOrderColumn, {File:Self.Photo}),
   Collect(ColImage, {Name:ThisItem.Name, SO:yourForm.Updates.ServiceOrderColumn, File: Self.Photo})
)

Set the Visible property to : tglMissing.Value

 

7 - Add an Image control (imgCapture) to the Gallery. 

   Set the Image property to:    

        LookUp(ColImage, Name=ThisItem.Name &&  SO=yourForm.Updates.ServiceOrderColumn, File)

   Set the Visible property to : tglMissing.Value

 

That is it...you now will have a functioning gallery where you can take photos as you were before, but now, you have only 6 controls and all the rest will build itself.

 

Now...back to where you submit this when connected...

 

Your formula would be:   

If(Label8.Text="Connected",
    ForAll(ColImage,
        UploadaphototoSharePointfromPowerApps_1.Run(Name,File));        
    );
    Clear(ColImage)
)

 

This should give you what you are looking for.  Hopefully I have not left anything out.  Here is what it looks like in action.

RandyHayes_1-1618948179388.png

 

Now, if you find that you want to switch it to the AddMedia control it can be done easily as well.  You would just be utilizing the OnChange action of that control to put the image into the collection.

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

View solution in original post

21 REPLIES 21

@AOZ 

First, you can highly simplify your Formula by having the column names in your collection match the real column names in your SharePoint list.  When the column names match correctly, you can replace your entire first formula with :   Collect('Take5 V1', ColItemsToKeep)

 

Now, to the second formula, you may be iterating through a collection (ColImage), but you are referencing TextInput controls and an Image control (datacardvalue36_x) in your formula.  This will only give you the current values of those items.

If your iterations are over the ColImage collection, then you should really have the image and text in your collection.

Then your formula would be:

If(Connection.Connected, 
   ForAll(ColImage, 
       UploadaphototoSharePointfromPowerApps_1.Run(ImageTextColumnFromColImage, 
          ImageColumnFromColImage)
   )
)

So, the point being...when you are collecting into ColImage, collect the image and text as well.

 

I hope this is helpful for you.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Dear @RandyHayes 

Thanks for helping out.

Thanks for the tip for the column names.

 

For the second issue - i am indeed collecting the image and text:

Collect(ColImage,
{
    File: DataCardValue36.Image, Name: TextInput3.Text,
    File2: DataCardValue36_1.Image, Name2: TextInput3_1.Text,
    File3: DataCardValue36_2.Image, Name3: TextInput3_2.Text,
    File4: DataCardValue36_3.Image, Name4: TextInput3_3.Text,
    File5: DataCardValue36_4.Image, Name5: TextInput3_4.Text,
    File6: DataCardValue36_5.Image, Name6: TextInput3_5.Text,
    File7: DataCardValue36_6.Image, Name7: TextInput3_6.Text,
    File8: DataCardValue36_7.Image, Name8: TextInput3_7.Text,
    File9: DataCardValue36_8.Image, Name9: TextInput3_8.Text,
    File10: DataCardValue36_9.Image, Name10: TextInput3_9.Text
    }
    )

 

Then when running the flow, i have adapted it as per your advice. Is it OK? 

If(Label8.Text="Connected",
ForAll(ColImage,UploadaphototoSharePointfromPowerApps_1.Run(TextInput3.Text,DataCardValue36.Image));
ForAll(ColImage,UploadaphototoSharePointfromPowerApps_1.Run(TextInput3_1.Text,DataCardValue36_1.Image));
)

 I think there may be a problem somewhere because only the last recorded photos are being created...

 

@AOZ 

So your issue then is that you are not using the values in your collection.  You are referencing values from the screen.

Your formula should be more like this (based on your collection):

If(Label8.Text="Connected",
    ForAll(ColImage,
        UploadaphototoSharePointfromPowerApps_1.Run(Name1,File));        
        UploadaphototoSharePointfromPowerApps_1.Run(Name2,File2));
        etc...
    )
)

But this is really redundant!!

 

You would be better off collecting your data as follows:

Collect(ColImage,
    {File: DataCardValue36.Image, Name: TextInput3.Text},
    {File: DataCardValue36_1.Image, Name: TextInput3_1.Text},
    {File: DataCardValue36_2.Image, Name: TextInput3_2.Text},
    {File: DataCardValue36_3.Image, Name: TextInput3_3.Text},
    {File: DataCardValue36_4.Image, Name: TextInput3_4.Text},
    {File: DataCardValue36_5.Image, Name: TextInput3_5.Text},
    {File: DataCardValue36_6.Image, Name: TextInput3_6.Text},
    {File: DataCardValue36_7.Image, Name: TextInput3_7.Text},
    {File: DataCardValue36_8.Image, Name: TextInput3_8.Text},
    {File: DataCardValue36_9.Image, Name: TextInput3_9.Text}
)

 

Then have your upload when connected as:

If(Label8.Text="Connected",
    ForAll(ColImage,
        UploadaphototoSharePointfromPowerApps_1.Run(Name,File));        
    )
)

This will return a table of Flow results.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Dear @RandyHayes 

Thanks - this works out perfectly now!

Am really new to all this.

 

Last thing maybe - the collection is still displaying the contents of the image control although i clear the collection. As soon as i save only 1 photo, all the others get into the collection also...is there a way to delete the contents of all the image control once the form is loaded? this is to ensure that the image controls are really blank each time the form loads.

AOZ_0-1618933301672.png

 

 

 

@AOZ 

I need to know a little more about the setup of your screen that you are showing.  Is this a gallery or have you hand made all of the controls that I see individually?

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Hi @RandyHayes 

AOZ_0-1618936006035.png

All the images are managed manually - image = camera1.photo

I then collect all these images (only when the checkbox becomes true).

The problem is that even if the checbox is false and that a previous photo was taken when it was true, the image remains in the background and goes to the collection.

Checkbox (Visible state):

If(DataCardValue42.Value = true,true,false)

@AOZ 

I cannot tell if you are working with Forms or something else.  You state DataCardValues, and those are typical names for controls in forms. 

In general, with this many photos and checkboxes, you would be better served with a Gallery.

But, I'd need to know more about the flow and process that you have in your app to suggest anything substantial. 

What is it that you are trying to achieve overall with the app?

Also, you have a flow associated with this app, what is it doing?

 

Nice pen by the way! 🤣🤣

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

@RandyHayes 

Thanks for the compliment 😂

 

In fact it is an app which will allow mechanical technicians to answer a kind of questionnaire before beginning a work on a machine.

He needs to create a new form, fill in comments and answer questions (there are 5 sections in the form).

Most of the time no internet connection is available on site - this is why we need to store all in collections and then when he reaches home and connects to the internet, he pushes a button to upload to sharepoint.

 

So basically he needs to activate some checkboxes when necessary, the camera is activated - he takes the picture and the textbox above the picture stores the name of the picture.

 

As regards the flow associated, there is only 1 which creates and copies the images to a sharepoint library. This flow is run when internet is active.

AOZ_0-1618939016991.png

 

Hope this helps for better understanding.

 

@AOZ 

Yes, very clear....I've made this app now I don't know how many times!  For my clients this is often requested for field technicians to take photos of equipment, tags, etc.

 

I was wondering about the flow in terms of seeing if you were using a document library for your photos...and you are.

 

So, the key part of this is that your Image collecting and information is all separate from the Form.  The form is doing its thing and then you just happen to be collecting the Updates property of the form in your collection (as opposed to how you might be manually doing it now).  This will then have the full record with all the proper columns and values that you can then just collect to your data source.

Collect(colOffline, yourForm.Updates)

later...

Collect(yourList, colOffline)

 

So, since the images are separate from the form information.  My next question would be this...how are you associating the image with the master record collected?  I don't see that in your formulas.

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!   This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions in the Forums to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersNumber of SolutionsSuper UsersNumber of Solutions @anandm08  23 @WarrenBelz  31 @DBO_DV  10 @Amik  19 AmínAA 6 @mmbr1606  12 @rzuber  4 @happyume  7 @Giraldoj  3@ANB 6 (tie)   @SpongYe  6 (tie)     Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersSolutionsSuper UsersSolutions @anandm08  10@WarrenBelz 25 @DBO_DV  6@mmbr1606 14 @AmínAA 4 @Amik  12 @royg  3 @ANB  10 @AllanDeCastro  2 @SunilPashikanti  5 @Michaelfp  2 @FLMike  5 @eduardo_izzo  2   Meekou 2   @rzuber  2   @Velegandla  2     @PowerPlatform-P  2   @Micaiah  2     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 3:Community MembersSolutionsSuper UsersSolutionsPower Apps anandm0861WarrenBelz86DBO_DV25Amik66Michaelfp13mmbr160647Giraldoj13FLMike31AmínAA13SpongYe27     Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 4:Community MembersSolutionsSuper UsersSolutionsPower Apps DBO-DV21WarranBelz26Giraldoj7mmbr160618Muzammmil_0695067Amik14samfawzi_acml6FLMike12tzuber6ANB8   SunilPashikanti8

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (1,237)