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.




Event ItemAdding und ItemAdded

Unbeantwortet Dieser Beitrag hat 3 Antworten

Ohne Rang
53 Beiträge
Jan D erstellt 13 Dez. 2010 12:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo SharePointCommunity,

in den letzten Wochen hatte ich massive Probleme im Bezug auf Event Receiver.

 

Dabei ging es um den folgenden Prozess, in dem eine TXT-Datei über eine Regex Maschiene ausgelesen und in eine Liste eingefügt wird:

1) Eine Liste "sources" wird um eine neue Zeile mit folgenden Angaben ergänzt:

- Titel: So heißt die spätere SPList, die entweder überschrieben oder neu erstellt wird.

- Option: Auswahlfeld - Neu erstellen / Überschreiben

- Anhang: Die TXT-Datei wird angehängt

 

2) Es wird überprüft, ob:

- Ein Anhang vorhanden ist

- Ob bei der Option "Überschreiben" eine Tabelle vorhanden ist, die überschrieben werden kann

- Ob bei der Option "Neu Erstellen" eine Tabelle mit gleichem Namen existiert.

 

3) Die TXT Datei wird durch den Einsatz der Regex Maschiene in ein 2 Dimensionales Array unterteilt und in die SPList geschrieben.

 

Während ich für 3) den ItemAdded Event-Receiver benutzen kann (was sogar problemlos funktioniert), muss ich bei einem eventuellen Abbruch bei 2) eine Fehlermeldung anzeigen. Aus diesem Grund habe ich den Event Receiver ItemAdding benutzt. Dieser bereitet aber zunehmend schwierigkeiten. Z.B. kann ich nicht auf das hinzugefügt ListItem über

SPListItem oListItem = properties.ListItem;
               SPAttachmentCollection attachments = oListItem.Attachments;

zugreifen.

Daher stelle ich mir im Moment die grundlegende Frage:
Übersehe ich hier irgend eine sehr offensichtliche SharePoint Funktion oder ist der Zugriff über den Event Receiver ItemAdding wirklich die einzige Möglichkeit, um durch den Einsatz einfacher Mittel dem Benutzer eine Fehlermeldung auszugeben?

LG

Jan

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Dez. 2010 13:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du kannst grundsätzlich nur die -ing Ereignisse abbrechen. Bei ItemAdding besteht aber wirklich das Problem, daß properties.ListItem noch nicht existiert. Du kannst nur die Metadaten aus den AfterProperties auswerten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
32 Beiträge
Exes Forum Als Antwort am 9 Juni 2011 13:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

using (SPSite Site = new SPSite("http://moss2007-bib:5555"))
            {
                SPWeb web = Site.OpenWeb();

                SPList list = web.Lists["Seminarinstanzen"];

                String teilnehmer = properties.AfterProperties["Teilnehmer"].ToString();
                String seminar = properties.AfterProperties["Seminarwahl"].ToString();
                //SPField found;
                //SPList list = SPContext.Current.Web.Lists["Seminarinstanzen"];

                SPQuery spQuery = new SPQuery();
                spQuery.Query = @"<Where>
                                    <Eq>
                                        <FieldRef Name='Seminar_x0020_Info' />
                                        <Value Type='Calculated'>"+seminar+@"</Value>
                                    </Eq>
                                   </Where>";

                SPListItemCollection listItemCollection = list.GetItems(spQuery);

                foreach (SPListItem listItem in listItemCollection)
                {
                    listItem["TeilnehmerTest"] += teilnehmer + ";";
                   
                }

 

Das ist mein bisheriger Versuch aber irgendwie passiert nicht wirklich was :) Kann ich eine Zuweisung in der Art machen?

 

Gruß!

Ohne Rang
32 Beiträge
Exes Forum Als Antwort am 9 Juni 2011 13:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Oh sorry : / dann bin ich wohl im falschen gelandet