I am struggling with a workflow and am hoping for some help from the community. Here is the business request... The requestor would like anyone in the department to be able to create a time off request that gets routed for approval. If approved, an item is created in the official team calendar which would contain approved time off requests, team events, holidays, etc. Ideally, the official team calendar would have unique permissions so it would only be editable by a small group of people. I have tried this a couple of ways, and have run into issues.
use "create item" action to create the event in the official calendar. For the Start/End Time fields, I used list lookup to grab the corresponding values from the fields in the current item. I tried to do this with the All Day Event and Recurrence fields as well.
result: error, "The workflow could not update the item, possibly because one or more of the columns for the item require a different type of information"
Seemed like the "All Day Event" and "Recurrence" fields may have been causing the issue.
Use "Copy Item" action to create the new item in the official calendar.
result: error, "The workflow could not copy the item. Make sure the source and destination lists have the same columns and column settings.
to test this out, I used two standard calendar lists with no custom columns or changes to any settings. I also tried it with one calendar, then used Sharegate to copy the calendar. I can't figure out what column settings would be inconsistent between the two, or if there is another issue.
I found the post linked below related to recurrence, and I was thinking that this might be a limitation. If that's the case, I may want to consider another approach and just keep everything in the same calendar.
Does anyone have experience with this or some insight to lend?
The thread that you linked has the solution actually, the Recurrence / AllDayEvent fields provide you with the options to set it.
<Field Name="RecurrenceData"><![CDATA[<recurrence><rule><firstDayOfWeek>su</firstDayOfWeek><repeat><daily dayFrequency="1" /></repeat><repeatForever>FALSE</repeatForever></rule></recurrence>]]></Field>
So what is the limitation that you are talking about?
Another advantage of this approach (using a web service) is that you can specify credentials which have permissions on 1 list, but not the other list.
Yes, thank you. What I meant by limitation was that it would appear that you cannot copy or create event items in the same way you can with other content types using the regular workflow actions for "copy item" or "create item". I couldn't tell if that was due to the nature of those two columns, if it was due to the way those workflow actions operate, or if I was just doing something wrong.
I am ok with using a web service call, but I have many site owners who are not comfortable with that, so I was curious about any alternatives. In this case, I did come up with another way of meeting the goal. Instead of copying the item to another calendar list that would have unique permissions and be the official calendar, I am using the second calendar for official team events and holidays and using an overlay to display those on the requests calendar. I added logic to the workflow of the requests calendar that will not allow people to change the status to approved without it going through the approval workflow (it gets changed back to "draft"). In the end, I used different view overlays for the pending and approved events on the calendar along with some improved conditions on the workflow to meet the same business goal and provide a workflow solution that would be easier for the site owner to maintain going forward.
Have a great weekend!
I confirm : creating a new event by Workflow works, but error with "Duplicate item"....even with standards Calendars....
I am having the same issue in a large portal where we need to copy calendar events with recurrence or the All Day setting between sites in the same site collection. We do not have the option of using a web service, unfortunately. Does anyone know of a workaround that doesn't involve using a web service? I found a custom activity on CodePlex that solves this issue: DP.SharePoint.Workflow. Now, my challenge is to get the custom activity to work in Nintex. It works great in SharePoint Designer.