如何使用SharePointOnline上的OData查询创建每周定期事件?

时间:2018-06-19 18:52:44

标签: angular typescript sharepoint sharepoint-online

我正在开发一个内部网,我们可以在线使用Sharpeoint。我正在使用OData查询共享点REST请求。

客户要求创建重复事件和单个事件的方法。虽然我可以创建一个事件,但在创建重复事件时遇到了一些麻烦。

添加已正确执行,事件已添加到日历中,但具有唯一性。

这是我的重复字符串

<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);
            });

这将根据此字段正确创建项目

Recurrent Error

这将使加载程序无法加载日历事件。

我尝试创建一个具有“自定义”重复发生的事件,但是默认情况下,sharepoint不允许这样做。我正在使用 spEventsHelpers 处理周期性事件。

我可以停止创建自定义重复周期并进行每周一次吗?我现在不想创建复杂的重复事件。

这也是预期的结果吗?为什么看不到图案?我已经看了好几个小时了,还没有弄清楚问题出在哪里...

我已经搜索过类似的问题,但没有发现...如果您知道这种问题,请指出。 预先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

当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>