ყოველთვიური არქივი: მარტი 2008

განსაზღვრა სწრაფი QRServer პორტი

იმისათვის, რომ კომუნიკაცია სწრაფი ძებნა მეშვეობით მისი 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. გამოყენება ამ კოდექსით მსგავსი შემდგომ instantiate კავშირი FAST:

     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. თუ თქვენ პიკაპის wildly არასწორი პორტში, თქვენ გაქვთ სასარგებლო შეცდომა:

იმიჯი

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".

</ბოლო>

პროგრამები Tags:

გამოწერა ჩემი დღიური.

მიმართ SharePoint ტექნიკური დიზაინის ნიმუშები: SharePoint დიზაინერი სამუშაოს + თარიღის მიმღები = High potency Cocktail

ერთი განვითარებადი ნიმუშების მე, რათა შეიმუშაოს SharePoint გადაწყვეტილებები ბერკეტი SharePoint დიზაინერი workflow და ღონისძიება მიმღები.

აქ არის ბიზნეს სცენარი იმისათვის, რომ ეს კონტექსტში:

  • ავტვირთო დოკუმენტი doc lib.
  • მე გამოაგდონ off მრავალ ნაბიჯი workflow შექმნილია SharePoint დიზაინერი.
  • რაღაც მომენტში დროს, რომ პროცესი, workflow assigns a task to someone (via collect data from user or assign a task).
  • 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.
  • აი kicker: მინდა თარიღი რომ მართავს, რომ KPI იყოს დასვენების იცის.

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".
  • ინიციალიზაცია მას ყალბი.
  • საჭირო დროს ამ workflow (e.g. just before the "collect data" აქცია), დაავალოს, რომ მნიშვნელობა True.
  • ItemUpdate() event receiver looks to see if "DoCalculateDueDate" is true. Since the event receiver runs on every update, "DoCalculateDueDate" ჩვეულებრივ ცრუ.
  • როდესაც სამუშაოს ანიჭებს DoCalculateDueDate ჭეშმარიტი, ღონისძიება მიმღები ითვლის დასვენების იცის ვადები.
  • როდესაც ღონისძიება მიმღები აკეთებს ამას გაანგარიშებით, იგი ადგენს DoCalculateDueDate flag ყალბი.

და ბოლოს, 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.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags: ,

დაფიქსირდა ქცევა: მოძრავი SPD workflows ფარგლებში საიტის კოლექცია

განახლების: 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’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. დღეს, 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.

ამ ეტაპზე, 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.

ამჯერად, იგი მუშაობდა ჯარიმა.

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.

რას ნიშნავს ეს? 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. dev დადგმას to prod).

თუ თქვენ შორის სწყდებიან, გთხოვთ კომენტარის ან მომაწოდეთ your SharePoint Designer migration story. I’ll gladly update this posting with any insights thus offered.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags:

სწრაფი და მარტივი: სამუშაოს მხოლოდ განახლების სფერო

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 (დემო)" სფეროში ბოლოში.

შემდეგი, click on the column name to access the column’s properties. Select "Hidden (არ გამოჩნდება ფორმები)" გრაფაში პარამეტრები სექციაში ნაჩვენები:

იმიჯი

This removes the field from the standard edit/update forms. თუმცა, ეს ჯერ კიდევ შესაძლებელია ჩვენებები, KPIs, ობიექტის მოდელი და არსად გსურთ გამოიყენოთ იგი, including SPD workflow.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags: ,

კვირა სასაცილო: “ვფიქრობდი, ეს უნდა მდიდარი ქალაქი”

ცოტა მეტი სამი წლის წინ, მე და ჩემი მეუღლე ხელმოწერილი ჩემი შვილი მდე ზაფხულში საქმიანობაში, 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. ასე რომ,, დასაძლევად მისი ბუნებრივი თავშეკავებით, ჩვენ უთხრა, ადრეული და გააკეთეს იმისათვის, რათა ის გავს fun, და ა.შ.. 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, იგი ძალიან აღელვებს, ყველა smiles და განაცხადა,, "The play is the Velveteen კურდღლის 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. In საშუალო დრო, ის საბოლოოდ დაგვარწმუნა იგი ნამდვილად 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 პრემიერ ღამე დასაძინებლად overs!" Stage Right was going to interfere with his weekend socials.

დღე დადგება, ჩვენ მოუტანს მას იქ ჩამოაგდეს მას off და როგორც ყველაფერი დანარჩენი, მისი ბუნებრივი სიყვარული მხოლოდ მყოფი ცოცხალი აიღო და მას კარგი დროს იგი.

