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

Вие не може да го победи домет SharePoint е

Во текот на последните два дена, 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’ сајт колона.

На SharePoint форуми, 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.

Имам неколку други идеи кои се на мојот to-do листа на работи кои треба да истражување:

  • Контакт Мајкрософт.
  • Направи нешто со објектот модел, можеби во комбинација со функција.
  • Дознаам базата на податоци шема и рачно ажурирање SQL. (Треба да се јавите на Microsoft пред тоа иако; тоа, најверојатно, ќе го поништат вашата поддршка договор).

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

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

ЦРБ ADF и вашиот пријател, CDATA

Сум забележал некои незгодни и непотребно рака-кодирање на RdbCommandText во некои примери (вклучувајќи MSDN документација).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. Така, оваа непријатна изградба:

<Сопственост Името="RdbCommandText" Тип="System.String">
Избери dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement од dbo.MCRS_SETTLEMENT
КАДЕ (ид &GT;= @ MinID) И (ид &lt;= @ MaxId)
</Сопственост>

може да биде подобро претставена на овој начин:

<Сопственост Името="RdbCommandText" Тип="System.String">
<![CDATA[
Избери dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement од dbo.MCRS_SETTLEMENT
КАДЕ (ид >= @ MinID) И (ид <= @ MaxId)
]]>
</Сопственост>

</крајот>

ЦРБ Пример

Вовед во ЦРБ

Функционални Пример: ЦРБ ADF кој се поврзува со SQL база на податоци со вградени корисничко име и лозинка

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), Јас создаде ADF кој се поврзува со одредена SQL Server, пример и логови во со специфичен корисничко име и лозинка и прикажан во оваа програмка:

  <LobSystemInstances>
    <LobSystemInstance Името="ClaimsInstance">
      <Својства>
        <Сопственост Името="AuthenticationMode" Тип="System.String">PassThrough</Сопственост>
        <Сопственост Името="DatabaseAccessProvider" Тип="System.String">SQLServer</Сопственост>
        <Сопственост Името="RdbConnection Извор на податоци" Тип="System.String">вистински сервер  вистински пример</Сопственост>
        <Сопственост Името="RdbConnection Почетна Каталог" Тип="System.String">вистинските почетна каталог</Сопственост>
        <Сопственост Името="RdbConnection Интегрирана безбедност" Тип="System.String">SSPI</Сопственост>
        <Сопственост Името="RdbConnection Ентитетите за здружување" Тип="System.String">лажни</Сопственост>

        <!-- Овие се клучните вредности: -->
        <Сопственост Името="RdbConnection Корисничко име" Тип="System.String">наctual Корисничко име</Сопственост>
        <Сопственост Името="RdbConnection Лозинка" Тип="System.String">вистински Лозинка</Сопственост>
        <Сопственост Името="RdbConnection Trusted_Connection" Тип="System.String">лажни</Сопственост>

      </Својства>
    </LobSystemInstance>
  </LobSystemInstances>

Тоа не е најдобра практика, 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:

  • ADF вградени userid и лозинка
  • вградување на корисничко име и лозинка во ADF
  • вградување на корисничко име и лозинка во ADF ЦРБ
  • SharePoint ЦРБ буквар
  • SharePoint вградување на корисничко име и лозинка во ADF

</крајот>

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

СПД обичај работното акции — низа манипулација подобрувања

Пред околу една недела, 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):

Функција Опис (Ако не е иста како и. Нето функција)
NUM-записи() 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.
Должина String.Length
Замени() String.Replace()
Содржи() String.Contains()
Returns the word "true" or the word "false".
Подниза(започне) String.Substring(започне)
Подниза(започне,крајот) String.Substring(започне,крајот)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Returns the word "true" or the word "false".
EndsWith() String.EndsWith()
Returns the word "true" or the word "false".

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

Сум бил потреба да рачно се кодираат некои стрингови оваа недела и удира заедно аа малку алатка која мислев дека сум се постави на SkyDrive за заедницата.

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

Се добие Visual Studio решение овде: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Тука е екранот:

сликата

Брз и лесен: Вградување на хиперврска во податоци видите веб дел XSLT

