maandelikse Argiewe: April 2008

Vinnige en maklike: Maak 'n Path Vorm Slegs lees (Path Vorms in MOSS)

Daar is 'n algemene scenario soos hierdie:

  • Gebruikers vul 'n Path vorm.
  • Lê vorm.
  • Lang-lopende workflow proses skop af.
  • Terwyl die workflow loop, Ons wil nie aan enigiemand die inhoud van die vorm te verander.

Hierdie office.microsoft.com voorbeeld beskryf hoe om 'n aparte "view te skep" and mark the whole view as read-only. This is a workable approach but has the drawback that you’ve effectively created two entire versions of the same form and must now keep them in sync manually. If you add a field to the editable view, you must then add it to the non-editable view as well. Over time, met ander ontwikkelaars, there can be some divergence.

Hierdie alternatief sou beter werk in sommige gevalle:

  • Voeg 'n nuwe veld op die vorm genaamd "IsEditable".
  • Stel die verstek waarde aan ware.
  • Bevorder dit wanneer publiseer te MOSS.
  • In die workflow, stel om die waarde van IsEditble valse.
  • Gaan terug na die vorm.
  • Voeg 'n reël wat "op die oop van die vorm", skakel jou save knoppie wanneer IsEditable is vals.

The drawback to this approach is that all the fields will still be editable on the screen. The user can get a false impression that they can actually change content. You can mitigate that by putting in some text that the form is disabled, moontlik in groot rooi letters oor die bokant van die bladsy.

In een projek, Ek het 'n workflow status" sien. As the workflow progressed, it would update specific status fields that had been promoted from the form. When the user opened the form, die "oop vorm" heers outomaties oorgeskakel na wat die oog en die gebruiker het 'n mooi klein opsomming status.

</einde>

Technorati Tags: ,

Skryf in op my blog.

Gebruik semafore in SharePoint Designer Workflow Eindelose Loops voorkom

It’s possible to cause an endless loop in a SharePoint Designer workflow. A common implementation pattern like this causes the problem:

  • Skep 'n workflow en assosieer met 'n lys.
  • Dui daarop dat dit moet begin op die skep van nuwe items en werk van die bestaande items.
  • A step in the workflow updates a field in "Current Item".
  • Sedert die huidige item verander, die workflow begin opnuut.

Hierdie eindelose lus om te verhoed dat, implementeer 'n eenvoudige semafoor:

  • Voeg 'n tuiste kolom (of kolom om die lys / biblioteek as jy nie die gebruik van inhoud tipes).
  • Steek dit uit die wysig bladsy (maklik om te doen as 'n webwerf kolom via sy eienskappe, nie so maklik as 'n lys kolom).
  • In die workflow, kyk om te sien of die waarde van die semafoor kolom leeg.
  • As dit leeg is, sit dit op 'n nie-leë waarde en voort te gaan.
  • Indien nie, is nie leeg, verlaat onmiddellik.

Dit kan 'n redelik genuanseerde oplossing te word, afhangende van die maatskappy se behoeftes en so meer, maar dit is 'n werkbare patroon wanneer ek dit nodig gehad het.

</einde>

Technorati Tags:

Skryf in op my blog.

Ontwikkelaars: Hoe leer ek SharePoint?

UPDATE: 04/25/08: Is vang op 'n blog en gevind dat 'n skakel na hierdie artikel: http://www.networkworld.com/news/2008/032608-microsoft-sharepoint.html?page=1. I make note of it because in addition to asking, "how do I learn sharepoint?", some people ask "why should I learn sharepoint?". That article partly answers the later.

In die laaste paar maande, 'n dosyn of meer mense van regoor die planeet is my e-pos en vra die algemene vraag, "How do I learn SharePoint?"

Ek is skaars gesaghebbende, maar ek het 'n paar sukses (en probeer om beter te kry al die tyd) so I thought I’d document my personal road map. Others may find it valuable.

Voordat ek dit doen, Ek wil net om te sien dat dit vir my duidelik, gebaseer op hierdie persoonlike e-pos en die nog groter aantal MSDN / SharePoint Universiteit poste van dieselfde aard, that there is huge developer interest in getting up to speed with WSS/MOSS. I wonder what it’s going to be like a year from now … easier to find good SharePoint talent? The same? Are folks committing themselves to the platform at a rate sufficient to keep up with demand for good resources? How could you even figure something like that out short of a WAG?

Paul’s Roadmap

I was full time employed by the good folk at Conchango while I followed this road map. This means that from a learning perspective, I was actively engaged in projects as I followed the steps I outline below.

Some Basic Terms

For people entering this world, there are two key acronyms:

  • WSS: Windows SharePoint Services
  • MOSS: Microsoft Office SharePoint Server

WSS is "free" in that it’s bundled with windows server 2003 (or at least can be downloaded from MS). I put quotes around free because you need a box, a valid O/S license and probably SQL (though there’s a "free" kind of SQL as well).

MOSS is built on top of WSS and extends it. There is no MOSS without WSS. MOSS is not free.

Perhaps not day one, but soon after you’ve got some basic familiarity with the platform, it’s important to learn the differences. Byvoorbeeld, a powerful web part, the Content Query Web Part, is a MOSS feature and not available WSS. People often make the incorrect assumption that CQWP is available in WSS and then end up scrambling for a stop-gap measure when they realize their error.

Hit the Books

I started working with WSS/MOSS on about 01/02/2007. I had a little prior experience with SPS 2003 but very little. To get myself started, I purchased the two books listed here (http://paulgalvin.spaces.live.com/lists/cns!1CC1EDB3DAA9B8AA!203/).

I started with the big blue administration book. Naturally, it covers administration. Op dieselfde tyd, it provides a survey of all MOSS features (and WSS features as well).

Vir my, it’s not so important to remember all the various details (until it’s time to get certified) but it’s good to know the boundaries. (I follow this same approach in 1st person shooters I play on the xbox or PC — I enter a room and tend to make a counter-clockwise loop until I get back where I started. I just feel better knowing the shape of the box I’m in.)

After reading the big blue book, I would read the entire Inside WSS book. It dives deeply into issues that developers care most about.

Create a Virtual Environment

In order to do any development or properly use the environment, you need a full blown windows server operating system with SharePoint Designer, Visual Studio 2005 (2008 works, but some useful tools have yet to be ported as of the writing of this article), Path 2007 and some other stuff. There are many good blog entries describing this process. I’d have a look at these two:

Daarbenewens, Andrew Connell shared his experiences with VMWare here:

Use your favorite search engine to see what other people do. It’s a useful learning exercise in and of itself.

Spend a few minutes angrily denouncing the fact that you need a server environment on which to do development. Maar … don’t bother blogging about it or posting it to MSDN forums. It’s already been done 🙂. In plaas daarvan, embrace it and move on. You’ll be better off for it.

Get Certified

I believe that the MS SharePoint certification path, which consists four exams, is exhaustive. I suggest that you follow their online preparation guide and do your best to understand each of the areas of the test.

Ek do not suggest that you take the exam just to pass it. Ek do not suggest that you use one of the "brain dump" style 3rd party "tools" for passing MS tests. If you can take the test, pass it based on a combination of your own directed study and hands-on experience, you’ll be a stronger developer and job candidate for it.

There are four tests in two "tracks":

Developer:

Admin:

I recommend that developers study for all of these exams. You’ll be strong for them, though I suppose if you skipped the admin exams, you would get by.

I found the WSS version to be considerably more challenging than the corresponding MOSS versions, much to my surprise. I was in a class recently and several others made the same point.

While I was studying for the 70-542 eksamen (MOSS development) I tracked my study resources. These may be helpful to you as well: http://paulgalvin.spaces.live.com/Blog/cns!1CC1EDB3DAA9B8AA!192.entry

Plug Yourself Into the Community

The SharePoint community is vibrant, strong and growing larger all the time.

You want to look at the following to start:

  • Blogs
  • Forums
  • Codeplex
  • Twitter

Blogs

If you don’t understand RSS, stop everything and learn it. It will take 10 minutes to learn it, maybe another 10 minutes to find a web based RSS reader (I like google’s reader, www.google.com / reader).

Start by adding this blog to your RSS reader 🙂

Volgende, add www.sharepointblogs.com to your reader. They aggregate many blogs into a single feed.

Over time, you’ll find blogs that are not aggregated that way. Just add them individually.

I subscribe to a few dozen blogs which I’ve accumulate over the last year. As jy wil, I can export my list and email it.

Uiteindelik, you may want to start your own blog. I personally think that a series of blog entries describing a "newbie’s" progress learning WSS/MOSS would be an interesting series. I wish I had done that myself.

Forums

I actively participate in two forum groups: MSDN and SharePoint University.

Forums are excellent places to learn. People ask questions ranging from the very simple ("How do I create a site column") to the panicked ("My server is down!") to more hypothetical design questions.

Once you get a flavor of the environment, venture out and start replying. Short of directly interacting with a customer, niks is beter as dit vir die hande op ervaring.

Codeplex

Gaan na www.codeplex.com.

Check dit uit en soek vir SharePoint projekte.

Skryf in vir die daaglikse opsomming CodePlex voer in jou feed reader.

Voeg 'n nuwe SharePoint projekte aan jou feed reader.

Uiteindelik, na die lees van die forums en die gesig staar af jou eie WSS / MOSS duiwels, oorweeg om saam jou eie CodePlex projek.

Twitter

As ek skryf hierdie blog entry, 'n baie SharePoint folk het begin met Twitter.

It’s hard to characterize Twitter. You’ll just have to check it out yourself.

Slot

That wraps up my roadmap and makes me current. I just started using Twitter two weeks ago.

WSS/MOSS is a very cool platform and the community is growing all the time. Use community resources to improve your skills and enjoy the journey!

</einde>

Skryf in op my blog.

Technorati Tags: ,

Data Protection Bestuurder: Lyk soos 'n groot SharePoint Rugsteun / Herstel Oplossing

By die New Jersey SharePoint User Group vergadering verlede nag, Microsoft Sr. produk spesialis DuWayne Harrison aangebied Microsoft Data Protection Bestuurder 2007. DuWayne was great (en hy is deur een of twee kollegas van die publiek wie se name ek kan nie onthou). Jy kan die aanbieding materiaal hier.

Tot gisteraand, Ek het nog nooit gehoor van DPM.

Ek is nie 'n stelsel administrateur tipe persoon, so I’m writing this from SharePoint consultant’s perspective and may get some of the words wrong. Vir my, DPM is a backup/restore solution for Microsoft "stuff":

  • Lêers
  • SQL
  • O / S
  • Virtuele masjiene (leef rugsteun van die VM, selfs al is die VM self loop Unix).
  • Kaal metaal herstel (d.w.z. katastrofiese hardeware mislukking).

Behalwe dat dinge, which I would consider to be minimal requirements for any kind of "real" Friends / herstel produk, DPM also has built-in intelligence for SharePoint. It understands about server farms and lets you restore:

  • Hele databasis (bijv. inhoud, config, ens.).
  • Webwerf versamelings
  • Individuele webwerwe
  • Individuele items (bijv. dokumente).

The actual restore process involves extracting the target data from the backup and save it into a "restore farm" en dan van daar af, beweeg dit na die produksie-omgewing (of waar jy wil om te herstel). I think this is seamless, but there was a lot of emphasis on the need for a "restore farm". The restore farm does not need to match the production environment in every particular (hoofsaaklik in die fisiese topologie) maar nie nodig aan te pas in terme van templates, weergawes, ens..

Ek het nie 'n einde demo te beëindig, but DuWayne did show screen shots and some live demos. It seems to be as good as it needs to be, ten minste vir 'n matige grootte omgewing.

I was particularly struck by the pricing. Obviously, hou my nie op hierdie, maar ek glo dat die duurste prys is ongeveer soos volg (in dollar):

  • $600 vir DPM self.
  • Hardeware vir 'n DPM bediener (en verwante dinge vir die media en alles wat).
  • $450 vir elke bediener wat jy wil om te back-up ("enterprise" lisensie).

'N vyf-bediener plaas sou kos by die meeste:

  • $600 vir DPM
  • $450 x 5 bedieners = $2,250

Totale koste in lisensies: $2,850

In die praktyk, it would be less. You wouldn’t necessarily need to have DPM installed on each web front end, byvoorbeeld. You don’t necessarily need enterprise licenses either.

The user interface is seems very simple probably would not require any special training to get up to speed. I did ask about that specifically and there is apparently a 1.5 dag klas beskikbaar, maar dit is nie vir my duidelik dat iemand regtig nodig sou wees om dit te neem.

All in all, Ek dink dit is beslis die moeite werd om te ondersoek as jy daar buite op soek na 'n data beskerming oplossing vir SharePoint.

</einde>

Skryf in op my blog.

Technorati Tags:

Twitter: http://twitter.com/pagalvin

Deur-stap: Bevestig werknemer opleiding Sjabloon beskikbare sitplekke Registratie Bug

Soos baie mense weet, die werknemer opleiding sjabloon deur Microsoft hier het 'n fout wat ons kan voortplant die volgende stappe:

  • Skep 'n klas met 'n maksimum grootte van 10 studente.
  • Registreer –> Total available seats properly decrements by one. Uitslag: 9 beskikbare sitplekke.
  • Unregister: –> Bug. Total available seats should increment by one. It does not. Uitslag: 9 beskikbare sitplekke per SharePoint, maar in die feit, daar is 10 beskikbare sitplekke.

Oplossing: Gebruik SharePoint Designer die workflow reg te stel.

Eerste, open up the site. The folder list for me looks like this:

beeld

As ons 'n blik op die "deelnemer registrasie" workflow, we see that there is a step labeled "Enforce seating policy". It looks like this:

beeld

Hierdie stap in die workflow updates die item deur die verhoog van die "gevul Sitplekke" metadata column on the course. If we pull that up in more detail, ons sien dit:

beeld

Dit is al die inligting wat ons nodig het om die Herroep van registrasie werksvloei te los.

Indien ons draai na die Herroep van registrasie workflow, there is no similar workflow step. Add it as follows:

1: "Deelnemer Herroep van registrasie uit te brei" en maak die XOML (sien die eerste screen shot as jy verloor het).

2: Voeg 'n nuwe workflow veranderlike, "Nuwe Gevul Sitplekke" van die tipe "Aantal".

3: Ken 'n waarde aan "nuwe Gevul Sitplekke" soos aangedui:

beeld

4: Decrement die Gevul Sitplekke deur 1:

beeld

5: Werk verwante Kursus item by:

beeld

6: Make sure all the steps are in the right sequence. Vir my, Dit lyk soos volg:

beeld

7: Werk die werksvloei te her-bou dit.

8: Toets.

</einde>

Skryf in op my blog.

Technorati Tags: ,

Random Saterdag Morning Waarneming

Ek het al in klasse die afgelope twee weke en een ding wat lyk my is dat daar 'n baie bedagsaam, slim mense wat op SharePoint (as konsultante of IT-personeel) wat blog nie, Twitter, blyk bewus te wees van die openbare boodskap borde soos MSDN forum of SharePoint Universiteit, handhaaf Facebook of LinkedIn profiele, ens.. They are pure information consumers. Not bad, net interessant.

</einde>

Technorati Tags:

Skryf in op my blog.

Inhoud Query Web Deel: Hy het in New York SharePoint Users Group

Ek sal praat met my kollega, Natalya Voskresenskaya, by die New York SharePoint Users Group Vergadering Woensdag Mei 7.

Danksy Bob Fox vir die gooi van ons name in die hoed en help ons om hierdie geleentheid!

Ons algemene onderwerp is die inhoud navraag Web deel en ons hoop om 'n paar nuttige inligting te gee aan twee verskillende gehore:

  • Besigheid gebruikers (nie-ontwikkelaars): Toon aan hoe CQWP kan ingestel word om sekere gemeenskaplike probleme op te los sonder enige kodering.
  • Ontwikkelaars: Show how CQWP can be extended to do some pretty interesting things that a business user wouldn’t normally feel comfortable doing themselves. This part of the presentation will help business users understand what’s possible using this web part so that they can provide better and more realistic requirements to their developer partners.

Hier is die kennisgewing NYSPUG gepos vroeër hierdie week:

"Using Content Query Web Part to Solve Business Problems".

MOSS 2007’s Content Query Web Part (CQWP) gebruikers in staat stel om persoonlike menings van data bevraagteken uit baie bronne te skep, en dat die data in een plek. Ten spyte van sy gevorderde soektog & inhoud verfyning opsies, CQWP is dikwels 'n onderskatte en oor die hoof gesien funksie. CQWP is both a "data extraction engine" (dokumente of lys items op enige plek in 'n webwerf versameling) en ook 'n eerste-klas aanbieding hulpmiddel wat gebruikers in staat stel om te bepaal hoe die inhoud aangebied word deur die wikkel HTML en style aan die display bykans enige wyse wat jy wil.

