Acciones de flujo de trabajo personalizado de SPD — mejoras de manipulación de cadenas

Hace una semana, Comencé un proyecto de codeplex que proporciona un método simple y razonablemente genérico para agregar acción personalizada funciones de flujo de trabajo diseñador SharePoit. Se describe aquí: http://www.codeplex.com/spdwfextensions. Más allá de simplemente proveer un marco, también pretende proporcionar un conjunto de funciones útiles que harán más útil/flexible/poderoso SPD.

Aquí están las actuales características previstas para la versión 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Si alguien tiene algún interés en este proyecto, por favor dejar un comentario o Inicio/agregar a una discusión aquí: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Aquí están el actual conjunto de funciones que han sido codificados (Aunque no está completamente probado como de 11/08/07):

Función Descripción (Si no igual.Función neto)
Num-entradas() Devuelve las números "entradas" en una cadena según un delimitador especificado.

Por ejemplo: Num-entradas en una cadena de "un,b,c" con delimitadores"," = 3.

Entrada() Devuelve el token n-ésima de una cadena según un delimitador especificado.
Longitud String.Length
Reemplazar() String.Replace()
Contiene() String.Contains()
Devuelve la palabra "verdadero" o la palabra "falso".
Subcadena(Inicio) String.substring(Inicio)
Subcadena(Inicio,final) String.substring(Inicio,final)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Devuelve la palabra "verdadero" o la palabra "falso".
EndsWith() String.EndsWith()
Devuelve la palabra "verdadero" o la palabra "falso".

Rápido & url fácil codificación utilidad de escritorio

He sido deba url-codificar algunas cadenas esta semana y abofeteó juntos una utilidad un poco que pensé que podría aguantar SkyDrive para la comunidad.

Obtener el binario aquí: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Obtenga aquí la solución de visual studio: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Aquí hay una captura de pantalla:

imagen

Fácil y rápida: Insertar un hipervínculo en el elemento web vista de datos XSLT

ACTUALIZACIÓN (01/17/08): Esta entrada de blog habla de hipervínculo más bondad XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Introducción y objetivo: Que había creado un simple gráfico de barras para servir como componente en un tablero de instrumentos. Ahorraré los detalles en la construcción de tablas para otro post, pero yo no inventó esta técnica (ni el signo de interrogación, de eso se trata). Resultó que había un error en la tabla y mientras fijo, Tomé la oportunidad de convertir algunas etiquetas en los hipervínculos que apuntaron a la lista subyacente detrás de la gráfica. Por ejemplo, hay una etiqueta con el valor "Hold". Quería convertir la etiqueta en un hipervínculo para que el usuario pudiera haga clic sobre él y perforar hasta las entradas específicas de la lista cuyo valor de estado es "Hold".

Pasos:

  1. Utilizar visual studio intellisense consciente de SharePoint.
  2. Copia XSLT del DVWP en visual studio (crear un proyecto en blanco, Agregar un archivo XSL al proyecto).
  3. Copie el vínculo que desee utilizar en el Portapapeles.
  4. Pegar en la ubicación correcta en el XSL.
  5. Convertir separadores de argumento de URL en la cadena de consulta de"&" "&gm6;"
  6. Codificar URL argumentos individuales.
  7. Ajustar ese dentro un <a href…> </un>

Ejemplo:

Tengo una dirección URL:

http://[servidor]/[sitio]/Lists/Open Positions/AllItems.aspx?Vista ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = reclutador&FilterValue1 = Hold

Convertirlo en:

     <un href="Lists/Open Positions/AllItems.aspx?Vista = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1% 7D&gm6;FilterField1 = reclutador&gm6;FilterValue1 = Hold"> Mantenga: </un>

He transformado manualmente el primer argumento de:

{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}

Para:

%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1% 7D

(En este, las transformaciones de la llave de apertura para 7b % y el cierre llave transforma a 7% d)

Los argumentos de segundo y terceros’ parámetros ("FilterField1 =Reclutador" y "FilterValue1 =Mantenga" respectivamente) no necesita ser codificado en url porque no contienen caracteres no seguros.

Notas:

Esta técnica generalmente debe trabajar en cualquier lugar que desee incrustar un hipervínculo en XSLT donde el hipervínculo incluye como parámetros en la URL:

http://[servidor]/[sitio]/Lists/Open Positions/AllItems.aspx?Vista ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = reclutador&FilterValue1 = Hold