Ажурирање (01/17/08): Овој блог запис зборува за повеќе хиперврска XSL добрина: 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. Го користите Visual Studio за SharePoint-свесни IntelliSense.
  2. Копирате DVWP на XSLT во Visual Studio (креира празна проект, додадете датотека XSL да на проектот).
  3. Копирај го линкот сакате да го користите во таблата со исечоци.
  4. Ставете го во вистинската локација, во XSL.
  5. Convert URL argument separators on the query string from "&" to "&засилувач;"
  6. Url-кодираат поединечните аргументи.
  7. Завиткајте дека внатре во <a href…> </на>

Пример:

Имам рачно:

HTTP://[сервер]/[сајт]/Листа / Отворено% 20Positions/AllItems.aspx?Прикажи ги ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = агентот&FilterValue1 = Држете

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

     <на href="Листа / Отворено% 20Positions/AllItems.aspx?Прикажи ги =% 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1% 7г&засилувач;FilterField1 = агентот&засилувач;FilterValue1 = Држете"> Се одржи: </на>

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

{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}

да:

%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1% 7г

(Во овој, отворена заграда преобразува во% 7б и завршната голема заграда се преобразува во% 7г)

Во вториот и третиот аргументи’ параметри ("FilterField1=Агентот" and "FilterValue1=Се одржи" соодветно) не треба да биде URL-кодирани, бидејќи тие не содржат никаква небезбедни карактери.

Белешки:

Оваа техника генерално треба да работат каде што сакате да го вградите на хиперврска во XSLT каде хиперврска вклучува параметри на URL-то, како што се:

HTTP://[сервер]/[сајт]/Листа / Отворено% 20Positions/AllItems.aspx?Прикажи ги ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = агентот&FilterValue1 = Држете

Добив рачно себе, со пристапување на сопствени листа и рачно филтрирање за статусот колона (labeled "Recruiter" погоре).

Брзо и едноставно: Овозможи SharePoint Designer работното да се ажурира InfoPath формулар

Сценарио: 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. Додека пополнување на издавачката дијалози:
    на) Спаси. Xsn датотека за документот библиотека (чекор #1).
    б) Publish the "Audit Message" поле и марка вистина: "Allow users to edit data in this field by using a datasheet or properties page".
    в) Се создаде нов типот на содржина и го даде соодветно име.
  6. Пристапите на форми библиотека.
    на) Оди до своите напредни поставувања и да им овозможи на формите библиотека за управување со содржина видови.
    б) Изберете ново формираната типот на содржина (5в погоре). It will be grouped under "Microsoft InfoPath" (или слични).
    в) Remove the default "Form" типот на содржина од библиотека.
    г) Mark the library to "show as web page" така што во форма ќе започне од SharePoint, а не на InfoPath работна станица клиент.
  7. Go back to the forms library proper and click "New" едноставно да потврди дека формата е објавена правилно и да делува како сакате.
  8. Оган до SharePoint Designer и да стигнете до сајт кој е домаќин на вашиот форма библиотека (од чекор 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. Кликнете на Finish и се врати во форма библиотека.
  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 животната средина и веројатно дури и бара Enterprise SharePoint животната средина.

Бигл има слета (Октомври 2007 прашање)

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

Проверете тука: http://www.sharepointbeagle.com/

Ако веќе не сте, не заборавајте да се регистрирате.

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

Има многу други добри работи премногу.

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

Јас сум праша ова прашање скоро секоја недела, нормално, во контекст на безбедноста дискусија. An administrator/site creator has provisioned a site, конфигуриран безбедност, arranged web parts and customized the quick launch to provide that oh-so-perfect set of options to the end user. Но, надвор од кутијата, you can’t remove the "view all site content" линк.

Марк Вагнер дава одговор тука (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Неговиот пишува-up е страшно на две нивоа. Тоа дава одговор на прашањето, "How do I remove the View All Site Content" линк? Потоа, таа одговори непосредна следење на прашањето: Како можам лесно им овозможи на погледот на сите содржини на линк на некој сајт-по-сајт основа?

Како бонус: Неговиот пристап работи за WSS, не само Мос.

</крајот>

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