Mjesečni arhiv: Studeni 2007

Vi ne možete pobijediti SharePoint dosega

Tijekom posljednja dva dana, 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. od marketinga, nekoliko redatelji predstavljaju HR, Logistika, Proizvodnja, Kapitalni projekti, Kakvoća, Nabava, Korporativni razvoj i drugim odjelima (od kojih neki nisu ni bili izravno uključeni u sadašnjoj fazi). That’s a mighty wide audience.

U mom prethodnom životu, 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 (koji je nekako izokrenulo ovdje 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.

Kao i sve, to nije savršen, ali to je vraški dobro mjesto da se.

Za ljubav [ispunite svoje najviše volio osobi / visokog se], don’t change the ‘Title’ stranica stupcu.

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

Bottom line: Nemojte to učiniti!

Nažalost, Korisničko sučelje omogućuje jednosmjernu promjenu tom oznakom stupca kao što je prikazano:

slika

Title is a column associated with the "Item" Vrsta sadržaja. Mnogi, mnogi, mnogi CT-a iskoristili ovu kolumnu, a ako ga promijeniti ovdje, 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’ jednostavno nema smisla kao ime stupca, 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’, svakom popisu titula (uključujući biblioteke dokumenata) changes to "Status Code" i vjerojatno ne namjeravaju da se to dogodi.

Pravi problem je u tome što je to jednosmjerna promjena. The UI "knows" that "title" is a reserved word. Tako, if you try and change "Status Code" back to "Title", to će vas spriječiti i sada ste sebe naslikao u kutu using paint that never dries 🙂

Dakle, što će se dogoditi ako ga već promijenio? 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.

Imam neke druge ideje koje su na mom to-do popisa stvari u istraživanja:

  • Kontakt Microsoft.
  • Učinite nešto s objekta modela, možda u kombinaciji sa značajkom.
  • Shvatiti shemu baze podataka i ručno ažurirati SQL. (Trebali bi kontaktirati Microsoft prije nego događaj ovaj, iako; to će vjerojatno poništiti ugovor za podršku).

Ako netko zna kako riješiti ovaj, molimo upisali komentar.

Ažuriranje kasno poslijepodne, 11/15: Našao sam ovaj link koji opisuje metodu za stvaranje vrstu popisa koji nema naslov stupca: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF i tvoj prijatelj, CDATA

Primijetio sam neke neugodne i nepotrebne ruku kodiranje RdbCommandText u nekim primjerima (uključujući i dokumentaciju MSDN).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. Tako, to nezgodna izgradnju:

<Svojstvo Ime="RdbCommandText" Tip="System.String">
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement od dbo.MCRS_SETTLEMENT
GDJE (id &gt;= @MinId) I (id &Bilo;= @ MaxId)
</Svojstvo>

može biti bolje zastupljeni na ovaj način:

<Svojstvo Ime="RdbCommandText" Tip="System.String">
<![CDATA[
SELECT dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement od dbo.MCRS_SETTLEMENT
GDJE (id >= @MinId) I (id <= @ MaxId)
]]>
</Svojstvo>

</kraj>

Primjer BDC

Uvod u BDC

Funkcionalna Primjer: BDC ADF koji se spaja na SQL bazu podataka s ugrađenim korisničko ime i lozinku

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 Ovaj predložak (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), I stvorio ADF-a koji se povezuje s određenom SQL poslužiteljem i prijavljuje sa specifičnim korisničko ime i lozinku i prikazano u ovom isječku:

  <LobSystemInstances>
    <LobSystemInstance Ime="ClaimsInstance">
      <Svojstva>
        <Svojstvo Ime="AuthenticationMode" Tip="System.String">Prolaz</Svojstvo>
        <Svojstvo Ime="DatabaseAccessProvider" Tip="System.String">SQLServer</Svojstvo>
        <Svojstvo Ime="RdbConnection Izvor podataka" Tip="System.String">Stvarni poslužitelj  stvarna instanca</Svojstvo>
        <Svojstvo Ime="RdbConnection Početni Katalog" Tip="System.String">stvarna početna kataloga</Svojstvo>
        <Svojstvo Ime="RdbConnection Integrirana sigurnost" Tip="System.String">SspI</Svojstvo>
        <Svojstvo Ime="RdbConnection Ujedinjavanje" Tip="System.String">lažan</Svojstvo>

        <!-- To su ključne vrijednosti: -->
        <Svojstvo Ime="RdbConnection ID korisnika" Tip="System.String">actual ID korisnika</Svojstvo>
        <Svojstvo Ime="Lozinka RdbConnection" Tip="System.String">Stvarni Lozinka</Svojstvo>
        <Svojstvo Ime="RdbConnection Trusted_Connection" Tip="System.String">lažan</Svojstvo>

      </Svojstva>
    </LobSystemInstance>
  </LobSystemInstances>

To nije dobra praksa, 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 ugrađen userid i lozinku
  • položiti korisničko ime i lozinku u ADF
  • položiti korisničko ime i lozinku u ADF BDC
  • SharePoint BDC primer
  • SharePoint položiti korisnički ID i lozinku u ADF

</kraj>

Pretplatite se na moj blog.

SPD prilagođeni tijek akcije — string manipulacije poboljšanja

Prije tjedan dana, 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):

Funkcija Opis (ako ne i isti kao. Neto funkciju)
Broj-unosi() Returns the number "entries" in a string as per a specified delimiter.

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

Ulazak() Returns the nth token in a string as per a specified delimiter.
Dužina String.Length
Zamijeniti() String.Replace()
Sadrži() String.Contains()
Returns the word "true" or the word "false".
Podniz(početi) String.Substring(početi)
Podniz(početi,kraj) String.Substring(početi,kraj)
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".

Brz & lako URL kodiranje desktop uslužni

Ja sam trebaju URL-kodiranje neke veze ovaj tjedan i ošamario zajedno aa mali program koji sam mislio da ću staviti na SkyDrive za zajednicu.

Uzmite binarni ovdje: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Uzmite vizualni rješenje studijski ovdje: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Ovdje je screen shot:

slika

Brzo i jednostavno: Postavi hipervezu u podatkovnom prikazu Web-dio XSLT

UPDATE (01/17/08): Ovaj blog entry govori o više hiperveze XSL dobrote: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Pregled i cilj: 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, ali nisam izmislio tu tehniku (niti upitnik, u tom slučaju). 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. Na primjer, 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".

Koraci:

  1. Use visual studio for sharepoint-aware intellisense.
  2. Copy the DVWP’s XSLT into visual studio (create a blank project, add an XSL file to the project).
  3. Copy the link you want to use into the clipboard.
  4. Paste it into the right location in the XSL.
  5. Convert URL argument separators on the query string from "&" to "&amp;"
  6. Url-encode individual arguments.
  7. Wrap that inside an <href…> </a>

Primjer:

I have an URL:

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

I convert it into:

     <a href="Lists/Open Positions/AllItems.aspx?View={84EEA2F5-121B-40B7-946F-
0FA704A1DAA1}&amp;FilterField1=Recruiter&amp;FilterValue1=Hold"> Hold: </a>

I have manually transformed the first argument from:

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

na:

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

(In this, the open brace transforms to { and the closing brace transforms to })

The second and third arguments’ parameters ("FilterField1=Recruiter" and "FilterValue1=Hold" respectively) do not need to be url-encoded because they do not contain any unsafe characters.

Bilješke:

This technique should generally work anywhere you want to embed a hyperlink in XSLT where the hyperlink includes parameters on the URL such as:

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

I got the URL itself by accessing the custom list and manually filtering on the status column (labeled "Recruiter" gore).

Brzo i jednostavno: Omogućiti SharePoint Designer tijeka rada za ažuriranje InfoPath obrazac

