Shpejtë dhe i thjeshtë: Bëni një Formular InfoPath Vetëm Lexuar (InfoPath Forms Shërbimet në MOSS)

Ka një skenar të përbashkët të biznesit si kjo:

  • User mbush një formular InfoPath.
  • Dorëzon formularin.
  • Long-running procesi workflow nis.
  • Ndërsa workflow po kandidon, ne nuk duam askënd për të ndryshuar përmbajtjen e formularit.

Ky shembull office.microsoft.com describes how to create a separate "view" 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, me zhvilluesit të ndryshme, there can be some divergence.

Kjo alternativë mund të punojnë më mirë në disa raste:

  • Add a new field to the form called "IsEditable".
  • Set its default value to true.
  • Promote it when publishing to MOSS.
  • Në workflow, set the value of IsEditble to false.
  • Go back to the form.
  • Add a rule that "upon open of the form", disable your save button when IsEditable is false.

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, possibly in big red letters across the top of the page.

In one project, I created a "workflow status" pamje. As the workflow progressed, it would update specific status fields that had been promoted from the form. When the user opened the form, the "open form" përjashton automatikisht kaloi në këtë pikëpamje dhe përdoruesi ka një status të bukur pak përmbledhës.

</fund>

Abonohen në blogun tim.

Përdorni semaforët në SharePoint Designer Workflow për Parandalimin unazore pafundme

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

  • Krijo një workflow dhe shoqërojnë me një listë.
  • Tregojnë se ajo duhet të fillojë të krijojë më i artikujve të reja dhe përditësimin e sendeve ekzistuese.
  • A step in the workflow updates a field in "Current Item".
  • Që nga pika e tanishme ndryshuar, workflow fillon rishtas.

Për të parandaluar këtë lak pafund, të zbatojë një semafor të thjeshtë:

  • Shto një shtyllë faqe (apo kolonë në listën / bibliotekës në qoftë se ju nuk jeni duke përdorur llojet e përmbajtjes).
  • Fshehur atë nga faqja e redaktimit (lehtë të bëni nëse një kolonë faqe nëpërmjet pronave të saj, jo aq e lehtë në qoftë se një kolonë listë).
  • Në workflow, kontrolloni për të parë nëse vlera e kolonën e semaforëve është bosh.
  • Nëse është bosh, vendosur atë në një vlerë jo-bosh dhe të vazhdojë.
  • Nëse nuk është bosh, dilni menjëherë.

Kjo mund të bëhet një zgjidhje mjaft të nuancuar, në varësi të kërkesave të biznesit dhe kështu me radhë, por kjo ka qenë një model i realizueshëm, kur unë kam nevojë për atë.

</fund>

Technorati Tags:

Abonohen në blogun tim.

Zhvilluesit: Si mund të mësoj SharePoint?

UPDATE: 04/25/08: Është infektues deri në disa blog posts dhe gjeti një lidhje në këtë artikull: 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.

Në disa muajt e fundit, a dozen or more folks from across the planet have been emailing me and asking the general question, "How do I learn SharePoint?"

I’m hardly authoritative, but I’ve had some success (and trying to get better all the time) so I thought I’d document my personal road map. Others may find it valuable.

Before I do that, I just want to observe that it’s obvious to me, based on these personal emails and the even greater number of MSDN / SharePoint University posts of the same nature, 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. Për shembull, 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. Në të njëjtën kohë, it provides a survey of all MOSS features (and WSS features as well).

Për mua, 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), InfoPath 2007 and some other stuff. There are many good blog entries describing this process. I’d have a look at these two:

Veç, 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. Por … don’t bother blogging about it or posting it to MSDN forums. It’s already been done 🙂. Në vend të kësaj, 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.

Unë do not suggest that you take the exam just to pass it. Unë 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 provim (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
  • Eksitim

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 / lexues).

Start by adding this blog to your RSS reader 🙂

Tjetër, 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. Nëse ju doni, I can export my list and email it.

Eventually, 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, nothing is better than this for hands on experience.

CodePlex

Shko tek www.codeplex.com.

Check it out and search for SharePoint projects.

Subscribe to the daily summary Codeplex feed in your feed reader.

Add any new SharePoint projects to your feed reader.

Eventually, after reading the forums and facing down your own WSS/MOSS demons, consider putting together your own codeplex project.

Eksitim

As I write this blog entry, a lot of SharePoint folk have started using Eksitim.

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

Conclusion

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!

</fund>

Abonohen në blogun tim.

Technorati Tags: ,

Menaxher Mbrojtja e të dhënave: Duket si një backup SharePoint Madhe / Restore zgjidhje

At the New Jersey SharePoint User Group meeting last night, Microsoft Sr. product specialist DuWayne Harrison presented Microsoft Data Protection Manager 2007. DuWayne was great (dhe ai u mbështet nga një ose dy kolegët nga publiku emrat e të cilëve unë nuk e kujtojnë). You can get the presentation materials here.

Deri mbrëmë, I have never heard of DPM.

I’m not a system admin type person, so I’m writing this from SharePoint consultant’s perspective and may get some of the words wrong. To me, DPM is a backup/restore solution for Microsoft "stuff":

  • Files
  • SQL
  • O/S
  • Virtual machines (live backup of the VM, even if the VM itself is running Unix).
  • Bare metal recovery (i.e. catastrophic hardware failure).

Beyond that stuff, which I would consider to be minimal requirements for any kind of "real" backup/restore product, DPM also has built-in intelligence for SharePoint. It understands about server farms and lets you restore:

  • Entire databases (e.g. content, config, etj).
  • Site collections
  • Individual sites
  • Individual items (e.g. documents).

The actual restore process involves extracting the target data from the backup and save it into a "restore farm" and then from there, moving it to the production environment (or wherever you want to restore). 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 (mainly in physical topology) but does need to match in terms of templates, versions, etj.

I didn’t see a full end to end demo, but DuWayne did show screen shots and some live demos. It seems to be as good as it needs to be, at least for a moderate sized environment.

I was particularly struck by the pricing. Obviously, don’t hold me to this, but I believe that the most expensive pricing is roughly as follows (in USD):

  • $600 for DPM itself.
  • Hardware for a DPM server (and associated stuff for media and all that).
  • $450 for each server you want to back up ("enterprise" license).

A five server farm would cost at most:

  • $600 for DPM
  • $450 x 5 servers = $2,250

Total cost in licenses: $2,850

In practice, it would be less. You wouldn’t necessarily need to have DPM installed on each web front end, për shembull. 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 day class available, though it’s not obvious to me that anyone would really need to take it.

All in all, I think it’s certainly worth investigating if you’re out there looking for a data protection solution for SharePoint.

</fund>

Abonohen në blogun tim.

Technorati Tags:

Eksitim: http://twitter.com/pagalvin

Ecni nëpër-: Fix trajnimin e punonjësve Template Available Vende Bug unregister

Sa shumë njerëz e dinë, the Employee Training template provided by Microsoft here has a bug that we can reproduce following these steps:

  • Krijo një klasë me një madhësi max e 10 nxënësit.
  • Regjistrohem –> Total available seats properly decrements by one. Pasojë: 9 vende të disponueshme.
  • Unregister: –> Bug. Total available seats should increment by one. It does not. Pasojë: 9 available seats as per SharePoint, but in fact, there are 10 vende të disponueshme.

Zgjidhje: Use SharePoint Designer to correct the workflow.

I parë, open up the site. The folder list for me looks like this:

imazh

If we have a look at the "Attendee registration" workflow, we see that there is a step labeled "Enforce seating policy". It looks like this:

imazh

This step in the workflow updates the item by incrementing the "Filled Seats" metadata column on the course. If we pull that up in more detail, we see this:

imazh

That’s all the information we need to fix the unregistration workflow.

If we flip over to the unregistration workflow, there is no similar workflow step. Add it as follows:

1: Expand "Attendee unregistration" and open up the XOML (see first screen shot if you’re lost).

2: Add a new workflow variable, "New Filled Seats" of type "Number".

3: Assign a value to "New Filled Seats" siç tregohet:

imazh

4: Decrement the Filled Seats by 1:

imazh

5: Update the related Course item:

imazh

6: Make sure all the steps are in the right sequence. Për mua, kjo duket si ky:

imazh

7: Finish the workflow to re-build it.

8: Provë.

</fund>

Abonohen në blogun tim.

Technorati Tags: ,

Random Vëzhgimit të shtunën në mëngjes

Unë kam qenë në këto klasa e kaluara dy javë dhe një gjë që më bën përshtypje është se ka një shumë e zhytur në mendime, njerëzit e zgjuar që punojnë për SharePoint (si konsulentë ose ajo stafin) të cilët nuk blog, eksitim, duket i vetëdijshëm për bordet mesazh publike si MSDN forum apo SharePoint University, ruajtur Facebook apo LinkedIn profile, etj. They are pure information consumers. Not bad, vetëm interesante.

</fund>

Technorati Tags:

Abonohen në blogun tim.

Query Përmbajtja Web Part: Duke folur në New York Grupit SharePoint Perdoruesit

Unë do të jem duke folur me kolegun tim, Natalya Voskresenskaya, në New York SharePoint Users Group përmbushjen e mërkurë 7 Maj.

Në sajë të Bob Fox për hedhjen emrat tanë në kapelë dhe duke na ndihmuar të merrni këtë mundësi!

Tema jonë e përgjithshme është Query Përmbajtja Web Pjesa dhe ne shpresojmë që të japim disa informata të dobishme për të dy audiencat dallueshme:

  • Përdoruesit e biznesit (jo-zhvilluesve): Tregojnë se si CQWP mund të konfigurohet për të zgjidhur disa probleme të përbashkëta të biznesit, pa ndonjë kodim.
  • Zhvilluesit: 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.

Këtu është NYSPUG njoftim mbuluar me njolla më herët gjatë kësaj jave:

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

MOSS 2007’s Content Query Web Part (CQWP) mundëson përdoruesve të krijojnë pikëpamjet porosi të të dhënave queried nga shumë burime, dhe të paraqesë se të dhënat në një vend. Pavarësisht query saj të fuqishme & Opsionet e sqimë përmbajtje, CQWP është shpesh një tipar i nënvlerësuar dhe anashkaluar. CQWP is both a "data extraction engine" (gjeni dokumente ose sende listë kudo në një site collection) dhe gjithashtu një klasë të parë prezantim mjet që i mundëson përdoruesve për të kontrolluar se si përmbajtje është paraqitur nga ambalazhi HTML dhe stilet për të formatin e ekranit gati çdo mënyrë që ju dëshironi.

Në këtë seancë demo-rëndë, ata do të tregojnë se si të përdorin CQWP për të zgjidhur problemet e biznesit duke treguar off karakteristika kryesore.

  • përdorni karakteristika CWQP prezgjedhura, Audienca përfshirë synimeve të dhënësit

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

  • ndryshojë shikoni & të ndjehen të rezultateve pyetje për të nxjerrë në pah të dhënat e biznesit, tregojnë kolona shtesë të informacionit, të shfaqur informacion në një format të rrjetit, dhe të tjerët.

  • tregojnë se si mund të ndihmojnë në CQWP tipit administratën përmbajtjes (i.e. të gjeni të gjitha dokumentet e një lloji të përmbajtjes veçantë në mënyrë që të kuptojnë ndikimin e mundshëm të ndryshuar një përkufizim CT).

  • përshkruajnë disa kufizime të CQWP

  • të sigurojë një listë të burimeve për teknikat e avancuara CQWP, blogs duke përfshirë, ECQWP CodePlex projekt & Dokumentacioni MSDN.

</fund>

Abonohen në blogun tim.

Technorati Tags:

FAST Integrimi SharePoint: Ekzekutuar një pyetje të thjeshtë

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, kjo është një hop, kaloni dhe të hidhen larg për të përfunduar këtë logjikë brenda një pjese web ose faqe aplikimit:

përdorim Sistem;
përdorim System.Collections.Generic;
përdorim System.Linq;
përdorim System.Text;
përdorim System.Collections.Specialized;
përdorim Com.FastSearch.Esp.Search;
përdorim Com.FastSearch.Esp.Search.Http;
përdorim Com.FastSearch.Esp.Search.Navigation;
përdorim Com.FastSearch.Esp.Search.Query;
përdorim Com.FastSearch.Esp.Search.Result;
përdorim Com.FastSearch.Esp.Search.View;
përdorim System.Collections;

namespace Conchango
{
    klasë InvokeSimpleFASTQuery
    {
        i pandryshueshëm pavlefshme Kryesor(varg[] args)
        {

            #rajon Nisja komunikimin tonë me FAST
            ISearchFactory searchFactory;

            NameValueCollection nameValueCollection = i ri 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

             Launch një pyetje

            varg queryString = "test";

            Pyetje query = i ri Pyetje(queryString);

            query.SetParameter(BaseParameter.Clustering, i rremë);
            query.SetParameter(BaseParameter.NAVIGATION, i vërtetë);
            query.SetParameter(BaseParameter.NAVIGATION_DEEPHITS, 100);

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

            IQueryResult Rezultati = searchView.Search(pyetje);

            Konsol.WriteLine("Total results from search: [" + result.DocCount + "].");

            int docCounter = 0;

            ndërsa (docCounter < result.DocCount)
            {

                docCounter    ;

                IDocumentSummary thisDocSummary = result.GetDocument(docCounter);

                Konsol.WriteLine("[" + docCounter + "]: " + thisDocSummary.GetSummaryField("url").Vlera String);

            } // ndërsa

            Konsol.Linja leximi();
            #endregion

        }
    }
}

Ajo gjeneron rezultatin e mëposhtme:

imazh

</fund>

Abonohen në blogun tim.

Technorati Tags: ,