Ретреивинг садржаја листе кроз Веб сервис у СхареПоинт 2003

Додајте вебреференце на Листс.асмк у СхареПоинт локације.

ХТТП://лоцалхост / _вти_бин / Листс.асмк
(СхареПоинт Виртуал Дирецтори УРЛ адреса / _вти_бин / Листс.асмк

пише следеће методе у свом Вебсервице.

приватни дата.ДатаТабле ГетДатаТаблеФромВСС(боол онлиСцхема)
{
стринг ВссСитеУрл = хттп://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”);
_нсмгр.АддНамеспаце(“РС”, “урн:шеме-мицрософт-цом:ровсет”);
_нсмгр.АддНамеспаце(“од”, “#РовсетСцхема”);

}
врати _нсмгр;
}
}
приватни Тип ТипеФромФиелд(КсмлЕлемент поље)
{
пребацити (фиелд.ГетАттрибуте(“Тип”))
{
случај “ДатеТиме”:
врати типеоф(ДатеТиме);
случај “Цео број”:
врати типеоф(Инт);
случај “Број”:
врати типеоф(пловак);
Подразумевана:
врати типеоф(ниска);
}
}

4 Коментари на Ретреивинг садржаја листе кроз Веб сервис у СхареПоинт 2003

  • норепли@блоггер.цом (метак)

    ВссСите објекат на овом коду, Добијам грешку на ово, “вам недостаје користећи директиву или референцу на покретној?” било који идеја

  • норепли@блоггер.цом (Удај)

    Здраво Бала,
    ВссСите је Вебреференце за листс.асмк

    Живели,
    Удај

  • норепли@блоггер.цом (Џаја Борра)

    Одличан. Хвала Удај. Your post saved me lot of time in my migration project 🙂

  • норепли@блоггер.цом (Удај)

    Ви сте добродошли Јаиа

Допуст један Одговор

Можете да користите ове ХТМЛ тагове

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>