Arkivji ta 'Kull Xahar: Marzu 2008

Iddetermina Port QRServer FAST

Sabiex jikkomunika mal FAST Fittex permezz API tagħha, għandna bżonn inkunu nafu l-port li fih il-QRServer qed taħdem.

I segwita dawn il-passi sabiex tiġi lokalizzata:

  1. Log fis-sit admin FAST (http://server:port/admin).
  2. Mur Sistema Overview.
  3. Locate "Search Dispatcher" u kklikkja l-ikona spyglass:

    immaġni

  4. I użata b'suċċess il-valur, 15100 for "Info Name" = "http":

    immaġni

Noti:

1. Port 15100 appears to be the default out-of-the-box port number for the QRServer.

2. Uża din il-kodiċi simili għal dawn li ġejjin li instantiate xi konnessjoni ma FAST:

     ISearchFactory searchFactory;
    
        NameValueCollection nameValueCollection = ġdid NameValueCollection();
    
        nameValueCollection.Add("fastsearchengine", "Com.FastSearch.Esp.Search.Http.HttpSearchFactory");
        nameValueCollection.Add("Com.FastSearch.Esp.Search.Http.QRServers", "fastdemoback:15102");
        nameValueCollection.Add("Com.FastSearch.Esp.Search.Http.RequestMethod", "GET");
    
        searchFactory = SearchFactory.NewInstance(nameValueCollection);

3. Jekk inti pick port wildly żbaljata, ikollok messaġġ ta 'żball utli:

immaġni

4. Madankollu, jekk inti pick-numru tal-port elenkati fuq il-ħarsa ġenerali (15102) you don’t get that helpful error message. Minflok, aktar tard meta inti tipprova l-aċċess kwalunkwe data permezz ta 'tfittxija jew referenza ħsieb FAST, you get an error. Debugging shows that the searchFactory’s view count is zero. You’ll be given the message "Failed to fetch Search View List".

</aħħar>

Tags:

Abbona għall-blog tiegħi.

Lejn Disinji Disinn SharePoint Tekniċi: SharePoint Designer Workflow + Riċevitur Avveniment = Cocktail Għoli Qawwa

Wieħed mill-mudelli emerġenti nsib fil opri soluzzjonijiet SharePoint tiggwida SharePoint Designer workflow u riċevitur avveniment.

Hawnhekk huwa xenarju tan-negozju li tqiegħed fil-kuntest:

  • I upload dokument għal LIB dok.
  • I kick off multi-pass fluss tax-xogħol maħluqa bl-użu Disinjatur SharePoint.
  • F'xi punt matul dak il-proċess, workflow tassenja kompitu lil xi ħadd (permezz tinġabar data mill-utent jew tassenja kompitu).
  • We want to use a KPI to track how long that task is awaiting completion. The KPI shows green for tasks that are completed or due more than 3 days from now. It shows yellow if the task is due tomorrow or today. It shows red if the task is past due.
  • Hawn il-kicker: Irrid id-data li drives li KPI li tkun btala-konxju.

I can’t calculate a holiday-aware due date in SharePoint Designer workflow very easily. I would have to create a custom action or use a 3rd party tool. Madankollu, it’s easy enough to calculate such a date in an event receiver. Merge those two together and we get a pattern like this:

  • Define a hidden yes/no site column on the document library labeled "DoCalcualteDueDate".
  • Initialize l falza.
  • Fiż-żmien xieraq fil-fluss tax-xogħol (e.g. just before the "collect data" azzjoni), tassenja dak il-valur għall Veru.
  • L ItemUpdate() event receiver looks to see if "DoCalculateDueDate" is true. Since the event receiver runs on every update, "DoCalculateDueDate" normalment falza.
  • Meta workflow tassenja DoCalculateDueDate li veru, ir-riċevitur avveniment tikkalkula d-data festa-konxji minħabba.
  • Meta r-riċevitur avveniment ma dan il-kalkolu, hi tistipula l-bandiera DoCalculateDueDate biex falza.

Fl-aħħar, SPD workflow is communicated with an event receiver via the DoCalculateDueDate semaphore and we have holiday-aware due dates that are assigned at the exactly correct moment in the workflow’s life. SharePoint Designer controls when the due date is assigned but the event receiver performs the actual calculation and assignment.

</aħħar>

Abbona għall-blog tiegħi.

Osservat Behavior: Nimxu flussi tax-xogħol tad-DPW Fi Ġbir Sit

UPDATE: I’ve been researching how to embed a SPD workflow into a site definition. This MSDN forum chain has some interesting information. It’s not conclusive, iżda jindika triq permezz tal-ġungla.

I’m giving this post a slightly oddball "Observed Behavior" lead since I’m a little leery of drawing conclusions from it. SPD workflows are … temperamental.

People are often asking / wondering / fretting over moving SPD workflows from one place to another. Illum, I followed these steps and made these observations:

  • I created a workflow using SharePoint Designer in a site attached to a document library.
  • The associated document library already housed several documents.
  • I saved the site as a template.
  • When I saved the site as a template, I saved the content as well.
  • I created a new site in the same site collection using that template.

F'dan il-punt, I tried to run the workflow. It promptly terminated itself with the log message, "Failed on start".

I expected this. I have low expectations when it comes to moving SPD workflows around.

I continued:

  • Opened the site in SharePoint Designer.
  • Had a peek at the workflow. It seemed fine.
  • I clicked "Finish".
  • I ran the workflow.

Din id-darba, maħduma multa.

I’ll add that this workflow used the "collect data from user" action which is a relatively complex action under the hood.

I tentatively conclude that the process of "finishing" the workflow caused SPD to properly associate the SPD workflow with the new document library. I also conclude the XOML and other XML artifacts are reasonably "loose". They are not super tightly coupled to the document library.

What does this mean? Assuming it’s a reliable and reproducible process, there’s at least one rough method we can use to move them around. I don’t know if this would work if we crossed site collection boundaries or even more drastically, entire new farms (e.g. dev to stage to prod).

If you’re reading this and inclined, please post a comment or email me your SharePoint Designer migration story. I’ll gladly update this posting with any insights thus offered.

</aħħar>

Abbona għall-blog tiegħi.

Quick u sempliċi: Aġġornament Workflow-biss Field

It’s often useful to store status information in a custom list such as an approval code which should never be directly manipulated by end users. This is a common business scenario. I have been working on a project this year that generates various status and reminder dates via SharePoint Designer workflows that then drive KPIs and generally support time-critical business processes.

Tintuża tip kontenut tas-sit / kolonna biex jinkiseb dan l-effett.

Oħloq tip kontenut tas-sit mal-kolonna istatus kif muri:

immaġni

Note the "Status (għall Demo)" qasam fil-qiegħ.

Li jmiss, click on the column name to access the column’s properties. Select "Hidden (Mhux se jidhru fil-forom)" fil-Kolonna Settings sezzjoni kif muri:

immaġni

This removes the field from the standard edit/update forms. Madankollu, għadu disponibbli fil-fehmiet, KPIs, il-mudell oġġett u imkien ieħor inti tixtieq li jużawh, including SPD workflow.

</aħħar>

Abbona għall-blog tiegħi.

IL-ĦADD Funny: “Ħsibt li dan suppost kellha tkun a Town Rich”

A ftit aktar minn tliet snin ilu, marti u I ffirmaw tifel tiegħi up għal attività tas-sajf, The Midland Park Players. This is a drama group that spends about three or four weeks preparing for a play and then showing it to the parents, friends and relatives. It’s always been done very well.

I don’t know if everyone’s child is like this, but my son is extremely reluctant to try new things. Knowing this, we signed him up for the program. We’ve found that it’s best to alert him to these kinds of things early and often. Allura, in order to overcome his natural reluctance, we told him early and did our best to make it sound like fun, eċċ. Even with a multi-month advertising campaign, he still wasn’t convinced. We forced him to do, għalkemm, and as is often the case, he had a great time.

By the time the second year rolled around, he had once again convinced himself that he didn’t want to participate. Iżda, we had signed him up and on zero-day, I dropped him off one morning at the high school where they practice. When I went to pick him up after lunch, he was very excited, all smiles and announced, "The play is the Velveteen Rabbit and I want to be the Rabbit". He had spent literally months carrying on (sometimes hysterically) about how he didn’t want to have anything to do with Park Players and after the first day, he wants to be the lead role in the play. We’ve seen this pattern before.

(Much to our surprise, he did get the Rabbit role and he was amazing.)

Fast forward a few years. He’s been in Park Players three times now, so he’s something of a veteran. This summer (2008), Players starts up again. Fil-ħin medju, he’s finally convinced us he verament doesn’t want to play soccer and he never liked basketball. That left him with no extra-curricular activities for late Winter / early Spring. A client with whom I was working mentioned that his daughter was in a program called Stage Right. Stage right is a slightly more expensive version of Park Players and it’s not in my town, but adjacent to it. Perfect.

The thing to know about that town is that it’s practically another country in terms of wealth. It has a high-frequency train right to Wall Street and NYC in general. It’s just a wealthy place. One of the on-going family discussion themes is whether we should have moved to that town instead of where we live now. It’s a bigger town, its schools offer more programs for the kids, eċċ. My wife grew up in that town and her parents live there, so we are "hooked in" despite not living there. I personally grew up in different circumstances in Massachusetts, so I don’t have a lot to say about this during family dinner conversation. This isn’t to say that we aren’t very happy where we live. We just know that that town is a level above our town economically.

Stage Right’s next program started too soon for us to launch our normal advertising campaign to overcome my son’s reluctance. This is when he came up with one my personal favorite arguments against doing something: "Friday nights are prime iljieli għall overs irqad!" Stage Right was going to interfere with his weekend socials.

Il-jum jiġi, nġibu lilu hemmhekk u qatra lilu off u kif ma 'kull ħaġa oħra, imħabba naturali tiegħu ta 'ftit ħajja f'k ħa f'idejh u hu kien li jkollhom żmien tajjeb magħha.

This past weekend my wife was talking to him and for the first time, I think he’s tailoring his discussions very precisely for his audience. She had asked him how Stage Right compares to Midland Park Players. He tells her that "In Park Players, we have teenagers that help us out. There aren’t any in in Stage Right. In Park Players, teenagers make all props. In Stage Right, we have to bring our own props. We have to do everything. And then he twists the knife: "I thought this was supposed to be a rich town."

All these years, I never really thought that he was hearing or understanding anything as it related to the "rich town". Madankollu, it turns out he was.

</aħħar>

Abbona għall-blog tiegħi.

Tags:

SharePoint ma jipprovdix Kalendarju Roll-ups; Soluzzjonijiet potenzjali

UPDATE: An anonymous person in the comments posts this link: http://www.atidan.com/atidan-collaboration-kit.php

Utenti forum spiss jistaqsu mistoqsija bħal dan:

"I would like to have a calendar at the site level that is populated by events from subsite calendars. Ideally, utenti fil subsiti se toħloq avvenimenti kalendarju, and will have the option of marking them as ‘public.’ Events marked as public will dynamically appear in the shared site calendar. Thus the shared site calendar is a roll-up of all public events from all subsite calendars."

Huwa WSS 3.0 jew MOSS 2007, it is not possible to directly configure a "roll-up" calendar. Calendars exist on their own, indipendenti minn kull kalendarju oħra.

Biex jinħoloq kalendarju roll-up, jsegwi waħda minn dawn mogħdijiet:

  1. Use a Content Query Web Part. This is the easiest solution for MOSS users (WSS ma jipprovdix CQWP). CQWP, sfortunatament, does not provide a calendar view of data out of the box. It does provide enormous rendering flexibility (tara hawn għal eżempju wieħed) iżda fil-kontumaċja, shows its results in simple list format. In many cases, CQWP probabbilment għażla tajba.
  2. A more programming-oriented solution would be to use event receivers. Implement event receivers on the subsite calendars that keep their public events in sync with the master calendar. As a given subsite calendar is modified, reach out to the master calendar and update it as needed. This option is available in both WSS 3.0 u MOSS.

There are probably other clever solutions to this problem. If you have one or know of one, jekk jogħġbok leave kumment jew email me u jien se taġġorna din il-kariga.

</aħħar>

Abbona għall-blog tiegħi.

Oħloq Siti (SPWeb) permezz SharePoint Designer Workflow

This blog entry is more of an "in the realm of the possible" dħul vs. info konkreti.

We have a technical design that calls for us to create a site in a site collection via a manually launched workflow process. Bażikament, users enter data into a "new customer" lista tad-dwana u mbagħad meta jkunu lesti u vvalidati l-proċess dħul tad-data, għandna bżonn li jinħoloq sit għall dak il-klijent.

Jien kemm big fan ta 'workflow dikjarattiva kif ukoll viżwali programmer dgħajfa workflow studio, hekk jien ridt li jilħqu l-ħtieġa li jużaw SharePoint Designer.

I pjan biex jiktbu dwar dan f'aktar dettall (u nisperaw preżenti għal grupp ta 'utenti jew tnejn fis-sena li ġejja), iżda hawnhekk huwa l-soluzzjoni ġenerali:

  • Oħloq azzjoni drawwa li jintegra ma SPD.
  • L-azzjoni tad-dwana tippermetti SPD li tinvoka servizz web u tgħaddih sensiela ta 'XML.
  • Locates servizz web tal-ringiela fil-lista tad-dwana u toħloq sit ġdid bħala per-data għal dak klijent ġdid bl-użu ta 'definizzjoni sit custom.
  • Web servizz imbagħad jaġġorna l-lista tad-dwana ma 'xi informazzjoni bħal link għas-sit il-ġdid.

Aħna kkunsidrati approċċi oħra, such as event handlers and visual studio based workflow. The SPD approach gives our end users a little more control over the process. Granted, hemm ħafna ta 'C # kodiċi f'din is-soluzzjoni, imma hija mgeżwra ġewwa workflow dikjarattiva, hekk aħna nikseb xi wħud mill-benefiċċji ta 'workflow dikjarattiva filwaqt hooking fis-servizz tal-ħolqien tal site.

All we need now is an easy tool to automatically migrate SPD workflows around as easily as we can for visual studio workflows and we’ll really be cooking with gas 🙂 I understand that some folk are out there working on this problem and I hope they have some good success with it soon.

</aħħar>

Abbona għall-blog tiegħi.

Quick u sempliċi: Dispożizzjoni Sit Web Uża Object Model SharePoint Fil C #

I tried searching for a little snippet code that would show how I can create a new SPWeb in a site collection. I didn’t find it as quickly or easily as I expected so I thought I’d slap together a little entry on the subject.

Dan il-kodiċi joħloq sit Wiki ġdida:

 SPSite siteCollection;

    siteCollection = ġdid SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy Title",
        "xyzzy description", 1033, SPWebTemplate.WebTemplateWIKI, falza, falza);

My initial searches failed because I was looking for phrases like "provision a web site using sharepoint object model" and the like.

Jekk inti tfittxija for "Webs.Add()", inti ser issib numru ta 'daħliet blog utli ħafna, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend dan is-sit.

</aħħar>

Abbona għall-blog tiegħi.

Tintegra flussi tax-xogħol Designer SharePoint ma Web Services

I’ve been playing around with custom actions for SharePoint Designer for some time (tara hawn for some detailed stuff, if that interests you).

Fil-proġett kurrenti tiegħi, we need to do some fairly heavy lifting and we want to use declarative SPD workflow to manage the associated business process.

Long storja qasira, this is entirely possible. I extended my Codeplex project to invoke a "helper service" and now we can invoke a web service directly from an SPD workflow.

Here’s the signature:

 pubbliku string Dispatcher(
        Guid WebID, // Passed by the runtime environment
        Guid SiteID, // Passed by the runtime environment
        string ListID, // Passed by the RTE (don't know why this is a string, not a GUID)
        int ListItemID, // Passed by the RTE.
        string XmlMessage) // Passed by the user as declared in SPD.

This leverages the fact that we can get at important workflow information, like the site, list ID, eċċ. This is well documented in several places for those of you interested in creating your own custom actions. The idea is to extract the XML string as provided by the user to dispatch an appropriate procedure. Fun stuff!

Sfortunatament, this is obviously a one-way ticket down to "Loosey Goosey" anti-pattern land, but it’s better than hitting a brick wall 🙂

