Buwanang Archive: Oktubre 2007

SharePoint Designer — Custom na aktibidad upang isakatuparan na tinukoy ng gumagamit C # function

I-UPDATE: Ito ay inilabas sa CodePlex dito: http://www.codeplex.com/spdwfextensions

I-UPDATE: Tingnan dito para sa pinakabagong tala sa release: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

I-UPDATE: Tingnan dito para sa aking mga saloobin sa commercializing ang proyektong ito: 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 (pahatid) any C# function that you incorporated into the linked assembly.

Bilang ng late Oktubre, 2007, this is just an initial version of the project. I plan to expand it with a number of additional functions, kabilang ang substring, talatuntunan, palitan, 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.

Kung mayroon kang anumang mga puna, mga katanungan o suhestyon, mangyaring mag-iwan ang mga ito sa mga komento o mag-email sa akin.

Pagtatatuwa:

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

Pag-install hakbang (na sinundan para sa bawat WFE sa bukid):

1. I-download ang. Zip at extract.

2. Install the .dll into the GAC. I usually open c:\windows assembly gamit ang explorer window at kopyahin ito doon.

3. Baguhin web.config upang idagdag ang assembly sa ligtas na mga kontrol:

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

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

4. Copy "SpdGenericInterface.actions" sa C:\Program Files Common Files Microsoft Naibahaging web server extension 12 TEMPLATE 1033 workflow

Tandaan na ang nasa itaas na lokasyon ay tinukoy sa ingles wika pag-install.

5. Isara ang SharePoint Designer (kung ito ay bukas alreadycreated).

6. iisreset

7. Buksan SPD at lumikha ng isang bagong workflow.

Kung ang lahat ng napupunta na rin, Dapat mo ay gagantimpalaan ng isang bagong kategorya ng mga aksyon:

imahen

Mga Tala:

Tingnan dito (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) para sa isang kakila-kilabot na pangkalahatang-ideya ng proseso para sa paglikha ng, pag-install at pag-configure ng solusyon ganito.

Ang. Zip ay dinisenyo upang kunin mismo sa iyo c:\ drive. If you do this, maaari mong buksan ang proyekto at ang lahat ng mga path ay maging pare-pareho.

Upang gamitin ito sa Visual Studio, you probably need to install "Extensions for Windows WF".

The initial upload contains just one "dispatcher function", "ToLower()". To add more functionality, idagdag ito sa Ipatupad ang mga pamamaraan tulad ng ipinapakita:

 protektado magpawalang-bisa ActivityExecutionStatus
          Isakatuparan(ActivityExecutionContext executionContext)
        {

            pisi functionToDispatch;
            functionToDispatch = ito.DispatchFunction.ToLower();

            lumipat (functionToDispatch)
            {
                kaso "tolower()":
                    {
                        ito.OutResult1 = ito.InParam1.ToLower();
                        mabasag;
                    }

                default:
                    {
                        ito.OutResult1 = "Unknown function: [" + ito.DispatchFunction + "].";
                        mabasag;
                    }
            }

            bumalik ActivityExecutionStatus.Sarado;
        } // ActivityExecutionStatus

    }

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

SPD workflow pasadyang aksyon – makuha ang <WorkflowInfo> tag ang karapatan upang maiwasan ang pagkabigo

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

Na nahanap ko at sinubukang gumamit ng isang sample template na nagsisimula off bilang:

<?xml salin="1.0" pag-encode="utf-8" ?>
<
WorkflowInfo xmlns="http://schemas.microsoft.com / sharepoint /">
<
Pagkilos Nanggagalaing="pagkatapos" Pagpaparis="at">

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

Ang solusyon ay upang nito ang mga katangian xmlns, do an iisreset and close/re-open SPD.

Mabilis at simpleng: I-configure ang Moss upang maghanap ng partikular na dokumento library

See UPDATE (Ako) below (11/24/07) sa Paano i-configure ang Microsoft Office SharePoint Server 2007 sa Index at Crawl Folder para sa Network ng Paghahanap

Layon: I want to execute a search restricted to a specific document library. Sa kasong ito, ang dokumento library ay naglalaman ng mga dokumento pagsasanay.

Mga Hakbang:

1. I-record ang URL ng library dokumento.

2. Lumikha ng isang saklaw:

Pumunta sa gitnang pangangasiwa.

I-access ang 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. Tukuyin ang mga panuntunan sa saklaw ng pag-crawl:

Magdagdag ng isang panuntunan na tumutukoy sa dokumento aklatan para sa saklaw na ito.

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

Ipasok ang pangalan ng iyong folder (tingnan #1 sa itaas).

Accept the default value of "Include".

Maghintay para sa saklaw na i-update (o simulan ito nang manu-mano).

4. Paganahin ang saklaw sa isang koleksyon site.

Pumunta sa site na koleksyon kung saan mo nais na gamitin ang saklaw.

Idagdag ang iyong bagong saklaw ng naaangkop na display grupo o mga grupo.

5. Hanapin!

Sa puntong ito, you’re done. Assuming the scope is properly defined, ito ay magagamit sa drop down mga saklaw para sa simple at advanced na mga paghahanap at kapag ikaw ay naghanap gamit na saklaw, makikita mo lamang makakuha ng mga resulta ng iyong inaasahan.

Mga Tala:

Ako ay nagsulat sa blog na ito dahil entry ang aking mga paghahanap para sa simpleng setup saklaw naka dry up gamit ang mga parirala tulad ng:

  • i-configure ang mga saklaw sa Moss
  • i-configure ang paghahanap saklaw lumot
  • saklaw sa sharepoint 2007
  • saklaw sa sharepoint
  • maghanap ng isang dokumento library lumot
  • mga saklaw panimulang aklat sa pagbasa lumot

Maaari kang lumikha ng isang saklaw ng paghahanap sa isang folder, not just the entire document library.

Ang isang saklaw maaaring ibahagi sa maramihang mga koleksyon site (kaya, a "shared service").

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

I-UPDATE (Ako) bilang ng 11/24/07:

Kai Shang put together a great post entitled Paano i-configure ang Microsoft Office SharePoint Server 2007 sa Index at Crawl Folder para sa Network ng Paghahanap @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Walang sopas para sa iyo! Ay Cisco ang sopas ng Nazi NLB produkto?

Ngayon, 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. (Kung / kapag ang network wizard sabihin sa akin kung ano ito ay, Kukunin ko i-update ang post na ito).

Windows explorer couldn’t connect. I did some research and eventually, ang network wizard sinabi na WebDAV ay hindi pinagana sa pamamagitan ng / hindi suportado ng / beneath the dignity of the NLB.

Kaya, assuming the network wizards aren’t just telling me the network wizard equivalent of "take a long walk off a short bridge", Mayroon akong upang magtaka — ang ibig NLB, sa pamamagitan ng kalikasan, huwag paganahin WebDAV? Do we lose our windows file explorer interface to SharePoint? Is Cisco the Sopas Nazi?

Pamamahala sa Moss / WSS kapaligiran — ang pagsubaybay sa knowledge base ng Microsoft sa

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.

Ako panatilihin up upang mapabilis sa kanila sa pamamagitan ng isang serbisyo magbigay ng mahusay na kakailanganin ng mga tao sa 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.

Web Application Patakaran, Seguridad ng Site at Seguridad pinaggupitan — Alamin ang iyong configuration

(Nai-update 11/29 na ipaliwanag kung paano i-access ang mga setting ng web application na patakaran sa pamamagitan ng UI)

I had one of those "why is MOSS doing this to me????" moments today. Sa katapusan, lahat ng ito ay aking kasalanan.

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. Pumunta sa site.
  2. Hatiin ang seguridad inheritance.
  3. Alisin ang bawat user / group mula pahintulot site.

Ang nasa itaas ay dapat mag-iwan lamang sa administrator ng site koleksyon na may pahintulot upang tingnan ang site.

Kung sinuman log in, dapat hindi na nila makita ang mga site at ito ay kailangang maging security-trim mula sa lahat ng mga karaniwang mga lugar.

Pero … ay hindi ito. Sa parehong oras, 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, sa wakas, Mahanap ko na sa Ethan blog ni, his opening graph makes it quite simple:

Lumot 2007 ay may isang bagong tampok na tinatawag na Web Application Patakaran. Ito ang mga pahintulot sa seguridad na ay nakatali sa isang Web Application. Ang mga setting ng seguridad override ng anumang seguridad setting na iyon ay itinakda sa Site Collection o Site (Web) antas para sa gumagamit na iyon.

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, pero, pinagmanahan sa isang quote, "It does not mean what you think it means."

Access web application policies this way:

  1. Pumunta sa Central Administration
  2. Pumili ng Application Management
  3. Select "Policy for Web Application"
  4. Sa screen na, make sure you pick the correct web application. Sa akin, ito nagde-default sa mga web application ng central admin na maaaring hindi ang iyong gusto.

Kapag ako ay nagkaroon ng problemang ito, Naghanap ako para sa sumusunod na mga parirala at nakakuha nakakagulat kaunti sa mga tuntunin ng direktang tulong sa isyung ito:

Site pagkilos nakikita para sa lahat ng mga gumagamit

Site pagkilos makikita ng lahat ng mga gumagamit

site na mga aksyon ay hindi mabawasan ng seguridad

secure ang isang Moss site

panimula sa lumot seguridad

Technorati Tags:

Mabilis at simpleng: Gamitin Fixed Keyword Query sa Mga Resulta sa Paghahanap Core

Mabilis at Simple Tagubilin:

I-edit ang isang pahina at magdagdag ng Paghahanap Core Resulta web bahagi.

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

Idagdag ang fixed query keyword (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").

Mga Tala:

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: Mga kagawaran at mga Produkto.

Ang produkto koleksyon site ay naglalaman ng, natural sapat, product information. Each product in the site collection aggregates data from multiple sources.

Isa sa mga kagawaran, code at pagsubok, 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".

Ang isang magaling na benepisyo mula sa diskarteng ito: We can edit the XSL from the core search results web part and generate any format that we want.

Tingnan dito (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) para sa isa pang blogger na talakayan sa paksang ito.

</dulo>Mag-subscribe sa aking blog.

Sabihin mo sa akin tungkol sa iyong blog!

Kung nagpapanatili ka ng isang blog na ay hindi bababa sa Nagnais ng pinakamababang konektado sa SharePoint, please let me know in comments. I would love to add you to my listahan ng blog.

Kung nagpapanatili ka ng isang blog na ay hindi konektado sa SharePoint ngunit nais sa akin upang idagdag ito pa rin, ipaalam sa akin. I’ll may create a separate blog list.

Pakibigyan:

  • Ang iyong blog URL (nang walang alinlangan)
  • Isang maikling paglalarawan ng iyong blog.

I want to keep the link to "active" mga blog, 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.

Salamat!

Employee Pagsasanay Iskedyul at Materyales Template — Pagbawas bug sa template

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

Course managers create courses. When creating a course, manager ang tinutukoy ng maximum na bilang ng mga magagamit na upuan.

The template provides for self-service enrollment. I enroll and a workflow attached to the registration list decrements the "available seats" na nauugnay sa na kurso.

Individuals may also unregister from a course. The bug lies here. Unregistering from a course does not increment the available seats counter. Bilang isang resulta, available seats is not accurate. This bug is compounded by the fact that when available seats decrements to zero, wala nang mga self-service pagpaparehistro ay pinapayagan.

Sa kabutihang-palad, Microsoft provides the workflow for this process. Even better, ito ay isang tuwid-forward workflow nilikha sa pamamagitan ng SharePoint Designer.

Sundin ang mga hakbang na ito mataas na antas upang ayusin ito:

  1. Painitin SDP.
  2. I-access ang mga site batay off ang template ng pagsasanay.
  3. Access "Attendee unregistration" workflow.
  4. Ipasok ang mga hakbang na ito (Na aking ginawa sa kanila ang unang dalawang hakbang):
    1. Kalkulahin Kapagaralan:Puno Upuan binawasan 1 (Output sa Nagbabago:calc)
    2. (pagkatapos) I-update ang item na ito sa Kapagaralan

I-click ang Tapos na at tapos ka na.

Screen shot:


SharePoint Designer:

imahen

Tapos workflow:

imahen

Kalkulahin drill-down:

imahen

I-update ang item sa Kurso:

imahen

Bigyan magandang balita mga madalas; magbigay ng masamang balita maaga

Ko pa ng isang consultant para sa isang maraming mga taon na ngayon at ang anumang mga karanasan consultant nakakaalam, good communication is one of the key pillars to the successful delivery of a project. Ito ay kaya halata, it’s really almost boring to talk about. This isn’t a post about generic communication. Sa halip, Sumulat ako tungkol sa mas madidilim na bahagi ng komunikasyon — pakikipag masamang balita.

Ito ay napupunta nang hindi sinasabi na nagbibigay sa magandang balita sa mga client ay tapos na lahat ng oras ang, as often as possible. Who doesn’t want to give good news? Who doesn’t like to hear good news?

Sa tingnan ang bahagi, bad news is no fun at all. I have always struggled with this. In the earlier days of my career, Gusto ko ng isang bagay na alam noon ay pilipit na may isang proyekto at sa halip ng pagsabi sa mga 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 upang 80 oras na linggo?

Ano ang pinakamahusay na paraan upang mahawakan ang masamang balita? 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 (marahil kalooban), there may be incriminations and accusations and hurt feelings. Pero, kapag emosyon magpalamig, there’s still six weeks left on the project. Six weeks is a good chunk of time. There’s time to adjust plans, baguhin ang mga iskedyul, makapag-bola ang lumiligid sa mga extension ng badyet (suwerte!) 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: Ako ay nagtatrabaho sa isang proyekto nailalarawan sa pamamagitan ng:

  • T&E budget with a capped "Not to exceed" dollar na halaga.
  • A "best efforts will be made" pangako upang makapaghatid ng X, Y at Z sa pamamagitan ng proyekto ng pagtatapos.
  • Lack of promised key resources on the client side. These resources were not withheld on purpose, nor for any "bad" dahilan, ngunit sila ay ipinagkait.
  • A dawning realization as the project passed the half-way point that we were not going to be able to deliver "Z" (higit sa lahat dahil ang ipinangakong mga mapagkukunan ay hindi talagang magagamit).
  • Regular status reports and "CYA" dokumentasyon na-back sa amin (ang pagkonsulta koponan) up.
  • Mahigpit na pagpapatupad papangunutin koponan sa mga miyembro ng iginuhit mula sa mga organisasyon pagkonsulta (aking kumpanya) at ang client.
  • Malayong pamamahala ng koponan, in both a metaphorical and physical sense. The management team was focused on another large enterprise project and due to space constraints, ang pagpapatupad koponan ay makikita sa isang nakahiwalay na gusali sa campus, down a hill and relatively far way from "civilization".

Sa halos anim na linggo iniwan sa badyet proyekto, tayo (ang pagpapatupad koponan) 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" upang makapaghatid ng Z at kahit na nagkaroon kami mahusay na pagbibigay-katarungan para sa nawawalang ang paghahatid … ang kahulihan ay hindi ito na-hinahanap mahusay — hindi namin ay pagpunta sa ihatid Z sa isang hugis ng isang kalidad na gagawing sinuman maipagmamalaki.

Kinikilala ito, naming pinuntahan pamamahala at sinabi sa kanila na ang mga proyekto na badyet ay natupok sa pamamagitan ng isang tiyak na petsa at na kami ay sa problema sa Z.

Isang mini firestorm erupted sa susunod na ilang araw.

Araw 1: Pamamahala ng koponan ng mga tawag sa kanyang mga tauhan para sa isang espesyal na pulong (tayo, ang mga tagapayo ay hindi inanyayahan). 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" ay * talagang * ginamit, ngunit makuha mo ang mga larawan. We’re a tight-knit group, sa wakas, at ang mga tauhan ay nagtatrabaho sa amin consultant araw in at out para sa maraming buwan ngayon.

Araw 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: iskedyul ng pulong na may ganap na pagpapatupad koponan (kabilang ang mga consultant).

Araw 5: Buong koponan natutugunan, 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.

Kung kami ay naghintay lamang hanggang tatlong linggo nanatili, o kahit na mas masahol pa, isa o dalawang linggo, it would have been much different. Instead of a constructive meeting to re-align the project, Gusto namin na-bunot ulat katayuan, parsing the contract and reviewing old emails to justify this or that decision. We would have "won" but is it really "winning" sa kasong ito?

Kaya, kung mayroon kang mabigyan ang masamang balita, give it early. Bad news given late isn’t just bad, ito ay kakila-kilabot.