Хуткая інтэграцыя SharePoint: Прыклад кода для адлюстравання ўсіх даступных хуткіх уяўленняў

Вось прыклад кода, які паказвае ўсе даступныя віды з ХУТЧЭЙ сервер на аснове імя QRServer (серверны працэс, з якім мы маем зносіны). I offer this up to give you all a taste of what it’s like to use the provided FAST API.

выкарыстанне Сістэма;
выкарыстанне System.Collections.Generic;
выкарыстанне System.Linq;
выкарыстанне System.Text;
выкарыстанне Com.FastSearch.Esp.Search;
выкарыстанне Com.FastSearch.Esp.Search.Http;
выкарыстанне Com.FastSearch.Esp.Search.Navigation;
выкарыстанне Com.FastSearch.Esp.Search.Query;
выкарыстанне Com.FastSearch.Esp.Search.Result;
выкарыстанне Com.FastSearch.Esp.Search.View;
выкарыстанне System.Collections.Specialized;
выкарыстанне System.Collections;


Прастора назваў Conchango
{
    клас EnumerateFASTViews
    {
        статычны ануляваць Асноўны(радок[] аргументы)
        {

            ISearchFactory searchFactory;

            NameValueCollection NameValueCollection = новы 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);

            Кансоль.WriteLine("Total Views: [" + searchFactory.GetSearchViewList().Лічыць + "].");

            Int I = 0;

            Еогеасп (аб'ект пра ў searchFactory.GetSearchViewList())
            {
                Кансоль.WriteLine("View [" + я     + "]: [" + o.toString() + "].");

            }

            Кансоль.ReadLine();

        }
    }
}

Звярніце ўвагу, што я лічу сябе кампетэнтным ледзь C # праграміст і ў мяне тонкая скура, так што не пасылайце любой маліны маім шляху, Асабліва паўторна: the "foreach (Аб'ект O ў …)" construct 🙂

</канец>

Technorati Тэгі: ,

Падпісацца на мой блог.

ХУТКА і інтэграцыю з SharePoint Першы погляд

Мне пашанцавала, каб мець магчымасць працаваць на хуткім <–> SharePoint інтэграцыйны праект і думаў, што працягваюць дзяліцца мой абмежаваны вопыт працы з супольнасцю.

Microsoft знаходзіцца ў Працэс пакупкі ХУТЧЭЙ. I don’t know anything about the schedule except that it should be finished in the "2nd quarter" наколькі я разумею па 06/30/08.

Мой праект дызайну, на вельмі высокім узроўні, прадугледжвае стварэнне некалькіх вэб-частак, якія маюць прыкладна той жа выгляд, адчуваць і функцыянальнасць, што і стандартны пошук MOSS скрынку і асноўнымі вынікамі вэб-часткі, 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, хоць гэта для мяне відавочна, што некаторыя з хутка інжынеры дакладна разумець MS тэхналогій (або яны зрабілі выкарыстанне падрадчыкаў).

ХУТЧЭЙ:

Хутка гэта вялікі серверны прадукт монстра (і я не маю на ўвазе, што ў дрэнным сэнсе; MOSS вялікі прадукт монстра мне таксама). 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, паказаны вынікі, вялікі на рэлевантнасць (хоць я не бачу, як яна апрацоўвае сацыяльную рэлевантнасць). Аднак, 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, як я магу даведацца больш.

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.

Там, здаецца, інтэрфейс вэб-службаў, а таксама.

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, не так упэўнены, што гэта гатовы да вытворчасці.

That’s it for now. As I progress through the project, Я адпраўлю больш.

</канец>

Technorati Тэгі: , ,

Падпісацца на мой блог.

Вызначце Fast Port QRServer

Для таго, каб мець зносіны з FAST Search праз яго API, мы павінны ведаць порт, на якім працуе QRServer.

