Monthly Archives: Urriaren 2007

SharePoint Designer — Pertsonalizatua jarduera erabiltzaileak definitutako C # funtzio exekutatu

UPDATE: Hori CodePlex kaleratu hemen: http://www.codeplex.com/spdwfextensions

UPDATE: Ikusi hemen oharra Azken oharrak: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

UPDATE: Ikusi hemen nire pentsamenduak proiektu honi buruzko merkaturatzea: 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 (bidaltzea) any C# function that you incorporated into the linked assembly.

Urria berandu gisa, 2007, this is just an initial version of the project. I plan to expand it with a number of additional functions, azpikateak barne, indizea, ordeztu, 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.

Behar duzu iruzkinak egin nahi izanez gero, galderak edo iradokizunak, Mesedez, utzi iruzkin edo posta elektroniko.

Lege-oharra:

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

Instalazioa urrats (WFE bakoitzean jarraitu beharreko etxalde batean):

1. Deskargatzeko. Zip eta erauzteko.

2. Install the .dll into the GAC. I usually open c:\Windows muntaia Windows Explorer erabiliz, eta berau ez.

3. Aldatzeko web.config muntaia gehitzeko seguru kontrolak:

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

<authorizedType Assembly="SpdGenericInterface, 1.0.0.0 bertsioa =, Kultura = neutrala, PublicKeyToken = abe076fd8125f3c4" Namespace="Nivlag" TypeName="*" Authorized="True" />

4. Copy "SpdGenericInterface.actions" C:\Program Files Common Files Microsoft Shared web zerbitzari hedapenak 12 PLANTILLA 1033 Workflow

Kontuan gainetik kokapena dela ingelesaren instalazio espezifikoak.

5. Itxi SharePoint Designer (da dagoeneko ireki).

6. iisreset

7. Ireki SPD eta workflow berri bat sortzeko.

Dena ondo badoa bada, duzun jarduera-kategoria berri bat behar da saria:

image

Oharrak:

Ikusi hemen (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) prozesuaren ikuspegi orokor bat sortzeko emanaldirik for, instalatu eta konfiguratzen hau bezalako irtenbide bat.

. Zip diseinatuta dago zuzenean erauzi nahi duzu c:\ drive. If you do this, Proiektuaren ireki ahal izango duzu, eta bide guztiak koherentea izango da.

Hau erabili ahal izateko ikusmen estudioan, you probably need to install "Extensions for Windows WF".

The initial upload contains just one "dispatcher function", "ToLower()". To add more functionality, gehitu exekutatu metodoa erakusten:

 babesa baliogabetzeko ActivityExecutionStatus
          Exekutatu(ActivityExecutionContext executionContext)
        {

            katea functionToDispatch;
            functionToDispatch = honetan.DispatchFunction.ToLower();

            aldatzeko (functionToDispatch)
            {
                Kasu "tolower()":
                    {
                        honetan.OutResult1 = honetan.InParam1.ToLower();
                        apurtu;
                    }

                lehenetsi:
                    {
                        honetan.OutResult1 = "Unknown function: [" + honetan.DispatchFunction + "].";
                        apurtu;
                    }
            }

            itzultzeko ActivityExecutionStatus.Itxita;
        } // ActivityExecutionStatus

    }

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

SPD Workflow Ekintza pertsonalizatu – lortu <WorkflowInfo> etiketatu eskubidea frustrazioa ekiditeko

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

Aurkitu dut eta saiatu txantiloia lagin bat hasten den bezala erabili nahi:

<?xml bertsioa="1.0" kodeketa="utf-8" ?>
<
WorkflowInfo xmlns="http://schemas.microsoft.com / SharePoint /">
<
Ekintzak Sekuentziala="ondoren," Paralelo="eta">

Hala eta guztiz ere, that xmlns attribute prevents my environment from working. My actions don’t show up in SPD.

Konponbidea da, kenduko xmlns atributuaren, do an iisreset and close/re-open SPD.

Azkarra eta sinplea: Konfiguratu MOSS zehatz bat dokumentu liburutegia bilaketa-

See UPDATE (I) below (11/24/07) an Nola Microsoft Office SharePoint Zerbitzaria konfiguratzeko 2007 Aurkibidea eta arakatzea Network Search for karpetak

