如何在 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>