Я рушыў услед за гэтымі крокамі, каб знайсці яго:

  1. Увайсці ў хутка адміністратара сайта (http://server:port/admin).
  2. Перайдзіце да Агляд сістэмы.
  3. Locate "Search Dispatcher" і націсніце на значок Spyglass:

    малюнак

  4. Я паспяхова выкарыстаў значэнне, 15100 for "Info Name" = "http":

    малюнак

Заўвагі:

1. Порт 15100 appears to be the default out-of-the-box port number for the QRServer.

2. Выкарыстоўвайце гэты код, падобны наступнаму стварыць асобнік падлучэння да ХУТКА:

     ISearchFactory searchFactory;
    
        NameValueCollection NameValueCollection = новы 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. Калі вы выбіраеце дзіка няправільна порта, Вы атрымліваеце паведамленне пра памылку карысным:

малюнак

4. Аднак, калі вы выбіраеце нумар порта каціруюцца на агляд (15102) you don’t get that helpful error message. Замест, пазней, калі вы спрабуеце атрымаць доступ да любых дадзеных праз пошук або спасылкі хуткага прагляду, 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".

</канец>

Technorati Тэгі:

Падпісацца на мой блог.

Да SharePoint тэхнічныя шаблонаў праектавання: SharePoint Designer працоўны працэс + Прыёмнік падзей = Высокае Кактэйль патэнцыі

Адна з новых мадэляў я знаходжу ў распрацоўцы рашэнняў SharePoint выкарыстоўвае SharePoint Designer працоўны працэс і прыёмнік падзеі.

Вось бізнес-сцэнар, каб змясціць яго ў кантэкст:

  • Я загрузіць дакумент да дакумента Lib.
  • Я адкідаю шматступенны працэс, створаны дапамогай SharePoint Designer.
  • У нейкі момант у ходзе гэтага працэсу, працоўны працэс прызначае задачу камусьці (з дапамогай збору дадзеных ад карыстальніка або прызначыць задачу).
  • 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.
  • Вось футбаліст: Я хачу, што дата дыскаў, KPI, каб быць святам-Aware.

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. Аднак, 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".
  • Ініцыялізаваць яго да ілжывым.
  • У адпаведны час у працоўны працэс (e.g. just before the "collect data" дзеянне), прызначыць гэта значэнне ПРАЎДА.
  • ItemUpdate() event receiver looks to see if "DoCalculateDueDate" is true. Since the event receiver runs on every update, "DoCalculateDueDate" Звычайна ілжывыя.
  • Калі рабочы працэс прызначае DoCalculateDueDate да сапраўднага, прыёмнік падзей разлічвае свята-Aware тэрмін.
  • Калі прыёмнік падзей робіць гэты разлік, яна ўсталёўвае сцяг DoCalculateDueDate да ілжывых.

У рэшце рэшт, 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.

</канец>

Падпісацца на мой блог.

Назіранае паводзіны: Перамяшчэнне СПД Рабочыя працэсы ў сямействе

АБНАЎЛЕННЕ: I’ve been researching how to embed a SPD workflow into a site definition. Гэтая ланцуг MSDN форуме цікавую інфармацыю. It’s not conclusive, але паказвае шлях праз джунглі.

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 … тэмпераментны.

Людзі часта просяць / цікава / fretting over moving SPD workflows from one place to another. Сёння, Я рушыў услед за гэтымі крокамі, і зрабіў гэтыя назіранні:

  • Я стварыў працоўны працэс з дапамогай SharePoint Designer ў месцы прымацаваная да бібліятэкі дакументаў.
  • Асацыяванага з бібліятэкай дакументаў ужо знаходзілася некалькі дакументаў.
  • Я выратаваў сайт як шаблон.
  • Калі я выратавала сайт як шаблон, Я выратаваў зместу, а.
  • Я стварыў новы сайт у адной калекцыі сайта з дапамогай гэтага пра шаблон.

У гэты момант, 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.

Я працягваў:

  • Адкрыты сайт у SharePoint Designer.
  • Had a peek at the workflow. It seemed fine.
  • I clicked "Finish".
  • Я пабег працоўны працэс.

На гэты раз, усё працавала нармальна.

I’ll add that this workflow used the "collect data from user" дзеянне, якое ўяўляе сабой адносна складаную дзеяння пад капотам.

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.

Што гэта значыць? 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, ўсё новыя фермы (e.g. распрацоўніка на сцэну, каб заахвоціць).

Калі вы чытаеце гэта і схільныя, просьба пакінуць каментар або напішыце мне your SharePoint Designer migration story. I’ll gladly update this posting with any insights thus offered.

</канец>

Падпісацца на мой блог.

Хутка і проста: Workflow-толькі Абнавіць поле

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.

Выкарыстоўвайце тып кантэнту сайта / калонка для дасягнення гэтага эфекту.

Стварэнне тыпу змесціва вузла са статусам калонкі, як паказана:

малюнак

Note the "Status (для Demo)" поле ў ніжняй.

Наступны, click on the column name to access the column’s properties. Select "Hidden (Не з'явіцца ў формах)" у раздзеле Параметры слупкоў, як паказана:

малюнак

This removes the field from the standard edit/update forms. Аднак, ён па-ранейшаму даступны ў такіх відах, КПЭ, аб'ектнай мадэлі і ў іншым месцы вы хочаце выкарыстоўваць яго, including SPD workflow.

</канец>

Падпісацца на мой блог.

Нядзеля Смешныя: “Я думаў, што гэта павінна было быць Багаты горад”

Ледзь больш за тры гады таму, Мая жонка і я падпісаў мой сын на летні час, 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.

Я не ведаю, калі кожнаму дзіцяці, як гэта, 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. Так, для таго, каб пераадолець яго натуральнае нежаданне, мы сказалі яму рана і зрабілі ўсё магчымае, каб гэта гучала як весела, і г.д.. Even with a multi-month advertising campaign, he still wasn’t convinced. We forced him to do, хоць, і як гэта часта бывае, he had a great time.

Да таго часу другі год каталася, he had once again convinced himself that he didn’t want to participate. Але, мы падпісалі яго і на нулявога дня, I dropped him off one morning at the high school where they practice. When I went to pick him up after lunch, ён быў вельмі ўсхваляваны, ўсе ўсмешкі і абвясціў, "The play is the Плюшавы Трус and I want to be the Rabbit". He had spent literally months carrying on (часам істэрычна) пра тое, як ён не хацеў мець нічога агульнага з выглядам на парк і гульцоў пасля першага дня, he wants to be the lead role in the play. We’ve seen this pattern before.

(Да нашага вялікага здзіўлення, ён сапраўды атрымліваў ролі труса, і ён быў дзіўны.)

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. Тым часам, ён, нарэшце, пераканалі нас, ён на самай справе 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, сваёй школы прапануюць некалькі праграм для дзяцей, і г.д.. 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 простае лік ночы для сну кадрам!" Stage Right was going to interfere with his weekend socials.

Настае дзень,, мы прыносім яго там і высадзіць яго і як з усім астатнім, яго натуральная каханне, каб проста быць жывым ўзяў на сябе, і ён быў добра праводзіць час з ім.

Гэта ў мінулыя выхадныя мая жонка размаўляла з ім і ў першы раз, 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."

Усе гэтыя гады, I never really thought that he was hearing or understanding anything as it related to the "rich town". Аднак, аказваецца, што ён быў.

</канец>

Падпісацца на мой блог.

Technorati Тэгі:

SharePoint ня Забяспечыць Каляндар самакруткі; Магчымыя рашэнні

АБНАЎЛЕННЕ: An anonymous person in the comments posts this link: http://www.atidan.com/atidan-collaboration-kit.php

Форум карыстальнікі часцей за ўсё задаюць пытанне, як гэта:

"I would like to have a calendar at the site level that is populated by events from subsite calendars. Ideally, Карыстальнікі ў даччыных сайтаў створыць каляндар падзей, 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."

З'яўляецца WSS 3.0 або MOSS 2007, it is not possible to directly configure a "roll-up" calendar. Calendars exist on their own, незалежным ад любога іншага каляндар.

Каб стварыць пад'ёмныя календара, па адным з гэтых шляхоў:

  1. Use a Content Query Web Part. This is the easiest solution for MOSS users (WSS не забяспечвае CQWP). CQWP, на жаль, does not provide a calendar view of data out of the box. It does provide enormous rendering flexibility (гл. тут для прыкладу) але па змаўчанні, shows its results in simple list format. In many cases, CQWP верагодна, добры выбар.
  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 і MOSS.

There are probably other clever solutions to this problem. If you have one or know of one, калі ласка, пакіньце каментар або напішыце мне і я буду абнаўляць гэты пост.

</канец>

Падпісацца на мой блог.

Стварэнне сайтаў (SPWeb) з дапамогай канструктара рабочых працэсаў SharePoint

This blog entry is more of an "in the realm of the possible" супраць ўступлення. бетон інфармацыя.

We have a technical design that calls for us to create a site in a site collection via a manually launched workflow process. У асноўным, users enter data into a "new customer" карыстацкі спіс, а затым, калі яны скончылі і зацверджаны працэс ўводу дадзеных, нам трэба стварыць сайт для гэтага кліента.

Я як вялікі прыхільнік дэкларатыўнага рабочага працэсу, а таксама слабыя візуальныя праграміст Workflow Studio, таму я хацеў, каб задаволіць патрабаванні дапамогай SharePoint Designer.

Я планую напісаць пра гэта больш падрабязна (і, спадзяюся, цяперашні для групы карыстальнікаў ці два ў надыходзячым годзе), але вось агульнае рашэнне:

  • Стварэнне карыстацкага дзеянні, якое інтэгруецца з СПД.
  • Карыстацкіх дзеянняў дазваляе SPD для выкліку вэб-службы і перадаць яму радок XML.
  • Вэб-служба знаходзіць радок у карыстацкі спіс і стварае новы сайт па дадзеных для новага кліента з дапамогай наладжвальнага вызначэння сайта.
  • Вэб-служба затым абнаўляе карыстацкі спіс з некаторай інфармацыяй, такі як спасылка на новы сайт.

Мы разглядалі іншыя падыходы, such as event handlers and visual studio based workflow. The SPD approach gives our end users a little more control over the process. Granted, ёсць шмат кода C # у гэтым растворы, але гэта загорнутыя ўнутр дэкларатыўны працоўны, такім чынам мы атрымліваем некаторыя перавагі дэкларатыўнага працоўнага працэсу ў той час выходзілі ў стварэнні сайта-службы.

Усё, што нам цяпер трэба, гэта просты інструмент для аўтаматычнага пераносу SPD працоўных працэсаў вакол так жа лёгка, як мы можам для Visual Studio працоўных працэсаў, і мы сапраўды можна варыць з газам 🙂 Я разумею, што некаторыя народныя якія там працуюць над гэтай праблемай, і я спадзяюся, што яны маюць некаторыя добрыя поспехі з ім у бліжэйшы час.

</канец>

Падпісацца на мой блог.

Technorati Тэгі: ,