Nyaraka za kila mwezi: Oktoba 2007

SharePoint Designer — Desturi shughuli kutekeleza user-defined C majukumu #

UPDATE: Hii imekuwa iliyotolewa kwa CodePlex hapa: http://www.codeplex.com/spdwfextensions

UPDATE: Angalia hapa kwa maelezo ya karibuni kutolewa: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

UPDATE: Kuona hapa kwa mawazo yangu juu ya kibiashara ya mradi huu: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

This project provides a custom activity in SharePoint Designer. Use this custom activity to invoke (dispatch) any C# function that you incorporated into the linked assembly.

Kama wa Oktoba mwishoni mwa, 2007, this is just an initial version of the project. I plan to expand it with a number of additional functions, ikiwa ni pamoja na substring, index, nafasi, invoking web services and anything that seems useful or interesting. I also plan to post this to codeplex once I have my act together on that front. This will also be deployable as a solution at some point.

Kama una maoni yoyote, maswali au mapendekezo, tafadhali waache katika maoni au email yangu.

Disclaimer:

I make absolutely no claims as to the suitability of this for any purpose. Use at your own risk.

Ufungaji hatua (kufuatwa kwa WFE kila aina katika shamba):

1. Download zip. Na dondoo.

2. Install the .dll into the GAC. I usually open c:\madirisha mkutano kutumia madirisha Explorer na nakala yake huko.

3. Kurekebisha web.config kuongeza mkutano na udhibiti salama:

<System.Workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>

<authorizedType Assembly="SpdGenericInterface, Version = 1.0.0.0, Utamaduni = neutral, PublicKeyToken = abe076fd8125f3c4" Namespace="Nivlag" TypeName="*" Authorized="True" />

4. Copy "SpdGenericInterface.actions" na C:\Mpango Files kawaida Files Microsoft Shared mtandao kompyuta upanuzi 12 KIOLEZO 1033 Workflow

Kumbuka kwamba mahali hapo ni maalum kwa mitambo ya lugha ya Kiingereza.

5. Karibu SharePoint Designer (ikiwa ni tayari kufungua).

6. iisreset

7. Kufungua SPD na kujenga workflow mpya.

Kama wote unaendelea vizuri, unapaswa watalipwa na jamii mpya ya hatua:

picha

Maelezo:

Kuona hapa (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) kwa maelezo ya kali ya mchakato kwa ajili ya kujenga, kufunga na Configuring ufumbuzi kama hii.

Zip. Imeundwa ili kutoa moja kwa moja wewe c:\ drive. If you do this, unaweza kufungua mradi na njia yote itakuwa thabiti.

Kutumia hii katika studio ya Visual, you probably need to install "Extensions for Windows WF".

The initial upload contains just one "dispatcher function", "ToLower()". To add more functionality, kuongeza kwa Fanyeni njia kama inavyoonekana:

 kulindwa override ActivityExecutionStatus
          Kutekeleza(ActivityExecutionContext executionContext)
        {

            string functionToDispatch;
            functionToDispatch = hii.DispatchFunction.ToLower();

            kubadili (functionToDispatch)
            {
                kesi "tolower()":
                    {
                        hii.OutResult1 = hii.InParam1.ToLower();
                        kuvunja;
                    }

                default:
                    {
                        hii.OutResult1 = "Unknown function: [" + hii.DispatchFunction + "].";
                        kuvunja;
                    }
            }

            kurudi ActivityExecutionStatus.Kufungwa;
        } // ActivityExecutionStatus

    }

Kisha, re-build the project and copy the assembly to the GAC. I expect an iisreset would be required.

SPD Workflow desturi hatua – kupata <WorkflowInfo> tag haki ili kuepuka kuchanganyikiwa

Part of the process for creating a custom action for SharePoint Designer involves create a ".actions" faili.

Nimepata na kujaribu kutumia template sampuli ambayo kuanza mbali kama:

<?xml toleo="1.0" encoding="UTF-8" ?>
<
WorkflowInfo xmlns="http://schemas.microsoft.com / SharePoint /">
<
Vitendo Mtiririko="kisha" Sambamba="na">

Hata hivyo, that xmlns attribute prevents my environment from working. My actions don’t show up in SPD.

suluhisho ni strip nje sifa xmlns, do an iisreset and close/re-open SPD.

Haraka na rahisi: Configure MOSS kutafuta hati maalum ya maktaba

See UPDATE (Mimi) below (11/24/07) on How to Configure Microsoft Office SharePoint Server 2007 na Ripoti na Crawl Mtandao Folders kwa Search

