如何在 SharePoint Online 上使用 OData 查询创建每周重复事件?
How to create a Weekly recurrent event using OData query on SharePointOnline?
我正在开发一个我们在线使用 sharpeoint 的内部网。我正在使用 OData 查询共享点 REST 请求。
客户要求一种创建重复事件和单个事件的方法。虽然我能够创建单个事件,但在创建循环事件时遇到了一些问题。
add 被正确执行,事件被添加到日历中,但具有奇点。
这是我的重复字符串
<recurrence>
<rule>
< firstDayOfWeek > su < /firstDayOfWeek>
< repeat >
<weekly tu='TRUE' we='TRUE' weekFrequency= '1'/>
< /repeat>
< windowEnd >2018-08-22T09:12:26Z< /windowEnd >
< /rule>
</recurrence >
这是我的查询
if (newItem["Recurrent"]) {
return new Web(`${this.baseUrl}`)
.lists
.getByTitle(this.baseList)
.items
.add({
"Languages_Active": true,
"Title": newItem["Title"],
"Languages_PT": true,
["Title_" + language]: newItem["Title"],
["Description_" + language]: newItem["Description"],
'Preferences': newItem["Preferences"],
'fRecurrence': newItem["Recurrent"],
'FromLocation': newItem["FromLocation"],
'ToLocation': newItem["ToLocation"],
'StopPoint': newItem["StopPoint"],
'Seats': newItem["Seats"],
'PrivateCar': newItem["PrivateCar"],
'EventDate': newItem["StartDate"],
'EndDate': newItem["EndDate"],
//recurrent event fields
'EventType': 1,
'RecurrenceData': recurrenceString,
'fAllDayEvent': false,
'TimeZone': 0,
})
.then(createResult => {
this.count(listName, country);
this.home(refresh, listName, language, country);
});
这会根据该字段正确创建项目
这会使加载程序无法加载日历事件。
我尝试创建一个具有自定义重复周期的事件,但默认情况下共享点不允许这样做。我正在使用 spEventsHelpers 来处理重复发生的事件。
我可以停止创建自定义周期并创建每周周期吗?我暂时不想创建复杂的重复事件。
这也是预期的结果吗?为什么我看不到图案?我已经看了好几个小时了,还没弄清楚问题出在哪里...
我搜索过类似的问题,但发现 none...如果您知道此类问题,请指出。
在此先感谢您的帮助!
当 SharePoint 无法解释 RecurrenceData 字段中的 XML 时,就会出现这种情况。即使你有正确的语法,也有很多额外的空格导致 XML 无效。这里有几个例子:
< firstDayOfWeek > su < /firstDayOfWeek> //Incorrect
<firstDayOfWeek>su</firstDayOfWeek> //Correct
<weekly tu='TRUE' we='TRUE' weekFrequency= '1'/> //Incorrect
<weekly tu='TRUE' we='TRUE' weekFrequency='1'/> //Correct
我建议查看为此字段生成 XML 的代码以消除多余的空格。最终结果需要如下所示:
<recurrence><rule><firstDayOfWeek>su</firstDayOfWeek><repeat><weekly tu='TRUE' we='TRUE' weekFrequency='1'/></repeat><windowEnd>2018-08-22T09:12:26Z</windowEnd></rule></recurrence>
我正在开发一个我们在线使用 sharpeoint 的内部网。我正在使用 OData 查询共享点 REST 请求。
客户要求一种创建重复事件和单个事件的方法。虽然我能够创建单个事件,但在创建循环事件时遇到了一些问题。
add 被正确执行,事件被添加到日历中,但具有奇点。
这是我的重复字符串
<recurrence>
<rule>
< firstDayOfWeek > su < /firstDayOfWeek>
< repeat >
<weekly tu='TRUE' we='TRUE' weekFrequency= '1'/>
< /repeat>
< windowEnd >2018-08-22T09:12:26Z< /windowEnd >
< /rule>
</recurrence >
这是我的查询
if (newItem["Recurrent"]) {
return new Web(`${this.baseUrl}`)
.lists
.getByTitle(this.baseList)
.items
.add({
"Languages_Active": true,
"Title": newItem["Title"],
"Languages_PT": true,
["Title_" + language]: newItem["Title"],
["Description_" + language]: newItem["Description"],
'Preferences': newItem["Preferences"],
'fRecurrence': newItem["Recurrent"],
'FromLocation': newItem["FromLocation"],
'ToLocation': newItem["ToLocation"],
'StopPoint': newItem["StopPoint"],
'Seats': newItem["Seats"],
'PrivateCar': newItem["PrivateCar"],
'EventDate': newItem["StartDate"],
'EndDate': newItem["EndDate"],
//recurrent event fields
'EventType': 1,
'RecurrenceData': recurrenceString,
'fAllDayEvent': false,
'TimeZone': 0,
})
.then(createResult => {
this.count(listName, country);
this.home(refresh, listName, language, country);
});
这会根据该字段正确创建项目
这会使加载程序无法加载日历事件。
我尝试创建一个具有自定义重复周期的事件,但默认情况下共享点不允许这样做。我正在使用 spEventsHelpers 来处理重复发生的事件。
我可以停止创建自定义周期并创建每周周期吗?我暂时不想创建复杂的重复事件。
这也是预期的结果吗?为什么我看不到图案?我已经看了好几个小时了,还没弄清楚问题出在哪里...
我搜索过类似的问题,但发现 none...如果您知道此类问题,请指出。 在此先感谢您的帮助!
当 SharePoint 无法解释 RecurrenceData 字段中的 XML 时,就会出现这种情况。即使你有正确的语法,也有很多额外的空格导致 XML 无效。这里有几个例子:
< firstDayOfWeek > su < /firstDayOfWeek> //Incorrect
<firstDayOfWeek>su</firstDayOfWeek> //Correct
<weekly tu='TRUE' we='TRUE' weekFrequency= '1'/> //Incorrect
<weekly tu='TRUE' we='TRUE' weekFrequency='1'/> //Correct
我建议查看为此字段生成 XML 的代码以消除多余的空格。最终结果需要如下所示:
<recurrence><rule><firstDayOfWeek>su</firstDayOfWeek><repeat><weekly tu='TRUE' we='TRUE' weekFrequency='1'/></repeat><windowEnd>2018-08-22T09:12:26Z</windowEnd></rule></recurrence>