Monthly Archives: Նոյեմբեր 2007

Դուք չեք կարող Beat 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. from marketing, several directors representing HR, Logistics, Manufacturing, Capital Projects, Quality, Purchasing, Corporate development and other departments (some of whom were not even directly involved in the current phase). That’s a mighty wide audience.

In my prior life, 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 (which is somehow turned on its head այստեղ 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.

Like anything, it’s not perfect, but it’s a damned good place to be.

Հանուն [լրացրեք ձեր ամենասիրված մարդ / բարձր լինելը], don’t change the ‘Title’ site սյունակ.

On the SharePoint forums, someone occasionally asks about "changing the label of Title" or about "removing title from lists".

Ստորին գիծ: Մի անել!

Տխուր, Օգտվողի միջերեսը հնարավորություն է տալիս միակողմանի փոփոխություն այդ սյունակի պիտակի ինչպես ցույց է տրված:

պատկեր

Title is a column associated with the "Item" բովանդակության տեսակ. Շատ, շատ, many CT’s use this column and if you change it here, 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’ just doesn’t make sense as a column name, 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’, every list’s title (including document libraries) changes to "Status Code" and you probably didn’t intend for that to happen.

The real problem is that this is a one-way change. The UI "knows" that "title" is a reserved word. Այնքան, if you try and change "Status Code" back to "Title", it will prevent you and now you’ve painted yourself into a corner using paint that never dries 🙂

So what happens if you already changed it? 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.

I have few other ideas which are on my to-do list of things to research:

  • Contact Microsoft.
  • Do something with the object model, maybe in conjunction with a feature.
  • Figure out the database schema and manually update SQL. (You should contact Microsoft before doing this though; it will likely void your support contract).

If anyone knows how to solve this, խնդրեմ չունեք մեկնաբանություններ.

Update late afternoon, 11/15: I found this link that describes a method for creating a type of list that does not have a title column: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC 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">
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement ից dbo.MCRS_SETTLEMENT
WHERE (id &GT;= @MinId) ՈՒ (id &LT;= @ MaxId)
</Սեփականություն>

կարող է ավելի լավ ներկայացված այս կերպ:

<Սեփականություն Անուն="RdbCommandText" Տիպ="System.String">
<![CDATA[
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement ից dbo.MCRS_SETTLEMENT
WHERE (id >= @MinId) ՈՒ (id <= @ MaxId)
]]>
</Սեփականություն>

</վերջ>

BDC Example

Intro է BDC

Ֆունկցիոնալ Example: BDC ADF, որոնք կապում են SQL տվյալների բազայում, ինչպես նաեւ ներդրված օգտվողի ID եւ գաղտնաբառի

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 Data Source" Տիպ="System.String">Փաստացի սերվերի  արդիական ատյանի</Սեփականություն>
        <Սեփականություն Անուն="RdbConnection Սկզբնական կատալոգ" Տիպ="System.String">փաստացի սկզբնական կատալոգ</Սեփականություն>
        <Սեփականություն Անուն="RdbConnection Integrated Security" Տիպ="System.String">SSPI</Սեփականություն>
        <Սեփականություն Անուն="RdbConnection Pooling" Տիպ="System.String">սուտ</Սեփականություն>

        <!-- Սրանք այն հիմնական արժեքները,: -->
        <Սեփականություն Անուն="RdbConnection User ID" Տիպ="System.String">աctual User 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 ներդրված userid եւ գաղտնաբառը
  • պառկեցնել օգտվողի ID-ն եւ գաղտնաբառը. adf
  • պառկեցնել օգտվողի ID-ն եւ գաղտնաբառը. adf bdc
  • Sharepoint bdc պիստոն
  • Sharepoint embed օգտվողի ID-ն եւ գաղտնաբառը. adf

</վերջ>

Անդամագրվել իմ բլոգում.

SPD Պատվերով աշխատանքի արդյունքում գործողությունները — լարային շահարկման սարքեր

Մոտ մեկ շաբաթ առաջ, 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-գրառում() Վերադարձնում համարը գրառումներ" in a string as per a specified delimiter.

Օրինակ,: NUM-ի գրանցումները մի պարանի «ա,բ,գ" սահմանազատիչ հետ "," = 3.

Մուտք() Returns the nth token in a string as per a specified delimiter.
Երկարություն String.Length
Փոխարինել() String.Replace()
Պարունակում է() String.Contains()
Վերադարձնում բառը, «ճիշտ է" կամ բառը: «կեղծ».
Ենթատող(սկսել) String.Substring(սկսել)
Ենթատող(սկսել,վերջ) String.Substring(սկսել,վերջ)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Վերադարձնում բառը, «ճիշտ է" կամ բառը: «կեղծ».
EndsWith() String.EndsWith()
Վերադարձնում բառը, «ճիշտ է" կամ բառը: «կեղծ».

Արագ & հեշտ url Encoding սեղանադիր կոմունալ

Ես արդեն կարիք ունեցող 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.

Overview եւ օբյեկտիվ: 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. Պատճենահանել հղումը ցանկանում եք օգտվել մեջ clipboard.
  4. Տեղադրեք այն ճիշտ վայրում եւ XSL.
  5. Convert URL argument separators on the query string from "&" to "&AMP;"
  6. Url-ծածկագրել անհատական ​​փաստարկները.
  7. Փաթեթավորեք է ներսում, <ա Ռաֆֆի Չ.…> </ա>

Օրինակ:

Ես մի հասցե:

http :/://[սերվեր]/[site]/Ցուցակներ / Open% 20Positions/AllItems.aspx?Դիտել ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Անցկացնել

Ես նորադարձ այն:

     <ա Ռաֆֆի Չ.="Ցուցակներ / Open% 20Positions/AllItems.aspx?Դիտել =% 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1}&AMP;FilterField1 = Recruiter&AMP;FilterValue1 = Անցկացնել"> Անցկացնել: </ա>

Ես ձեռքով փոխակերպվում առաջին փաստարկ է:

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

դեպի:

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

(Այս, բաց նեցուկ transforms է% 7B եւ փակման նեցուկ transforms է% 7D)

Երկրորդ եւ երրորդ փաստարկները’ պարամետրեր ("FilterField1=Recruiter" and "FilterValue1=Անցկացնել" համապատասխանաբար) պետք չէ, որ url-encoded, քանի որ դրանք չեն պարունակում որեւէ վտանգավոր նիշեր.

Notes:

Այս տեխնիկան ընդհանուր առմամբ պետք է աշխատել: Դուք ցանկանում եք տեղադրել մի հղիչ է XSLT, որտեղ հղում ներառում պարամետրերի վրա: URL ինչպիսիք:

http :/://[սերվեր]/[site]/Ցուցակներ / Open% 20Positions/AllItems.aspx?Դիտել ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Անցկացնել

Ես ստացել եմ հղում իրեն մուտք գործարկողի ցուցակը եւ ձեռքով զտիչ կարգավիճակի սյունակում (labeled "Recruiter" վեր).

Արագ եւ Simple: Միացնել Sharepoint դիզայներ աշխատանքի արդյունքում ենք նորացնել է 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. Քանի որ ես չեմ կարող հաշվարկել է աշխատանքի արդյունքում պատմության հետ իմ աուդիտորական պահանջներին, Ես որոշում են պահել իմ սեփական աուդիտորական հաղորդագրություն անմիջապես ձեւի բուն.

Overview:

Նախագծել ձեւը եւ հրապարակում է այն որպես բովանդակության տեսակ 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).
    բ) Հրատարակել է աուդիտորական հաղորդագրություն" դաշտը եւ Մարկ ճշմարիտ: «Թույլ օգտվողները խմբագրել տվյալներ այդ դաշտի, օգտագործելով datasheet կամ գույքի page".
    գ) Ստեղծել նոր տիպի պարունակությամբ եւ տալ համապատասխան անուն.
  6. Մուտք ձեւերը գրադարանից.
    ա) Գնալ իր առաջավոր պարամետրերով եւ հնարավորություն ձեւերը գրադարան կառավարելու բովանդակության տեսակներ.
    բ) Ընտրել նորաստեղծ բովանդակության տեսակը (5գ վերը). It will be grouped under "Microsoft InfoPath" (կամ նման).
    գ) Հեռացրեք նախնական է ձեւը" բովանդակության տեսակ է գրադարանից.
    դ) Ընդգծել գրադարանից է "ցույց տալու, ինչպես նաեւ ինտերնետային էջի" որպեսզի ձեւը սկսել Sharepoint եւ ոչ թե InfoPath Աշխատանքային կայան հաճախորդը.
  7. Գնալ տեսակները գրադարանի պատշաճ եւ սեղմեք "New" պարզապես ստուգել, ​​որ այդ ձեւը տեղադրված ճիշտ եւ գործող, ինչպես ցանկանում եք.
  8. Մարդիկ մինչեւ Sharepoint դիզայներին եւ նավարկելու կայք է: Ձեւաչափով սերվերների (hosts) ձեր գրադարանը (- ից առ քայլ 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. Ստեղծել նոր ձեւը եւ որոշ չափով թեստային արժեքի մեջ է աուդիտի հաղորդագրություն" դաշտ.
  13. Պահել այն եւ վերադառնալ ձեւի գրադարան.
  14. Աջ - կտտացրեք, ընտրել «աշխատանքի արդյունքում" եւ սկսեք ստեղծել Ձեր աշխատանքի արդյունքում.
  15. It should run almost immediately. Pull up the form (- ից առ քայլ 12) իսկ եթե բոլորն արդեն գնացել է նախատեսում, "Աուդիտ հաղորդագրություն" է հատկացրել այն, ինչ արժեք եք նախատեսված քայլ 10.

Notes:

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 թողարկում)

(Սա, ըստ էության, մի քիչ նորություն, բայց իմ սիրած fire կայանը նշանաբանը հռչակում, "Better late than never").

Check it out այստեղ: 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" ՈՒղեցույց.

Mark Wagner ապահովում պատասխան այստեղ (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Նրա գրել-up է սարսափելի է երկու մակարդակով. Այն ապահովում է հարցի պատասխանը, "How do I remove the View All Site Content" ՈՒղեցույց? Ապա, այն պատասխանում անմիջական հետեւել են շուրջ: Ինչպես կարող եմ հեշտությամբ հնարավորություն են տալիս դիտել բոլոր site content հղում կայքում-by-site հիման վրա?

Որպես պարգեւավճար: Նրա մոտեցումը աշխատում է WSS, ոչ միայն MOSS.

</վերջ>

Անդամագրվել իմ բլոգում!