Штомесячны архіў: Сакавік 2008

Вызначце 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 Тэгі: ,

Хутка і проста: Прадастаўленне вэб-вузла з дапамогай аб'ектнай мадэлі SharePoint ў 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.

Гэты код стварае новы сайт Wiki:

 SPSite SiteCollection;

    SiteCollection = новы SPSite("http://conchang-o9l8qi");

    SPWeb W = siteCollection.OpenWeb();

    w.Webs.Add("XYZZY", "xyzzy Title",
        "xyzzy description", 1033, SPWebTemplate.WebTemplateWIKI, ілжывы, ілжывы);

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

Калі вы пошук for "Webs.Add()", вы знойдзеце шэраг вельмі карысных запісы ў блогу, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend гэтага сайта.

</канец>

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

Technorati Тэгі:

Інтэграцыя рабочых працэсаў SharePoint Designer з вэб-службамі

Я гуляў вакол з прыстасаваныя дзеянні для SharePoint Designer, на працягу некаторага часу (гл. тут для некаторых падрабязныя рэчы, Калі цікавіць Вас).

У маім бягучым праекце, we need to do some fairly heavy lifting and we want to use declarative SPD workflow to manage the associated business process.

Карацей кажучы, 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.

А вось загаловак:

 грамадскасць радок Дыспетчар(
        Guid WebID, // Прыняты Runtime Environment
        Guid SiteID, // Прыняты Runtime Environment
        радок ListId, // Прыняты RTE (Не ведаю, чаму гэта радок, Ці не GUID)
        Int ListItemID, // Прыняты RTE.
        радок XmlMessage) // Прыняты карыстачу як абвешчаны ў SPD.

Гэта выкарыстоўвае той факт, што мы можам атрымаць важную інфармацыю на працоўны працэс, Спадабаўся сайт, Спіс ID, і г.д.. 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!

Сумна, гэта, відавочна, квіток у адзін бок да "Loosey Goosey" анты-мадэль зямлі, але гэта лепш, чым стукнуцца аб цагляную сцяну 🙂

Гэта анты-патэрнаў калі вы робіце гэта, нават калі вы ведаеце, што гэта анты-патэрнаў?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, дайце мне тыкаць (E-mail ці пакінуць каментар) і я буду з большым энтузіязмам рабіць гэта 🙂

</канец>

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

Technorati Тэгі: ,

Нядзеля Смешныя: “Цікава, калі ваш пароль …”

Я нядаўна купіў абед для майго брата (па-ранейшаму) 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.

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, і г.д.. 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, вядома, гуляць у гульні.

Нам не падабаліся кампутарныя бездапаможным інжынерам так, адна з нашых любімых рэчаў, каб зрабіць, было б Telnet да скрынкі яны былі і запусціць X-вока 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. Паспрабуйце не смяяцца ўголас, калі няшчасны інжынер спрабуе заплюшчыць X-eye за X-eye і мармыча пра гэта сабе пад нос 🙂

We also played X-trek on those boxes. Для гэтага, 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. Спрэчкі часам нарасталі 🙂

Аднойчы, 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, права" 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.

На наступным тыдні (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.

</канец>

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

Technorati Тэгі: