Nyaraka za kila mwezi: Novemba 2007

Huwezi kuwapiga Lete SharePoint ya

Wakati wa mwisho siku mbili, 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. kutoka masoko, kadhaa wakurugenzi anayewakilisha Utumishi, Vifaa, Viwanda, Capital Miradi, Ubora, Ununuzi, Kampuni ya maendeleo na idara nyingine za (ambao baadhi yao walikuwa hata moja kwa moja kushiriki katika awamu ya sasa). That’s a mighty wide audience.

Katika maisha yangu kabla ya, 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 (ambayo ni namna fulani akageuka juu ya kichwa chake hapa 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.

Kama kitu chochote, siyo kamilifu, lakini ni damned mema mahali pa kuwa.

Kwa upendo wa [kujaza mtu wako wengi kupendwa / juu ya kuwa], don’t change the ‘Title’ tovuti safu.

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

Bottom line: Don’t do it!

Cha kusikitisha, the user interface allows a one-way change of that column label as shown:

picha

Title is a column associated with the "Item" aina ya maudhui. Many, wengi, 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. Hivyo, 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, tafadhali post comment.

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 na rafiki yako, CDATA

I’ve noticed some awkward and unnecessary hand-encoding of RdbCommandText in some examples (including MSDN documentation).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. Hivyo, this awkward construction:

<Mali Jina="RdbCommandText" Aina="System.String">
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement from dbo.MCRS_SETTLEMENT
WAPI (id &gt;= @MinId) NA (id &lt;= @ MaxId)
</Mali>

can be better represented this way:

<Mali Jina="RdbCommandText" Aina="System.String">
<![CDATA[
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement from dbo.MCRS_SETTLEMENT
WAPI (id >= @MinId) NA (id <= @MaxId)
]]>
</Mali>

</mwisho>

BDC Primer

Intro to BDC

Mfano kazi: BDC ADF kwamba unajumuisha na database SQL na id iliyoingia mtumiaji na nywila

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 hii template (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Mimi umba ADF kwamba unajumuisha na hasa mfano SQL server na magogo katika na id maalum mtumiaji na nywila na inavyoonekana katika snippet hii:

  <LobSystemInstances>
    <LobSystemInstance Jina="ClaimsInstance">
      <Mali>
        <Mali Jina="AuthenticationMode" Aina="System.String">PassThrough</Mali>
        <Mali Jina="DatabaseAccessProvider" Aina="System.String">SqlServer</Mali>
        <Mali Jina="RdbConnection Takwimu Chanzo" Aina="System.String">server halisi  halisi mfano</Mali>
        <Mali Jina="RdbConnection Awali Catalog" Aina="System.String">halisi ya awali catalog</Mali>
        <Mali Jina="RdbConnection Integrated Usalama" Aina="System.String">SSPI</Mali>
        <Mali Jina="RdbConnection kuunganisha" Aina="System.String">uongo</Mali>

        <!-- Haya ni maadili muhimu: -->
        <Mali Jina="RdbConnection User ID" Aina="System.String">actual User ID</Mali>
        <Mali Jina="RdbConnection Siri" Aina="System.String">halisi cha Siri</Mali>
        <Mali Jina="RdbConnection Trusted_Connection" Aina="System.String">uongo</Mali>

      </Mali>
    </LobSystemInstance>
  </LobSystemInstances>

Si njia bora, 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 iliyoingia userid na password
  • embed user id na password katika ADF
  • embed user id na password katika ADF BDC
  • SharePoint BDC primer
  • SharePoint kupachika user id na password katika ADF

</mwisho>

Kujiunga na blog yangu.

SPD desturi workflow vitendo — kamba kudanganywa nyongeza

Takriban wiki moja iliyopita, 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.

Hapa ni sasa makala iliyopangwa kwa ajili ya toleo 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Kama mtu ana maslahi yoyote katika mradi huu, tafadhali kuacha maoni au kuanza / kuongeza mjadala hapa: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Hapa ni seti ya sasa ya kazi ambayo wamekuwa coded (ingawa si kikamilifu kupima kama ya 11/08/07):

Kazi Description (kama si sawa kama Net kazi.)
Num-entries() Returns the number "entries" in a string as per a specified delimiter.

Kwa mfano: Num-entries in a string "a,b,c" with delimiter "," = 3.

Kuingia() Returns the nth token in a string as per a specified delimiter.
Urefu String.Length
Nafasi() String.Replace()
Ina() String.Contains()
Returns the word "true" or the word "false".
Substring(kuanza) String.Substring(kuanza)
Substring(kuanza,mwisho) String.Substring(kuanza,mwisho)
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".

Haraka & rahisi url Encoding desktop shirika

Nimekuwa wanaohitaji url-encode masharti baadhi ya wiki hii na makofi pamoja aa kidogo shirika kwamba nilifikiri ningependa kuweka kwenye SkyDrive kwa ajili ya jamii.

Kupata binary hapa: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Kupata Visual studio ufumbuzi hapa: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Hapa ni risasi screen:

picha

Haraka na rahisi: Embed hyperlink katika data maoni mtandao sehemu XSLT

UPDATE (01/17/08): Hii blog kuingia mazungumzo juu ya wema zaidi hyperlink XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Overview na Lengo: 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, lakini sikuweza mzulia kwamba mbinu (wala alama ya swali, kwa jambo hilo). 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. Kwa mfano, 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".

Hatua:

  1. Kutumia studio ya Visual kwa SharePoint-kufahamu Intellisense.
  2. Nakala DVWP ya XSLT katika studio ya Visual (kujenga mradi tupu, kuongeza faili XSL kwa mradi).
  3. Nakala ya kiungo unataka kutumia katika clipboard.
  4. Kuuweka katika eneo haki katika XSL.
  5. Convert URL argument separators on the query string from "&" to "&Amp;"
  6. Url-encode hoja ya mtu binafsi.
  7. Wrap kwamba ndani ya <href…> </a>

Mfano:

Nina URL:

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

Mimi kubadili kwenye:

     <a href="Orodha / Open% 20Positions/AllItems.aspx?View =% 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1}&Amp;FilterField1 = Recruiter&Amp;= FilterValue1 Hold"> Kushikilia: </a>

Mimi manually kubadilishwa hoja ya kwanza kutoka:

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

kwa:

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

(Katika hii, brace wazi kuugeuza kwa 7b% na brace kufunga kuugeuza kwa 7d%)

Hoja ya pili na ya tatu’ vigezo ("FilterField1=Recruiter" and "FilterValue1=Kushikilia" mtiririko) hawana haja ya kuwa url-encoded kwa sababu hawana vyenye wahusika yoyote salama.

Maelezo:

Mbinu hii lazima ujumla kazi mahali popote unataka kuiweka katika hyperlink XSLT ambapo hyperlink ni pamoja na vigezo juu ya URL kama vile:

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

I got URL yenyewe kwa kupata orodha ya desturi na manually kuchuja kwenye safu ya hali ya (labeled "Recruiter" juu ya).

Haraka na rahisi: Kuwawezesha SharePoint Designer workflow update fomu InfoPath

Mazingira: I have an InfoPath form that front-ends a workflow process implemented using SharePoint Designer. At one point, a manager must approve the form. Since I cannot count on workflow history to meet my auditing requirements, Mimi kuamua kuhifadhi ukaguzi yangu mwenyewe ujumbe moja kwa moja kwenye fomu yenyewe.

Overview:

Design the form and publish it as a aina ya maudhui 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" to a forms library (or many, if you want). Write a workflow that updates the field.

Specific Steps:

  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. Publish the form as a content type (NOT a document).
  5. While filling out the publishing dialogs:
    a) Save the .xsn file to the document library (hatua #1).
    b) Publish the "Audit Message" field and mark true: "Allow users to edit data in this field by using a datasheet or properties page".
    c) Create a new content type and give it an appropriate name.
  6. Access the forms library.
    a) Go to its advanced settings and enable the forms library to manage content types.
    b) Select the newly created content type (5c above). It will be grouped under "Microsoft InfoPath" (or similar).
    c) Remove the default "Form" content type from the library.
    d) Mark the library to "show as web page" so that the form will launch from SharePoint and not the InfoPath workstation client.
  7. Go back to the forms library proper and click "New" to simply verify that the form is posted correctly and acting as you want.
  8. Fire up SharePoint Designer and navigate to the site that hosts your form library (from step 2).
  9. Create a new workflow attached to the forms library.
  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. Click Finish and go back to the form library.
  12. Create a new form and put some test value into the "Audit Message" shamba.
  13. Save it and go back to the form library.
  14. Right-click, select "Workflow" and start up your workflow.
  15. It should run almost immediately. Pull up the form (from step 12) and if all has gone to plan, "Audit Message" has been assigned whatever value you provided in step 10.

Maelezo:

Not all controls may configured for this bi-directional communication. Kwa mfano, 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 environment and probably even requires an Enterprise SharePoint environment.

Beagle ina Nanga (Oktoba 2007 suala)

(Hii ni kweli umri mdogo habari, lakini kama moto favorite kituo cha kauli mbiu anatangaza, "Better late than never").

Kuangalia ni nje hapa: http://www.sharepointbeagle.com/

Kama wewe si tayari, kuwa na uhakika wa ishara ya juu.

Bila shaka, kuwa na uhakika wa kusoma yangu makala about a real-world SharePoint project (ikiwa ni pamoja na ufafanuzi mahitaji, KPI ya, maudhui ya aina, dashboards and more) as well as mwenzake yangu article about the content query web part.

Kuna mengi ya mambo mengine mazuri pia.

Jinsi ya kuondoa “View all tovuti maudhui” kiungo

Mimi aliuliza swali hili karibu kila wiki, kawaida katika mazingira ya majadiliano ya usalama. An administrator/site creator has provisioned a site, kimeundwa usalama, arranged web parts and customized the quick launch to provide that oh-so-perfect set of options to the end user. Lakini, nje ya boksi, you can’t remove the "view all site content" kiungo.

Mark Wagner hutoa jibu hapa (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Yake ya kuandika-up ni kali katika ngazi mbili. Inatoa jibu la swali, "How do I remove the View All Site Content" kiungo? Kisha, ni majibu ya haraka kufuata juu ya swali: Jinsi gani mimi urahisi kuwawezesha maoni yote yaliyomo tovuti kiungo juu ya msingi tovuti-na-tovuti?

Kama ziada: Mkabala wake anafanya kazi kwa WSS, si tu MOSS.

</mwisho>

Kujiunga na blog yangu!