cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Tiffany-Jo
Level: Powered On

Book A Room template_Avoid updating of Outlook mail body

Hi

The Outlook meeting content has been updated to the "Room has been updated to ****" after I use the Powerapps Template Book A Room to book a  room for the existing meeting.

Is there any way to keep mail body as originally set?

I tried to update the property as Confirmation Screen -> OnVisible -> Scroll down to the last of expression as blow.

However it was not working.

Please kindly help this.

キャプチャ.PNG

14 REPLIES 14
Community Support Team
Community Support Team

Re: Book A Room template_Avoid updating of Outlook mail body

Hi @Tiffany-Jo ,

Could you please share a bit more about your scenario?

Do you want to keep the email body as original set when you update an existing meeting in your Outlook?

 

Based on the formula you provided, I think there is something wrong with it. I have made a test on my side, please consider modify your formula as below:

3.JPG

Set the OnVisible property of the ConfirmScreen to following:

If(IsBooking,
    UpdateContext({ShowLoading: true});
    If(OnlineMeeting,
        Set(SkypeMeeting, SkypeForBusiness.CreateMeeting("Skype Meeting for " & If(BookForMeeting, MeetingsGallery.Selected.Subject, User().FullName), {ExpirationDateTime: Text(DateAdd(StartDateTime, 1, Days), UTC)}));

        If(BookForMeeting,
        
            ClearCollect(RequiredAttendeesNoRoom, Split(MeetingsGallery.Selected.RequiredAttendees, ";"));
            ForAll(AllRooms, RemoveIf(RequiredAttendeesNoRoom, Address = Result));
            ClearCollect(RequiredAttendeesNoRoom, Concat(RequiredAttendeesNoRoom, Result & ";"));
            ClearCollect(RequiredAttendeesNoRoom, Split(First(RequiredAttendeesNoRoom).Value, ";;"));
            Set(RequiredAttendeesFinal, First(RequiredAttendeesNoRoom).Result);
            Set(RequiredAttendeesTrue, RequiredAttendeesFinal);
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s Booking", User().FullName & "'s Skype Meeting",
            MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees,
            Body: "<a href="&SkypeMeeting.JoinUrl&">Join Skype Meeting</a>", IsHtml:true, Location: "Online Meeting", Importance: "Normal", ShowAs: "Busy"}),

            Office365.V2CalendarPostItem(MyCalendar, User().FullName & "'s Skype Meeting", StartDateTimeUTC, EndDateTimeUTC, {Body:"<a href="&SkypeMeeting.JoinUrl&">Join Skype Meeting</a>", 
            IsHtml:true, Location: "Online Meeting", Importance: "Normal", ShowAs: "Busy"})),



        If(!BookForMeeting,
            Office365.V2CalendarPostItem(MyCalendar, User().FullName & "'s Booking", StartDateTimeUTC, EndDateTimeUTC, 
            {RequiredAttendees:RoomsGallery.Selected.Email, Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"}),
            
            ClearCollect(RequiredAttendeesNoRoom, Split(MeetingsGallery.Selected.RequiredAttendees, ";"));
            ForAll(AllRooms, RemoveIf(RequiredAttendeesNoRoom, Address = Result));
            ClearCollect(RequiredAttendeesNoRoom, Concat(RequiredAttendeesNoRoom, Result & ";"));
            ClearCollect(RequiredAttendeesNoRoom, Split(First(RequiredAttendeesNoRoom).Value, ";;"));
            Set(RequiredAttendeesFinal, First(RequiredAttendeesNoRoom).Result);
            Set(RequiredAttendeesTrue, RoomsGallery.Selected.Email & ";" & RequiredAttendeesFinal);
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s Skype Meeting", User().FullName & "'s Booking", MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees, Body: MeetingsGallery.Selected.Body, Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"})   // Modify formula here, please type MeetingsGallery.Selected.Body 
            )
    );
    UpdateContext({ShowLoading: false})
);
Set(IsBooking, false)

 

Please consider take a try with above solution, check if the issue is solved.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Tiffany-Jo
Level: Powered On

Re: Book A Room template_Avoid updating of Outlook mail body

Hello @v-xida-msft 

 

Thank you for you feedback.

My scenario is:

1. Create an meeting in the Outlook as below.

2. Use the Book a room template of Powerapps to book a room.

3. Click button "Book a room for existing meeting" from the app and select the meeting created at step 1.

 

By test, the meeting room could be booked and added to the location correctly. But meanwhile, the content of highlighted below has been changed to "The meeting room was updated to *****".

Since it is an existing meeting, we just want to add/ update this location information. No any other change.

キャプチャ.PNG

 

Community Support Team
Community Support Team

Re: Book A Room template_Avoid updating of Outlook mail body

Hi @Tiffany-Jo ,

Yeah, based on the needs that you mentioned, I think the solution I provided above could achieve your needs. Pleasse consider take a try with it, then check if the issue is solved.

 

In addition, please could also consider remove the Body argument from the Office365.V2CalendarPatchItem(...) function within 

If(
   !BookForMeeting,
   ...

in other words, do not specify Body argument within the Office365.V2CalendarPatchItem(...) function. Modify your formula as below:

If(IsBooking,
    UpdateContext({ShowLoading: true});
    If(
       OnlineMeeting,
        ...


        If(!BookForMeeting,
            ...
            ...;
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s Skype Meeting", User().FullName & "'s Booking", MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees, Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"})   // Modify formula here,do not specify Body argument
            )
    );
    UpdateContext({ShowLoading: false})
);
Set(IsBooking, false)

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Tiffany-Jo
Level: Powered On

Re: Book A Room template_Avoid updating of Outlook mail body

Hi @v-xida-msft 

 

The body has not specified as below.

could you please kindly confirm where is wrong? it is not working.

キャプチャ.PNG

Community Support Team
Community Support Team

Re: Book A Room template_Avoid updating of Outlook mail body

Hi @Tiffany-Jo ,

Do you mean that the email body still display "Room has been updated to ****" after your edit your existing meeting?

 

I have made a test on my side, and don't have the issue that you mentioned. Please consider edit another meeting in your Outlook, then check if the issue still exists.

 

If the issue still exists, please consider re-create an app based on the "Book A Room" template app, then try above solution I provided, check if the issue is fixed.

 

Best regards,

 

 

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Tiffany-Jo
Level: Powered On

Re: Book A Room template_Avoid updating of Outlook mail body

hi @v-xida-msft 

 

Could you please kindly share the  OnVisible property of the ConfirmScreen  that set for your test?

Thank you very much!

Community Support Team
Community Support Team

Re: Book A Room template_Avoid updating of Outlook mail body

Hi @Tiffany-Jo ,

Please check the following formula:

If(IsBooking,
    UpdateContext({ShowLoading: true});
    If(OnlineMeeting,
        Set(SkypeMeeting, SkypeForBusiness.CreateMeeting("Skype Meeting for " & If(BookForMeeting, MeetingsGallery.Selected.Subject, User().FullName), {ExpirationDateTime: Text(DateAdd(StartDateTime, 1, Days), UTC)}));

        If(BookForMeeting,
        
            ClearCollect(RequiredAttendeesNoRoom, Split(MeetingsGallery.Selected.RequiredAttendees, ";"));
            ForAll(AllRooms, RemoveIf(RequiredAttendeesNoRoom, Address = Result));
            ClearCollect(RequiredAttendeesNoRoom, Concat(RequiredAttendeesNoRoom, Result & ";"));
            ClearCollect(RequiredAttendeesNoRoom, Split(First(RequiredAttendeesNoRoom).Value, ";;"));
            Set(RequiredAttendeesFinal, First(RequiredAttendeesNoRoom).Result);
            Set(RequiredAttendeesTrue, RequiredAttendeesFinal);
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s Booking", User().FullName & "'s Skype Meeting",
            MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees,
            Body: "<a href="&SkypeMeeting.JoinUrl&">Join Skype Meeting</a>", IsHtml:true, Location: "Online Meeting", Importance: "Normal", ShowAs: "Busy"}),

            Office365.V2CalendarPostItem(MyCalendar, User().FullName & "'s Skype Meeting", StartDateTimeUTC, EndDateTimeUTC, {Body:"<a href="&SkypeMeeting.JoinUrl&">Join Skype Meeting</a>", 
            IsHtml:true, Location: "Online Meeting", Importance: "Normal", ShowAs: "Busy"})),



        If(!BookForMeeting,
            Office365.V2CalendarPostItem(MyCalendar, User().FullName & "'s Booking", StartDateTimeUTC, EndDateTimeUTC, 
            {RequiredAttendees:RoomsGallery.Selected.Email, Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"}),
            
            ClearCollect(RequiredAttendeesNoRoom, Split(MeetingsGallery.Selected.RequiredAttendees, ";"));
            ForAll(AllRooms, RemoveIf(RequiredAttendeesNoRoom, Address = Result));
            ClearCollect(RequiredAttendeesNoRoom, Concat(RequiredAttendeesNoRoom, Result & ";"));
            ClearCollect(RequiredAttendeesNoRoom, Split(First(RequiredAttendeesNoRoom).Value, ";;"));
            Set(RequiredAttendeesFinal, First(RequiredAttendeesNoRoom).Result);
            Set(RequiredAttendeesTrue, RoomsGallery.Selected.Email & ";" & RequiredAttendeesFinal);
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s Skype Meeting", User().FullName & "'s Booking", MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees, Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"})
            )
    );
    UpdateContext({ShowLoading: false})
);
Set(IsBooking, false)

 

Please check if the email body has been updated to "Room has been updated to ****" message before your edit your existing meeting in your app. 

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Tiffany-Jo
Level: Powered On

Re: Book A Room template_Avoid updating of Outlook mail body

Hello @v-xida-msft 

 

The content is Blank, nothing is in the body after update.

could you please help with this?

Community Support Team
Community Support Team

Re: Book A Room template_Avoid updating of Outlook mail body

Hi @Tiffany-Jo ,

Please consider modify your formula as below:

If(IsBooking,
    UpdateContext({ShowLoading: true});
    If(OnlineMeeting,
        Set(SkypeMeeting, SkypeForBusiness.CreateMeeting("Skype Meeting for " & If(BookForMeeting, MeetingsGallery.Selected.Subject, User().FullName), {ExpirationDateTime: Text(DateAdd(StartDateTime, 1, Days), UTC)}));

        If(BookForMeeting,
        
            ClearCollect(RequiredAttendeesNoRoom, Split(MeetingsGallery.Selected.RequiredAttendees, ";"));
            ForAll(AllRooms, RemoveIf(RequiredAttendeesNoRoom, Address = Result));
            ClearCollect(RequiredAttendeesNoRoom, Concat(RequiredAttendeesNoRoom, Result & ";"));
            ClearCollect(RequiredAttendeesNoRoom, Split(First(RequiredAttendeesNoRoom).Value, ";;"));
            Set(RequiredAttendeesFinal, First(RequiredAttendeesNoRoom).Result);
            Set(RequiredAttendeesTrue, RequiredAttendeesFinal);
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s Booking", User().FullName & "'s Skype Meeting",
            MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees,
            Body: "<a href="&SkypeMeeting.JoinUrl&">Join Skype Meeting</a>", IsHtml:true, Location: "Online Meeting", Importance: "Normal", ShowAs: "Busy"}),

            Office365.V2CalendarPostItem(MyCalendar, User().FullName & "'s Skype Meeting", StartDateTimeUTC, EndDateTimeUTC, {Body:"<a href="&SkypeMeeting.JoinUrl&">Join Skype Meeting</a>", 
            IsHtml:true, Location: "Online Meeting", Importance: "Normal", ShowAs: "Busy"})),



        If(!BookForMeeting,
            Office365.V2CalendarPostItem(MyCalendar, User().FullName & "'s Booking", StartDateTimeUTC, EndDateTimeUTC, 
            {RequiredAttendees:RoomsGallery.Selected.Email, Body: "<a href="&SkypeMeeting.JoinUrl&">Join Skype Meeting</a>", Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"}),  // Add Body argument within your Office365.V2CalendarPostItem(...) function
            
            ClearCollect(RequiredAttendeesNoRoom, Split(MeetingsGallery.Selected.RequiredAttendees, ";"));
            ForAll(AllRooms, RemoveIf(RequiredAttendeesNoRoom, Address = Result));
            ClearCollect(RequiredAttendeesNoRoom, Concat(RequiredAttendeesNoRoom, Result & ";"));
            ClearCollect(RequiredAttendeesNoRoom, Split(First(RequiredAttendeesNoRoom).Value, ";;"));
            Set(RequiredAttendeesFinal, First(RequiredAttendeesNoRoom).Result);
            Set(RequiredAttendeesTrue, RoomsGallery.Selected.Email & ";" & RequiredAttendeesFinal);
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s Skype Meeting", User().FullName & "'s Booking", MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees, Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"}) // Remove Body argument from the Office365.V2CalendarPatchItem() function
            )
    );
    UpdateContext({ShowLoading: false})
);
Set(IsBooking, false)

 

Please consider take a try with above solution, then check if the issue is solved.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Power Platform World Tour

Find out where you can attend!

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

Top Kudoed Authors (Last 30 Days)
Users online (5,253)