این سایت برای ie9 طراحی نشده است

لطفا دستگاه خود را بچرخانید.

کپی کردن آیتمهای یک لیست از یک سایت کالکشن به سایت کالکشن دیگر با استفاده از برنامه نویسی در شیرپروینت ۲۰۱۳

۹ شهریور ۱۳۹۴ راحله عباسی فشمی
بدون دیدگاه

برای اینکه بتوانید در شیرپوینت ۲۰۱۳ آیتمهای یک لیست را از یک سایت کالکشن به سایت کالکشن دیگر انتقال دهید ، در پروژه ی خود ، با اضافه کردن Service reference برای هر یک از سایت کالکشن ها ، امکان برقراری ارتباط با آن سایت کالکشن را فراهم خواهید نمود. پس از اضافه نمودن Service Reference برای سایت مبدأ و سایت مقصد ، نیاز به خواندن اطلاعات از لیست مبدأ می باشد.

 در این مثال می خواهیم تمامی آیتم های موجود در لیست Daily Report را از سایت کالکشنی با آدرس  http://source.come به لیست Daily Report در سایت کالکشن http://destination.com انتقال دهیم.

 SPSite site = new SPSite("http://destination.com");
 SPWeb web = site.OpenWeb();
 SPList list = web.Lists["Daily Report"];
 web.AllowUnsafeUpdates = true;

ServiceReference1.DataContext sr1 = new ServiceReference1.DataContext(new Uri("http://source.com/_vti_bin/ListData.svc"));
sr1.Credentials = System.Net.CredentialCache.DefaultCredentials; 

List<ServiceReference1.DailyReportItem> dailyReport = ss.DailyReport.ToList();
ServiceReference2.DataContext sr2 = new ServiceReference2.DataContext(new Uri("http:/destination.com/_vti_bin/ListData.svc"));
sr2.Credentials = System.Net.CredentialCache.DefaultCredentials; 

حال باید instance ی از لیست آیتم مقصد ساخته شود و با مقادیر لیست آیتم سایت مبدأ مقداردهی شود . پس از کپی کردن آیتم ها ملاحظه می کنید که مقادیر برخی از فیلدها مانند Created ، Created By ، Modified ، Modified By  ، آپدیت نشده و فیلدهای زمان ایجاد و زمان ادیت ، زمان جاری سیستم و دو فیلد دیگر ، نام کاربری local ی را نشان می دهد که انتقال اطلاعات توسط وی صورت گرفته است. که برای رفع این مشکل باید فیلدهای مزبور با مقادیر دریافتی از لیست مبدأ مقداردهی و آپدیت شوند.

try
                {
                    string modified = "";
                    string created = "";
                    foreach (var item in dailyReport)
                    {
                        ServiceReference4.DailyReportItem dailyRepItem = new ServiceReference4.DailyReportItem();
                      
                        dailyRepItem.CreatedById = item.CreatedById;
                        dailyRepItem.Created = item.Created;
                        created = item.Created.ToString();
                        dailyRepItem.DailyDescription = item.DailyDescription;
                        dailyRepItem.EntranceTime = item.EntranceTime;
                        dailyRepItem.ExitTime = item.ExitTime;
                        dailyRepItem.GroupId = item.GroupId;
                        dailyRepItem.ModifiedById = item.ModifiedById;
                        dailyRepItem.Modified = item.Modified;
                        modified = item.Modified.ToString();
                        dailyRepItem.Title = item.Title;

                        sr.AddToDailyReport(dailyRepItem);
                        sr.SaveChanges();

//---- updating the destination field values to the source values ----

 SPListItem itema = list.GetItemById(dailyRepItem.Id); 
 {
 itema["Modified"] = modified;
 itema["Created"] = created;
 itema["Modified By"] = item.ModifiedById;
 itema["Created By"] = CreatedById; 
 itema.UpdateOverwriteVersion();
 }
 }
 }
 catch { } 
 }