SharePoint - kuidas salvestada sisuelemente ilma, et tekiks uued versioonid

25.03.2008  |  Gunnar

SharePoint SharePoint 2001 ja SharePoint Server 2007 vahel andmeid liigutades sattusin ühe huvitava probleemi otsa. SharePoint on algusest peale olnud väga tubli ja toetanud muuhulgas ka dokumentide versioone. Versioonid tekivad automaatselt ning ise sellele kaasa ei pea ise aitama. Mul oli aga vaja vastupidist - jõustada muudatused ilma, et tekiksid uued versiooni. Lahendus probleemile oli ootamatult lihtne.

Kõige enam internetis levinud näide sisuelementide muutmisest on midagi sellist, nagu ma kirjutasin kandes Kuidas programmiliselt lisada uusi elemente SharePoint-i list’idesse.

SPList list = web.Lists["myList"];
SPListItem item = list.Items[0];

item["myField"] = "my value";

item.Update();
list.Update();

Antud näide töötab hästi nendel juhtudel kui salvestamisel peab tekkima uus versioon sisuelemendist. Minul oli aga vaja vastupidist - ei mingeid uusi versioone, sest muudatused tuli teha just olemasolevale seisule nii, et versioonid ei muutuks.

Siin tuleb appi SPListItem'i küljes istuv meetod nimega SystemUpdate. SystemUpdate meetod ei muuda sisuelemendi muutmise aja ja muutja väljadesse, samuti saab ära keelata sisuelemendile uue versiooni tekitamise. Eeltoodud kood näeb ilma uue versiooni tekitamiseta välja selline.

SPList list = web.Lists["myList"];
SPListItem item = list.Items[0];

item["myField"] = "my value";

item.SystemUpdate(false);
list.Update();

Argument false ütleb SystemUpdate meetodile, et uut versiooni luua ei tohi.

Ja lõpetuseks veel - peale sisuelementide muutmist tuleb kindlasti kutsuda ka vastavate loendite Update meetodi.

Kommenteeri

sulge
Saada link e-postiga

© DT 2010 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress