Месечне архиве: Новембар 2007

Не може да победи у СхареПоинт Реацх

Током последња два дана, I have participated in two meetings during which we presented the results of a SharePoint project. The CIO and his team joined the first meeting. That’s standard and not especially notable. The IT department is obviously involved in an enterprise rollout of any technology project. The second meeting expanded to include a V.P. из маркетинга, представљају директори неколико ХР, Логистика, Производња, Капитални пројекти, Квалитет, Куповина, Корпоративни развој и других одељења (од којих су неки директно укључени ни у садашњој фази). That’s a mighty wide audience.

У мом претходном животу, I primarily worked on ERP and CRM projects. They both have a fairly wide solution domain but not as wide as SharePoint. To be fully realized, SharePoint projects legitimately and necessarily reach into every nook and cranny of an organization. How many other enterprise solutions have that kind of reach? Not many.

SharePoint clearly represents an enormous opportunity for those of us fortunate enough to be in this space. It provides a great technical opportunity (који се некако окренуо наглавачке овде under "Technologies You Must Master"). But even better, SharePoint exposes us to an extensive and wide range of business processes through these engagements. How many CRM specialists work with the manufacturing side of the company? How many ERP consultants work with human resources on talent acquisition? SharePoint exceeds them both.

Као и било шта, није савршен, али је проклето добро место да се.

За љубав [попуните свој најомиљенијих особа / вишег бића], don’t change the ‘Title’ Сајт колона.

На СхареПоинт блог, someone occasionally asks about "changing the label of Title" or about "removing title from lists".

Боттом лине: Немој то да радиш!

Нажалост, кориснички интерфејс омогућава једносмерну промену те колоне ознаци као што је приказано:

слика

Title is a column associated with the "Item" тип садржаја. Многи, многи, многи ЦТ користе ову колону, а ако га промените овде, it ripples out everywhere. There’s a good chance that you didn’t intend for that to happen. You were probably thinking to yourself, "I have a custom lookup list and ‘Title’ једноставно нема смисла као име колоне, so I’m going to change it to ‘Status Code’ and add a description column." But if you follow through on that thought and rename ‘Title’ to ‘Status Code’, Свака листа наслов (укључујући библиотеке докумената) changes to "Status Code" и вероватно није намеравао да се то деси.

Прави проблем је у томе што је то једносмерна промена. The UI "knows" that "title" is a reserved word. Тако, if you try and change "Status Code" back to "Title", то ће вас спречити и сада сте насликао себе у ћошак using paint that never dries 🙂

Дакле, шта се дешава ако сте већ га променили? I haven’t seen the answer we all want, which is a simple and easy method to change the label back to ‘Title’. Right now, the best advice is to change it to something like "Doc/Item Title". That’s a generic enough label that may not be too jarring for your users.

Имам још неке идеје које су на мојој то-до листа ствари за истраживање:

  • Контакт Мицрософт.
  • Урадите нешто са објектним моделом, Можда у комбинацији са функцијом.
  • Схватите шему базе података и ручно ажурирање СКЛ. (Требало би да контактирате Мицрософт пре него што ово ипак; вероватно ће поништити уговор за подршку).

Ако неко зна како да се реши ово, пошаљите коментар.

Упдате касно поподне, 11/15: Нашао сам овај линк који описује метод за стварање тип листе који нема колону титулу: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

БДЦ АДФ и ваш пријатељ, ЦДАТА

I’ve noticed some awkward and unnecessary hand-encoding of RdbCommandText in some examples (including MSDN documentation).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. Тако, this awkward construction:

<Имовина Име="РдбЦоммандТект" Тип="Систем.Стринг">
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement from dbo.MCRS_SETTLEMENT
ГДЕ (ид &гт;= @MinId) И (ид &То;= @ МакИд)
</Имовина>

can be better represented this way:

<Имовина Име="РдбЦоммандТект" Тип="Систем.Стринг">
<![ЦДАТА[
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement from dbo.MCRS_SETTLEMENT
ГДЕ (ид >= @MinId) И (ид <= @MaxId)
]]>
</Имовина>

</крај>

BDC Primer

Intro to BDC

Функционална Пример: БДЦ АДФ који се повезује са СКЛ базом података са уграђеним корисничко име и лозинку

I needed to wire up MOSS to a SQL database via BDC. For testing/POC purposes, I wanted to embed the SQL account user id and password in the ADF. Starting with Овај шаблон (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Сам направио АДФ која се повезује са одређеном СКЛ Сервер пример и пријављује са одређеном корисничко име и лозинку и приказани на овом исечку:

  <ЛобСистемИнстанцес>
    <ЛобСистемИнстанце Име="ЦлаимсИнстанце">
      <Некретнине>
        <Имовина Име="АутхентицатионМоде" Тип="Систем.Стринг">Пролаз</Имовина>
        <Имовина Име="ДатабасеАццессПровидер" Тип="Систем.Стринг">СКЛСервер</Имовина>
        <Имовина Име="Извор података РдбЦоннецтион" Тип="Систем.Стринг">стварни сервер  стварни степен</Имовина>
        <Имовина Име="Почетна Каталог РдбЦоннецтион" Тип="Систем.Стринг">Стварни почетни каталог</Имовина>
        <Имовина Име="РдбЦоннецтион Интегрисана безбедност" Тип="Систем.Стринг">СПИ</Имовина>
        <Имовина Име="Уједињавање РдбЦоннецтион" Тип="Систем.Стринг">лажан</Имовина>

        <!-- Ово су кључне вредности: -->
        <Имовина Име="РдбЦоннецтион ИД корисника" Тип="Систем.Стринг">aцтуал ИД корисника</Имовина>
        <Имовина Име="РдбЦоннецтион Лозинка" Тип="Систем.Стринг">Стварни Лозинка</Имовина>
        <Имовина Име="РдбЦоннецтион Трустед_Цоннецтион" Тип="Систем.Стринг">лажан</Имовина>

      </Некретнине>
    </ЛобСистемИнстанце>
  </ЛобСистемИнстанцес>

То није најбоље решење, but it’s useful for a quick and simple configuration for testing. This was surprisingly difficult to figure out. I never found a functional example with search keywords:

  • АДФ ембеддед усерид и лозинку
  • уградити корисничко име и лозинку у АДФ
  • уградити корисничко име и лозинку у АДФ БДД
  • СхареПоинт БДЦ прајмер
  • СхареПоинт Ембед корисничко име и лозинку у АДФ

</крај>

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

СПД прилагођени ток посла акције — стринг манипулација проширења

Пре око недељу дана, I started up a codeplex project that provides a simple and reasonably generic method for adding custom action functions to SharePoit Designer workflow. It’s described here: http://www.codeplex.com/spdwfextensions. Beyond simply providing a framework, it also aims to provide a set of useful functions that will make SPD more useful/flexible/powerful.

Овде су актуелне карактеристике планиране за верзију 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Ако неко има било какав интерес у овом пројекту, оставите коментар или старт / додај у дискусији овде: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Ево тренутни сет функција које су кодиране (мада не у потпуности тестирани од 11/08/07):

Функција Опис (ако не и исто као Нето функција.)
Број ставки-() Returns the number "entries" in a string as per a specified delimiter.

На пример: Num-entries in a string "a,Б,Ц" with delimiter "," = 3.

Улазак() Returns the nth token in a string as per a specified delimiter.
Дужина Стринг.Ленгтх
Заменити() Стринг.Реплаце()
Садржи() Стринг.Цонтаинс()
Returns the word "true" or the word "false".
Субстринг(почетак) Стринг.Субстринг(почетак)
Субстринг(почетак,крај) Стринг.Субстринг(почетак,крај)
ТоУппер() Стринг.ТоУппер()
ТоЛовер() Стринг.ТоЛовер()
СтартсВитх() Стринг.СтартсВитх()
Returns the word "true" or the word "false".
ЕндсВитх() Стринг.ЕндсВитх()
Returns the word "true" or the word "false".

Брз & лако урл кодирања десктоп услужни

Ја сам потребе да урл-кодирање неке везе ове недеље и ошамарио заједно аа мали услужни програм који сам мислио да се стави на СкиДриве за заједницу.

Набавите овде бинарни: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Овде можете визуелно решење студио: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Ево снимак екрана:

слика

Брзо и лако: Додајте хипервезу у приказу података вебпарта КССЛТ

УПДАТЕ (01/17/08): Овај блог ентри говори о више хипервезе КССЛ доброте: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Преглед и циљ: I had created a simple bar chart to serve as component on a dashboard. I’ll save the details on building charts for another post, али ја нисам измислио ту технику (ни знак питања, у том случају). It turned out there was a bug in the chart and while I fixed that, I took the opportunity to convert some labels into hyperlinks that pointed at the underlying list behind the graph. На пример, there is a label with value "Hold". I wanted to turn the label into a hyperlink so that the user could click on it and drill down to the specific entries in the list whose status value is "Hold".

Кораци:

  1. Користите Висуал Студио за СхареПоинт-свестан ИНТЕЛЛИСЕНСЕ.
  2. Копирајте ДВВП је КССЛТ у Висуал Студио (креирате празну пројекат, додај КССЛ фајл на пројекту).
  3. Копирајте линк који желите да користите у оставу.
  4. Пребаците га у правој локацији у КССЛ.
  5. Convert URL argument separators on the query string from "&" to "&ампер;"
  6. УРЛ-кодирање појединачне аргументе.
  7. Умотајте да унутар <хреф…> </a>

Пример:

Имам УРЛ:

хттп://[сервер]/[сајт]/Листе / Опен% 20Поситионс/АллИтемс.аспк?Погледај ={84ЕЕА2Ф5-121Б-946Ф-40Б7-0FA704A1DAA1}&ФилтерФиелд1 = Регрутер&ФилтерВалуе1 = Холд

Ја га претворити:

     <a хреф="Листе / Опен% 20Поситионс/АллИтемс.аспк?Виев =% 7б84ЕЕА2Ф5-121Б-946Ф-40Б7-
0FA704A1DAA1}&ампер;ФилтерФиелд1 = Регрутер&ампер;ФилтерВалуе1 = Холд"> Држати: </a>

Ручно сам трансформисао први аргумент из:

{84ЕЕА2Ф5-121Б-946Ф-40Б7-0FA704A1DAA1}

на:

%7б84ЕЕА2Ф5-121Б-946Ф-40Б7-0FA704A1DAA1}

(На овај, отворена заграда претвара у% 7б и затварање заграда претвара у% 7Д)

Други и трећи аргументи’ параметри ("FilterField1=Регрутер" and "FilterValue1=Држати" односно) не морају да буду урл-кодирана, јер они не садрже никакве небезбедне знакове.

Белешке:

Ова техника би требало да генерално раде било где желите да уградите хипервезе у КССЛТ где хипервеза укључује параметре на УРЛ, као што су:

хттп://[сервер]/[сајт]/Листе / Опен% 20Поситионс/АллИтемс.аспк?Погледај ={84ЕЕА2Ф5-121Б-946Ф-40Б7-0FA704A1DAA1}&ФилтерФиелд1 = Регрутер&ФилтерВалуе1 = Холд

Имам саму УРЛ приступајући прилагођену листу и ручно филтрирање на статусној колони (labeled "Recruiter" изнад).

Брза и једноставна: Омогући СхареПоинт Десигнер ток посла да бисте ажурирали ИнфоПатх образац

Сценарио: I have an InfoPath form that front-ends a workflow process implemented using SharePoint Designer. At one point, a manager must approve the form. Пошто не могу рачунати на тока историје да испуни моје захтеве за ревизију, Одлучујем да сачувате своју поруку ревизије директно на самом обрасцу.

