Arkivat mujore: Nëntor 2007

Ju nuk mund të mundi Reach SharePoint së

Gjatë dy ditëve të fundit, 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. nga marketingu, disa drejtorë që përfaqësojnë HR, Logjistikë, Prodhim, Projektet kapitale, Cilësi, Blerje, Zhvillimi Corporate dhe departamentet e tjera (disa prej të cilëve nuk ishin edhe direkt të përfshirë në fazën e tanishme). That’s a mighty wide audience.

Në jetën time të mëparshme, 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 (e cila është kthyer disi mbi kokën e tij këtu 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.

Ashtu si çdo gjë, ajo nuk është e përkryer, por kjo është një vend i mirë për të mallkuar.

Për dashurinë e [plotësoni në personin tuaj më të dashur / të lartë të qenit], don’t change the ‘Title’ Kolona faqe.

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

Bottom line: A nuk e bëjmë atë!

Mjerisht, user interface lejon një ndryshim njëkahësorësh e asaj etiketë kolonën siç tregohet:

imazh

Title is a column associated with the "Item" tipi i përmbajtjes. Shumë, shumë, 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. Kështu, 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, ju lutem postoni një koment.

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/

QZHB FSHZH dhe shoku juaj, CDATA

Unë kam vënë re disa vështirë dhe e panevojshme dore kodifikimin e RdbCommandText në disa shembuj (duke përfshirë dokumentacionin MSDN).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. Kështu, Ky ndërtim i vështirë:

<Pronë Emër="RdbCommandText" Lloj="System.String">
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement nga dbo.MCRS_SETTLEMENT
WHERE (id &gt;= @ MinID) DHE (id &lt;= @ MaxId)
</Pronë>

mund të jetë më mirë e përfaqësuar në këtë mënyrë:

<Pronë Emër="RdbCommandText" Lloj="System.String">
<![CDATA[
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement nga dbo.MCRS_SETTLEMENT
WHERE (id >= @ MinID) DHE (id <= @ MaxId)
]]>
</Pronë>

</fund>

Shembull QZHB

Intro të QZHB

Shembull funksionale: QZHB FSHZH që lidhet me bazën e të dhënave SQL ngulitur me ID e përdoruesit dhe fjalë-kalimin

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 Kjo template (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Unë të krijova një FSHZH-se lidhet me një rast të veçantë SQL server dhe në shkrimet me një ID e përdoruesit dhe fjalë-kalimin dhe specifik treguar në këtë copë:

  <LobSystemInstances>
    <LobSystemInstance Emër="ClaimsInstance">
      <Prona të paluajtshme>
        <Pronë Emër="AuthenticationMode" Lloj="System.String">PassThrough</Pronë>
        <Pronë Emër="DatabaseAccessProvider" Lloj="System.String">SqlServer</Pronë>
        <Pronë Emër="Të dhënat RdbConnection Burimi" Lloj="System.String">server aktuale  shkallës aktuale</Pronë>
        <Pronë Emër="Katalogu RdbConnection fillestare" Lloj="System.String">Katalogu aktuale fillestare</Pronë>
        <Pronë Emër="RdbConnection Integruar të Sigurimit" Lloj="System.String">SSPI</Pronë>
        <Pronë Emër="Grumbullimi RdbConnection" Lloj="System.String">i rremë</Pronë>

        <!-- Këto janë vlerat kryesore: -->
        <Pronë Emër="User ID RdbConnection" Lloj="System.String">njëID ctual përdoruesin</Pronë>
        <Pronë Emër="Fjalëkalimi RdbConnection" Lloj="System.String">Fjalëkalimi aktual</Pronë>
        <Pronë Emër="Trusted_Connection RdbConnection" Lloj="System.String">i rremë</Pronë>

      </Prona të paluajtshme>
    </LobSystemInstance>
  </LobSystemInstances>

Kjo nuk është një praktikë e mirë, 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:

  • FSHZH userid ngulitur dhe fjalëkalimi
  • embed userid dhe password në FSHZH
  • embed userid dhe password në FSHZH QZHB
  • SharePoint abetare QZHB
  • SharePoint id embed përdoruesit dhe fjalëkalimin në FSHZH

</fund>

Abonohen në blogun tim.

SPD workflow veprime doganore — enhancements manipulimi string

Rreth një javë më parë, 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.

Here are the current planned features for version 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

If anyone has any interest in this project, please leave a comment or start/add to a discussion here: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Here are the current set of functions that have been coded (though not fully tested as of 11/08/07):

Funksion Përshkrim (në qoftë se nuk e njëjtë si. funksion Net)
Num-entries() Kthehet "numri hyra" in a string as per a specified delimiter.

Për shembull: Num-entries in a string "a,b,c" with delimiter "," = 3.

Entry() Returns the nth token in a string as per a specified delimiter.
Length String.Length
Replace() String.Replace()
Përmban() String.Contains()
Returns the word "true" or the word "false".
Substring(start) String.Substring(start)
Substring(start,fund) String.Substring(start,fund)
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".

I shpejtë & lehtë Encoding url desktop utility

I’ve been needing to url-encode some strings this week and slapped together a a little utility that I thought I’d put up on SkyDrive for the community.

Get binar këtu: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Merr zgjidhje Visual Studio këtu: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Ja një e shtënë ekran:

imazh

Shpejtë dhe të lehtë: Embed një hyperlink në të dhëna të pjesshme XSLT Shiko Web-faqen

UPDATE (01/17/08): Kjo flet blog entry rreth hyperlink më shumë mirësi XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Përmbledhje dhe Objektiva: 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, por unë nuk e shpiku atë teknikë (as pikëpyetje, për këtë çështje). 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. Për shembull, 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".

Hapat:

  1. Përdorimi Visual Studio për SharePoint-i vetëdijshëm IntelliSense.
  2. Kopjoni XSLT e DVWP së në vizual studio (krijoni një projekt bosh, shtoni një skedar XSL për projektin).
  3. Kopjo linkun që dëshironi të përdorni në clipboard.
  4. Paste atë në vendin e duhur në XSL.
  5. Convert URL argument separators on the query string from "&" to "&AMP;"
  6. Url-shifroj argumente individuale.
  7. Përfundojë që brenda një <a href…> </një>

Shembull:

Unë kam një URL:

http://[server]/[faqe]/Listat / 20Positions/AllItems.aspx Open%?Shiko ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = rekrutuesi&= FilterValue1 Hold

I kthyer atë në:

     <një href="Listat / 20Positions/AllItems.aspx Open%?Shiko =% 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1}&AMP;FilterField1 = rekrutuesi&AMP;= FilterValue1 Hold"> Mbaj: </një>

Unë kam transformuar dorë nga argumenti i parë:

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

në:

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

(Në këtë, Braçe hapur transformon% deri në 7b dhe tiranta mbylljes transformon 7D%)

Argumentet e dytë dhe të tretë’ Parametrat ("FilterField1=Rekrutuesi" and "FilterValue1=Mbaj" përkatësisht) nuk duhet të jenë të url-koduar, sepse ata nuk përmbajnë asnjë karakteret pasigurta.

Shënimet:

Kjo teknikë në përgjithësi duhet të punojnë kudo që ju dëshironi për të mbjell një hyperlink në XSLT ku hyperlink përfshin parametrat në URL të tillë si:

http://[server]/[faqe]/Listat / 20Positions/AllItems.aspx Open%?Shiko ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = rekrutuesi&= FilterValue1 Hold

I kam URL vetë duke hyrë në listë me porosi dhe me dorë filtrim në kolonën e statusit (labeled "Recruiter" sipër).

Shpejtë dhe i thjeshtë: Aktivizo punës SharePoint Designer për të rinovuar një formë InfoPath

Skenar: I have an InfoPath form that front-ends a workflow process implemented using SharePoint Designer. At one point, a manager must approve the form. Që unë nuk mund të llogarisin në historinë workflow për të përmbushur kërkesat e mia auditimit, Unë të vendosë për të ruajtur vetë mesazhin tim auditimit direkt në formën e vetë.

Përmbledhje:

Përcakton formën dhe publikojë atë si një tipi i përmbajtjes 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" në një bibliotekë format (ose shumë, në qoftë se ju doni). Write a workflow that updates the field.

Hapat specifike:

  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. Publikimi formën si një lloj përmbajtje (NUK një dokument).
  5. Ndërsa plotësuar dialogun botuese:
    një) Save the file. Xsn në bibliotekë dokument (hap #1).
    b) Publish the "Audit Message" fushë dhe shenjë e vërtetë: "Allow users to edit data in this field by using a datasheet or properties page".
    c) Krijo një tip të ri përmbajtje dhe t'i jepte një emër të përshtatshëm.
  6. Qasja në bibliotekë format.
    një) Shko tek parametrat e saj të avancuara dhe të mundësojë për të menaxhuar bibliotekën format llojet e përmbajtjes.
    b) Zgjidhni llojin e sapo krijuar përmbajtje (5c më lartë). It will be grouped under "Microsoft InfoPath" (ose të ngjashme).
    c) Remove the default "Form" tipi i përmbajtjes nga biblioteka.
    d) Mark the library to "show as web page" kështu që forma do të nisë nga SharePoint dhe jo workstation InfoPath klienti.
  7. Go back to the forms library proper and click "New" thjesht për të verifikuar se forma është postuar korrekte dhe duke vepruar si ju dëshironi.
  8. Zjarr deri SharePoint Designer dhe lundruar në vend që pret bibliotekën tuaj formë (nga hapi 2).
  9. Krijo një rrjedhë të re bashkangjitur në bibliotekë format.
  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. Kliko Finish dhe shkoni përsëri në bibliotekë formë.
  12. Create a new form and put some test value into the "Audit Message" fushë.
  13. Ruaje atë dhe të kthehemi në bibliotekë formë.
  14. Djathtas-klikoni, select "Workflow" dhe të fillojnë deri rrjedhën tuaj të punës.
  15. It should run almost immediately. Pull up the form (nga hapi 12) dhe nëse gjithçka ka shkuar për të planifikuar, "Audit Message" çdo gjë që ka qenë e caktuar vlera që ju ofrohet në hap 10.

Shënimet:

Not all controls may configured for this bi-directional communication. Për shembull, 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 Mjedisi dhe ndoshta madje edhe kërkon një mjedis ndërmarrje SharePoint.

Beagle ka ul (Tetor 2007 çështje)

(Kjo është në fakt një lajm i vjetër pak, por si my favorite stacion zjarri motoja shpall, "Better late than never").

Check it out këtu: http://www.sharepointbeagle.com/

Nëse ju nuk e keni tashmë, be sure to sign up.

Sigurisht, be sure to read Artikulli im about a real-world SharePoint project (përfshirë kërkesat përkufizimi, KPI, Llojet e përmbajtjes, dashboards and more) as well as my colleague’s article about the content query web part.

There’s lot of other good stuff too.

Si për të hequr “Shiko të gjithë përmbajtjen e faqes” lidhje

Unë jam pyetur këtë pyetje gati çdo javë, normalisht në kontekstin e një diskutimi të sigurisë. An administrator/site creator has provisioned a site, Siguria konfiguruar, arranged web parts and customized the quick launch to provide that oh-so-perfect set of options to the end user. Por, nga kutia, you can’t remove the "view all site content" lidhje.

Mark Wagner jep përgjigje këtu (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Tij shkruaj-up është i frikshëm në dy nivele. Ajo ofron një përgjigje për pyetjen, "How do I remove the View All Site Content" lidhje? Pastaj, ajo përgjigjet menjëhershme follow-on pyetjen: Si mundem të lehtë të mundësuar lidhjen Shiko të gjithë përmbajtjen e site mbi një bazë Site-nga-faqes?

Si një bonus: Qasja e tij punon për WSS, jo vetëm MOSS.

</fund>

Abonohen në blogun tim!