【问题标题】:SharePoint Recurring Events Are Random?SharePoint 重复事件是随机的?
【发布时间】:2019-11-07 17:27:55
【问题描述】:

注意:此问题类似于现有的未回答问题 (CAML OrderBy for SharePoint Recurring Calendar Event)。

我如何使用 Lists.asmx 网络服务来检索今天或以后发生的重复事件?

我在向/_vti_bin/Lists.asmx Web 服务发送请求时提供了<CalendarDate>2019-06-25T15:55:04.108Z</CalendarDate> 参数,但我仍然接收到过去的事件(如下面的屏幕截图所示)!

这是 XML 响应(屏幕截图)。请注意,即使“CalendarDate”被指定为“2019-06-25”,事件日期在今天之前

这是随请求发送的 XML 负载:

<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>
  <soap:Body>
    <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>
      <listName>{ my list GUID }</listName>
      <query>
        <Query>
          <OrderBy>
            <FieldRef Ascending='TRUE' Name='EventDate' />
          </OrderBy>
          <Where>
            <And>
              <Eq>
                <FieldRef Name="fRecurrence" />
                <Value Type="Boolean">1</Value>
              </Eq>
              <DateRangesOverlap>
                <FieldRef Name="EventDate" />
                <FieldRef Name="EndDate" />
                <FieldRef Name="RecurrenceID" />
                <Value Type='DateTime'>
                  <Year/>
                </Value>
              </DateRangesOverlap>
            </And>
          </Where>
        </Query>
      </query>
      <viewFields>
        <ViewFields>
          <FieldRef Name="Category" />
          <FieldRef Name="Location" />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <ViewAttributes Scope="RecursiveAll" />
          <RecurrencePatternXMLVersion>v3</RecurrencePatternXMLVersion>
          <DateInUtc>TRUE</DateInUtc>
          <ExpandRecurrence>TRUE</ExpandRecurrence>
          <CalendarDate>2019-06-25T15:55:04.108Z</CalendarDate>
          <RecurrenceOrderBy>TRUE</RecurrenceOrderBy>
        </QueryOptions>
      </queryOptions>
      <rowLimit>20</rowLimit>
    </GetListItems>
  </soap:Body>
</soap:Envelope>

编辑:以下是上述查询未返回的事件示例。

【问题讨论】:

    标签: sharepoint sharepoint-online recurring-events sharepoint-webservice


    【解决方案1】:

    Year 不支持 CalendarDate 属性 - 它返回从当前日期起一年内发生的先前事件和从当前日期起一年内发生的未来事件。

    DateRangesOverlap 中使用&lt;Value Type='DateTime'&gt;&lt;Now /&gt;&lt;/Value&gt; 并删除CalendarDate 以检索今天或以后发生的重复事件

    【讨论】:

    • 嗨,弗雷泽,我已经进行了更改,但我仍然看到 2019 年 4 月的事件。还有什么我可以尝试的吗?请查看我的编辑,了解您可能认为相关的任何详细信息。
    • 没关系,你的例子有效!我注意到EndDate 已经过了几个月的时间。我看到的唯一另一个问题是只有 9 件商品被退回,但有很多每周(即每周三)运行的活动不存在。我已经添加了&lt;rowLimit&gt;100&lt;/rowLimit&gt;,但它仍然只返回 9。你知道我可以尝试解决这个问题吗?或者我应该发布一个新问题吗?
    • 嗯 - 尝试完全删除 rowLimit... 猜测您的其他结果是分页的 - 否则它们的设置方式有问题。没有看到实际的事件数据很难说,对不起。
    • 感谢您的信息。我尝试删除 rowLimit 但它仍然只返回 9 个结果。我使用查询未返回的事件示例编辑了问题。您是否可能需要任何其他信息来帮助您了解 API 未返回此类事件的原因?
    • 很难说这里发生了什么...您可以尝试将fRecurrence 添加到ViewFields 以查看是否可以解决问题吗?此外,您可能会在这里得到更好的支持sharepoint.stackexchange.com - 抱歉,如果我自己没有看到实际的事件数据/日历,我真的无法提供更多帮助:(
    猜你喜欢
    • 2011-06-05
    • 2011-06-19
    • 2020-05-13
    • 2011-10-24
    • 1970-01-01
    • 2014-03-22
    • 2016-07-23
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多