Преглед:

Облик и објави га као тип садржаја and the form itself to a document library. Mark desired form fields as being updateable from MOSS. The form is tied to the content type and the content type is "attached" у библиотеци образаца (или много, ако желите). Write a workflow that updates the field.

Конкретни кораци:

  1. Create a document library. This will hold your InfoPath template.
  2. Create a forms library.
  3. Create the InfoPath form. Include a text field, "Audit Message".
  4. Објављивање форму као тип садржаја (НИЈЕ документ).
  5. Приликом попуњавања издавачке дијалоге:
    a) Сачувајте ксн. Датотеку у библиотеци докумената (корак #1).
    Б) Publish the "Audit Message" поље и ознака истина: "Allow users to edit data in this field by using a datasheet or properties page".
    Ц) Креирајте нови тип садржаја и дати му одговарајуће име.
  6. Приступите обрасцима библиотеку.
    a) Иди на својим напредним подешавањима и омогући обрасцима библиотеку за управљање типова садржаја.
    Б) Изаберите новонасталог садржаја (5ц изнад). It will be grouped under "Microsoft InfoPath" (или слично).
    Ц) Remove the default "Form" Тип садржаја из библиотеке.
    Д) Mark the library to "show as web page" тако да форма ће покренути из СхареПоинт, а не клијент ИнфоПатх радна станица.
  7. Go back to the forms library proper and click "New" једноставно да проверите да ли је образац правилно постављен и делује као да желите.
  8. Покрените СхареПоинт Десигнер и идите на сајт који хостује ваше библиотеке образаца (од корака 2).
  9. Креирајте нови ток посла везан за библиотеку образаца.
  10. Add a single action "Set Field in Current Item". You should expect SharePoint Designer to list your your field, "Audit Message". Assign it a value.
  11. Кликните на дугме Заврши и вратите се у библиотеци образаца.
  12. Create a new form and put some test value into the "Audit Message" поље.
  13. Сачувајте га и вратите се у библиотеци образаца.
  14. Кликните десним тастером миша, select "Workflow" и почети свој ток.
  15. It should run almost immediately. Pull up the form (од корака 12) и ако све је отишао да планирају, "Audit Message" шта год је додељена вредност коју сте навели у кораку 10.

Белешке:

Not all controls may configured for this bi-directional communication. На пример, it does not seem to implement an SPD workflow that modifies text fields wrapped inside repeating sections.

One of the key take-away’s here is that we’ve really created a content type with an associated template. This also enables us to store multiple InfoPath form templates in the same form library.

This requires forms server. It’s most certainly not going to work in a WSS 3.0 окружење и вероватно чак захтева СхареПоинт Ентерприсе окружење.

Бигл је слетео (Октобар 2007 емисија)

(То је у ствари мало старе вести, али моја омиљена ватрогасна станица мото проглашава, "Better late than never").

Цхецк ит оут овде: http://www.sharepointbeagle.com/

Ако то већ нисте учинили, обавезно сигн уп.

Наравно, обавезно прочитајте мој чланак about a real-world SharePoint project (укључујући захтеве дефиницију, КПИ је, типова садржаја, dashboards and more) as well as мој колега је article about the content query web part.

Има сувише много других добрих ствари.

Како да уклоните “Приказ целог садржаја локације” веза

I’m asked this question nearly every week, normally in the context of a security discussion. An administrator/site creator has provisioned a site, configured security, arranged web parts and customized the quick launch to provide that oh-so-perfect set of options to the end user. Али, out of the box, you can’t remove the "view all site content" веза.

Mark Wagner provides the answer овде (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). His write-up is terrific on two levels. It provides an answer to the question, "How do I remove the View All Site Content" веза? Онда, it answers the immediate follow-on question: How do I easily enable the view all site content link on a site-by-site basis?

As a bonus: His approach works for WSS, not just MOSS.

</крај>

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