Lengo: I want to execute a search restricted to a specific document library. Katika kesi hiyo, maktaba hati ina nyaraka mafunzo.

Hatua:

1. Rekodi ya URL ya maktaba hati.

2. Kujenga wigo:

Kwenda kati ya utawala.

Access the SSP.

Go to "Search Settings".

Scroll down to the scope section and select "View Scopes".

Create a new scope. Give it a name and useful description.

3. Define scope crawl rules:

Add a rule that defines the document library for this scope.

Select "web address" for "Scope Rule Type".

Enter the name of your folder (kuona #1 juu ya).

Accept the default value of "Include".

Wait for the scope to update (or start it manually).

4. Enable the scope in a site collection.

Go to site collection where you want to use this scope.

Add your new scope to the appropriate display group or groups.

5. Kutafuta!

Katika hatua hii, you’re done. Assuming the scope is properly defined, it will be available in the scopes drop downs for simple and advanced searches and when you search using that scope, you’ll just get results you expect.

Maelezo:

I wrote this blog entry because my searches for simple scope setup turned up dry using phrases like:

  • configure scopes in MOSS
  • configure search scope moss
  • scopes in sharepoint 2007
  • scopes in sharepoint
  • search a document library moss
  • scopes primer moss

You can create a search scope on a folder, not just the entire document library.

A scope can be shared across multiple site collections (hence, a "shared service").

You can create the scope at the site collection level itself. Hata hivyo, I prefer to go to central admin because I can start the crawl from there. You cannot start the crawl from the site collection.

UPDATE (Mimi) kama ya 11/24/07:

Kai Shang put together a great post entitled How to Configure Microsoft Office SharePoint Server 2007 na Ripoti na Crawl Mtandao Folders kwa Search @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Hakuna supu kwa ajili yenu! Ni Cisco Nazi supu ya NLB bidhaa?

Leo, I tried to access a document library via windows explorer. This doc lib is living inside a system that consists of two WFE’s load balanced by some kind of Cisco NLB solution. (Kama / wakati wachawi mtandao niambie ni nini, Mimi itabidi update hii post).

Windows explorer couldn’t connect. I did some research and eventually, wachawi mtandao alisema kwamba WebDAV ni walemavu na / si mkono na / beneath the dignity of the NLB.

Hivyo, assuming the network wizards aren’t just telling me the network wizard equivalent of "take a long walk off a short bridge", Mimi na kushangaa — gani NLB, kwa asili, Disable WebDAV? Do we lose our windows file explorer interface to SharePoint? Is Cisco the Supu Nazi?

Kusimamia MOSS / WSS Mazingira — kuweka juu na elimu ya msingi ya Microsoft

Microsoft creates knowledge base articles day in and day out and some of those are darned important to know about if you live in the SharePoint world.

Mimi kushika up kwa kasi na wao kupitia huduma ya kutoa na folks mzuri katika www.kbalertz.com. KBAlertz enables you to sign up for your favorite MS technology and they send you digest versions of Microsoft KB articles via email.

Mtandao Maombi Sera, Usalama Sites na Usalama trimming — Kujua Configuration yako

(UPPDATERADE 11/29 kueleza jinsi ya kupata mtandao mipangilio ya sera ya maombi kupitia UI)

I had one of those "why is MOSS doing this to me????" moments today. Katika mwisho, ni kosa wangu wote.

We have an enterprise MOSS project going on and we want to secure "place holder" sites so that no user may access it or see it. That’s easy:

  1. Kwenda kwenye tovuti.
  2. Kuvunja urithi usalama.
  3. Kuondoa kila mtumiaji / kikundi kutoka ruhusa tovuti.

juu tuache tu mkusanyiko tovuti msimamizi na ruhusa ya kuona tovuti.

Kama mtu mwingine yeyote katika kumbukumbu, wanapaswa tena kuona tovuti na ni lazima kuwa na usalama-trimmed kutoka maeneo yote ya kawaida.

Lakini … haikuwa. Wakati huo huo, I suddenly realize that my "Joe User" standard user test account with no priv’s other than restricted read access has a "Site Actions" choice everywhere he goes. I double check one thing and double check something else. I pick up the phone to call a colleague, but put it down and check something else. I go for a walk and try everything all over again. I call a colleague and leave a message. And then, hatimaye, Mimi sioni kwamba katika Ethan ya blog, his opening graph makes it quite simple:

Moss 2007 ina kipengele mpya iitwayo Mtandao Maombi Sera. Hizi ni usalama ruhusa kwamba amefungwa kwa Maombi Mtandao. Mazingira ya usalama haya override mazingira yoyote usalama kwamba ni kuweka katika Ukusanyaji Site au Site (Mtandao) ngazi kwa mtumiaji.

A quick visit to web application policies shows that "NT Authority\authenticated users" had been granted Full Read. I removed them from the list and everything finally started working as expected. I believe they were added in the first place by someone with the mistaken impression that that is best method to grant read access to everyone in the enterprise. It does, lakini, na mnachuja quote, "It does not mean what you think it means."

Access web application policies this way:

  1. Kwenda Kati Tawala
  2. Kuchagua Maombi Management
  3. Select "Policy for Web Application"
  4. Juu ya screen kwamba, make sure you pick the correct web application. Kwa ajili yangu, ni defaults na maombi ya mtandao wa admin ya kati ambayo inaweza kuwa moja unataka.

Wakati nilikuwa na tatizo hili, I searched kwa maneno yafuatayo na got kushangaza kidogo katika suala la msaada wa moja kwa moja juu ya suala hili:

Tovuti vitendo inayoonekana kwa watumiaji wote

Tovuti vitendo inayoonekana kwa watumiaji wote

vitendo tovuti si usalama trimmed

kupata tovuti MOSS

utangulizi wa moss usalama

Tags technorati:

Haraka na rahisi: Kutumia zisizohamishika Keyword Query katika Matokeo Core Tafuta

Haraka na rahisi Maelekezo:

Hariri ukurasa na kuongeza Core Matokeo ya Utafutaji mtandao sehemu.

Edit that web part and expand "Fixed Keyword Query".

Kuongeza fasta Keyword swala (e.g. ContentType:"Training invoice" TrainingInvoiceNumber:1111)

Expand Results Query Options and change "Cross-Web Part query ID" to a value other than "User Query" (e.g. "Query 2").

Maelezo:

Using core search results in this manner allowed me to create a page that shows information from another site collection. The client has two major site collections: Idara na Bidhaa.

tovuti bidhaa ukusanyaji ina, kawaida ya kutosha, product information. Each product in the site collection aggregates data from multiple sources.

Moja ya idara, codes na kupima, is on such source. When users access product XYZ, they should see codes and testing data directly on the XYZ main page. Since codes and testing is hosted in another site collection, it’s a little awkward. We decided to use the core search results web part since search spans site collections. Codes and Testing manages product data via a custom list that is constrained by a specific content type. Aa keyword query that uses first the content type and then the product number narrow down the search to a single row in the custom list.

The keyword query above is an AND. It returns documents of content type "Training Invoice" and where the invoice number equals "1111".

faida nzuri kutoka kwa njia hii: We can edit the XSL from the core search results web part and generate any format that we want.

Angalia hapa (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) kwa ajili ya majadiliano mwingine blogger juu ya mada hii.

</mwisho>Kujiunga na blog yangu.

Niambie kuhusu blog yako!

Kama kudumisha blog kuwa angalau ya chini kushikamana na SharePoint, please let me know in comments. I would love to add you to my blog list.

Kama kudumisha blog kuwa si kushikamana na SharePoint lakini unataka mimi kuongeza anyway, napenda kujua. I’ll may create a separate blog list.

Please give:

  • Your blog URL (wazi)
  • A short description of your blog.

I want to keep the link to "active" blogs, which I’m roughly defining as one post per week and minimum three months old. If you don’t meet that "requirement" add your name to comments anyway. It’s *my* list so I can break my own rule if I want to.

Shukrani!

Mfanyakazi Mafunzo Ratiba na vifaa vya Kigezo — Mapunguzo mdudu katika template

The client noticed a bug today with the above mentioned template.

Course managers create courses. When creating a course, meneja anges upeo wa idadi ya viti vya inapatikana.

The template provides for self-service enrollment. I enroll and a workflow attached to the registration list decrements the "available seats" haihusiani na Bila shaka kwamba.

Individuals may also unregister from a course. The bug lies here. Unregistering from a course does not increment the available seats counter. Kama matokeo, available seats is not accurate. This bug is compounded by the fact that when available seats decrements to zero, no more self-service registration is allowed.

Fortunately, Microsoft provides the workflow for this process. Even better, it’s a straight-forward workflow created via SharePoint Designer.

Follow these high level steps to fix it:

  1. Fire up SDP.
  2. Access the site based off the training template.
  3. Access "Attendee unregistration" workflow.
  4. Insert these steps (I made them the first two steps):
    1. Calculate Courses:Filled Seats minus 1 (Pato kwa Kutofautiana:calc)
    2. (kisha) Update item in Courses

Click Finish and you’re done.

Screen shots:


SharePoint Designer:

picha

Finished workflow:

picha

Calculate drill-down:

picha

Update item in Courses:

picha

Kutoa habari njema mara nyingi; kutoa habari mbaya mapema

Mimi tumekuwa mshauri kwa ajili ya mengi ya miaka sasa na kama yoyote mshauri wenye uzoefu anajua, good communication is one of the key pillars to the successful delivery of a project. Ni hivyo dhahiri, it’s really almost boring to talk about. This isn’t a post about generic communication. Badala yake, Mimi nina kuandika kuhusu upande darker ya mawasiliano ya — communicating bad news.

It goes without saying that giving good news to the client is done all the time, as often as possible. Who doesn’t want to give good news? Who doesn’t like to hear good news?

On the flip side, bad news is no fun at all. I have always struggled with this. In the earlier days of my career, I would know something was awry with a project and instead of telling the client, I would work longer hours to try and solve the problem. I would enjoin my team to work harder. It’s a natural enough impulse to think that a super-human effort can save the day. Some times this works, some times it does not. Even when it "works" it’s often a mixed bag. Is the quality of the deliverable really up to spec when key parts have been developed over several 60 kwa 80 hour weeks?

What is the best way to handle bad news? The answer is: tell it early. Don’t wait until one week before the project budget will be consumed. If you know six weeks out that there simply isn’t enough time to deliver some bit of promised functionality, tell the client right then and there. The client may get upset (probably will), there may be incriminations and accusations and hurt feelings. Lakini, when emotions cool off, there’s still six weeks left on the project. Six weeks is a good chunk of time. There’s time to adjust plans, change schedules, get the ball rolling on budget extensions (good luck!) and just generally come to grips with the "facts on the ground" and devise a new plan that still results in a successful project.

Case in point: I’m working on a project characterized by:

  • T&E budget with a capped "Not to exceed" dollar amount.
  • A "best efforts will be made" promise to deliver X, Y and Z by project’s end.
  • Lack of promised key resources on the client side. These resources were not withheld on purpose, nor for any "bad" reason, but they were withheld.
  • A dawning realization as the project passed the half-way point that we were not going to be able to deliver "Z" (mainly because the promised resources were not actually available).
  • Regular status reports and "CYA" documentation that backed us (the consulting team) up.
  • Tightly knit implementation team with members drawn from the consulting organization (yangu kampuni) and the client.
  • Distant management team, in both a metaphorical and physical sense. The management team was focused on another large enterprise project and due to space constraints, the implementation team was housed in a separate building on campus, down a hill and relatively far way from "civilization".

With roughly six weeks left on the project budget, sisi (the implementation team) knew that we were trouble. The contract said that we needed to deliver "Z". Even though the project is time & materials and even though we only promised "best efforts" to deliver Z and even though we had great justification for missing the delivery … the bottom line is that it wasn’t looking good — we were not going to deliver Z in a shape a quality that would make anyone proud.

Recognizing this, we went to management and told them that the project budget would be consumed by a certain date and that we were in trouble with Z.

A mini firestorm erupted over the next few days.

Day 1: Management team calls in its staff for a special meeting (sisi, the consultants are not invited). Contracts are printed and handed out to everyone and a line-by-line review ensues. Management puts the staff members on the defensive. I don’t think the phrase "Stockholm Syndrome" is *actually* used, lakini unaweza kupata picha. We’re a tight-knit group, after all, and the staff has been working with us consultants day in and out for several months now.

Day 2: Management calls another staff meeting. They feel a little better. They want options and ideas for moving forward. They realize there’s still six weeks remaining in the current project budget, which is still a decent bit of time. One of the action items: schedule a meeting with full implementation team (including consultants).

Day 5: Full team meets, constructive meeting ensues and a new achievable plan put into place. Even better, we’ve already begun discussing phase two and the client invites us to prepare proposals for that phase immediately.

If we had waited until just three weeks remained, or even worse, one or two weeks, it would have been much different. Instead of a constructive meeting to re-align the project, we would have been pulling out status reports, parsing the contract and reviewing old emails to justify this or that decision. We would have "won" but is it really "winning" katika kesi hii?

Hivyo, if you have to give bad news, give it early. Bad news given late isn’t just bad, ni ya kutisha.