FAST SharePoint integrasie: Voorbeeld kode alle beskikbare vinnige besigtingings om te vertoon

Hier is 'n kode wat toon al die beskikbare menings van 'n FAST bediener wat gebaseer is op die genoemde QRServer (die bediener proses waarmee ons kommunikeer). I offer this up to give you all a taste of what it’s like to use the provided FAST API.

die gebruik van Stelsel;
die gebruik van System.Collections.Generic;
die gebruik van System.Linq;
die gebruik van System.Text;
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.Specialized;
die gebruik van System.Collections;


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

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

            Troos.WriteLine("Total Views: [" + searchFactory.GetSearchViewList().Tel + "].");

            int i = 0;

            foreach (voorwerp die in searchFactory.GetSearchViewList())
            {
                Troos.WriteLine("View [" + i     + "]: [" + o.ToString() + "].");

            }

            Troos.Read line();

        }
    }
}

Let daarop dat ek beskou myself as 'n skaars bekwame C # programmeerder en ek het 'n dun vel, stuur nie enige frambose my pad, veral weer: the "foreach (voorwerp o in …)" construct 🙂

</einde>

Technorati Tags: ,

Skryf in op my blog.

FAST en SharePoint Integrasie Eerste Kyk

Ek het gelukkig 'n geleentheid te hê om te werk op 'n vinnige <–> SharePoint integrasie projek en gedink ek wil voortgaan om te deel my beperkte ervaring met die gemeenskap.

Microsoft is in die proses van die aankoop van FAST. I don’t know anything about the schedule except that it should be finished in the "2nd quarter" Ek neem middel 06/30/08.

My projek se ontwerp, op 'n baie hoë vlak, oproepe vir die skep van 'n paar web dele wat ongeveer dieselfde lyk, voel en funksionaliteit as die standaard MOSS soekkassie en kern resultate web deel, but pulling from FAST. I’ve made some baby steps in that direction.

FAST is a dedicated search engine. It’s not based on Microsoft technology, alhoewel dit vir my duidelik is dat sommige van die vinnige ingenieurs duidelik verstaan ​​MS tegnologie (of het hulle gebruik gemaak van kontrakteurs).

FAST:

Vinnig 'n groot monster bediener produk (en ek bedoel nie dat in 'n slegte sin van die woord; Moss is 'n groot monster produk vir my so goed). It appears to be based on Java and I noticed some apache stuff and maybe some PHP. I wouldn’t be surprised if there were other bits of tech mixed in here and there. It definitely runs on windows server and is working fine in the virtual environment which I’ve been using.

It makes use of a facade web service that crawls SharePoint content for indexing in its special FAST way.

A SharePoint end user would be pretty much at home with FAST’s user interface. It has simple/advance search, gee die resultate, is groot op die relevansie (want ek sien nie hoe dit hanteer sosiale relevansie). Egter, it does go further. Its stemming seems better. I really can’t articulate it well but I’ll just say "it’s better." You can take my word for it, or not 🙂 I may elaborate on this point in the future, as ek meer leer.

MOSS:

FAST provides a .NET-friendly DLL that provides an interface to the FAST engine. This makes it possible for us to create web parts or application pages or whatever we want to query FAST and present the results.

Daar blyk 'n web koppelvlak.

I also have access to a FAST-provided web part that does integrate MOSS and FAST. I don’t know if this is a POC, something that was whipped up as a demo or what. It’s definitely a good learning tool, nie so seker of dit is 'n produksie-gereed.

That’s it for now. As I progress through the project, Ek sal meer post.

</einde>

Technorati Tags: , ,

Skryf in op my blog.

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