Штомесячны архіў: Лістапада 2007

Вы не можаце перамагчы Reach ў 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. ад маркетынгу, некалькі дырэктараў, якія прадстаўляюць HR, Лагістыка, Вытворчасць, Капітальным праектах, Якасць, Купля, Карпаратыўнае развіццё і іншых ведамстваў (некаторыя з якіх нават не былі непасрэдна ўцягнутыя ў бягучую фазу). 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" Тып змесціва. Шматлікія, многія, шмат хто ў CT выкарыстоўваць гэтую калонку і, калі вы зменіце яго тут, 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.

У мяне ёсць некалькі ідэй, якія знаходзяцца на маім спісе спраў рэчаў даследаванняў:

  • Звязацца з Microsoft.
  • Зрабіце што-небудзь з аб'ектнай мадэллю, Можа быць, у спалучэнні з функцыяй.
  • Малюнак з схемы базы дадзеных і ўручную абнавіць SQL. (Вы павінны звязацца з Microsoft, перш чым рабіць гэта, хоць; ён, верагодна, прывесці да анулявання кантракту на падтрымку).

Калі хто ведае, як вырашыць гэтую, калі ласка, напішыце каментар.

Абнавіце вечара, 11/15: Я знайшоў гэтую спасылку, якая апісвае спосаб стварэння тып спісу, які не мае назвы калонкі: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF і ваш сябар, CDATA

Я заўважыў некалькі няёмка і непатрэбным ручной кадоўкі RdbCommandText ў некаторых прыкладах (у тым ліку дакументацыі MSDN).

Я хацеў бы звярнуць увагу пачаткоўцаў на BDC, што каманды могуць быць заключаны ў тэг CDATA ў сваіх "натуральных" form. Так, гэты нязграбны будаўніцтва:

<Уласнасць Імя="RdbCommandText" Тып="System.String">
ВЫБАР dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement ад dbo.MCRS_SETTLEMENT
ДЗЕ (ID &GT;= @ MinID) І (ID &л;= @ MaxId)
</Уласнасць>

можа быць лепш прадстаўлены такім чынам,:

<Уласнасць Імя="RdbCommandText" Тып="System.String">
<![CDATA[
ВЫБАР dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement ад dbo.MCRS_SETTLEMENT
ДЗЕ (ID >= @ MinID) І (ID <= @ MaxId)
]]>
</Уласнасць>

</канец>

Прыклад BDC

Уводзіны ў BDC

Прыклад функцыянальнай: BDC 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 асобнікаў і ўваходзіць у сістэму са пэўны ідэнтыфікатар карыстальніка і пароль і паказана ў гэтым фрагменце:

  <LobSystemInstances>
    <LobSystemInstance Імя="ClaimsInstance">
      <Ўласцівасці>
        <Уласнасць Імя="AuthenticationMode" Тып="System.String">Скразны</Уласнасць>
        <Уласнасць Імя="DatabaseAccessProvider" Тып="System.String">SqlServer</Уласнасць>
        <Уласнасць Імя="Крыніца дадзеных RdbConnection" Тып="System.String">фактычныя сервер  фактычны асобнік</Уласнасць>
        <Уласнасць Імя="RdbConnection Initial Catalog" Тып="System.String">фактычны зыходны каталог</Уласнасць>
        <Уласнасць Імя="Комплексная бяспеку RdbConnection" Тып="System.String">SSPI</Уласнасць>
        <Уласнасць Імя="Аб'яднанне RdbConnection" Тып="System.String">ілжывы</Уласнасць>

        <!-- Гэта ключавыя значэнні: -->
        <Уласнасць Імя="ID карыстальніка RdbConnection" Тып="System.String">actual ID карыстальніка</Уласнасць>
        <Уласнасць Імя="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 Embedded ідэнтыфікатар карыстальніка і пароль
  • ўстаўляць ідэнтыфікатар карыстальніка і пароль у АПД
  • ўстаўляць ідэнтыфікатар карыстальніка і пароль у ADF BDC
  • SharePoint BDC грунтоўкі
  • SharePoint Код ID карыстальніка і пароль у АПД

</канец>

Падпісацца на мой блог.

СПД дзеянні наладжвальнага рабочага працэсу — Удасканаленні радкамі

Каля тыдня назад, 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,B,З" 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 ўтыліты Desktop

Я маюць патрэбу ў URL-кадзіраваць некаторыя радкі гэтым тыдні і ўдарыў разам аа невялікая ўтыліта, якая я думаў, я б паставіў на SkyDrive для супольнасці.

Атрымаць двайковы тут: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Атрымаць візуальнае рашэнне студыі тут: 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-Aware IntelliSense.
  2. Скапіюйце XSLT DVWP аўтара ў Visual Studio (стварыць пусты праект, дадаць файл XSL да праекту).
  3. Скапіяваць спасылку вы хочаце выкарыстоўваць у буфер абмену.
  4. Устаўце яго ў патрэбным месцы ў XSL.
  5. Convert URL argument separators on the query string from "&" to "&ампер;"
  6. URL-адрас кадуюць асобныя аргументы.
  7. Абгарніце што ўнутры <HREF…> </a>

Прыклад:

У мяне ёсць URL:

HTTP://[сервер]/[сайт]/Спісы / Адкрытае 20Positions/AllItems.aspx%?Выгляд ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Рекрутеры&FilterValue1 = ўтрыманне

Я пераўтварыць яго ў:

     <a HREF="Спісы / Адкрытае 20Positions/AllItems.aspx%?Выгляд =% 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1}&ампер;FilterField1 = Рекрутеры&ампер;FilterValue1 = ўтрыманне"> Трымаць: </a>

Я ўручную ператварыў першы аргумент:

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

да:

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

(У гэтым, якая адкрывае фігурнай дужкі ператвараецца ў% 7b і закрывае дужкі ператвараецца ў% 7дн)

Другі і трэці аргументы’ Параметры ("FilterField1=Вярбоўнік" and "FilterValue1=Трымаць" адпаведна) не павінны быць закадзіраваны гіперспасылка, таму што яны не ўтрымліваюць небяспечныя сімвалы.

Заўвагі:

Гэты метад як правіла, павінны працаваць у любым месцы вы хочаце ўстаўляць гіперспасылкі ў XSLT, дзе ўключае ў сябе параметры гіперспасылкі на URL, такія як:

HTTP://[сервер]/[сайт]/Спісы / Адкрытае 20Positions/AllItems.aspx%?Выгляд ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Рекрутеры&FilterValue1 = ўтрыманне

Я атрымаў URL сябе доступ да карыстацкі спіс і ўручную фільтрацыі на калонцы статусу (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. Пры запаўненні публікацыі дыялогі:
    a) Захаваць. XSN файл у бібліятэку дакументаў (крок #1).
    B) Publish the "Audit Message" поля і Марка сапраўдным: "Allow users to edit data in this field by using a datasheet or properties page".
    З) Стварэнне новага тыпу кантэнту і даць яму адпаведнае імя.
  6. Доступ да бібліятэкі формаў.
    a) Да яго пашыраныя налады і ўключыць бібліятэкі формаў кіраваць тыпамі змесціва.
    B) Выберыце створаны тып кантэнту (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. Націсніце кнопку Гатова і вярнуцца да бібліятэкі формаў.
  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 навакольнага асяроддзя і, магчыма, нават патрабуе карпаратыўнай асяроддзі SharePoint.

Бигль прызямліўся (Кастрычнік 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.

Там у шмат іншых добрых рэчаў занадта.

Як выдаліць “Прагледзець усе змесціва вузла” спасылка

Я задаў гэтае пытанне амаль кожны тыдзень, Звычайна ў кантэксце бяспекі абмеркаванне. 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). Яго рэцэнзіі неверагоднае на двух узроўнях. Яна дае адказ на пытанне, "How do I remove the View All Site Content" спасылка? Затым, ён адказвае на неадкладнае прадастаўленне наступнага пытанне: Як лёгка ўключыць спасылкай Прагледзець усе змесціва вузла на сайт за сайт асновай?

У якасці бонуса: Яго падыход працуе для WSS, не толькі MOSS.

</канец>

Падпісацца на мой блог!