Tengo la misma URL por acceder a la lista personalizada y filtrado manualmente en la columna Estado (etiquetado "reclutador" por encima de).

Rápida y sencilla: Habilitar el flujo de trabajo de SharePoint Designer actualizar un formulario de InfoPath

Escenario: Tengo un formulario de InfoPath que front-end de un proceso de flujo de trabajo implementado usando SharePoint Designer. En un momento, un administrador debe aprobar el formulario de. Ya no puedo confiar historia de flujo de trabajo para cumplir mis requisitos de auditoría, Me decido a almacenar mi mensaje de auditoría directamente en el propio formulario.

Visión general:

Diseñar el formulario y publicarlo como un tipo de contenido y el formulario a una biblioteca de documentos. Marca deseada campos de formulario como actualizable de musgo. La forma está ligada al tipo de contenido y el tipo de contenido está "conectado" en una biblioteca de formularios (o muchos, Si quieres). Escribir un flujo de trabajo que actualiza el campo.

Pasos específicos:

  1. Crear una biblioteca de documentos. Esto mantendrá la plantilla de InfoPath.
  2. Crear una biblioteca de formularios.
  3. Crear el formulario de InfoPath. Incluyen un campo de texto, «Mensaje de auditoría».
  4. Publicar el formulario como un tipo de contenido (NO es un documento).
  5. Al rellenar los cuadros de diálogo de publicación:
    un) Guarde el archivo .xsn en la biblioteca de documentos (paso #1).
    b) Publicar el mensaje de auditoría"" campo y marcar cierto: "Permitir a los usuarios editar datos en este campo mediante una hoja de datos o propiedades de página".
    c) Crear un nuevo tipo de contenido y asígnele un nombre apropiado.
  6. Acceso a la biblioteca de formularios.
    un) Vaya a la configuración avanzada y habilitar la biblioteca de formularios gestionar los tipos de contenido.
    b) Seleccione el tipo de contenido recién creado (5c supra). Se agruparán bajo "Microsoft InfoPath" (o similar).
    c) Eliminar el valor predeterminado "formulario" tipo de contenido de la biblioteca.
    d) Marca la biblioteca "mostrar como página web" para que el formulario se iniciará desde SharePoint y no el cliente de la estación de trabajo de InfoPath.
  7. Volver a la biblioteca de formularios adecuada y haga clic en "nuevo" simplemente verificar que el formulario está correctamente registrado y actuando como desee.
  8. Fuego de SharePoint Designer y vaya al sitio que alberga la biblioteca de formularios (de paso 2).
  9. Crear un nuevo flujo de trabajo adjunto a la biblioteca de formularios.
  10. Añadir una sola acción "Conjunto campo de elemento actual". Usted debe esperar diseñador de SharePoint a la lista eres tu campo, «Mensaje de auditoría». Asignarle un valor.
  11. Haga clic en finalizar y volver a la biblioteca de formularios.
  12. Crear un nuevo formulario y poner algún valor de prueba en el mensaje de auditoría"" campo.
  13. Guardar y volver a la biblioteca de formularios.
  14. Con el botón derecho, Seleccione "flujo de trabajo" y puesta en marcha del flujo de trabajo.
  15. Él debe funcionar casi de inmediato. Tire hacia arriba de forma (de paso 12) y si todo ha ido al plan, "Mensaje de auditoría" se le ha asignado cualquier valor proporcionado en el paso 10.

Notas:

No todos los controles puede configurado para comunicación bidireccional. Por ejemplo, no parece aplicar un flujo de trabajo SPD que modifica los campos de texto dentro de las secciones de repetición.

Uno de los clave llevar aquí es que realmente hemos creado un tipo de contenido con una plantilla asociada. Esto también nos permite almacenar múltiples plantillas de formulario de InfoPath en la misma biblioteca de forma.

Esto requiere servidor de formas. Seguramente no va a trabajar en un WSS 3.0 medio ambiente y probablemente incluso requiere un entorno SharePoint Enterprise.

El Beagle ha aterrizado (Octubre 2007 tema)

(Esto es en realidad un poco anticuado, Pero como mi lema favorito de bomberos proclama, "Más vale tarde que nunca").

Compruébalo aquí: http://www.sharepointbeagle.com/

Si no lo ha hecho, Asegúrese de Únete.

Claro, Asegúrese de leer mi artículo sobre un proyecto de SharePoint del mundo real (incluyendo la definición de requisitos, De KPI, tipos de contenido, tableros de instrumentos y más) así como mi colega artículo sobre el elemento web consulta de contenido.