Is it an anti-pattern if you do it even though you know it’s an anti-pattern?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, give me poke (email or leave a comment) and I’ll be that more enthusiastic about doing it 🙂

</aħħar>

Abbona għall-blog tiegħi.

IL-ĦADD Funny: “I wonder jekk password tiegħek …”

I reċentement xtara ikla għall brother tiegħi (bħas-soltu) and we ended up talking about funny things that we did at our respective colleges. At my alma mater, Lafayette Kulleġġ, the academic support IT department had a very inclusive way about it. We were given a LOT of rope and I took advantage of that at times.

Two my favorite memories relate to my good friend, Gabe. He had made the terrible mistake of telling people his freshman year that "I’m a freshman, but I have Sophomore standing" due to the various advanced placement classes he had taken, eċċ. Many of us were similarly situated but we didn’t talk about it so much. His senior year, when we introduced him to people, we’d say "This is Gabe. He’s a Senior, but he has Sophomore standing".

The college had some Sun workstation/servers running X-Window. They had gigantic monitors and the engineers used them for CAD and other boring engineer stuff. We CS people used them to learn programming and, tal-kors, l-logħob.

Aħna ma bħall-inġiniera kompjuter hilflose għal ħafna sabiex wieħed ta 'affarijiet favoriti tagħna biex tagħmel huwa li telnet għall-kaxxa kienu fuq u run X-għajn on them. This would pop up a pair of eyes that followed the mouse around on the screen. You could pop up even more and have literally a dozen or more of the X-eye applications running. Try not to laugh out loud when a hapless engineer is trying to close X-eye after X-eye and muttering under his breath about it 🙂

We also played X-trek on those boxes. Biex tagħmel dan, you had to download the source, get various dependencies wherever you could find them and build it. I wasn’t a sophisticated C programmer, but I could read header files. I was looking through these and found directives like "#DEFINE MAX_TORPEDO_DISTANCE 10". I played around with that increase range and power for phases and torpedoes, re-built it and then destroyed Gabe the next time we played.

Gabe was also a huge fan of a TV show called Blake’s 7. I had never seen it, but that didn’t prevent me from insisting that Dr. Who is the superior show. The arguments would get heated at times 🙂

Ġurnata waħda, it occurred to me that I could probably guess his UNIX password. I sat down next to him one day and announced in a loud tone, "I’m going to guess your password right now, Gabe." "Yeah, dritt" was his answer. I then logged in, entered his user id, turned to face him, typed and said out loud, "I wonder if it’s B-L-A-K-E-7" ? Touch typing has never paid off as handsomely as it did that day.

Ġimgħa d-dieħla (or soon): More computer room antics from college.

Do you have any to share? Leave a comment or email me and I’ll publish them here.

</aħħar>

Abbona għall-blog tiegħi.

Tags: