Mabilis at simpleng: Gumawa ng isang InfoPath Form Read Only (InfoPath mga Forms Serbisyo sa Moss)

Mayroong isang karaniwang sitwasyon ng negosyo tulad nito:

  • User punan ang isang InfoPath form.
  • Nagsumite form na.
  • Long-tumatakbo workflow proseso kicks off.
  • Habang workflow ay tumatakbo, hindi namin gusto ang sinuman na baguhin ang nilalaman ng form.

Ang office.microsoft.com Halimbawa na ito naglalarawan kung paano lumikha ng isang hiwalay na "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, sa ibang mga developer, there can be some divergence.

Ang alternatibong ito ay maaaring gumana ng mas mahusay sa ilang mga kaso:

  • Magdagdag ng isang bagong patlang sa form na tinatawag na "IsEditable".
  • Itakda ang default na halaga nito sa tunay na.
  • Isulong ito kapag-publish sa Moss.
  • Sa ang daloy ng trabaho, itakda ang halaga ng IsEditble sa maling.
  • Bumalik sa form.
  • Magdagdag ng isang patakaran na "sa bukas ng form", huwag paganahin ang iyong save button kapag IsEditable ay hindi totoo.

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, marahil sa malaking pulang titik sa buong tuktok ng pahina.

Sa isang proyekto, Nilikha ko ang isang "workflow katayuan" tingnan. As the workflow progressed, it would update specific status fields that had been promoted from the form. When the user opened the form, ang "bukas na form" Rule awtomatikong lumipat sa na pagtingin at ang gumagamit ay may isang magandang maliit na buod ng katayuan.

</dulo>

Mag-subscribe sa aking blog.

Gamitin ang mga Semaphores sa SharePoint Designer workflow sa Pigilan ang mga walang katapusang loop

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

  • Lumikha ng isang daloy ng trabaho at iugnay sa isang listahan.
  • Magpahiwatig na dapat itong magsimula sa lumikha ng mga bagong item at i-update ng mga umiiral nang mga item.
  • A step in the workflow updates a field in "Current Item".
  • Dahil sa kasalukuyang item ay nagbago, daloy ng trabaho sa pagsisimula muli.

Upang maiwasan ang walang katapusang loop, ipatupad ang isang simpleng semaporo:

  • Magdagdag ng isang haligi ng site (o haligi sa listahan / library kung hindi ka gumagamit ng uri ng nilalaman).
  • Itago ito mula sa pahina ng pag-edit (madaling gawin kung ang isang haligi ng site sa pamamagitan ng kanyang mga katangian, hindi bilang madaling kung ang isang listahan ng haligi).
  • Sa ang daloy ng trabaho, suriin upang makita kung ang halaga ng haligi semaporo ay blangko.
  • Kung ito ay blangko, itakda ito sa isang non-blangko na halaga at magpatuloy.
  • Kung ay ay hindi blangko, lumabas agad.

Ito ay maaaring maging isang medyo nuanced na solusyon, depende sa mga pangangailangan ng negosyo at iba pa, ngunit ito ay naging isang maisasagawa pattern kapag kailangan ko na ito.

</dulo>

Technorati Tags:

Mag-subscribe sa aking blog.

Developer: Paano ba ako Dagdagan SharePoint?

I-UPDATE: 04/25/08: Ay nakahahalina up sa ilang mga post sa blog at makahanap ng isang link sa artikulong ito: 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.

Sa huling ilang buwan, 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
  • Lumot: 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. Halimbawa, 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. Sa parehong oras, it provides a survey of all MOSS features (and WSS features as well).

Sa akin, 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:

At saka, 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. Pero … don’t bother blogging about it or posting it to MSDN forums. Ito ay nai-tapos 🙂. Sa halip, 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.

Ako do not suggest that you take the exam just to pass it. Ako 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
  • Mga Forum
  • Codeplex
  • Nerbiyos

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

Magsimula sa pamamagitan ng pagdaragdag ng blog na ito sa iyong mga RSS reader 🙂

Susunod, 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. Kung nais mong, 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.

Mga Forum

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

Pumunta sa 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.

Nerbiyos

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

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

Konklusyon

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!

</dulo>

Mag-subscribe sa aking blog.

Data Protection Manager: Mukhang Tulad ng isang Mahusay SharePoint Backup / Ibalik ang Solusyon

Sa New Jersey SharePoint User Group meeting kagabi, Microsoft SR. ng dalubhasa sa produkto DuWayne Harrison iniharap Microsoft Data Protection Manager 2007. DuWayne was great (at siya ay suportado ng isa o dalawang mga kasamahan mula sa madla ang mga pangalan hindi ko maalala muli). Maaari kang makakuha ng mga materyales pagtatanghal dito.

Up hanggang sa huling gabi, Hindi ko narinig ng DPM.

Hindi ako isang system admin uri ng tao, so I’m writing this from SharePoint consultant’s perspective and may get some of the words wrong. Akin, DPM is a backup/restore solution for Microsoft "stuff":

  • Mga file
  • SQL
  • O / S
  • Virtual machine (mabuhay backup ng VM, kahit na ang VM mismo ay tumatakbo Unix).
  • Walang kalaman-laman metal pagbawi (i.e. sakuna hardware pagkabigo).

Higit pa na mga bagay-bagay, which I would consider to be minimal requirements for any kind of "real" backup / ibalik produkto, DPM also has built-in intelligence for SharePoint. It understands about server farms and lets you restore:

  • Buong database (e.g. nilalaman, config, at iba pa).
  • Site ng mga koleksyon
  • Indibidwal na mga site
  • Indibidwal na mga item (e.g. mga dokumento).

The actual restore process involves extracting the target data from the backup and save it into a "restore farm" at pagkatapos ay mula doon, gumagalaw ito sa kapaligiran produksyon (o kung saan man gusto mong ibalik). 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 (higit sa lahat sa pisikal na topology) ngunit kailangan upang tumugma sa mga tuntunin ng mga template, mga bersyon, at iba pa.

Hindi ko makita ang isang buong pagtatapos upang tapusin demo, but DuWayne did show screen shots and some live demos. It seems to be as good as it needs to be, hindi bababa sa para sa isang katamtamang laking kapaligiran.

I was particularly struck by the pricing. Obviously, huwag hawakan sa akin na ito, ngunit naniniwala ako na ang pinaka-mahal na presyo ay halos tulad ng sumusunod (sa USD):

  • $600 DPM para sa sarili nito.
  • Hardware para sa isang server DPM (at bagay-bagay na nauugnay para sa media at sa lahat na).
  • $450 para sa bawat server na gusto mong i-back up ("enterprise" lisensya).

Ang isang limang bukid server ay magkakahalaga ng hindi hihigit sa:

  • $600 para sa DPM
  • $450 x 5 server = $2,250

Kabuuang gastos sa lisensya: $2,850

Sa kasanayan, it would be less. You wouldn’t necessarily need to have DPM installed on each web front end, halimbawa. 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 araw klase magagamit, bagaman ito ay hindi halata sa akin na sinuman ay talagang kailangan upang dalhin ito.

Sa kabuuan, Sa tingin ko ito ay tiyak na nagkakahalaga ng sinisiyasat kung ikaw ay out doon naghahanap para sa isang solusyon data proteksyon para sa SharePoint.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags:

Nerbiyos: http://twitter.com/pagalvin

Maglakad-through: Ayusin Employee Pagsasanay Template Magagamit Upuan pagkarehistro Bug

Tulad ng maraming mga taong kilala, ang template Employee Pagsasanay na ibinigay sa pamamagitan ng Microsoft dito May bug na maaari naming muling buuin pagsunod sa mga hakbang na ito:

  • Lumikha ng isang class na may isang maximum na laki ng 10 mag-aaral.
  • Magparehistro –> Total available seats properly decrements by one. Magbunga: 9 Available ang upuan.
  • Pagkarehistro: –> Bug. Total available seats should increment by one. It does not. Magbunga: 9 Available ang upuan ng bawat SharePoint, ngunit sa katunayan, marami 10 Available ang upuan.

Solusyon: Gamitin SharePoint Designer upang itama ang daloy ng trabaho.

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

imahen

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:

imahen

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, makita namin ito:

imahen

Iyon ay ang lahat ng impormasyong kailangan namin upang ayusin ang unregistration workflow.

Kung namin i-flip sa ibabaw ng mga workflow unregistration, there is no similar workflow step. Add it as follows:

1: Expand "Attendee unregistration" at buksan up ang XOML (tingnan muna screen shot kung ikaw ay mawawala).

2: Magdagdag ng isang bagong variable na daloy ng trabaho, "New Filled Seats" of type "Number".

3: Assign a value to "New Filled Seats" tulad ng ipinapakita:

imahen

4: Pagbawas ng Puno Upuan sa pamamagitan ng 1:

imahen

5: I-update ang mga kaugnay na item Course:

imahen

6: Make sure all the steps are in the right sequence. Sa akin, ito ganito ang hitsura:

imahen

7: Tapusin ang daloy ng trabaho upang muling bumuo ng mga ito.

8: Pagsubok.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags: ,

Random Sabado Umaga Pagmamasid

Ko pa sa klase ang mga nakalipas na dalawang linggo at isang bagay na naaabot sa akin ay na mayroong ng maraming nag-isip, matalinong tao ang pagtatrabaho sa SharePoint (bilang tagapayo o kawani ng IT) hindi nag-blog, nerbiyos, mukhang alam ng pampublikong boards mensahe tulad ng MSDN forum o SharePoint University, panatilihin ang mga profile sa Facebook o LinkedIn, at iba pa. They are pure information consumers. Not bad, lamang kawili-wiling.

</dulo>

Technorati Tags:

Mag-subscribe sa aking blog.

Bahagi ng nilalaman Query Web: Nagsasalita sa New York User Group SharePoint

Ako nagsasalita sa aking mga kasamahan, Natalya Voskresenskaya, sa New York SharePoint User Group nakakatugon sa Miyerkules Mayo 7.

Dahil sa Bob Fox para ibinabato aming mga pangalan sa mga sumbrero at pagtulong sa amin na makuha ang pagkakataong ito!

Ang aming mga pangkalahatang paksa ay ang Nilalaman ng Query ng Bahagi ng Web at umaasa kaming mabigyan ang ilang mga kapaki-pakinabang na impormasyon sa dalawang natatanging mga madla:

  • Negosyo ng mga gumagamit (hindi pang-developer): Ipakita kung paano CQWP maaaring i-configure upang malutas ang ilang mga karaniwang problema ng negosyo nang walang anumang coding.
  • Developer: 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.

Dito ay ang notice NYSPUG mail out mas maaga sa linggong ito:

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

MOSS 2007’s Content Query Web Part (CQWP) nagbibigay-daan sa mga gumagamit upang lumikha ng mga pasadyang view ng data query mula sa maraming mga mapagkukunan, at ipakita ang data na iyon sa isang lugar. Sa kabila nito malakas query & nilalaman refinement pagpipilian, CQWP ay madalas na isang underrated at overlooked tampok. CQWP is both a "data extraction engine" (makahanap ng mga dokumento o mga listahan ng mga item saanman sa isang koleksyon site) at din ng isang primera klaseng pagtatanghal tool na nagbibigay-daan sa mga gumagamit upang kontrolin kung paano nilalaman ay iniharap sa pamamagitan ng pambalot HTML at mga istilo upang i-format ang display halos anumang paraan na nais mong.

Sa demo-mabigat na session, sila ay nagpapakita kung paano gamitin ang CQWP upang malutas ang mga problema ng negosyo sa pamamagitan ng pagpapakita-off ang mga tampok ng core.

  • gamitin ang mga tampok default CWQP, kabilang ang target na madla

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

  • baguhin ang hitsura & dating ng mga resulta ng query upang i-highlight ang data ng negosyo, ipakita ang karagdagang mga haligi ng impormasyon, ipakita ang impormasyon sa isang format grid, at iba pa.

  • ipakita kung paano maaaring CQWP tulungan sa nilalaman uri ng administrasyon (i.e. hanapin ang lahat ng mga dokumento ng isang partikular na uri ng nilalaman upang maunawaan potensyal na epekto ng pagbabago ng isang CT kahulugan).

  • ilarawan ang ilang mga limitasyon ng CQWP

  • magbigay ng isang listahan ng mga mapagkukunan para sa mga advanced na mga diskarte CQWP, kabilang ang mga blog, ECQWP Codeplex proyekto & MSDN dokumentasyon.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags:

FAST SharePoint Pagsasama: Ipatupad ng Simple Query

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, ito ay isang hop, laktawan at tumalon ang layo sa I-wrap ang logic na ito sa loob ng isang web bahagi o application na pahina:

paggamit Sistema;
paggamit System.Collections.Generic;
paggamit System.Linq;
paggamit System.Text;
paggamit System.Collections.Specialized;
paggamit Com.FastSearch.Esp.Search;
paggamit Com.FastSearch.Esp.Search.Http;
paggamit Com.FastSearch.Esp.Search.Navigation;
paggamit Com.FastSearch.Esp.Search.Query;
paggamit Com.FastSearch.Esp.Search.Result;
paggamit Com.FastSearch.Esp.Search.View;
paggamit System.Collections;

namespace Conchango
{
    klase InvokeSimpleFASTQuery
    {
        statik walang bisa Pangunahin(pisi[] args)
        {

            #rehiyon Initialize ang aming komunikasyon sa mga FAST
            ISearchFactory searchFactory;

            NameValueCollection nameValueCollection = bago 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

             Ilunsad ang isang query

            pisi queryString = "test";

            Tanong query = bago Tanong(queryString);

            query.SetParameter(BaseParameter.CLUSTERING, hindi totoo);
            query.SetParameter(BaseParameter.NAVIGATION, totoo);
            query.SetParameter(BaseParameter.NAVIGATION_DEEPHITS, 100);

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

            IQueryResult resulta = searchView.Search(tanong);

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

            int docCounter = 0;

            habang (docCounter < result.DocCount)
            {

                docCounter    ;

                IDocumentSummary thisDocSummary = result.GetDocument(docCounter);

                Mag-aliw.WriteLine("[" + docCounter + "]: " + thisDocSummary.GetSummaryField("url").StringValue);

            } // habang

            Mag-aliw.ReadLine();
            #endregion

        }
    }
}

Ito ay binubuo ng mga sumusunod na resulta:

imahen

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags: ,