మంత్లీ ఆర్కైవ్స్: నవంబర్ 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" కంటెంట్ రకం. అనేక, అనేక, అనేక 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 అప్డేట్. (మీరు అయితే ఈ చేయడం ముందు మైక్రోసాఫ్ట్ సంప్రదించాలి; బహుశా మీ మద్దతు ఒప్పందాన్ని రద్దు చేస్తుంది).

ఎవరైనా ఈ పరిష్కరించడానికి ఎలా తెలిస్తే, వ్యాఖ్యను పోస్ట్ చెయ్యండి.

మధ్యాహ్నం అప్డేట్, 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 డాక్యుమెంటేషన్ సహా).

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 నుండి dbo.MCRS_SETTLEMENT.settlement
WHERE (ID &GT;= @MinId) మరియు (ID &LT;= @ MaxId)
</ఆస్తి>

మంచి ఈ విధంగా ప్రాతినిధ్యం చేయవచ్చు:

<ఆస్తి పేరు="RdbCommandText" రకము="System.String">
<![CDATA[
Dbo.MCRS_SETTLEMENT.id బాలినేని, dbo.MCRS_SETTLEMENT నుండి dbo.MCRS_SETTLEMENT.settlement
WHERE (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), నేను ఒక నిర్దిష్ట వినియోగదారు ఐడి మరియు పాస్ వర్డ్ తో ఒక ప్రత్యేక SQL సర్వర్ ఉదాహరణకు మరియు లాగ్లను అనుసంధానించే ఒక ADF రూపొందించినవారు మరియు ఈ స్నిప్పెట్ చూపిన:

  <LobSystemInstances>
    <LobSystemInstance పేరు="ClaimsInstance">
      <లక్షణాలు>
        <ఆస్తి పేరు="AuthenticationMode" రకము="System.String">త్రూ</ఆస్తి>
        <ఆస్తి పేరు="DatabaseAccessProvider" రకము="System.String">SqlServer</ఆస్తి>
        <ఆస్తి పేరు="RdbConnection డేటా మూలం" రకము="System.String">అసలు సర్వర్  వాస్తవ ఉదాహరణకు</ఆస్తి>
        <ఆస్తి పేరు="RdbConnection ప్రారంభ కాటలాగ్" రకము="System.String">అసలు మొదటి జాబితా</ఆస్తి>
        <ఆస్తి పేరు="RdbConnection ఇంటిగ్రేటెడ్ సెక్యూరిటీ" రకము="System.String">SSPI</ఆస్తి>
        <ఆస్తి పేరు="పూలింగ్ RdbConnection" రకము="System.String">అబద్ధమైన</ఆస్తి>

        <!-- ఈ కీ విలువలు: -->
        <ఆస్తి పేరు="RdbConnection వాడుకరి ID" రకము="System.String">ఒకసాధారణ వాడుకరి 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 మరియు పాస్వర్డ్
  • adf వినియోగదారు ID మరియు పాస్వర్డ్ను పొందుపరచడానికి
  • adf bdc వినియోగదారు ID మరియు పాస్వర్డ్ను పొందుపరచడానికి
  • SharePoint bdc రంగు
  • SharePoint పొందుపరిచిన వినియోగదారు ఐడి మరియు 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-ఎంట్రీలు() 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".
Substring(ప్రారంభించు) String.Substring(ప్రారంభించు)
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 ఎన్కోడింగ్ డెస్క్ టాప్ సదుపాయం

నేను ఈ వారం కొన్ని తీగలు 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 ఒక హైపర్ లింక్ పొందుపరచండి

UPDATE (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. కోసం విజువల్ స్టూడియో ఉపయోగించండి SharePoint-ఎవేర్ intellisense.
  2. విజువల్ స్టూడియో లోకి DVWP యొక్క XSLT కాపీ (ఒక ఖాళీ ప్రాజెక్ట్ సృష్టించడానికి, ప్రాజెక్ట్ ఒక XSL ఫైలు జోడించండి).
  3. మీరు క్లిప్ బోర్డ్ లోనికి ఉపయోగించడానికి కావలసిన లింక్ కాపీ.
  4. XSL కుడి నగర అతికించండి.
  5. Convert URL argument separators on the query string from "&" to "&AMP;"
  6. వ్యక్తిగత వాదనలు url-ఎన్కోడ్.
  7. వ్రాప్ ఒక లోపల <ఒక href…> </ఒక>

ఉదాహరణ:

నేను ఒక URL కలిగి:

http://[సర్వర్]/[సైట్]/జాబితా / ఓపెన్% 20Positions/AllItems.aspx?= వీక్షించండి{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = నియామకుడు&FilterValue1 = హోల్డ్

నేను మార్చవలసి:

     <ఒక href="జాబితా / ఓపెన్% 20Positions/AllItems.aspx?7b84EEA2F5-121B-40B7-946F =% వీక్షించండి-
0FA704A1DAA1}&AMP;FilterField1 = నియామకుడు&AMP;FilterValue1 = హోల్డ్"> హోల్డ్: </ఒక>

నేను మానవీయంగా నుండి మొదటి వాదన రూపాంతరం చేశారు:

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

కు:

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

(ఈ లో, ఓపెన్ కలుపు% 7b పరివర్తనాలను మరియు ముగింపు కలుపు% 7D పరివర్తనాలను)

రెండవ మరియు మూడవ వాదనలు’ పారామితులు ("FilterField1=నియామకుడు" and "FilterValue1=హోల్డ్" వరుసగా) వారు ఏ సురక్షితం అక్షరాలు కలిగి లేదు ఎందుకంటే url-ఎన్కోడ్ అవసరం లేదు.

గమనికలు:

ఈ టెక్నిక్ సాధారణంగా ఎక్కడైనా మీరు హైపర్ లింక్ వంటి URL లో పారామితులు కలిగి XSLT ఒక హైపర్ లింక్ పొందుపరచడానికి కావలసిన పని చేయాలి:

http://[సర్వర్]/[సైట్]/జాబితా / ఓపెన్% 20Positions/AllItems.aspx?= వీక్షించండి{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = నియామకుడు&FilterValue1 = హోల్డ్

నేను కస్టమ్ జాబితాను ప్రాప్యత ద్వారా URL కూడా వచ్చింది మరియు మానవీయంగా స్థితి కాలమ్ పై వడపోత (labeled "Recruiter" పై).

త్వరిత మరియు సింపుల్: ఒక InfoPath రూపం నవీకరించుటకు SharePoint డిజైనర్ వర్క్ఫ్లో ప్రారంభించు

దృశ్య: 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" లైబ్రరీ నుండి కంటెంట్ రకం.
    d) Mark the library to "show as web page" రూపం SharePoint నుండి ప్రారంభించటానికి మరియు InfoPath వర్క్స్టేషన్ క్లయింట్ అందువల్ల ఆ.
  7. Go back to the forms library proper and click "New" కేవలం రూపం సరిగ్గా పోస్ట్ మరియు మీకు కావలసిన నటన అని ధ్రువీకరించడం.
  8. SharePoint డిజైనర్ అప్ కాల్పులు మరియు మీ రూపం లైబ్రరీ హోస్ట్ సైట్ నావిగేట్ (అడుగు నుండి 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 బహుశా వాతావరణంలో కూడా ఒక 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). తన వ్రాయడం అప్ రెండు స్థాయిల్లో అద్భుతమైనది. ఇది ప్రశ్నకు సమాధానాన్ని అందిస్తుంది, "How do I remove the View All Site Content" లింక్? అప్పుడు, ఇది వెంటనే సమాధానం ఫాలో ఆన్ ప్రశ్న: ఎలా సులభంగా వీక్షణ సైట్-ద్వారా సైట్ ఆధారంగా అన్ని సైట్ కంటెంట్ లింక్ ఎనేబుల్ చెయ్యాలి?

ఒక బోనస్ గా: ఆయన మార్గం WSS కోసం పనిచేస్తుంది, MOSS కేవలం.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్!