También hay muchas otras cosas buenas..

¿Cómo quitar “Ver todo el contenido de sitio” enlace

Me preguntan esta pregunta casi cada semana, normalmente en el contexto de una discusión de seguridad. Un creador de sitio administrador ha provisionado un sitio, seguridad configurado, web dispuesto partes y modificado para requisitos particulares del lanzamiento rápido para proporcionar ese conjunto de oh-tan-perfecta de opciones al usuario final. Pero, fuera de la caja, No es posible eliminar el "ver todo el contenido de sitio" enlace.

Mark Wagner da la respuesta aquí (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Su escritura es genial en dos niveles. Proporciona una respuesta a la pregunta, "Cómo puedo quitar la vista de todo el contenido del sitio" enlace? A continuación, responde a la pregunta siguiente inmediata: ¿Cómo habilito la vista todo el contenido de sitio enlace sobre una base de sitio por sitio de fácilmente?

Como un bono: Su enfoque funciona para WSS, No sólo MOSS.

</final>

Suscribirse a mi blog!

Mi propio proyecto de CodePlex: Extensiones de flujo de trabajo de SharePoint Designer

ACTUALIZACIÓN: Ver aquí (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!310.entry) para lo último en este proyecto.

He creado un proyecto hoy a casa la interfaz genérica SPD del código que escribió en su blog acerca de CodePlex aquí (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!275.entry).

Echa un vistazo a aquí (http://www.codeplex.com/spdwfextensions) para ver el proyecto de CodePlex y patear los neumáticos.

Si estás interesado en trabajar en esto conmigo, dispara un correo electrónico a mailto:galvin.paul@gmail.com

SharePoint Designer — Actividad personalizada para ejecutar funciones definidas por el usuario C#

ACTUALIZACIÓN: Esto ha sido lanzado a CodePlex aquí: http://www.codeplex.com/spdwfextensions

ACTUALIZACIÓN: Consulte aquí para notas de la versión más recientes: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

ACTUALIZACIÓN: Consulte aquí para mis reflexiones sobre la comercialización de este proyecto: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Este proyecto proporciona una actividad personalizada en SharePoint Designer. Utilizar esta actividad personalizada para invocar (envío) cualquier función de C# que incorporado en el conjunto vinculado.

Finales de octubre, 2007, Esto es sólo una versión inicial del proyecto. Voy a ampliar con una serie de funciones adicionales, incluida la subcadena, índice, reemplazar, invocación de servicios web y cualquier cosa que parezca útil o interesante. También planeo publicar esto en codeplex una vez tengo mi acto juntos en ese frente. Esto también será desplegable como una solución en algún momento.

Si tienes cualquier comentario, preguntas o sugerencias, por favor dejar en los comentarios o enviarme un correo electrónico.

Descargo de responsabilidad:

No hacer absolutamente ninguna reclamación en cuanto a la idoneidad de éste para cualquier propósito. Usar bajo su propio riesgo.

Pasos de instalación (que deben seguirse para cada WFE en la granja):

1. Descargar el .zip y extraer.

2. Instalar el .dll en la GAC. Generalmente abro c:\WindowsAssembly utilizando el explorador de windows y copia TI allí.

3. Modificar el archivo web.config para agregar el ensamblado a los controles de seguridad:

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

<authorizedType Asamblea = "SpdGenericInterface, Versión = 1.0.0.0, Cultura = neutral, PublicKeyToken = abe076fd8125f3c4" Namespace = "Nivlag" TypeName = "*" Autorizado = "True" />

4. Copia "SpdGenericInterface.actions" a c:\Programa de programaArchivos comunesMicrosoft Sharedweb server extensions12TEMPLATE1033Workflow

Tenga en cuenta que la ubicación anterior es específica para las instalaciones en inglés.

5. Cierre de SharePoint Designer (Si ya está abierto).

6. iisreset

7. Abrir SPD y crear un nuevo flujo de trabajo.

Si todo va bien, Usted debe ser recompensado con una nueva categoría de acción:

imagen

Notas:

Ver aquí (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) para una visión increíble del proceso de creación, instalación y configuración de una solución como ésta.

El .zip está diseñado para extraer directamente a usted c:\ en coche. Si haces esto, puede abrir el proyecto y todas las rutas serán coherentes.

Para utilizar esto en visual studio, probablemente deba instalar "Extensiones de Windows WF".

La carga inicial contiene sólo una "función de distribuidor", "ToLower()". Para agregar más funcionalidad, Agregue el método Execute como se muestra:

 protegido reemplazar ActivityExecutionStatus
          Ejecutar(ActivityExecutionContext executionContext)
        {

            cadena functionToDispatch;
            functionToDispatch = Esto.DispatchFunction.ToLower();

            conmutador (functionToDispatch)
            {
                caso "tolower()":
                    {
                        Esto.OutResult1 = Esto.InParam1.ToLower();
                        salto;
                    }

                predeterminado:
                    {
                        Esto.OutResult1 = "Función desconocida: [" + Esto.DispatchFunction + "].";
                        salto;
                    }
            }

            retorno ActivityExecutionStatus.Cerrado;
        } // ActivityExecutionStatus

    }

A continuación, volver a construir el proyecto y copiar el ensamblado a la GAC. Espero que se requeriría un iisreset.

Acción personalizada de flujo de trabajo de SPD – Obtenga el <WorkflowInfo> derecho de la etiqueta para evitar la frustración

Parte del proceso para crear una acción personalizada para SharePoint Designer implica crear un .actions"" archivo.

He encontrado e intentó utilizar una plantilla de ejemplo que comienza como:

<?XML Versión="1.0" codificación="UTF-8" ?>
<
WorkflowInfo xmlns="http://schemas.Microsoft.com/SharePoint/">
<
Acciones Secuencial="a continuación" Paralelo="y">

Sin embargo, ese atributo xmlns evita que mi entorno de trabajo. Mis acciones no se muestran en SPD.

La solución consiste en eliminar el atributo xmlns, hacer un iisreset y cierre/re-libre SPD.

Rápida y sencilla: Configurar MOSS para buscar una biblioteca de documentos específica

Ver actualización (ME) por debajo de (11/24/07) en Cómo configurar Microsoft Office SharePoint Server 2007 a las carpetas de red de arrastre para la búsqueda e índice

Objetivo: Quiero ejecutar una búsqueda restringida a una biblioteca de documentos específica. En este caso, la biblioteca de documentos contiene documentos de entrenamiento.

Pasos:

1. Anote la dirección URL de la biblioteca de documentos.

2. Crear un ámbito de aplicación:

Ir a la administración central.

Acceso a la SSP.

Vaya a "Configuración de búsqueda".

Desplácese hasta la sección alcance y seleccione "Ver alcances".

Crear un ámbito nuevo. Dar un nombre y una descripción útil.

3. Definir reglas de rastreo de alcance:

Agregar una regla que define la biblioteca de documentos para este ámbito.

Seleccione "dirección web" para "Tipo de regla de alcance".

Introduzca el nombre de la carpeta (ver #1 por encima de).

Acepte el valor predeterminado de "Include".

Esperar a que el ámbito actualizar (o iniciarlo manualmente).

4. Activar el visor en una colección de sitios.

Ir a la colección de sitios donde desea utilizar este ámbito.

Añadir tu nuevo alcance a la pantalla apropiada o más grupos.

5. Búsqueda!

En este punto, listo. Suponiendo que el alcance se define correctamente, estará disponible en los ámbitos gota downs para búsquedas simples y avanzadas y cuando usted busca usando ese alcance, sólo obtendrá resultados que esperas.

Notas:

Escribí esta entrada de blog porque mis búsquedas para la configuración simple ámbito aparecido en seco utilizando frases como:

  • configurar ámbitos en MOSS
  • configurar la búsqueda alcance musgo
  • alcances en sharepoint 2007
  • alcances en sharepoint
  • buscar un musgo de biblioteca de documentos
  • musgo de cartilla de alcances

Se puede crear un ámbito de búsqueda en una carpeta, no sólo la biblioteca de todo el documento.

Un ámbito puede ser compartido a través de colecciones de sitios múltiples (por lo tanto, un "servicio compartido").

Puede crear el alcance en el nivel de colección de sitio propio. Sin embargo, Prefiero ir a administración central porque puedo comenzar el rastreo de ahí. No se puede iniciar el rastreo de la colección de sitios.

ACTUALIZACIÓN (ME) como de 11/24/07:

Kai Shang juntar que un gran post titulado Cómo configurar Microsoft Office SharePoint Server 2007 a las carpetas de red de arrastre para la búsqueda e índice @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Etiquetas de Technorati: , ,