none
定期的なイベントの内容取得 RRS feed

  • 質問


  • GetListItemsで定期的なイベントの取得を行いたのですが、
    どうしても登録元のデータ内容の肝心の定期的なイベント内容
    を取得できません。

    テストデータとして以下のようなデータを登録しています。

    タイトルは”TEST"
    1週毎の土曜日
    開始日は2008/5/19
    開始時刻08:00
    終了時刻17:00

    取得時のGetListItemsのパラメータは

    Queryは

    Code Snippet

    <Query>
        <Where>
            <DataRangesOverlap>
                <FieldRef Name="EventDate"/>
                <FieldRef Name="EndDate"/>
                <FieldRef Name="RecurrenceID"/>
                <Value Type="DateTime">
                    <Now/>
                </Value>
            </DateRangesOverlap>
        </Where>
    </Query>



    ViewFieldsは以下

    Code Snippet

    <ViewFields>
        <FieldRef Name="EventDate"/>
        <FieldRef Name="EndDate"/>
        <FieldRef Name="fRecurrence"/>
        <FieldRef Name="RecurrenceData"/>
    </ViewFields>



    rowLimitは0で、
    QueryOptionsは以下

    Code Snippet

    <QueryOptions>
        <ViewAttributes RecurrenceRowset="TRUE"/>
    </QueryOptions>



    としています。。。
    しかし結果は以下のような内容が返ってきます。

    Code Snippet

    <ns1:data ItemCount="1" xmlns:ns1="urn:schemas-microsoft-com:rowset">
        <ns3:row
            ows_EventDate="2008-05-19 08:00:00"
            ows_EndDate="20027-07-10 17:00:00"
            ows_fRecurrence="1"
            ows_fAllDayEvent="0"
            ows_MetaInfo="70;#"
            ows__ModerationStatus="0"
            ows__Level="1"
            ows_Title="TEST"
            ows_ID="70"
            ows_owshiddenversion="1"
            ows_UniqueId="70;#{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx}"
            ows_FSObjType="70;#0"
            ows_Created="2008-05-19 09:19:03"
            ows_FieldRef="70:#xxxx/Lists/xxx/70_.000"
            xmlns:ns3="#RowsetSchema"/>
    </ns1:data>



    肝心のRecurrenceDataの内容が返って来てないような気がします。
    どこのどのパラメータがおかしいのかも見当もつかないんですが、
    なにかわかる方がいらっしゃいましたご教授らよろしくお願いい
    たします。

    ちなみにサーバはWindows2003Serverで、SharePoint3.0を使用
    しております。


    2008年5月20日 12:54

回答

  • こんにちは。
    マイクロソフトの小松です。

     

    以下のSOAPリクエストを生成して、GetListItemsを呼び出してみたところ、RecurrenceDataの値を取得できました (レスポンスをご参照ください)。

    クエリの条件は変わってしまいますが、query要素以下に指定しているDataRangesOverlap要素を外すことでRecurrenceDataの値を取得することができます。

     

    Request:

    Code Snippet

    <?xml version="1.0" encoding="utf-8"?>

    <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>6DE10970-17A5-4D86-9A31-8F3DE3A13629</listName>

           <query />

           <viewFields>

             <ViewFields>

               <FieldRef Name="RecurrenceData" />

             </ViewFields>

           </viewFields>

           <rowLimit>0</rowLimit>

         </GetListItems>

       </soap:Body>

    </soap:Envelope>

     

    Response:

    Code Snippet

    <?xml version="1.0"?>

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                   xmlns:xsd="http://www.w3.org/2001/XMLSchema">

       <soap:Body>

         <GetListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">

           <GetListItemsResult>

             <listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"

                       xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"

                       xmlns:rs="urn:schemas-microsoft-com:rowset"

                       xmlns:z="#RowsetSchema">

               <rs:data ItemCount="1">

                 <z:row ows_RecurrenceData="&lt;recurrence&gt;&lt;rule&gt;&lt;firstDayOfWeek&gt;su&lt;/firstDayOfWeek&gt;&lt;repeat&gt;&lt;daily dayFrequency=&quot;1&quot; /&gt;&lt;/repeat&gt;&lt;repeatForever&gt;FALSE&lt;/repeatForever&gt;&lt;/rule&gt;&lt;/recurrence&gt;"

                       ows_MetaInfo="1;#"

                       ows__ModerationStatus="0"

                       ows__Level="1"

                       ows_fAllDayEvent="0"

                       ows_Title="rec"

                       ows_EventDate="2008-05-21 22:00:00"

                       ows_ID="1"

                       ows_owshiddenversion="1"

                       ows_UniqueId="1;#{6F9D2F29-847B-4107-B2D0-5390DB5E8FFB}"

                       ows_FSObjType="1;#0"

                       ows_Created="2008-05-21 21:50:53"

                       ows_EndDate="2011-02-13 22:00:00"

                       ows_FileRef="1;#test/Lists/Calendar/1_.000"/>

               </rs:data>

             </listitems>

           </GetListItemsResult>

         </GetListItemsResponse>

       </soap:Body>

    </soap:Envelope>


    -----
    マイクロソフト ディベロップメント株式会社
    小松 真也

    2008年5月23日 5:32

すべての返信

  • こんにちは。
    マイクロソフトの小松です。

     

    以下のSOAPリクエストを生成して、GetListItemsを呼び出してみたところ、RecurrenceDataの値を取得できました (レスポンスをご参照ください)。

    クエリの条件は変わってしまいますが、query要素以下に指定しているDataRangesOverlap要素を外すことでRecurrenceDataの値を取得することができます。

     

    Request:

    Code Snippet

    <?xml version="1.0" encoding="utf-8"?>

    <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>6DE10970-17A5-4D86-9A31-8F3DE3A13629</listName>

           <query />

           <viewFields>

             <ViewFields>

               <FieldRef Name="RecurrenceData" />

             </ViewFields>

           </viewFields>

           <rowLimit>0</rowLimit>

         </GetListItems>

       </soap:Body>

    </soap:Envelope>

     

    Response:

    Code Snippet

    <?xml version="1.0"?>

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                   xmlns:xsd="http://www.w3.org/2001/XMLSchema">

       <soap:Body>

         <GetListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">

           <GetListItemsResult>

             <listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"

                       xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"

                       xmlns:rs="urn:schemas-microsoft-com:rowset"

                       xmlns:z="#RowsetSchema">

               <rs:data ItemCount="1">

                 <z:row ows_RecurrenceData="&lt;recurrence&gt;&lt;rule&gt;&lt;firstDayOfWeek&gt;su&lt;/firstDayOfWeek&gt;&lt;repeat&gt;&lt;daily dayFrequency=&quot;1&quot; /&gt;&lt;/repeat&gt;&lt;repeatForever&gt;FALSE&lt;/repeatForever&gt;&lt;/rule&gt;&lt;/recurrence&gt;"

                       ows_MetaInfo="1;#"

                       ows__ModerationStatus="0"

                       ows__Level="1"

                       ows_fAllDayEvent="0"

                       ows_Title="rec"

                       ows_EventDate="2008-05-21 22:00:00"

                       ows_ID="1"

                       ows_owshiddenversion="1"

                       ows_UniqueId="1;#{6F9D2F29-847B-4107-B2D0-5390DB5E8FFB}"

                       ows_FSObjType="1;#0"

                       ows_Created="2008-05-21 21:50:53"

                       ows_EndDate="2011-02-13 22:00:00"

                       ows_FileRef="1;#test/Lists/Calendar/1_.000"/>

               </rs:data>

             </listitems>

           </GetListItemsResult>

         </GetListItemsResponse>

       </soap:Body>

    </soap:Envelope>


    -----
    マイクロソフト ディベロップメント株式会社
    小松 真也

    2008年5月23日 5:32

  • 小松様。
    無事
    RecurrenceDataを取得することができました。ありがとうございました。

    ほんとうは、ある日時から日時までの間に含まれるスケジュールを取得したかったんですが、
    定期的なイベントは各日時へ展開されずに登録した日付がEVENTDATEとなって登録されているので、
    うまく期間指定でヒットしなくて、しかたなく自力で
    RecurrenceDataを展開しようかと考えました。。。

    これから
    RecurrenceDataを自力でスケジュールへ展開します。

    ありがとうございました。
    2008年5月26日 12:58
  • こんにちは、フォーラムオペレータ大久保です。

     

    hidezi さん、フォーラムのご利用ありがとうございます。

    今回、弊社 小松 の投稿がお役に立てたようで、なによりです。

     

    この情報を他のお客様にも参考にしていただきたく、勝手ながら弊社小松の投稿に「回答済み」チェックをつけさせていただきました。

    また何かありましたら TechNet フォーラムをご利用ください!おまちしております。

    2008年6月18日 7:42