maandelikse Argiewe: Maart 2008

Bepaal vinnige QRServer Port

Ten einde te kommunikeer met 'n vinnige Soek via die API, ons moet die hawe om te weet wat die QRServer loop.

Ek het hierdie stappe doen om dit op te spoor:

  1. Teken in die vinnige admin werf (http://server:port/admin).
  2. Gaan na System Oorsig.
  3. Locate "Search Dispatcher" en SpyGlass ikoon kliek:

    beeld

  4. Ek het suksesvol gebruik om die waarde, 15100 for "Info Name" = "http":

    beeld

Notas:

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

2. Gebruik hierdie kode soortgelyk aan die volgende om 'n verbinding te instansieer om te vas:

     ISearchFactory searchFactory;
    
        NameValueCollection nameValueCollection = nuwe 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. As jy kies 'n wild verkeerde hawe, jy kry 'n nuttige foutboodskap:

beeld

4. Egter, As jy kies die hawe wat op die oorsig (15102) you don’t get that helpful error message. In plaas daarvan, later wanneer jy probeer om toegang te verkry tot enige data deur middel van 'n soektog of 'n vinnige oog verwysing, 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".

</einde>

Technorati Tags:

Skryf in op my blog.

Volgens die SharePoint Tegniese ontwerpspatrone: SharePoint Designer Workflow + Event Ontvanger = Hoë ​​sterkte kelkie

Een van die opkomende patrone Ek vind in die knutselen SharePoint oplossings maak gebruik van SharePoint Designer workflow en 'n gebeurtenis ontvanger.

Hier is 'n besigheid scenario om dit in konteks te plaas:

  • Ek laai 'n dokument aan 'n doc lib.
  • Ek skop af multi-stap workflow wat geskep is met behulp van SharePoint Designer.
  • Op 'n stadium tydens die proses, Die workflow ken 'n taak aan iemand (deur middel van data in te samel van die gebruiker of 'n taak te ken).
  • 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.
  • Hier is die skopper: Ek wil die datum wat dryf dat KPI vakansie-bewus te wees.

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. Egter, 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".
  • Inisialiseer aan die valse.
  • Op die regte tyd in die workflow (bijv. just before the "collect data" aksie), wys dat die waarde aan True.
  • 'N ItemUpdate() event receiver looks to see if "DoCalculateDueDate" is true. Since the event receiver runs on every update, "DoCalculateDueDate" is gewoonlik vals.
  • Wanneer workflow ken DoCalculateDueDate na ware, die geval ontvanger bereken die vakansie-bewus vervaldatum.
  • Wanneer die geval ontvanger hierdie berekening, dit stel die DoCalculateDueDate vlag op 'n bedrieglike.

Op die ou end, 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.

</einde>

Skryf in op my blog.

Stroming gedrag: Die beweeg SPD Werkstromen Binne 'n site collection

UPDATE: I’ve been researching how to embed a SPD workflow into a site definition. Hierdie MSDN forum ketting het 'n paar interessante inligting. It’s not conclusive, maar dui op die pad deur die oerwoud.

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 … temperamenteel.

Mense is dikwels vra / wonder / fretting over moving SPD workflows from one place to another. Vandag, Ek volg hierdie stappe en maak hierdie waarnemings:

  • Ek het 'n workflow met SharePoint Designer in 'n plek verbonde aan 'n dokument biblioteek.
  • Die gepaardgaande dokument biblioteek reeds verskeie dokumente gehuisves.
  • Ek het die werf as 'n sjabloon gered.
  • Toe ek die werf as 'n sjabloon gered, Ek het die inhoud gered sowel.
  • Ek het 'n nuwe tuiste in die dieselfde plek versameling gebruik van hierdie sjabloon.

Op hierdie 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.

Ek het voortgegaan:

  • Het die plek in SharePoint Designer.
  • Had a peek at the workflow. It seemed fine.
  • I clicked "Finish".
  • Ek hardloop die workflow.

Hierdie keer, dit werk goed.

I’ll add that this workflow used the "collect data from user" aksie wat 'n relatief komplekse aksie onder die enjinkap.

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.

Wat beteken dit? 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, hele nuwe plase (bijv. ontwikkeling aan te bied om te prod).

As jy dit lees en geneig, post 'n comment of email my your SharePoint Designer migration story. I’ll gladly update this posting with any insights thus offered.

</einde>

Skryf in op my blog.

Technorati Tags:

Vinnige en maklike: Workflow net Update Veld

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.

Gebruik 'n webwerf tipe inhoud / kolom om hierdie effek te bereik.

Skep 'n inhoud van die webtuiste tipe met die status kolom soos getoon:

beeld

Note the "Status (vir Demo)" die gebied aan die onderkant.

Volgende, click on the column name to access the column’s properties. Select "Hidden (Verskyn nie in vorms)" in die kolom instellings soos aangedui:

beeld

This removes the field from the standard edit/update forms. Egter, dit is nog beskikbaar is in die menings, KPI, die doel van die model en oral anders wat jy wil om dit te gebruik, including SPD workflow.

</einde>

Skryf in op my blog.

Sondag Funny: “Ek het gedink Dit was veronderstel om 'n ryk stad wees”

'N bietjie meer as drie jaar gelede, Ek en my vrou onderteken het my seun vir 'n somer-aktiwiteit, 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.

Ek weet nie as almal se kind is soos hierdie, 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. So, ten einde sy natuurlike onwilligheid om te oorkom, ons het vir hom gesê vroeg op en het ons bes gedoen om dit klink soos pret te maak, ens.. Even with a multi-month advertising campaign, he still wasn’t convinced. We forced him to do, al, en is so dikwels die geval, he had a great time.

Teen die tyd dat die tweede jaar gerol rondom, he had once again convinced himself that he didn’t want to participate. Maar, ons geteken het hom opgetel en op die nul-dag, I dropped him off one morning at the high school where they practice. When I went to pick him up after lunch, Hy was baie opgewonde, al die glimlagte en aangekondig, "Die toneelstuk is die Fluweel Rabbit and I want to be the Rabbit". He had spent literally months carrying on (soms histeries) oor hoe hy wou nie iets te doen met die Park spelers te hê en na die eerste dag, he wants to be the lead role in the play. We’ve seen this pattern before.

(Ons tot ons verbasing, hy het die Rabbit rol en hy was ongelooflike.)

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. In die gemiddelde tyd, hy uiteindelik oortuig hy werklik 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, die skole bied meer programme vir die kinders, ens.. My wife grew up in that town and her parents live there, sodat ons "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: "Vrydagaande eerste nagte vir slaap boulbeurte!" Stage Right was going to interfere with his weekend socials.

Die dag kom, ons bring hom daar en val hom af en soos met alles anders, sy natuurlike liefde net lewe oorgeneem en hy is 'n goeie tyd saam met my.

Hierdie afgelope naweek het my vrou is met hom gepraat en vir die eerste keer, 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: "Ek het gedink dit was veronderstel om 'n ryk stad."

Al hierdie jare, I never really thought that he was hearing or understanding anything as it related to the "rich town". Egter, Dit blyk hy was.

</einde>

Skryf in op my blog.

Technorati Tags:

SharePoint Verskaf nie Kalender Roll-ups; Moontlike oplossings

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

Forum gebruikers dikwels 'n vraag soos hierdie:

"I would like to have a calendar at the site level that is populated by events from subsite calendars. Ideally, gebruikers in subsites sal skep kalender gebeure, 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."

Is WSS 3.0 of MOSS 2007, dit is nie moontlik om direk instel van 'n "Roll-up" calendar. Calendars exist on their own, onafhanklik van enige ander kalender.

'N roll-kalender te skep, Volg een van hierdie paaie:

  1. Use a Content Query Web Part. This is the easiest solution for MOSS users (WSS nie CQWP). CQWP, ongelukkig, does not provide a calendar view of data out of the box. It does provide enormous rendering flexibility (kyk hier vir 'n voorbeeld) maar by verstek, shows its results in simple list format. In many cases, CQWP waarskynlik 'n goeie keuse.
  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 en Moss.

There are probably other clever solutions to this problem. If you have one or know of one, los 'n kommentaar of email my en Ek sal hierdie pos werk.

</einde>

Technorati Tags: ,

Skryf in op my blog.

Skep Sites (SPWeb) via SharePoint Designer Workflow

Hierdie blog inskrywing is meer van 'n "in die realm van die moontlike" inskrywing vs. konkrete inligting.

We have a technical design that calls for us to create a site in a site collection via a manually launched workflow process. Basies, Die users data in 'n "nuwe kliënt" persoonlike lys en dan wanneer hulle klaar is en bekragtig die invoer van die data, ons nodig het om 'n tuiste te skep vir daardie kliënt.

Ek is beide 'n groot fan van verklarende workflow sowel as 'n swak Visual Studio workflow programmeerder, Ek wou die vereiste om te voldoen aan die gebruik van SharePoint Designer.

Ek van plan is om te skryf oor dit in meer besonderhede (en hopelik geskenk aan 'n gebruiker of twee in die komende jaar), maar hier is die algemene oplossing:

  • Skep 'n persoonlike aksie wat integreer met SPD.
  • Die persoonlike aksie kan SPD 'n web-diens op te roep en gee dit 'n string van XML.
  • Web diens gelokaliseer die ry in die persoonlike lys en skep 'n nuwe tuiste soos per die data vir die nuwe kliënt met behulp van 'n persoonlike site definisie.
  • Web Updates dan die persoonlike lys met enige inligting wat soos 'n skakel na die nuwe site.

Ons beskou as ander benaderings, such as event handlers and visual studio based workflow. The SPD approach gives our end users a little more control over the process. Granted, daar is 'n baie C # kode in hierdie oplossing, maar dit is toegedraai in 'n verklarende workflow, sodat ons 'n paar van die voordele van 'n verklarende workflow terwyl haak in die werf-skepping.

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.

</einde>

Skryf in op my blog.

Technorati Tags: ,

Vinnige en maklike: Voorsiening van 'n webwerf met SharePoint Object Model 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.

Hierdie kode skep 'n nuwe Wiki webwerf:

 SPSite siteCollection;

    siteCollection = nuwe SPSite("Http://conchang-o9l8qi");

    SPWeb W = siteCollection.OpenWeb();

    w.Webs.Add("Xyzzy", "Xyzzy Titel",
        "Xyzzy beskrywing", 1033, SPWebTemplate.WebTemplateWIKI, valse, valse);

My aanvanklike soektogte nie, want ek was op soek na woorde soos "voorsiening 'n webwerf met sharepoint voorwerp model" and the like.

As jy soek "Webs.Add()", vind jy 'n aantal baie nuttige blog inskrywings, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend hierdie werf.

</einde>

Skryf in op my blog.

Technorati Tags:

Integreer SharePoint Designer Werkstromen Web Services

Ek het rond speel met 'n persoonlike aksies vir SharePoint Designer vir 'n geruime tyd (Kyk hier vir 'n paar gedetailleerde dinge, as wat jou interesseer).

In my huidige projek, we need to do some fairly heavy lifting and we want to use declarative SPD workflow to manage the associated business process.

Lang storie kort, 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.

Hier is die handtekening:

 openbare string Planner(
        Guid WebID, // Wat deur die Runtime Environment
        Guid SiteID, // Wat deur die Runtime Environment
        string ListID, // Geslaag deur die RTE (weet nie waarom hierdie is 'n string, nie 'n GUID)
        int ListItemID, // Geslaag deur die RTE.
        string XmlMessage) // Geslaag deur die gebruiker soos verklaar in SPD.

Dit maak gebruik van die feit dat ons kan kry by 'n belangrike workflow inligting, soos die webwerf, lys ID, ens.. 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!

Ongelukkig, Dit is natuurlik 'n eenrigting-kaartjie af "Loosey Fernandes" anti-patroon land, but it’s better than hitting a brick wall 🙂

Is dit 'n anti-patroon as jy dit doen, selfs al weet jy dit is 'n anti-patroon?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, gee my poke (e-pos of laat 'n comment) and I’ll be that more enthusiastic about doing it 🙂

</einde>

Skryf in op my blog.

Technorati Tags: ,

Sondag Funny: “Ek wonder of jou wagwoord …”

Ek het onlangs gekoop het middagete vir my broer (soos gewoonlik) and we ended up talking about funny things that we did at our respective colleges. At my alma mater, Lafayette College, 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.

Twee my gunsteling herinneringe aan my goeie vriend, Gabe. He had made the terrible mistake of telling people his freshman year that "I’m a freshman, maar ek het stage staan" as gevolg van die verskillende gevorderde plasing klasse wat hy geneem het, ens.. Many of us were similarly situated but we didn’t talk about it so much. His senior year, wanneer ons hom aan mense, we’d say "This is Gabe. He’s a Senior, Maar hy het 'n stage staan ​​".

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, natuurlik, speletjies te speel.

Ons het nie soos die rekenaar-hulpeloos ingenieurs te veel so een van ons gunsteling dinge om te doen sou wees die telnet aan die boks hulle op en loop X-oog 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. To do that, jy het om die bron te laai, 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, weer gebou en dan vernietig Gabe die volgende keer wat ons gespeel.

Gabe was ook 'n groot fan van 'n TV-show met die naam Blake se 7. I had never seen it, maar dit het nie verhoed dat my uit te dring dat dr.. Who is the superior show. The arguments would get heated at times 🙂

Een dag, 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, "Ek gaan nou om jou wagwoord te raai, Gabe." "Yeah, reg" was his answer. I then logged in, betree sy gebruikers id, draai na hom, getik en hardop gesê, "Ek wonder of dit die B-L-A-K-E-7" ? Touch typing has never paid off as handsomely as it did that day.

Volgende week (of so spoedig moontlik): More computer room antics from college.

Het jy 'n deel? Leave a comment or email me and I’ll publish them here.

</einde>

Skryf in op my blog.

Technorati Tags: