arquivos mensuais: Outubro 2007

SharePoint Deseño — Actividade personalizada para realizar definidos polo usuario C # funcións

Actualización: Este foi lanzado para CodePlex aquí: http://www.codeplex.com/spdwfextensions

Actualización: Vexa aquí as notas de lanzamento máis recentes: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

Actualización: Aquí tes os meus pensamentos sobre a comercialización deste proxecto: 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 (expedición) any C# function that you incorporated into the linked assembly.

A partir de finais de outubro, 2007, this is just an initial version of the project. I plan to expand it with a number of additional functions, incluíndo substring, índice, substituír, 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.

Se tes algunha comentarios, dúbidas ou suxestións, por favor, deixe nos comentarios ou enviar correo-e me.

Renuncia:

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

Os pasos de instalación (a seguir para cada WFE na facenda):

1. Baixo o zip. E extraer.

2. Install the .dll into the GAC. I usually open c:\windows assembly usando o Windows Explorer e copia-lo alí.

3. Modificar web.config para engadir o assembly para os controis de seguridade:

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

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

4. Copy "SpdGenericInterface.actions" para C:\Arquivos de programas Arquivos comúns Microsoft Shared web server extensions 12 template 1033 Fluxo de Traballo

Nótese que a situación anterior é específica para instalacións de idioma inglés.

5. SharePoint Deseño Pechar (se xa está aberto).

6. iisreset

7. Abre SPD e crear un novo fluxo de traballo.

Se todo vai ben, ten que ser recompensado cunha nova categoría de acción:

imaxe

Notas:

Ver aquí (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) para unha visión xeral óptimo do proceso para crear, instalar e configurar unha solución como esta.

O zip. Está deseñado para extraer directamente a vostede c:\ drive. If you do this, pode abrir o proxecto e os camiños serán consistentes.

Para usar isto no Visual Studio, you probably need to install "Extensions for Windows WF".

The initial upload contains just one "dispatcher function", "ToLower()". To add more functionality, engadir lo ao método de execución como se mostra:

 protexido substituír ActivityExecutionStatus
          Executar(ActivityExecutionContext executionContext)
        {

            corda functionToDispatch;
            functionToDispatch = este.DispatchFunction.ToLower();

            cambiar (functionToDispatch)
            {
                caso "tolower()":
                    {
                        este.OutResult1 = este.InParam1.ToLower();
                        romper;
                    }

                defecto:
                    {
                        este.OutResult1 = "Unknown function: [" + este.DispatchFunction + "].";
                        romper;
                    }
            }

            volver ActivityExecutionStatus.Pechado;
        } // ActivityExecutionStatus

    }

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

SPD Fluxo acción personalizada – obter o <WorkflowInfo> marcar dereito de evitar a frustración

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

Podo atopar e tente usar un modelo de mostra que comeza como:

<?xml versión="1.0" codificación="utf-8" ?>
<
WorkflowInfo xmlns="http://schemas.microsoft.com / SharePoint /">
<
Accións Secuencial="entón" Paralela="e">

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

A solución é eliminar o atributo xmlns, do an iisreset and close/re-open SPD.

Rápido e sinxelo: Configurar Moss para buscar unha biblioteca de documentos específica

See UPDATE (Eu) below (11/24/07) en Como configurar o Microsoft Office SharePoint Server 2007 Índice de carpetas e seguimento de rede para a investigación

Obxectivo: I want to execute a search restricted to a specific document library. Neste caso, a biblioteca de documentos contén documentos de formación.

Pasos:

1. Rexistre a URL da biblioteca de documentos.

2. Crear un ámbito:

Ir á administración central.

Accede a 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. Establecer normas de seguimento de ámbito:

Engadir unha regra que define a biblioteca de documentos para este ámbito.

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

Introduza o nome da carpeta (ver #1 arriba).

Accept the default value of "Include".

Agarde ata que o ámbito de actualizar (ou inicia-lo manualmente).

4. Activar o alcance dun conxunto de sitios web.

Ir á colección de sitios onde quere usar este ámbito.

Engada o seu novo alcance para o grupo de exhibición apropiado ou grupos.

5. Procurar!

Neste punto, you’re done. Assuming the scope is properly defined, estará dispoñible nos menús suspendidos alcance para a investigación sinxelo e avanzadas e cando lle buscar usando este ámbito, só vai obter resultados que espera.

Notas:

Eu escribín este blog porque as miñas investigacións para a instalación do ámbito simple apareceu secos frases usando como:

  • configurar alcance no Moss
  • configurar musgo ámbito de investigación
  • alcance en sharepoint 2007
  • alcance en sharepoint
  • buscar unha biblioteca de documentos musgo
  • Scopes primeiro musgo

Pode crear un ámbito de investigación en un cartafol, not just the entire document library.

Un ámbito pode ser compartido por varios conxuntos de sitios (polo que, a "shared service").

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

Actualización (Eu) a partir de 11/24/07:

Kai Shang put together a great post entitled Como configurar o Microsoft Office SharePoint Server 2007 Índice de carpetas e seguimento de rede para a investigación @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Ningunha sopa para ti! Cisco é o nazi da sopa de NLB produtos?

Hoxe, 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. (Se / cando os asistentes de rede me dicir o que é, Vou actualizar este post).

Windows explorer couldn’t connect. I did some research and eventually, os asistentes de rede, dixo que WebDAV é desactivada por / non é soportado polo / beneath the dignity of the NLB.

Así, assuming the network wizards aren’t just telling me the network wizard equivalent of "take a long walk off a short bridge", Eu teño que saber — fai NLB, por natureza, desactivar o WebDAV? Do we lose our windows file explorer interface to SharePoint? Is Cisco the Soup Nazi?

Xestionar Moss / Ambientes WSS — mantendo-se coa base de coñecemento de 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.

Eu segue ata a velocidade con eles a través dun servizo solicitado polos pobos bos en 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.

Política de Aplicación web, Sitios de seguridade ea seguridade de corte — Coñeza a súa configuración

(Actualizado 11/29 para explicar como acceder a configuración de directiva de aplicación web a través da interface de usuario)

I had one of those "why is MOSS doing this to me????" moments today. A finais, é todo culpa miña.

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. Vaia á páxina web.
  2. Rompe a herdanza de seguridade.
  3. Eliminar todos os usuarios / grupo de permisos da web.

O anterior debe deixar só o administrador do conxunto de sitios web con permiso para ver o sitio web.

Se alguén fai login, deben deixar de ver o sitio e debe ser aparado de seguridade de todas as partes habituais.

Pero … non era. Á vez, 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, finalmente, Eu creo que a Blog de Ethan, his opening graph makes it quite simple:

Moss 2007 ten un novo recurso chamado Política de aplicacións web. Estas son os permisos de seguridade que está vinculada a unha aplicación web. Estas opcións de seguridade substituír calquera configuración de seguridade que está definido no conxunto de sitios web ou sitio web (Tea) nivel para o usuario.

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, estirar unha cita, "It does not mean what you think it means."

Access web application policies this way:

  1. Vaia á Administración Central
  2. Seleccione Xestión de Aplicacións
  3. Select "Policy for Web Application"
  4. Nesa pantalla, make sure you pick the correct web application. Para min, o defecto é a aplicación web de administración central, que pode non ser o que quere.

Cando eu tiven ese problema, Procurei as frases seguintes e ten moi pouco en termos de axuda directa sobre esta cuestión:

Accións da web visibles para todos os usuarios

Accións da web visibles para todos os usuarios

accións do sitio de seguridade non son aparadas

protexer un sitio Moss

introdución ao musgo de seguridade

Technorati Tags:

Rápido e sinxelo: Use palabras clave Consulta fixo en principais resultados da investigación

Instrucións rápidas e sinxelas:

Editar unha páxina e engadir un Search Core Results web Part.

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

Engadir a consulta contrasinal fixo (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").

Notas:

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: Departamentos e Produtos.

O conxunto de sitios produto contén, por suposto, product information. Each product in the site collection aggregates data from multiple sources.

Un dos departamentos, códigos e de probas, 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".

Un gran beneficio deste enfoque: We can edit the XSL from the core search results web part and generate any format that we want.

Vexa aquí (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) para debate outro blogueiro sobre este tema.

</final>Rexístrate para o meu blog.

Diga-me sobre o seu blog!

Se mantén un blog que é, polo menos, mínimamente ligado ao SharePoint, please let me know in comments. I would love to add you to my lista de blogs.

Se mantén un blog que non está ligado ao SharePoint, pero quere que eu engadir lo de calquera xeito, deixe-me saber. I’ll may create a separate blog list.

Por favor, indique:

  • A súa URL do seu blog (obviamente)
  • Unha breve descrición do seu 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.

Grazas!

Horario empregado Formación e Obras Template — Decremento erro no modelo

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

Course managers create courses. When creating a course, o director especifica o número máximo de prazas dispoñibles.

The template provides for self-service enrollment. I enroll and a workflow attached to the registration list decrements the "available seats" asociado co referido curso.

Individuals may also unregister from a course. The bug lies here. Unregistering from a course does not increment the available seats counter. Como resultado, available seats is not accurate. This bug is compounded by the fact that when available seats decrements to zero, non o rexistro de autoservizo se permite.

Afortunadamente, Microsoft provides the workflow for this process. Even better, é un fluxo de traballo simple e directa creada a través do SharePoint Design.

Siga estes pasos de alto nivel para resolve-lo:

  1. Lume ata SDP.
  2. Acceda ao sitio web baseado fóra do modelo de formación.
  3. Access "Attendee unregistration" fluxo de traballo.
  4. Insire estes pasos (Eu fixen as dúas primeiras etapas):
    1. Calcular Cursos:Asentos ocupados menos 1 (Saída Variable:Calc)
    2. (entón) Actualizar elemento en Cursos

Fai clic en Finalizar e listo.

As capturas de pantalla:


SharePoint Deseño:

imaxe

Fluxo de traballo rematou:

imaxe

Calcule Drill-down:

imaxe

Actualizar elemento Cursos:

imaxe

Deixa unha boa nova frecuentemente; dar unha mala noticia cedo

Eu fun un consultor para unha morea de anos e como calquera consultor experimentado sabe, good communication is one of the key pillars to the successful delivery of a project. É tan obvio, it’s really almost boring to talk about. This isn’t a post about generic communication. Pola, Eu estou escribindo sobre o lado máis sombrío de comunicación — comunicación de malas novas.

Nin que dicir ten que dar unha boa nova para o cliente está feito todo o tempo, as often as possible. Who doesn’t want to give good news? Who doesn’t like to hear good news?

Por outra banda, bad news is no fun at all. I have always struggled with this. In the earlier days of my career, Gustaríame saber algo estaba mal con un proxecto e, en vez de dicir ao cliente, 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 para 80 horas á semana?

Cal é a mellor forma de xestionar malas novas? 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 (probablemente ha), there may be incriminations and accusations and hurt feelings. Pero, cando as emocións refrescar, there’s still six weeks left on the project. Six weeks is a good chunk of time. There’s time to adjust plans, cambiar horarios, a bola rolar en ampliación do orzamento (boa sorte!) and just generally come to grips with the "facts on the ground" and devise a new plan that still results in a successful project.

Caso en cuestión: Eu estou traballando nun proxecto caracterizado por:

  • T&E budget with a capped "Not to exceed" valor en dólar.
  • A "best efforts will be made" promesa de entregar X, Y e Z ata o final do proxecto.
  • Lack of promised key resources on the client side. These resources were not withheld on purpose, nor for any "bad" razón, pero eles foron retidos.
  • A dawning realization as the project passed the half-way point that we were not going to be able to deliver "Z" (sobre todo porque os recursos comprometidos non foron realmente dispoñible).
  • Regular status reports and "CYA" documentación que apoiou nos (o equipo de consultoría) up.
  • Equipo de implementación ções con membros procedentes da empresa de consultoría (a miña empresa) eo cliente.
  • Equipo de xestión lonxe, in both a metaphorical and physical sense. The management team was focused on another large enterprise project and due to space constraints, o equipo de implementación foi aloxado nun edificio separado no campus, down a hill and relatively far way from "civilization".

Con preto de seis semanas que restan no orzamento do proxecto, nós (o equipo de implementación) 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" para entregar Z e aínda que tivo gran xustificación para a falta de entrega … a liña de fondo é que non estaba mirando bo — non estabamos indo entregar Z en forma de calidade que faría calquera orgulloso.

Recoñecendo esta, fomos para a xestión e díxolles que o orzamento do proxecto sería consumida por unha determinada data e que estabamos en apuros con Z.

Un mini-treboadas estalou nos próximos días.

Día 1: Equipo de xestión chama no seu equipo para unha reunión especial (nós, os consultores non son convidados). 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 "Síndrome de Estocolmo" é * realmente * usado, pero comeza a foto. We’re a tight-knit group, ao final, eo equipo vén traballando connosco día consultores dentro e fóra hai varios meses.

Día 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: axenda unha reunión co equipo de implementación integral (Consultoría, incluíndo).

Día 5: Equipo completo atopa, 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.

Se tivese esperado ata tres semanas permaneceu, ou peor aínda, unha ou dúas semanas, it would have been much different. Instead of a constructive meeting to re-align the project, teriamos sido tirar informes de estado, parsing the contract and reviewing old emails to justify this or that decision. We would have "won" but is it really "winning" neste caso?

Así, se ten que dar malas novas, give it early. Bad news given late isn’t just bad, é horríbel.