Hallo zusammen,
Ich würde gern über die REST API in SharePoint Online ein Dokument in einer Dokumentenbibliothek erzeugen. Hierzu benutzen ich diesen Endpunkt:
http://site url/_api/web/lists/GetByTitle('Test')/items
mit diesem body:
{ '__metadata': { 'type': 'SP.ListItem' }, 'Title': 'Test'}
Ich bekomme jedoch die Fehlermeldung ungültige Anforderung. Kann mir da jemand weiterhelfen?
Gruß Dennis
https://msdn.microsoft.com/en-us/library/office/dn450841.aspx#bk_FileCollectionAdd
Ah, super. Vielen Dank :)
Ich hätte noch eine andere Frage.
In einer SharePoint Bibliothek gibt es ja so ein Suchfeld, um nach den Dokumenten zu suchen. Ich habe einige Spalten (Firmenname, Firmennummer, Adresse, ...), die alle identisch angelegt sind und zwar als einfache Textzeile. Ich habe hier dann das Problem, dass ich in Adresse oder Firmennummer problemlos über dieses Suchfeld die entsprechenden Dokumente finde (z.B. alle Dokumente mit Adresse "Testweg 1"). Bei der Spalte Firmenname funktioniert es aber einfach nicht, egal was ich mache. Beispiel: Suche alle Dokumente mit Firmenname "SAP" liefert kein Ergebnis.
Hast du da vielleicht auch eine Idee, woran das liegen könnte?
Sind die Spalten alle manuell angelegt worden oder ist der Firmenname z.B. die umbenannte Titelspalte? Und schaue mal in Websiteeinstellungen - Suchschema und was Du dort zu den Spalten findest.
Die Spalten sind alle von mir neu als Websitespalten angelegt worden. Im Suchschema von Firmenname war neben den Eigenschaften die bei allen anderen waren (Firmenname0OWSTEXT, FirmennameOWSTEXT) noch was mit RefinableString (ich erinnere mich, dass ich damit mal etwas rumgespielt habe..:D). bei Firmenname0OWSTEXT und FirmennameOWSTEXT ist jeweils nur der Typ auf Text gesetzt, sonst alles leer. So sieht es bei den anderen auch aus.
Ich habe nochmal eine Frage zu REST:
Man kann ja mit GetFileByServerRelativeUrl(relativeUrl)/Property sich die Eigenschaften (z.B. Titel) von Dokumenten ausgeben lassen. Funktioniert das auch für selbst erstellte Spalten? Habe eine Spalte Token, die ich gerne auslesen würde. Ist das so oder eventuell anders möglich?
Das geht exakt genauso. Du mußt nur darauf achten, den internen Namen der Spalten zu verwenden. Das ist der XML-kodierte Name, der bei der Neuanlage der Spalte angegeben wurde. Du siehst ihn, wenn Du z.B. in den Listeneinstellungen auf eine Spalte klickst in der Adresszeile des Browsers.
Du meinst hier oder?
https://contoso.sharepoint.com/sites/Dokumente/_layouts/15/FldEdit.aspx?List=%7B06480B2B-B70D-463B-9FD6-0F8FD116E047%7D&Field=Token
da wäre "Token" der interne Name oder?
Wenn ich es mit "Token" probiere, also
GetFileByServerRelativeUrl(relativeUrl)/Token
Bekomme ich die Fehlermeldung ungültige Anforderung :/
Dennis94:da wäre "Token" der interne Name oder?
Exakt.
Dennis94:GetFileByServerRelativeUrl(relativeUrl)/Token Bekomme ich die Fehlermeldung ungültige Anforderung
Bekomme ich die Fehlermeldung ungültige Anforderung
Und z.B. mit Title funktioniert das (habs nicht versucht)? Dann wäre das echt seltsam...
Ja, mit Title oder Author usw. funktioniert es. Mit selbst erzeugten oder auch der Dokumenten-ID leider nicht. :(
Was ist das denn für ein Spaltentyp? Und bist Du sicher, daß die Spalte auch zur Bibliothek bzw. zum Inhaltstyp des Dokuments gehört?
Es handelt sich dabei um eine einzelne Textzeile. In der Bibliothek ist die Spalte definitiv. Inhaltstypen habe ich mehrere in der Bibliothek. Habe die Spalte jetzt mal zu allen hinzugefügt und teste dann nochmal. Vielleicht lag es ja da dran
Habe die Lösung gefunden. Anstatt "GetFileByServerRelativeUrl(relativeUrl)/Property" muss man noch ein "ListItemAllFields" einbauen, also
"GetFileByServerRelativeUrl(relativeUrl)/ListItemAllFields/Property"
Trotzdem Vielen Dank Andi für deine Hilfe und Mühe :)