2016-06-30 8 views
0

Ich suche nach Daten in einer Sharepoint-Liste.Felddaten können nicht in der Sharepoint-Liste mit SOAP gefunden werden.

Ich habe die Liste ID, mit der List-Service "GetList" -Methode kann ich sehen, dass das Feld, das ich suche, an die Liste angehängt ist. Wenn ich versuche, "GetListItems" zu verwenden, ist das Feld nicht vorhanden.

Ich habe davon ausgegangen, dass es bedeutet, dass das Feld, das ich will nicht in der Standardansicht ist, aber auch wenn ich die Ansicht Felder explizit definieren oder die Abfrage ändern, kann ich immer noch nicht die Daten finden. Was soll ich machen?

Hier sind einige der Versuche, die ich gemacht habe, keiner zeigt die Felder, die ich suche.

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

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

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

Alle drei Methoden führen Sie alle Felder in der Standardansicht (meine Filter zu ignorieren/query) aber korrekt auf 10 Ergebnisse beschränkt.

Antwort

0

Ihre Beispiele scheinen zu fehlen der äußere <{namespace}:viewFields> Knoten durch das "http://schemas.microsoft.com/sharepoint/soap/" Schema definiert. (Das oder sie vermissen den inneren <ViewFields> Knoten im Körper des Parameters.)

Die name Eigenschaften der FieldRef Knoten sollten die internen Namen der Spalten sein.

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

Beachten Sie, dass die Antwort wird Systemspalten (wie Titel, ID, und erstellt/geändert) in den Ergebnissen enthalten, auch wenn man sie nicht in der ViewFields angegeben haben.

+0

Welches Feld soll ich für den Namen verwenden? Hier ist ein Beispiel aus einem der Felder. _RowOrdinal = "0" _DisplayName = "MFG% Completion" _Name = "MFG_x0020__x0025_Completion" _SourceID = "{62606aad-875B-428D-b248-517d564a6e53}" _ColName = "float4" _StaticName = "MFG_x0020__x0025_Completion" _Type = "Nummer" _ID = "{111e8dae-2af3-4ea0-aa3f-c72560e68a77}" – user1209675

+0

Sie werden immer den internen Namen des Felds verwenden wollen. In diesem Beispiel wäre es "MFG_x0020__x0025_Completion" aus dem Feld "_Name". Wenn Sie nicht sicher sind, welches Feld die Abfrage unterbricht, können Sie versuchen, jeweils einen 'FieldRef'-Knoten zu den' ViewFields' hinzuzufügen und jedes Mal auszuführen. – Thriggle

+0

Immer noch kein Glück. Wenn das Feld, das ich verwende, in der Standardansicht ist, bekomme ich die gesamte Standardansicht. Wenn nicht, erhalte ich einen Fehler. Hier ist ein Beispiel für den Feldabschnitt: ' ' über dieses Feld bewirkt, dass der Antrag auf einer Zeitüberschreitung. Ich weiß, dass der Name gültig ist. – user1209675