In hierdie demo-swaar sessie, hulle sal jou wys hoe om die CQWP te gebruik om probleme op te los deur te wys kernaspekte.

  • die gebruik van standaard CWQP funksies, insluitend gehoor gerig

  • use CWQP as a reporting tool anywhere in a site collection via filter criteria such as "all documents created today".

  • verander kyk & voel van 'n navraag resultate besigheid data na vore te bring, toon addisionele kolomme van inligting, vertoon die inligting in 'n rooster formaat, en ander.

  • wys hoe CQWP kan help in die inhoud tipe administrasie (d.w.z. vind al die dokumente van 'n bepaalde inhoud tipe so as 'n potensiële impak van die verandering van 'n CT definisie te verstaan).

  • Beskryf sommige beperkings van CQWP

  • 'n lys van hulpbronne vir gevorderde CQWP tegnieke, insluitende blogs, ECQWP Codeplex projek & MSDN dokumentasie.

</einde>

Skryf in op my blog.

Technorati Tags:

FAST SharePoint integrasie: Voer 'n eenvoudige navraag

This is a continuation in my FAST coding mini-series for SharePoint folk. The bit of code below executes a search for the term "test" in FAST via a Console application. Obviously, dit is 1 hop, slaan en spring die logika weg te draai binne-in 'n web deel of aansoek bladsy:

die gebruik van Stelsel;
die gebruik van System.Collections.Generic;
die gebruik van System.Linq;
die gebruik van System.Text;
die gebruik van System.Collections.Specialized;
die gebruik van Com.FastSearch.Esp.Search;
die gebruik van Com.FastSearch.Esp.Search.Http;
die gebruik van Com.FastSearch.Esp.Search.Navigation;
die gebruik van Com.FastSearch.Esp.Search.Query;
die gebruik van Com.FastSearch.Esp.Search.Result;
die gebruik van Com.FastSearch.Esp.Search.View;
die gebruik van System.Collections;

namespace Conchango
{
    klas InvokeSimpleFASTQuery
    {
        statiese nietig Main(string[] argumente)
        {

            #streek Inisialiseer ons kommunikasie met FAST
            ISearchFactory searchFactory;

            NameValueCollection nameValueCollection = nuwe NameValueCollection();

            nameValueCollection.Add("Fastsearchengine", "Com.FastSearch.Esp.Search.Http.HttpSearchFactory");
            nameValueCollection.Add("Com.FastSearch.Esp.Search.Http.QRServers", "Fastdemoback:15100");
            nameValueCollection.Add("Com.FastSearch.Esp.Search.Http.RequestMethod", "GET");

            searchFactory = SearchFactory.NewInstance(nameValueCollection);

            #endregion

             Begin 'n navraag

            string Query String = "Toets";

            Query query = nuwe Query(Query String);

            query.SetParameter(BaseParameter.Clustering, valse);
            query.SetParameter(BaseParameter.NAVIGATION, waar);
            query.SetParameter(BaseParameter.NAVIGATION_DEEPHITS, 100);

            ISearchView searchView;
            searchView = searchFactory.GetSearchView("Sharepointconn");

            IQueryResult gevolg = searchView.Search(navraag);

            Troos.WriteLine("Totale resultate van soek: [" + result.DocCount + "].");

            int docCounter = 0;

            terwyl (docCounter < result.DocCount)
            {

                docCounter    ;

                IDocumentSummary thisDocSummary = result.GetDocument(docCounter);

                Troos.WriteLine("[" + docCounter + "]: " + thisDocSummary.GetSummaryField("Url").StringValue);

            } // terwyl

            Troos.Read line();
            #endregion

        }
    }
}

Dit genereer die volgende resultaat:

beeld

</einde>

Skryf in op my blog.

Technorati Tags: ,