SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




SPUser Objekt aus SPList.Fields auslesen?

Geprüfte Antwort Dieser Beitrag hat 5 Antworten

Ohne Rang
282 Beiträge
MStel erstellt 18 Mai 2016 14:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe in Visual Studio C# einen SPTimerjob entwickelt der regelmäßig Listeneinträge auf meiner Websitesammlung updatet. (mit Event Receiver) Das ganze funktioniert soweit auch problemlos.

Nun werden allerdings zusätzliche Informationen benötigt, dazu benötige ich das SPUser objekt aus dem Ersteller des Listenelementes.
Quasi ein Get-SPUser ( Listenelement, "author" )
Beim debuggen meines Codes(binden an owstimer) ist mir aufgefallen, dass Visual Studio das benötigte SPUser Objekt einfach nicht füllen möchte. Bei anderen Werten aus dem Listeneintrag funktioniert dies jedoch problemlos, hier ein Beispiel wie ich den Name des Listeneintrages auslese.

string Name = mySPlistItem["Vorname"].ToString();

Ich kann sämtliche Felder als variablen/strings problemlos einlesen und auch mit den SharePoint Datentypen wie SPList etc. arbeiten und mich im Objektmodell tiefer herunterhangeln und erhalte dabei stets korrekte Werte, das SPUser Objekt jedoch wird mir nicht als gefüllt angezeigt. Ich erhalte weder Fehlermeldungen(Syntax, Exceptions), noch Informationen, wenn ich während des Debuggens mit der Maus über die Variable fahre. Habe mehrere Code Snippets ausprobiert die angeblich funktionieren sollen und habe immer dasselbe Problem.
Hier einer der Ansätze die ich getestet habe:

SPFieldUserValue userValue = new SPFieldUserValue(web, mySPlistItem[SPBuiltInFieldId.Author].ToString());
SPUser author = userValue.User;

Habe alle verwendeten Variablen auf korrekten Inhalt geprüft und kann mir wirklich nicht erklären woran es hängt. Vielleicht habt ihr eine Idee?

Mfg

MStel

 

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 18 Mai 2016 15:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="MStel"]SPFieldUserValue userValue = new SPFieldUserValue(web, mySPlistItem[SPBuiltInFieldId.Author].ToString());
SPUser author = userValue.User
[/quote]

Genau diesen Schnipsel wollte ich Dir schreiben. Das ist der Standardweg. Ich habe keine Ahnung, warum das bei Dir nicht geht.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 19 Mai 2016 06:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja, ich hatte meine SharePoint Kenntnisse mittlerweile eigentlich auch hoch genug eingeschätzt um das als richtig erkennen. :D

dann werde ich den Fehler wohl an anderen stellen diagnostizieren müssen.

Danke trotzdem :-)

Ohne Rang
9 Beiträge
PieBec Als Antwort am 10 Juni 2016 13:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

hier passt das einigermassen hin - ich versuch mich gerade an meinem ersten Programm mittels vb.net was auf Sharepoint daten zugreift.

Allerdings kann ich nicht auf die class microsoft.sharepoint.spsite zugreifen - ich find auch keine passende dll dazu.

Einer einen wertvollen tip für mich ?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 10 Juni 2016 15:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Alles aus dem Namespace Microsoft.SharePoint funktioniert nur direkt auf einem Server (dort finden sich auch die entsprechenden DLLs). Du entwickelst also entweder serverseitigen Code (und brauchst dann auch einen Entwicklungsserver) oder Du entwickelst auf dem Client. In 2010 kannst Du da nur auf die Webservices oder das noch recht dürftige Client Object Model zurückgreifen: https://msdn.microsoft.com/en-us/library/office/ee537247(v=office.14).aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
9 Beiträge
PieBec Als Antwort am 10 Juni 2016 15:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

merci - du hast mir sehr geholfen