2016-06-30 1 views
0

Sharepointリストでデータを検索しようとしていません。SOAPを使用してSharepointリスト内のフィールドデータを見つけることができません

私はリストサービス "GetList"メソッドを使用してリストIDを持っています。探しているフィールドがリストに付いていることがわかります。私は "GetListItems"を使用しようとすると、フィールドはありません。

私が望むフィールドがデフォルトビューにないことを意味していると仮定していますが、ビューフィールドを明示的に定義したりクエリを変更しても、データを見つけることができません。私は何をすべきか?

私が作った試みはいくつかありますが、私が探しているフィールドはありません。

方法1:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Header/> 
<ns0:Body> 
<ns1:GetListItems> 
    <ns1:listName>{1A8A3DF2-E5D0-4DDE-B31A-CCC2FB7DA90F}</ns1:listName> 
    <viewFields> 
     <FieldRef Name="_ows_Title"/> 
     <FieldRef Name="_ows_Project_x0020_Description"/> 
     <FieldRef Name="_ows_Style_x0020_number_x0020_quantit"/> 
     <FieldRef Name="_ows_Requirement"/> 
     <FieldRef Name="_ows_First_x0020_order_x0020_entry_x0"/> 
     <FieldRef Name="_ows_MKT_x0020__x0025__x0020_Completi"/> 
     <FieldRef Name="_ows_MFG_x0020__x0025_Completion"/> 
    </viewFields> 
    <ns1:rowLimit>10</ns1:rowLimit> 
    </ns1:GetListItems> 
</ns0:Body> 
</SOAP-ENV:Envelope> 

方法2:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Header/> 
<ns0:Body> 
<ns1:GetListItems> 
    <ns1:listName>{1A8A3DF2-E5D0-4DDE-B31A-CCC2FB7DA90F}</ns1:listName> 
    <viewFields> 
     <FieldRef Name="Title"/> 
     <FieldRef Name="Project_x0020_Description"/> 
     <FieldRef Name="Style_x0020_number_x0020_quantit"/> 
     <FieldRef Name="Requirement"/> 
     <FieldRef Name="First_x0020_order_x0020_entry_x0"/> 
     <FieldRef Name="MKT_x0020__x0025__x0020_Completi"/> 
     <FieldRef Name="MFG_x0020__x0025_Completion"/> 
    </viewFields> 
    <ns1:rowLimit>10</ns1:rowLimit> 
    </ns1:GetListItems> 
</ns0:Body> 
</SOAP-ENV:Envelope> 

方法3:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Header/> 
<ns0:Body> 
    <ns1:GetListItems> 
    <ns1:listName>{1A8A3DF2-E5D0-4DDE-B31A-CCC2FB7DA90F}</ns1:listName> 
    <Query> 
     <Where> 
      <Gt> 
       <FieldRef Name="ID"/> 
       <Value Type="Counter">0</Value> 
      </Gt> 
     </Where> 
    </Query> 
    <ns1:rowLimit>10</ns1:rowLimit> 
    </ns1:GetListItems> 
</ns0:Body> 
</SOAP-ENV:Envelope> 

すべての3つの方法が(私のフィルタを無視して、デフォルトのビュー内のすべてのフィールドをリスト/クエリ)しかし、10の結果に正しく制限されています。

答えて

0

例では、"http://schemas.microsoft.com/sharepoint/soap/"スキーマで定義された外側の<{namespace}:viewFields>ノードが欠落しているようです。 (それは、内部に<ViewFields>ノードがパラメータ本体にないことになります)

ノードのプロパティは、列の内部名にする必要があります。

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Header/> 
<ns0:Body> 
<ns1:GetListItems> 
     <ns1:listName>{1A8A3DF2-E5D0-4DDE-B31A-CCC2FB7DA90F}</ns1:listName> 
     <ns1:viewFields> 
      <ViewFields> 
       <FieldRef Name="Title"/> 
       <FieldRef Name="Project_x0020_Description"/> 
       <FieldRef Name="Style_x0020_number_x0020_quantit"/> 
       <FieldRef Name="Requirement"/> 
       <FieldRef Name="First_x0020_order_x0020_entry_x0"/> 
       <FieldRef Name="MKT_x0020__x0025__x0020_Completi"/> 
       <FieldRef Name="MFG_x0020__x0025_Completion"/> 
     </ViewFields> 
     </ns1:viewFields> 
     <ns1:rowLimit>10</ns1:rowLimit> 
    </ns1:GetListItems> 
</ns0:Body> 
</SOAP-ENV:Envelope> 

応答はあなたがViewFieldsでそれらを指定しなかった場合でも、結果にシステム(例えばタイトル、IDなど、および作成された/変更された)列が含まれることに注意してください。

+0

名前にはどのフィールドを使用しますか?ここにはそのフィールドのサンプルがあります。 _RowOrdinal = "0" _DisplayName = "MFGの%完了" _Name = "MFG_x0020__x0025_Completion" _SourceID = "{62606aad-875B-428D-b248-517d564a6e53}" _ColName = "するfloat4" _StaticName = "MFG_x0020__x0025_Completion" _Type = "Number" _ID = "{111e8dae-2af3-4ea0-aa3f-c72560e68a77}" – user1209675

+0

フィールドの内部名は常に使用します。この例では、 '_Name'フィールドから' MFG_x0020__x0025_Completion'となります。どのフィールドがクエリを壊しているのかわからない場合は、一度に1つの 'FieldRef'ノードを' ViewFields'に追加し、毎回それを実行することができます。 – Thriggle

+0

まだ運がありません。私が使っているフィールドがデフォルトビューであれば、デフォルトビュー全体が得られます。そうでない場合は、エラーが発生します。ここでフィールド・セクションの例です: ' <するFieldRef名= "MFG_x0020__x0025_Completion"/> このフィールドを使用して' は時間への要求をタイムアウトします。私は名前が有効だが知っている。 – user1209675

関連する問題