Programación y Estrategias de Negocios RSS 2.0
# Friday, February 22, 2008


Share

Estoy empezando una seria de artículos sobre las formas como he resuelto algunos problemas típicos de implementación de workflows en Sharepoint Designer y de pronto en VS2005/2008.  Estos post no se basan en la tecnología en si misma sino en la solución de un problema. Por lo tanto pueden haber tantas soluciones como programadores / diseñadores de procesos se enfrenten al él. Si usted conoce una forma más inteligente, rápida o recomendada para solucionarlo no deje de enviarme un comentario. 

 

(No hay que dejar de tener presente que:

a. estas soluciones se enfocan en poder transferir el conocimiento a usuario no desarrolladores y usando solo las herramientas out-of-box disponibles

b.se asume que el usuario ya usa infopath, Sharepoint Designer, Visual Studio 2005 y sharepoint.)

 

Problema 1. La primera (o la segunda o la n) tarea de un workflow se asigna dinámicamente  dependiendo de información diligenciada por el usuario.

 

Este es un escenario típico. La organización tiene 50 managers (gerentes) en el formulario hay un campo que identifica el área a la que esta asignada el gasto, la actividad de aprobación del gasto debe asignarse al gerente de esa área.

Solución.

Preparando la fuente de Datos.

1. Cree una lista en Sharepoint llamada _Areas. (el nombre tiene un caracter "_" para ayudarme a identificar las listas que usare como fuentes de datos).

2. En esta lista cree un campo llamado Nombre (string), eMail (String), Cuenta (Usuario/Grupo)

3. En esta lista cree los 50 gerentes.

Conectando la fuente de datos con el formulario.

(en este caso el formulario esta hecho con InfoPath, otros escenarios pueden requerir conectar la entrada de datos con la lista que se creo antes).

1. En InfoPath cree una fuente de datos, en el menu Tools/Data Connections. 

2. adicione una nueva conexión, seleccione la fuente de datos como una lista de Sharepoint.  Busque la lista de areas que creo. Coloque un nombre a la conexion de datos. Listo, si lo edita deberia ver algo como esto:

CreateDataSource

3. la fuente de datos esta disponible ahora para todo el formulario, seleccione un campo, en este caso manager que es un desplegable que alcanza a verse en la imagen anterior y configure la fuente de datos de ese campo con la conexión que acabo de crear, debería verse algo como esto.

 

DropDownDataConexion

Bien, ahora cuando el usuario diligencie la forma puede seleccionar el gerente que autoriza esto o el área a la que pertenece el gasto en este caso., esta información quedara almacenada como un campo en la librería de documentos de sharepoint asociada a este formulario.  Con esa información ahora podemos tomar decisiones.

 

Crear Workflow.

Bueno ahora en SP designer se puede usar la opción de nuevo workflow, se selecciona la lista de documentos que sobre la que se quiere correr el workflow (que debe ser la misma que se alimenta del formulario que creamos antes). y se llega a la ventana de asistente de pasos del workflow.

 

Crear la acción dentro del Paso (Actividad) del Workflow.

Ok, ahora si la solución,

 

1. Se crea una acción del tipo Set Workflow Variable.

2. Se hace click en workflow variable, se selecciona crear nueva variable, se le puede poner un nombre como PreApproveUser, de tipo string.

3. Se  hace clic en value y en la opción de función, eso abre la ventana de asignación de valores que es ocasionalmente un poco complicada de usar, así que aquí una foto del resultado final y la explicación de que significa esto

 

CreateUserNameVariable

i. Se selecciona la lista de la que quiero sacar la información, en este caso _Departments, luego cual es la variable que quiero, AD Name en este caso, luego le digo como quiero obtener esa información, por ejemplo, que cuando el manager de la lista _Departments sea igual al manager de la lista procurement.

ii. a veces es más fácil pensarlo como un select de SQL, seria así:  select AD User from _Departments Where _Departments:Manager = Procurement Manager.

 

4. así que ahora tengo el nombre del usuario del AD en una variable del workflow llamada PreApproveUser y esa variable puedo usarla para enviar correos, asignar tareas, etc.

 

5. creo una nueva acción del tipo Collect User Data. Construyo la información que quiero recopilar y le asigno la tarea a la variable PreApproveUser.

 

6. Como siempre el resultado de la tarea debo asignárselo a una variable del workflow.

 

7. sigo el proceso....

 

De esta forma puede resolverse un problema común de desarrollo de procesos con Sharepoint Designer, asignación dinámica de tareas basada en información ingresada por el usuario. También sirve este ejemplo para ilustrar otras cosas interesantes como por ejemplo el uso de fuentes de datos en formularios de sharepoint.

 

Juan Carlos Peláez

Arquitecto de Software.

 

keywords: sharepoint designer, infopath, bpm, problemas comunes workflow, juan pelaez, fuentes de datos en infopath, variables de workflow, wss 3.0, moss 2007.

Friday, February 22, 2008 5:18:46 PM (SA Pacific Standard Time, UTC-05:00) 

Bookmark and Share

#    Comments [0] - Trackback
BPM | InfoPath | Sharepoint | Sharepoint Designer | WWF
# Wednesday, February 20, 2008


Share

En los últimos días he estado trabajando en procesos y formularios que utilizan las herramientas office de Microsoft, esto es InfoPath para las formas y Sharepoint Designer para los procesos (Workflows)

 

Aunque todo lo que he venido haciendo se puede lograr en VS2005 con las extensiones para sharepoint (incluso de esta forma se obtiene mayor control de los resultados), uno de los requerimientos específicos era utilizar estas herramientas para poder pasar el conocimiento a usuarios no desarrolladores.

 

Después de un par de días ya pude realizar el formulario y el proceso, lo publique en el servidor de pruebas y pedí a los usuarios retroalimentación, todo parecía ir bien hasta que tuvieron que realizar sus tareas y se les notifico que no tenían acceso. Luego de verificar todos los permisos en la lista de tareas, los formularios, el gestor de perfiles, el AD, etc. pues nada esto es un bug.  Un par de horas de búsqueda en Internet me trajo esta solución que pongo aquí para que alguien se ahorre un par de horas de la vida.

 

El Problema.

Un formulario de Infopath, un workflow asociado a la librería de formas, un usuario con permisos limitados,

el usuario puede llenar formas (si)

El usuario puede ingresar a la lista de tareas desde un link (si)

El usuario puede ver el link de editar tarea (si)

El usuario puede editar la tarea (No. Acceso denegado). No se supone que funciones de esta forma.!!!

 

La Solución

Después de un par de horas de mirar en internet encontré este foro donde lo resolvieron. , para los que les gusta en español, la solución aquí.

 

Abra el sitio con Sharepoint designer. Clic derecho en el folder workflows, seleccione propiedades., en el tab de seguridad haga clic en el enlace "Manage Permissions using the browser".

 

 

WorkflowFolderSecurity

 

 

 

 

Se abrirá una nueva ventana del browser, en mi caso se habían perdido los permisos heredados y mi usuario estaba en un nivel de permisos incorrecto, cambie el nivel de configuración para que volviera a heredar del sitio y listo.

 

 

Juan Carlos Peláez

Arquitecto de Software

 

Keywords: Sharepoint Designer, Workflow, Problemas, Usuario, Tareas, Permisos, Juan Carlos Peláez, Procesos, Formularios, InfoPath, MOSS 2007, WSS 3.0

Wednesday, February 20, 2008 7:32:06 PM (SA Pacific Standard Time, UTC-05:00) 

Bookmark and Share

#    Comments [0] - Trackback
BPM | InfoPath | Sharepoint | Sharepoint Designer | WWF
Contácteme
mail: jpelaez at juanpelaez.com
Actualizaciones en Twitter
FeedBurner
Maps
Locations of visitors to this page
Blogroll
[Feed] Eugenio Pace
Arquitecto del grupo Software as a Service en Microsoft
[Feed] Juan Diego Velazco
El mejor diseñador gráfico conocido y un gran tipo
[Feed] Scott Hanselman
Sponsors
Estadísticas
Total Posts: 93
This Year: 3
This Month: 1
This Week: 0
Comments: 42
Archivo
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Acerca de...

Aviso Legal
Las opiniones expresadas en este sitio representan el punto de vista de Juan Peláez sobre diferentes temas y no representan la posición de 3Metas Corp, Microsoft, Studiocom.com.Inc. o de cualquier otra compañía que haya contratado los servicios de consultoría de Juan Peláez

© Copyright 2010
Juan Carlos Peláez
Sign In

Technorati Profile
All Content © 2010, Juan Carlos Peláez
El tema 'Business' para DasBlog fue creado por Christoph De Baene (delarou) y modificado para español por Juan Peláez
Powered by FeedBurner