Додајте вебреференце на Листс.асмк у СхареПоинт локације.
ХТТП://лоцалхост / _вти_бин / Листс.асмк
(СхареПоинт Виртуал Дирецтори УРЛ адреса / _вти_бин / Листс.асмк
пише следеће методе у свом Вебсервице.
приватни дата.ДатаТабле ГетДатаТаблеФромВСС(боол онлиСцхема)
{
стринг ВссСитеУрл = хттп://192.168.111.21;
стринг ВссСитеУрл = ЦонфигуратионСеттингс.АппСеттингс[“ВссСитеУрл”];
ВссСите.Листс листе = нови ВссСите.Листс();
листс.Урл = ВссСитеУрл + “_вти_бин / Листс.асмк”;
листс.Цредентиалс = Систем.Нет.ЦредентиалЦацхе.ДефаултЦредентиалс;
листс.ПреАутхентицате = труе;
//морате да овде прође листи Име
стринг = ЦоммандТект “Запослени информација”;
КсмлНоде = ЛистЦоллецтионНоде листс.ГетЛистЦоллецтион();
Списак КсмлЕлемент = (КсмлЕлемент)ЛистЦоллецтионНоде.СелецтСинглеНоде(Стринг.Формат(“ВСС:Листа[@ Титле = '{0}’]”, ЦоммандТект), НамеСпацеМгр);
ако (Списак == НУЛЛ)
{
тхров нев АргументЕкцептион(Стринг.Формат(“Листа {0} није могао бити пронађен на сајту {1}”, ЦоммандТект, ВссСитеУрл));
}
стринг ТецхЛистНаме = Лист.ГетАттрибуте(“Име”);
дата.ДатаТабле резултат = нови дата.ДатаТабле(“листа”);
КсмлНоде = ЛистИнфоНоде листс.ГетЛист(ТецхЛистНаме);
Систем.Тект.СтрингБуилдер фиелдРефс = нови Систем.Тект.СтрингБуилдер();
Систем.Цоллецтионс.Хасхтабле ДисплаиНамес = нови Систем.Цоллецтионс.Хасхтабле();
фореацх (КсмлЕлемент Поље у ЛистИнфоНоде.СелецтНодес(“ВСС:Поља / ВСС:Поље”, НамеСпацеМгр))
{
ако (Фиелд.ХасЦхилдНодес)
{
фореацх (КсмлЕлемент Флд у Фиелд.СелецтНодес(“ВСС:Поља / ВСС:Поље”, НамеСпацеМгр))
{
ниска вредност имепоља = Флд.ГетАттрибуте(“Име”);
стринг ФиелдДисплаиНаме = Флд.ГетАттрибуте(“ДисплаиНаме”);
ако (ресулт.Цолумнс.Цонтаинс(ФиелдДисплаиНаме))
{
ФиелдДисплаиНаме = ФиелдДисплаиНаме + ” (” + Имепоља + “)”;
}
ресулт.Цолумнс.Адд(ФиелдДисплаиНаме, ТипеФромФиелд(Поље));
фиелдРефс.АппендФормат(“”, Имепоља);
ДисплаиНамес.Адд(ФиелдДисплаиНаме, Имепоља);
}
}
друго
{
ниска вредност имепоља = Фиелд.ГетАттрибуте(“Име”);
стринг ФиелдДисплаиНаме = Фиелд.ГетАттрибуте(“ДисплаиНаме”);
ако (ресулт.Цолумнс.Цонтаинс(ФиелдДисплаиНаме))
{
ФиелдДисплаиНаме = ФиелдДисплаиНаме + ” (” + Имепоља + “)”;
}
ресулт.Цолумнс.Адд(ФиелдДисплаиНаме, ТипеФромФиелд(Поље));
фиелдРефс.АппендФормат(“”, Имепоља);
ДисплаиНамес.Адд(ФиелдДисплаиНаме, Имепоља);
}
}
ако (онлиСцхема) врати резултат;
КсмлЕлемент поља = ЛистИнфоНоде.ОвнерДоцумент.ЦреатеЕлемент(“ВиевФиелдс”);
фиелдс.ИннерКсмл = фиелдРефс.ТоСтринг();
КсмлНоде ИтемсНоде = листс.ГетЛистИтемс(ТецхЛистНаме, “”, нула, области, “1000000”, нула);
// Поља проналажење увек почињу са нумеричком ИД, онда ;# а затим ниска заступљеност.
// Ми обично су заинтересовани само у име, тако да смо стрип ИД.
Систем.Тект.РегуларЕкпрессионс.Регек ЦхецкЛоокуп = нови Систем.Тект.РегуларЕкпрессионс.Регек(“^ Д ;#”);
фореацх (КсмлЕлемент ставка у ИтемсНоде.СелецтНодес(“РС:датум / З:ред”, НамеСпацеМгр))
{
дата.ДатаРов невРов = ресулт.НевРов();
фореацх (дата.ДатаЦолумн купус у ресулт.Цолумнс)
{
ако (Итем.ХасАттрибуте(“овс_” + (ниска)ДисплаиНамес[цол.ЦолумнНаме]))
{
стринг вал = Итем.ГетАттрибуте(“овс_” + (ниска)ДисплаиНамес[цол.ЦолумнНаме]);
ако (ЦхецкЛоокуп.ИсМатцх((ниска)Вал))
{
стринг вал = валСтринг Ас Стринг;
вал = валСтринг.Субстринг(валСтринг.ИндекОф(“#”) + 1);
}
// Додељивање стринг у поље које очекује бројеве или
// датетиме вредности ће их имплицитно конвертовати
невРов[са] = Вал;
}
}
ресулт.Ровс.Адд(невРов);
}
врати резултат;
}
// Следећи Функција се користи за Гет Именски простори
статичка приватна КсмлНамеспацеМанагер _нсмгр;
статичка приватна КсмлНамеспацеМанагер НамеСпацеМгр
{
добити
{
ако (_нсмгр == НУЛЛ)
{
_нсмгр = нови КсмлНамеспацеМанагер(Нови НамеТабле());
_нсмгр.АддНамеспаце(“ВСС”, “ХТТП://сцхемас.мицрософт.цом / СхареПоинт / сапун /”);
_нсмгр.АддНамеспаце(“са”, “ууид:БДЦ6Е3Ф0-6ДА3-11д1-А2А3-00АА00Ц14882”);
_нсмгр.АддНамеспаце(“ДТ”, “ууид:Ц2Ф41010-65Б3-11Д1-А29Ф-00АА00Ц14882”);
_нсмгр.АддНамеспаце(“РС”, “урн:шеме-мицрософт-цом:ровсет”);
_нсмгр.АддНамеспаце(“од”, “#РовсетСцхема”);
}
врати _нсмгр;
}
}
приватни Тип ТипеФромФиелд(КсмлЕлемент поље)
{
пребацити (фиелд.ГетАттрибуте(“Тип”))
{
случај “ДатеТиме”:
врати типеоф(ДатеТиме);
случај “Цео број”:
врати типеоф(Инт);
случај “Број”:
врати типеоф(пловак);
Подразумевана:
врати типеоф(ниска);
}
}
ВссСите објекат на овом коду, Добијам грешку на ово, “вам недостаје користећи директиву или референцу на покретној?” било који идеја
Здраво Бала,
ВссСите је Вебреференце за листс.асмк
Живели,
Удај
Одличан. Хвала Удај. Your post saved me lot of time in my migration project 🙂
Ви сте добродошли Јаиа