Scenario: I have an InfoPath form that front-ends a workflow process implemented using SharePoint Designer. At one point, a manager must approve the form. Budući da ne može računati na tijeka povijesti ispuniti moje zahtjeve revizije, Odlučio sam pohraniti svoju revizorsku poruke izravno na samom obliku.

Pregled:

Dizajn obrasca i objaviti ga kao Vrsta sadržaja 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" na forme knjižnice (ili više, ako želite). Write a workflow that updates the field.

Konkretni koraci:

  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. Objava obliku kao vrstu sadržaja (NE dokument).
  5. Dok ispunjavanjem izdavačkoj dijalozima:
    a) Spremite. Xsn datoteku u biblioteci dokumenata (korak #1).
    b) Publish the "Audit Message" Polje i Mark istina: "Allow users to edit data in this field by using a datasheet or properties page".
    c) Stvorite novu vrstu sadržaja i dati mu prikladno ime.
  6. Pristupite forme knjižnice.
    a) Idi na svojim naprednim postavkama i omogućiti forme knjižnice za upravljanje vrste sadržaja.
    b) Odaberite novostvoreni tip sadržaja (5c iznad). It will be grouped under "Microsoft InfoPath" (i sl.).
    c) Remove the default "Form" Vrsta sadržaja iz knjižnice.
    d) Mark the library to "show as web page" , tako da oblik će lansirati SharePoint, a ne klijent radne stanice InfoPath.
  7. Go back to the forms library proper and click "New" jednostavno provjeriti da je obrazac objavljen ispravno i djeluje onako kako želite.
  8. Vatra se SharePoint Designer i ploviti na mjestu na kojem su smještene svoju biblioteku obrazaca (od koraka 2).
  9. Stvaranje novog tijeka rada priključen na obrascima knjižnici.
  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. Kliknite Završi i vratite se u biblioteku obrazaca.
  12. Create a new form and put some test value into the "Audit Message" polje.
  13. To spasiti i vratiti se u obliku knjižnici.
  14. Desnom tipkom miša, select "Workflow" i započeti svoj tijek rada.
  15. It should run almost immediately. Pull up the form (od koraka 12) a ako sve je otišao na plan, "Audit Message" je dodijeljena bez obzira na vrijednost koju ste unijeli u koraku 10.

Bilješke:

Not all controls may configured for this bi-directional communication. Na primjer, 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 okoliš i vjerojatno čak i zahtijeva Enterprise SharePoint okoliš.

Beagle je sletio (Listopad 2007 izdanje)

(To je zapravo malo stara vijest, ali kako mi je najdraži Vatrogasni moto naviješta, "Better late than never").

Pogledajte ga ovdje: http://www.sharepointbeagle.com/

Ako to već niste učinili, Forumu prijaviti.

Naravno, budite sigurni da pročitate moj članak about a real-world SharePoint project (uključujući i zahtjeve definiciji, KPI, vrste sadržaja, dashboards and more) as well as moj kolega je article about the content query web part.

Ima puno drugih dobrih stvari previše.

Kako ukloniti “Pogledaj sve sadržaje stranica” link

Ja sam pitao to pitanje gotovo svaki tjedan, obično u kontekstu rasprave sigurnosti. An administrator/site creator has provisioned a site, konfigurirati sigurnosni, arranged web parts and customized the quick launch to provide that oh-so-perfect set of options to the end user. Ali, iz kutije, you can’t remove the "view all site content" link.

Mark Wagner daje odgovor ovdje (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Njegov pisati-up je sjajan na dvije razine. To daje odgovor na pitanje, "How do I remove the View All Site Content" link? Tada, odgovorit će neposredno pratiti na pitanje: Kako jednostavno omogućiti prikaži sve veze web-mjesta na razini web-stranica osnovi sadržaj?

Kao bonus: Njegov pristup radi za WSS, ne samo MOSS.

</kraj>

Pretplatite se na moj blog!