Брза и једноставна: Одредба Сајт Коришћење СхареПоинт Објецт Модел у Ц #

I tried searching for a little snippet code that would show how I can create a new SPWeb in a site collection. I didn’t find it as quickly or easily as I expected so I thought I’d slap together a little entry on the subject.

Овај код креира нови Вики страница:

 СПСите ситеЦоллецтион;

    ситеЦоллецтион = нови СПСите("http://цонцханг-о9л8ки");

    СПВеб в = ситеЦоллецтион.ОпенВеб();

    в.Вебс.Адд("xyzzy", "xyzzy Title",
        "xyzzy description", 1033, СПВебТемплате.ВебТемплатеВИКИ, лажан, лажан);

My initial searches failed because I was looking for phrases like "provision a web site using sharepoint object model" and the like.

Ако тражи for "Webs.Add()", ћете наћи велики број веома корисних Текстова у блогу, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend овај сајт.

</крај>

Претплатите се на мој блог.

Тецхнорати Тагс:

Интегрисати СхареПоинт Десигнер Токови посла са веб услугама

Ја сам играо са око прилагођене радње за СхареПоинт Десигнер неко време (погледајте овде за неке детаљније ствари, ако те занима).

У мом тренутном пројекту, we need to do some fairly heavy lifting and we want to use declarative SPD workflow to manage the associated business process.

Да скратимо причу, this is entirely possible. I extended my Codeplex project to invoke a "helper service" and now we can invoke a web service directly from an SPD workflow.

Ево потпис:

 јавност ниска Диспечер(
        Добро ВебИД, // Доноси рунтиме окружење
        Добро СитеИД, // Доноси рунтиме окружење
        ниска ЛистИд, // Доноси РТЕ (Не знам зашто је то ниска, не ГУИД)
        инт ЛистИтемИД, // Доноси РТЕ.
        ниска КсмлМессаге) // Усвојен од стране корисника који се исказује у СПД.

Ово оснажује чињеницу да можемо добити на важном тока информација, као сајт, Листа ИД, итд. This is well documented in several places for those of you interested in creating your own custom actions. The idea is to extract the XML string as provided by the user to dispatch an appropriate procedure. Fun stuff!

Нажалост, ово је очигледно једном правцу до "Loosey Goosey" Анти-образац земљиште, but it’s better than hitting a brick wall 🙂

Да ли је анти-образац, ако се то уради, иако знате да је то анти-образац?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, гиве ме поке (е-маил или оставите коментар) and I’ll be that more enthusiastic about doing it 🙂

</крај>

Претплатите се на мој блог.

Тецхнорати Тагс: ,

Недеља смешно: “Питам се да ли је лозинка …”

Недавно сам купио ручак за мог брата (као и обично) and we ended up talking about funny things that we did at our respective colleges. At my alma mater, Лафајет колеџу, the academic support IT department had a very inclusive way about it. We were given a LOT of rope and I took advantage of that at times.

Две моје омиљене успомене односе се на мог доброг пријатеља, Gabe. He had made the terrible mistake of telling people his freshman year that "I’m a freshman, али имам Соутхмор положај" због разних напредне класе пласман је предузео, итд. Many of us were similarly situated but we didn’t talk about it so much. His senior year, када га је упознао са људима, we’d say "This is Gabe. He’s a Senior, but he has Sophomore standing".

The college had some Sun workstation/servers running X-Window. They had gigantic monitors and the engineers used them for CAD and other boring engineer stuff. We CS people used them to learn programming and, наравно, да играте игрице.

Ми нисмо као компјутерски беспомоћне инжењера много тако да један од наших омиљених ствари које треба урадити да би се телнет на пољу су били на води и Кс-еие on them. This would pop up a pair of eyes that followed the mouse around on the screen. You could pop up even more and have literally a dozen or more of the X-eye applications running. Try not to laugh out loud when a hapless engineer is trying to close X-eye after X-eye and muttering under his breath about it 🙂

We also played X-trek on those boxes. To do that, морали сте да преузмете извор, get various dependencies wherever you could find them and build it. I wasn’t a sophisticated C programmer, but I could read header files. I was looking through these and found directives like "#DEFINE MAX_TORPEDO_DISTANCE 10". I played around with that increase range and power for phases and torpedoes, поново изграђен је и затим уништили Габе следећи пут смо играли.

Гејб је такође велики фан ТВ емисији Блаке 7. I had never seen it, али то ме није спречило да инсистира да је др. Who is the superior show. The arguments would get heated at times 🙂

Једног дана, it occurred to me that I could probably guess his UNIX password. I sat down next to him one day and announced in a loud tone, "I’m going to guess your password right now, Gabe." "Yeah, право" was his answer. I then logged in, ушла у његов кориснички ИД, окренуо према њему, откуцана и рекао наглас, "I wonder if it’s B-L-A-K-E-7" ? Touch typing has never paid off as handsomely as it did that day.

Следеће недеље (или ускоро): More computer room antics from college.

Да ли имате да делите? Leave a comment or email me and I’ll publish them here.

</крај>

Претплатите се на мој блог.

Тецхнорати Тагс:

Мањи Саопштење за јавност: Виндовс Ливе безбедносних поставки и Контактирање Спаце Власници

I receive a handful of messages from individuals via the built-in "send a message" Функција Мицрософт пружа Ливе Спацес (који је и домаћин мој блог) сваког месеца.

Око једне трећине времена, those users have secured their live spaces account such that I cannot reply. This is some kind of anti-spam feature I assume.

</крај>

Једноставно Објашњење: “Вредност не спада у очекиваном опсегу.”

УПДАТЕ: An anonymous poster left a great comment about internal names. Be sure to read it.

Када радите са догађаја пријемника и други код који је повезан СхареПоинт листе ставке путем објектног модела, Ја често правимо грешке које стварају ову грешку у рунтиме:

Грешка при учитавању и трчање догађај пријемник Цонцханго.киззиЕвентРецеивер у киззи, Версион = 1.0.0.0, Култура = неутрална, ПублицКеиТокен = 0дц50а750396ц3ац. Additional information is below. : Value does not fall within the expected range.

I think this is a fairly generic error that is potentially caused many different ways. Међутим, one simple explanation is that I’m referencing a field incorrectly. If the name of the field is "Due Date", Морам да га референцу овако догађаја у пријемнику:

пропертиес.ЛистИтем["Due Date"]

Када сам погрешно напишете или користите погрешан случај када се упућује на терен, SharePoint generates the above mentioned runtime error. На пример, ово није у реду:

пропертиес.ЛистИтем["due Date"]

</крај>

Претплатите се на мој блог.

Крај Упутства Брзо Савет: Сортирати Прегледа у библиотеци докумената, Листа, итд.

Можемо, треба и да створе многе погледе на СхареПоинт листама (библиотеке докумената, Прилагођене листе, итд). SharePoint always lists available views in alphabetical order. We cannot change this using out of the box functionality. If it can be done via customization (и нисам сигуран да може), далеко је до техничких типичне за крајњег корисника.

Ако желите да контролишете редослед којим СхареПоинт листама доступне виевс, једноставно препенд број или писмо видите име, као у:

1 – По материјалу
2 – Сви документи
3 – Датум доспећа

-или-

A – По материјалу
Б – Сви документи
Ц – Датум доспећа

I have also created views whose purpose is strictly to feed a KPI. I have been following this naming convention:

З_КПИ_[опис]

That causes my "KPI" погледа да се појави на дну листе.

</крај>

Претплатите се на мој блог.

Тецхнорати Тагс: ,

Недеља смешно: “Када сам био дечак”

Као родитељ, somewhere along the line I discovered the "When I was a little boy" trick.

Мој син, вероватно четири или пет у то време, је пустио балон и, као и већина дечака који играју са балонима, he popped it. He was very upset. The world had come to an end. I said to him, "when I was little boy, I had a balloon and it popped and eventually, I got a new balloon." It seemed to help him cope with his loss and led to a fun talk about what it was like when I was a little boy.

That worked well as a consolation technique and I used it a several times over the next period of time. I did get into trouble once when his Monster Rancher 3 creature died. I talked about how my dog, Prince, had died in a car accident. Овај пут, his response was, "Now I feel bad about two things!" I shied away from using the "when I was a little boy" technique for consolation after that.

Before the dead dog incident, међутим, I had also started to use the technique to convince him to do chores. "When I was a little boy, I had to go out and get the newspaper", "clean my room", "get Mommy her coffee cup", итд.

This too was pretty successful for a while, but he started to increasingly rebel against the tyranny of my childhood. One event, посебно, marked the end. I told him to bring the garbage cans from curb back to the garage. He argued and I responded, "When I was a little boy, I had to take the garbage back to the garage." He responded, "Oh yeah! Well when you were a little boy, that was STUPID!".

</крај>

Претплатите се на мој блог.

Тецхнорати Тагс:

Погледи и колоне за листе и библиотеке докумената не може обезбедити

УПДАТЕ (02/29/08): Овај нови пројекат ЦодеПлек изгледа да обезбеди начин за обезбеђивање појединачне колоне: http://www.codeplex.com/SPListDisplaySetting. If you have any experience working with it, оставите коментар.

Форум постери често питам овако: "I have a manager view and and a staff view of a list. How do I secure the manager view so that staff can not use it?"

They also frequently ask a related question: "I want to secure a specific metadata column so that only managers may edit that column while others may not even see it."

These answers apply to both WSS 3.0 и маховине:

  • SharePoint does not provide out-of-the-box support for securing views.
  • SharePoint does not provide out-of-the-box support for security columns.

There are several techniques one can follow to meet these kinds of security requirements. Here’s what I can think of:

  • Use out-of-the-box item level security. Views always honor item level security configuration. Event receivers and/or workflow can automate security assignment.
  • Use personal views for "privileged" погледа. These are easy enough to set up. Међутим, due to their "personal" nature, these need to be configured for each user. Use standard security configuration to prevent anyone else from creating a personal view.
  • Use a data view web part and implement some kind of AJAXy security trimming solution.
  • Roll your own list display functionality and incorporate security trimming at the column level.
  • Modify the data entry forms and use JavaScript in conjunction with the security model to implement column-level security trimming.
  • Use an InfoPath form for data entry. Implement column-level security trimming via web service calls to SharePoint and conditionally hide fields as needed.
  • Roll your own ASP.NET data entry function that implements column level security trimming.

None of those options are really that great, but there is at least a path to follow if you need to, even if it’s hard.

НАПОМЕНА: If you go down any of these paths, don’t forget about "Actions -> Open with Windows Explorer". You want to be sure that you test with that feature to make sure that it doesn’t work as a "back door" and defeat your security scheme.

If you have other ideas for or experiences with securing columns or views, please пошаљи ми or leave a comment and I’ll update this posting as appropriate.

</крај>

Претплатите се на мој блог.

Тецхнорати Тагс:

Брзо Савет: БДЦ АДФ Верзија бројеви су ваша пријатеља

Ако сте ручно кодирање АДФ фајлова и раде пуно кода / увоз / Тест циклуса, use the version number to make your life easier.

Мрзим да признам, али до ове недеље, I was always deleting the ADF and re-importing it. This would break my business data columns and make me re-wire them. All unnecessary.

File this under "it’s obvious once you see it".

Пример:

<ЛобСистем
КСМЛнс:кси="хттп://ввв.в3.орг/2001/КСМЛСцхема-инстанце" кси:сцхемаЛоцатион="хттп://сцхемас.мицрософт.цом/оффице/2006/03/БусинессДатаЦаталог БДЦМетадата.ксд" Тип="Вебсервице" Верзија="1.2.0.0" Име="киззиДоцументРевиев" КСМЛнс="хттп://сцхемас.мицрософт.цом/оффице/2006/03/БусинессДатаЦаталог">

Промените ту верзију и поновно увоз и постојећи подаци пословна колона користи ажурирану верзију аутоматски без додатних конфигурација потребна.

</крај>

Претплатите се на мој блог.

Тецхнорати Тагс:

Решење: БДЦ Избор показује само једну колону резултате

У моје покушаје да пружи више користан за проналажење колона користи БДЦ, I hit a wall with the BDC picker. If you haven’t see it, the BDC picker is similar to a people picker except that it works with columns of type "business data".

Можете приступити бирач кликом на отворену књигу иконе колоне пословних података као што је приказано:

слика

The above image shows a business data column called "Master Document Id". That column is connected, преко БДД, to a web service. The web service returns two columns of information: Document ID and Title. The business purpose here is to provide a "this document is based on" функција. Users select a "master" документ и када сачувате, је догађај копије пријемник мета података поља из поменутог мајстора.

Подразумевано, the BDC picker looks like this when I search for a document whose ID = "38":

clip_image002

То је корисно, but not good enough. People don’t think in terms of IDs, they think in terms of titles and/or other meta data. The picker allows you to search on other columns (e.g. Наслов) али неће показати стварни списак наслова које је открио, само њихов ДоцИд је као на слици:

clip_image002[1]

(Снимак није тако велика јер нисам изабрати претрагу која враћа све валидне резултате, али можете да видите да ли је пронашао неке резултате, то би само показали да ДоцИд, не титуле).

I searched high and low for the answer to this and failed. Мој колега, поштовани Јонатхан Брадсхав, had faced and solved this issue. When I reached out to him for help, Он ми је указао у правом смеру.

Configure the picker to show multiple columns via the "ShowInPicker" имовина у АДФ:

<Имовина Име="СховИнПицкер" Тип="Систем.Боолеан">прави</Имовина>

Ближе:

  <!-- Наслов -->
  <ТипеДесцриптор ТипеНаме="Систем.Стринг" Име="Наслов" >
    <ЛоцализедДисплаиНамес>
      <ЛоцализедДисплаиНаме ЛЦИД="1033">Наслов</ЛоцализедДисплаиНаме>
    </ЛоцализедДисплаиНамес>
    <Некретнине>
      <Имовина Име="ДисплаиБиДефаулт" Тип="Систем.Боолеан">прави</Имовина>
      <Имовина Име="СховИнПицкер" Тип="Систем.Боолеан">прави</Имовина>
    </Некретнине>
  </ТипеДесцриптор>

Setting this property does introduce a minor problem. As soon as you set it once, you need to set it for every column you want to show. У мом случају, BDC picker showed DocId by default. Међутим, once I added "ShowInPicker" Наслов до, DocId no longer displayed. I solved that by explicitly setting the ShowInPicker property for Doc ID.

Овде је резултат:

слика

(I’ll explain the odd-looking "168 – ЦамлСцхема.ксд" construction in a future blog post. Укратко, то је уланчани стринг који омогућава нешто боље корисничко искуство).

Наравно, је написао овај блог унос, I just did a search for "ShowInPicker" и нашао бројне хитове, укључујући и ову: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. It explains the meaning of that property along with some other good BDC stuff.

</крај>

Претплатите се на мој блог!

Тецхнорати Тагс: