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.


Item ID beibehalten bei neuem Item

Unbeantwortet Dieser Beitrag hat 2 Antworten

Ohne Rang
32 Beiträge
Exes Forum erstellt 20 Jun 2011 09:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

das wird jetzt glaub ich nen bischen schwierig zu erklären aber ich versuch es mal :).

Ich habe eine Liste, auf der ein Event Receiver ist bei ItemAdded. Hier wähle ich über ein Lookup ein Seminar aus und gebe einen Teilnehmer ein. Nun soll dieser Teilnehmer dem Seminar in einer anderen Liste hinzugefügt werden. Natürlich muss ich prüfen, ob in der anderen Liste schon das Seminar hinterlegt ist. Ist dies nicht der Fall muss ich es ja als neues Item anlegen, wobei ich ja diesem dann die LookupID des vorher ausgewählten Seminars geben muss?! Das Problem ist, dass soweit alles klappt, bis auf den Punkt mit der ID, da er beispielsweise immer die ID 8 sucht, da bei newItem eine andere ID gesetzt wird.

Der Code:

 

LookedUPItemID kommt aus den AfterProperties

 //C_Teilnehmer auswählen einfügen (Liste Seminaranmeldung)
                SPQuery spQuery2 = new SPQuery();
                spQuery2.Query = @"<Where>
                                         <Eq>
                                          <FieldRef Name='ID' />
                                          <Value Type='DualLookup'>" + lookedUpItemID + @"</Value>
                                         </Eq>
                                   </Where>";

                SPListItemCollection listItemCollection2 = list2.GetItems(spQuery2);

                //Neues Item hinzufügen, da Seminar noch nicht vorhanden
                if (listItemCollection2.Count == 0)
                {
                   
                    SPListItem newItem = list2.Items.Add();
                    newItem["Title"] = "Test";
                    newItem["Priorität"] = "normal";
                                 
                    newItem["Status"] = "auf Warteliste";
                   
                    SPQuery spQuery3 = new SPQuery();
                    spQuery3.Query = @"<Where>
                                         <Eq>
                                          <FieldRef Name='ID' />
                                          <Value Type='DualLookup'>" + lookedUpItemID + @"</Value>
                                         </Eq>
                                   </Where>";

                    SPListItemCollection listItemCollection3 = list.GetItems(spQuery3);

                    foreach (SPListItem listItem in listItemCollection3)
                    {
                       String seminarInfo = listItem["Seminar Info"].ToString();
                       seminarInfo = seminarInfo.Substring(8);
                       SetFieldValueLookup(newItem, "Seminar_x0020_ausw_x00e4_hlen", seminarInfo);
                    }
                    newItem.Update();
                    newItem.ID = Convert.ToInt32(lookedUpItemID);
                    spQuery2.Query = @"<Where>
                                         <Eq>
                                          <FieldRef Name='ID' />
                                          <Value Type='DualLookup'>" + lookedUpItemID + @"</Value>
                                         </Eq>
                                   </Where>";

                    listItemCollection2 = list2.GetItems(spQuery2);
                                      

                }

                foreach (SPListItem listItem in listItemCollection2)

 

Viele Grüße

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Jun 2011 12:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Kannst Du bitte das eigentliche Problem nochmal anders formulieren? Ich habe es nämlich nicht verstanden...

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

Das Problem war, dass ich bei einem Item die ID ändern musste. Das Problem erstreckt sich über mehrere Listen und ist daher etwas schwierig zu beschreiben. Ich habe jetzt einfach die CAML Abfragen über die Bezeichnungen gemacht und nicht über die IDs. Es scheint so, als würde es auf diesem Weg so funktionieren wie ich es mir vorgestellt habe.