Helburua: I want to execute a search restricted to a specific document library. Kasu honetan, Dokumentu liburutegia dauka prestakuntza dokumentuak.

Urratsak:

1. Grabatzeko dokumentua liburutegian URL.

2. Sortu hedadura:

Administrazio Zentralari joan.

Sartzeko SSP du.

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. Zehaztu arakatze arau esparrua:

Gehitu arau bat da, dokumentu liburutegia definitzen esparrua honetan.

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

Idatzi zure karpeta-izena (ikusi #1 Goiko).

Accept the default value of "Include".

Esparrua itxaron eguneratu (hasteko edo eskuz).

4. Gaitu esparrua gune bilduma batean.

Gunean bilduma Joan esparrua hau erabili nahi duzu.

Gehitu zure esparrua egokia pantaila talde edo talde.

5. Bilatu!

Puntu honetan, you’re done. Assuming the scope is properly defined, erabilgarri izango den esparru jaitsiera bilaketak sinple eta aurreratuentzako gorabeherak eta noiz erabiltzen duten esparrua bilatu, besterik ez dituzu lortuko emaitzak espero.

Oharrak:

Blog sarrera hau idatzi nuen nire esparrua simple konfigurazioa bilatzen gaurkoan delako lehorra erabiliz esaldiak bezala:

  • konfiguratzeko esparru MOSS en
  • konfiguratzeko bilaketa-esparrua goroldioa
  • SharePoint-en esparru 2007
  • SharePoint-en esparru
  • bilatu dokumentu liburutegia goroldioa
  • Esparru lehen goroldioa

Bilaketa-esparrua bat sor dezakezu karpeta batean, not just the entire document library.

Esparrua A gune anitz bildumak zehar parteka daitezke (beraz,, a "shared service").

You can create the scope at the site collection level itself. Hala eta guztiz ere, 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 (I) gisa 11/24/07:

Kai Shang put together a great post entitled Nola Microsoft Office SharePoint Zerbitzaria konfiguratzeko 2007 Aurkibidea eta arakatzea Network Search for karpetak @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Zuretzat zopa No! Cisco da NLB produktuen nazien zopa?

Gaur egun, 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. (/ Denean sare morroiak esango dit zer den, Post hau eguneratuko dut).

Windows explorer couldn’t connect. I did some research and eventually, sare morroiak esan WebDAV desgaituta dago arabera / ez du onartzen / beneath the dignity of the NLB.

Beraz,, assuming the network wizards aren’t just telling me the network wizard equivalent of "take a long walk off a short bridge", Galdetzen daukat — du NLB, Naturak, desgaitu WebDAV? Do we lose our windows file explorer interface to SharePoint? Is Cisco the Zopa nazien?

MOSS kudeatzea / Ingurune WSS — mantentzeko Microsoft-en jakintza-oinarri

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.

Jarraitu nuen haiekin bizkortzeko zerbitzu baten bidez ona Folks hornitu at 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 Aplikazio-politika, Segurtasun-guneak eta segurtasuna trimming — Ezagutu zure konfigurazioa

(EGUNERATUA 11/29 nola web aplikazio politika ezarpenak sartzeko azaltzeko UI bidez)

I had one of those "why is MOSS doing this to me????" moments today. Azkenean, Nire errua da guztia.

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. Gunera joan.
  2. Break segurtasun ondarea.
  3. Kendu erabiltzaile bakoitzak / talde baimenak gune batetik.

Gainetik besterik gune-administratzaile-bilduma utzi behar baimena gune ikusi nahi dituzten.

Inork egunkaria bada, ez da gehiago behar dute ikusi gune eta izango da, ohiko leku guztietako segurtasun-moztutako.

Baina … ez zen. Aldi berean,, 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, azkenik, Dut aurkitu duen Ethan bloga, his opening graph makes it quite simple:

Moss 2007 izeneko web aplikazioa politikak ezaugarri berri bat dauka. Horiek segurtasun-baimen hori web aplikazio lotuta daude. Segurtasun ezarpen horiek baliogabetzeko edozein segurtasun-ezarpen bat da, bilduma, edo Web Gunearen ezarri (Web) erabiltzaile maila.

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, baina, Aurrekontu bat iragazi nahi, "It does not mean what you think it means."

Access web application policies this way:

  1. Administrazio Zentralari joan
  2. Aukeratu Gestión
  3. Select "Policy for Web Application"
  4. Pantaila horretan, make sure you pick the correct web application. Niretzat, lehenetsi admin erdiko aplikazio web eta horrek agian ez da nahi duzuna da.

Noiz arazo hori izan nuen, Bilatuko du ondorengo esaldi dut eta lortu harrigarriro txiki zuzeneko laguntza dagokionez gai honetan:

Gune ekintzak erabiltzaile guztientzat ikusgai

Gune ekintzak erabiltzaile guztientzat ikusgai

gune ekintzak ez dira segurtasun-moztutako

ziurtatzeko MOSS gune bat

to goroldioa segurtasun sarrera

Technorati Tags:

Azkarra eta sinplea: Finkoa erabili beharreko testua bilaketari Core emaitzak

Azkarra eta sinplea jarraibideak:

Aldatu orri bat eta bilatu Core emaitzak web zati gehitu.

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

Gehitu finkoa keyword kontsulta (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").

Oharrak:

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: Sailak eta Produktuak.

Produktuaren gune bilduma dauka, naturalean nahikoa, product information. Each product in the site collection aggregates data from multiple sources.

Sail bat, kodeak eta azterketa, 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".

Planteamendu honek onura atsegina: We can edit the XSL from the core search results web part and generate any format that we want.

Ikusi hemen (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) Blogger beste gai honi buruzko eztabaida.

</amaiera>Nire blog Harpidetu.

Esadazu zure blog!

Mantentzen baduzu, blog bat bada, hori gutxienez minimoki to SharePoint konektatuta, please let me know in comments. I would love to add you to my blog list.

Mantentzen baduzu, blog bat ez dela SharePoint konektatuta badago, baina nahi gehitzeko Niri hala ere, let me know. I’ll may create a separate blog list.

Please give:

  • Your blog URL (jakina,)
  • 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.

Eskerrik asko!

Langileak prestatzeko Ordutegiak eta Materialen Txantiloi — Decrement plantilla akats

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

Course managers create courses. When creating a course, kudeatzailea eserleku eskuragarri gehienezko kopurua zehazten du.

The template provides for self-service enrollment. I enroll and a workflow attached to the registration list decrements the "available seats" ikastaro lotutako.

Individuals may also unregister from a course. The bug lies here. Unregistering from a course does not increment the available seats counter. Baten ondorioz, available seats is not accurate. This bug is compounded by the fact that when available seats decrements to zero, ez gehiago auto-zerbitzua erregistroa onartzen da.

Zorionez, Microsoft provides the workflow for this process. Even better, SharePoint Designer bidez sortzen zuzen Aurrera workflow bat da.

Jarraitu horiek maila handiko urratsak konpondu:

  1. Sua sortu SDP.
  2. Sartzeko prestakuntza plantilla off oinarritzen Gunean.
  3. Access "Attendee unregistration" workflow.
  4. Txertatu urrats hauek (Horietako lehen bi urrats egin nuen):
    1. Kalkulatzeko Ikastaroak:Bete estaliak ken 1 (Irteera Aldakorra:calc)
    2. (ondoren,) Eguneratu elementu Ikastaroak

Egin klik Amaitu eta Bukatutakoan.

Pantaila plano:


SharePoint Designer:

image

Amaitu workflow:

image

Kalkulatzeko zulatzeko-behera:

image

Eguneratu elementua Ikastaroak:

image

Eman albiste ona maiz; albiste txarra eman hasieran

Izan dut aholkulari bat, orain urte asko, eta esperientziadun aholkulari edozein daki, good communication is one of the key pillars to the successful delivery of a project. Beraz, begi-bistakoa da, it’s really almost boring to talk about. This isn’t a post about generic communication. Horren ordez, Komunikazioaren alde ilunagoa buruz idazten ditut — 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 to 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. Baina, 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 (Nire enpresa) 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, dugu (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 (dugu, 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, but you get the picture. We’re a tight-knit group, azken finean, 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" kasu honetan?

Beraz,, if you have to give bad news, give it early. Bad news given late isn’t just bad, izugarria da.