გასულ კვირას ჩემს მეუღლეს ესაუბრებოდა მას და პირველად, 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". თუმცა, აღმოჩნდება, რომ იგი.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags:

SharePoint არ იძლევა კალენდარი Roll-ups; პოტენციური Solutions

განახლების: 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, მომხმარებელთა subsites შევქმნით თარიღები, 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, დამოუკიდებელი ნებისმიერი სხვა კალენდარში.

შესაქმნელად roll-up კალენდარში, დაიცვას ერთი ასეთი ბილიკები:

  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 Designer სიმბოლო

ამ დღიურში ჩანაწერის უფრო "ამ სფეროში შესაძლო" შესვლის vs. კონკრეტული ინფორმაცია.

We have a technical design that calls for us to create a site in a site collection via a manually launched workflow process. ძირითადად, წევრებს მონაცემთა შეტანა "ახალი მომხმარებელი" custom list and then when they have finished and validated the data entry process, we need to create a site for that customer.

I’m both a big fan of declarative workflow as well as a weak visual studio workflow programmer, so I wanted to meet the requirement using SharePoint Designer.

I plan to write about this in greater detail (and hopefully present to a user group or two in the coming year), but here’s the overall solution:

  • Create a custom action that integrates with SPD.
  • The custom action allows SPD to invoke a web service and pass it a string of XML.
  • Web service locates the row in the custom list and creates a new site as per the data for that new client using a custom site definition.
  • Web service then updates the custom list with some information such as a link to the new site.

We considered other approaches, such as event handlers and visual studio based workflow. The SPD approach gives our end users a little more control over the process. Granted, there’s a lot of C# code in this solution, but it’s wrapped inside a declarative workflow, so we get some of the benefits of declarative workflow while hooking into the site-creation service.

ყველაფერი რაც ჩვენ გვჭირდება ახლა არის მარტივი ინსტრუმენტი SPD-ის სამუშაო ნაკადების ავტომატურად მიგრაციისთვის, რაც შეიძლება მარტივად ვიზუალური სტუდიის სამუშაო პროცესებისთვის და ჩვენ ნამდვილად ვამზადებთ გაზით 🙂 მე მესმის, რომ ზოგიერთი ადამიანი მუშაობს ამ პრობლემაზე და იმედი მაქვს, რომ მათ აქვთ რამდენიმე კარგი წარმატება მას მალე.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags: ,

სწრაფი და მარტივი: დებულება საიტის გამოყენება 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()", თქვენ მოვძებნოთ რაოდენობის ძალიან სასარგებლო blog entries, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend საიტი.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags:

ინტეგრაცია SharePoint Designer Workflows ვებ სერვისი

მე სათამაშო გარშემო ერთად საბაჟო მოქმედებები 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.

აი ხელმოწერის:

 საჯარო სიმებიანი Dispatcher(
        ინტრუქცია WebID, // გაიარა runtime გარემოს
        ინტრუქცია SiteID, // გაიარა runtime გარემოს
        სიმებიანი ListID, // გაიარა RTE (არ ვიცი რატომ ეს სიმებიანი, არ guid)
        int ListItemID, // გაიარა RTE.
        სიმებიანი XmlMessage) // გაიარა შესახებ, როგორც დეკლარირებული SPD.

ეს ბერკეტი იმისა, რომ ჩვენ შეგვიძლია მივიღოთ ერთი მნიშვნელოვანი workflow ინფორმაცია, ისევე როგორც საიტი, სიაში 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" ანტი ნიმუში მიწის, but it’s better than hitting a brick wall 🙂

არის თუ არა ანტი ნიმუში თუ ეს მიუხედავად იმისა, რომ თქვენ იცით, ანტი ნიმუში?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, მომეცი poke (ელ ან დატოვონ კომენტარი) and I’ll be that more enthusiastic about doing it 🙂

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags: ,

კვირა სასაცილო: “მაინტერესებს, თუ თქვენი პაროლი …”

I recently bought lunch for my brother (როგორც ყოველთვის) 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, რა თქმა უნდა, to play games.

We didn’t like the computer-helpless engineers to much so one of our favorite things to do would be to telnet to the box they were on and run X-eye 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 და muttering მისი სუნთქვა შესახებ 🙂

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. არგუმენტები დაიჭერს გათბობის დროს 🙂

One day, 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.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags: