<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Visual Studio Team System : WSS 3.0</title><link>http://msmvps.com/blogs/ffagas/archive/tags/WSS+3.0/default.aspx</link><description>Tags: WSS 3.0</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>[Screencasts] Microsoft Office SharePoint Server 2007</title><link>http://msmvps.com/blogs/ffagas/archive/2009/09/01/screencasts-microsoft-office-sharepoint-server-2007.aspx</link><pubDate>Tue, 01 Sep 2009 05:13:09 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1719810</guid><dc:creator>Francisco X. Fagas</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/ffagas/rsscomments.aspx?PostID=1719810</wfw:commentRss><comments>http://msmvps.com/blogs/ffagas/archive/2009/09/01/screencasts-microsoft-office-sharepoint-server-2007.aspx#comments</comments><description>&lt;p&gt;En el mes de Junio hice algunos screencasts sobre SharePoint 2007, este es uno de los productos muy utilizados por el Team Foundation Server razón por la cual conocer el potencial de esta herramienta es muy importante para el crecimiento y creación de nuevas características para nuestro equipo de trabajo del TFS.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;a href="http://blogs.technet.com/ccaitpro/archive/2009/06/10/snackti-de-colaboraci-n-cero-papel-con-sharepoint.aspx"&gt;http://blogs.technet.com/ccaitpro/archive/2009/06/10/snackti-de-colaboraci-n-cero-papel-con-sharepoint.aspx&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;a href="http://blogs.technet.com/ccaitpro/archive/2009/06/10/snackti-de-colaboraci-n-direccionamiento-de-contenido-utilizando-audiciones.aspx"&gt;http://blogs.technet.com/ccaitpro/archive/2009/06/10/snackti-de-colaboraci-n-direccionamiento-de-contenido-utilizando-audiciones.aspx&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;a href="http://blogs.technet.com/ccaitpro/archive/2009/06/10/snackti-de-colaboraci-n-colaboraci-n-a-nivel-documental-dentro-de-un-sitio-sharepoint.aspx"&gt;http://blogs.technet.com/ccaitpro/archive/2009/06/10/snackti-de-colaboraci-n-colaboraci-n-a-nivel-documental-dentro-de-un-sitio-sharepoint.aspx&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;a href="http://blogs.technet.com/ccaitpro/archive/2009/06/10/snackti-de-colaboraci-n-flujos-de-trabajo-para-agilizar-procesos.aspx"&gt;http://blogs.technet.com/ccaitpro/archive/2009/06/10/snackti-de-colaboraci-n-flujos-de-trabajo-para-agilizar-procesos.aspx&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1719810" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/ffagas/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/VSTS/default.aspx">VSTS</category></item><item><title>[Cómo hacer] MsiInstallProduct return code: 1603 - Restauración de sitios de Team Foundation Server 2008</title><link>http://msmvps.com/blogs/ffagas/archive/2009/08/31/c-243-mo-hacer-msiinstallproduct-return-code-1603-restauraci-243-n-de-sitios-de-team-foundation-server-2008.aspx</link><pubDate>Mon, 31 Aug 2009 02:44:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1719768</guid><dc:creator>Francisco X. Fagas</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/ffagas/rsscomments.aspx?PostID=1719768</wfw:commentRss><comments>http://msmvps.com/blogs/ffagas/archive/2009/08/31/c-243-mo-hacer-msiinstallproduct-return-code-1603-restauraci-243-n-de-sitios-de-team-foundation-server-2008.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Descripci&amp;oacute;n del problema&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando se trabaja con Team Fundation Server 2008 se pueden distribuir los diferentes productos y componentes que forman parte de la soluci&amp;oacute;n en diferentes servidores. Algunas ocasiones&amp;nbsp;&amp;nbsp; los sitios para los team projects que se encuentran en el Team Foundation Server 2008 pueden estar en un servidor de MOSS 2007. Debido a una actualizaci&amp;oacute;n y desconocimiento del administrador de dicho servidor, en el servidor de MOSS 2007 se pueden eliminar todos los sitios del TFS 2008 y puede que estos no se encuentren respaldados, adicionalmente puede darse el caso que la actualizaci&amp;oacute;n sea hacia un servidor de 64 bits, a partir de ese momento cuando quieran subir una nueva gu&amp;iacute;a de proceso, crear un Team Project o agregar documentos les presentar&amp;aacute; un error. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Nota: Se considera para este escenario que se mantiene el nombre del servidor de SharePoint y se crea una aplicaci&amp;oacute;n web en el mismo puerto previo a la acci&amp;oacute;n de eliminaci&amp;oacute;n.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Soluci&amp;oacute;n al problema&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El procedimiento normal ser&amp;iacute;a volver a instalar las extensiones del TFS para SharePoint pero debido a que ahora el servidor es de 64 bits es necesario primero descargue desde el sitio de descarga las extensiones de TFS para Sharepoint de 64 bits (&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBD14EEA-781F-45A1-8C46-9F6BA2F68BF0&amp;amp;displaylang=en"&gt;WssExt64Bit.msi&lt;/a&gt;), de lo contrario al momento de instalar las extensiones que viene en el instalador de TFS 2008 por defecto le presentar&amp;aacute; el siguiente mensaje de error:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/4214.errorTFS_5F00_46FF1609.jpg"&gt;&lt;img height="121" width="388" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/4721.errorTFS_5F00_thumb_5F00_377C043A.jpg" alt="errorTFS" border="0" title="errorTFS" style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Y en el log del instalador les retornar&amp;aacute; el siguiente error:&lt;/p&gt;
&lt;p&gt;[08/31/09,10:59:49] Setup.exe: AddGlobalCustomProperty &lt;br /&gt;[08/31/09,10:59:49] Microsoft Visual Studio 2008 Team Foundation Server SharePoint Extensions - ENU: ***ERRORLOG EVENT*** : ERROR:SharePoint must be installed to install this product. &lt;br /&gt;[08/31/09,10:59:49] Setup.exe: AddGlobalCustomProperty &lt;br /&gt;[08/31/09,10:59:50] Microsoft Visual Studio 2008 Team Foundation Server SharePoint Extensions - ENU: ***ERRORLOG EVENT*** : ACTION FAILURE:Action ended 10:59:49: CA_LaunchCondition_STSADM_Present. Return value 3.See MSI log for details. &lt;br /&gt;[08/31/09,10:59:50] Setup.exe: AddGlobalCustomProperty &lt;br /&gt;[08/31/09,10:59:50] Microsoft Visual Studio 2008 Team Foundation Server SharePoint Extensions - ENU: ***ERRORLOG EVENT*** : ACTION FAILURE:Action ended 10:59:50: INSTALL. Return value 3.See MSI log for details. &lt;br /&gt;[08/31/09,10:59:50] Microsoft Visual Studio 2008 Team Foundation Server SharePoint Extensions - ENU: CRootComponent::Install(): Finished MSI Installation &lt;br /&gt;[08/31/09,10:59:50] Microsoft Visual Studio 2008 Team Foundation Server SharePoint Extensions - ENU: MsiInstallProduct return code: 1603.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Nota: el link hace referencia al release de octubre de 2008, procure que sea el &amp;uacute;ltimo release.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Al finalizar la instalaci&amp;oacute;n de las extensiones del TFS para SharePoint vuelva a ingresar los valores anteriores en la configuraci&amp;oacute;n de las extensiones de SharePoint indicando las siguientes urls: sitios de TFS &lt;a href="http://servidorsharepointpuerto"&gt;http://servidorsharepoint:puerto/sites&lt;/a&gt;, servidor de reportes: &lt;a href="http://servidorreportes/reports"&gt;http://servidorreportes/reports&lt;/a&gt; y report server: &lt;a href="http://servidorreportes/reportserver"&gt;http://servidorreportes/reportserver&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A partir de esta configuraci&amp;oacute;n ya podr&amp;aacute; volver a utilizar el Team Foundation Server con normalidad.&lt;/p&gt;
&lt;p&gt;Para los Team Projects existentes una soluci&amp;oacute;n ser&amp;iacute;a crear los sitios desde la administraci&amp;oacute;n central de SharePoint (&lt;em&gt;Nota: Por razones de seguridad he borrado direcciones de servidor&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;a. Desde la herramienta central de administraci&amp;oacute;n de MOSS 2007 seleccionar la aplicaci&amp;oacute;n web que contendr&amp;aacute; los sitios de los proyectos.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/8015.CrearTeamProject01_5F00_31C0EA94.jpg"&gt;&lt;img height="698" width="892" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/5710.CrearTeamProject01_5F00_thumb_5F00_6D50D387.jpg" alt="CrearTeamProject01" border="0" title="CrearTeamProject01" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/5707.CrearTeamProject02_5F00_2D0A9440.jpg"&gt;&lt;img height="701" width="896" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/8446.CrearTeamProject02_5F00_thumb_5F00_22F5F315.jpg" alt="CrearTeamProject02" border="0" title="CrearTeamProject02" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;b. Una vez seleccionada la aplicaci&amp;oacute;n se debe seleccionar crear colecci&amp;oacute;n de sitios&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/7838.CrearTeamProject03_5F00_7DC882DB.jpg"&gt;&lt;img height="701" width="896" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/8037.CrearTeamProject03_5F00_thumb_5F00_39C49EC4.jpg" alt="CrearTeamProject03" border="0" title="CrearTeamProject03" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;c. En la pantalla de creaci&amp;oacute;n de sitios escribir el mismo nombre del team project en los campos: title y url, en la secci&amp;oacute;n de la plantilla seleccionar la plantilla de su gu&amp;iacute;a de proceso y en el administrador ingresar tfssetup, dar clic en aceptar.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/6864.CrearTeamProject04_5F00_2456C38F.jpg"&gt;&lt;img height="706" width="903" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.metablogapi/0005.CrearTeamProject04_5F00_thumb_5F00_0EAC6525.jpg" alt="CrearTeamProject04" border="0" title="CrearTeamProject04" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1719768" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/ffagas/archive/tags/VSTS+2008/default.aspx">VSTS 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/TFS+2008/default.aspx">TFS 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/VSTS/default.aspx">VSTS</category></item><item><title>[VS2008 – WWF – MOSS 2007] ¿Cómo crear tareas paralelas en MOSS 2007 desde Visual Studio 2008 ?</title><link>http://msmvps.com/blogs/ffagas/archive/2009/03/16/vs2008-wwf-moss-2007-191-c-243-mo-crear-tareas-paralelas-en-moss-2007-desde-visual-studio-2008.aspx</link><pubDate>Mon, 16 Mar 2009 16:44:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1678381</guid><dc:creator>Francisco X. Fagas</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/ffagas/rsscomments.aspx?PostID=1678381</wfw:commentRss><comments>http://msmvps.com/blogs/ffagas/archive/2009/03/16/vs2008-wwf-moss-2007-191-c-243-mo-crear-tareas-paralelas-en-moss-2007-desde-visual-studio-2008.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Introducción &lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="font-size:10pt;"&gt;En&amp;#160; un artículo anterior publiqué &lt;a href="http://msmvps.com/blogs/ffagas/archive/2008/08/07/vs-2008-moss-2007-191-c-243-mo-crear-actividades-personalizadas.aspx" target="_blank"&gt;cómo crear una tarea en MOSS 2007&lt;/a&gt;, en este artículo aprenderá cómo crear tareas paralelas en MOSS 2007 utilizando &lt;em&gt;Visual Studio 2008 Team Developer&lt;/em&gt;, Visual Studio 2008 nos permite crear de manera sencilla (al estilo Microsoft) flujos de trabajo para SharePoint, para esto disponemos de plantillas de proyecto al momento de empezar con la creación del mismo, en Microsoft Office SharePoint 2007 (MOSS 2007) podemos crear tareas en serie o en paralelo, las mismas que para crearlas las podemos hacer utilizando diferentes herramientas disponibles en el toolbox de Visual Studio 2008, en esta ocasión utilizaremos el replicator para la creación de las actividades en paralelo. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Les recomiendo leer el artículo anteriormente mencionado y descargar su código ya que reutilizaremos el ejemplo anterior para la creación de las tareas. El código fuente del presente artículo lo pueden descargar de aquí:&lt;span style="font-size:10pt;"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:10pt;"&gt;&lt;a href="http://msmvps.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.MOSS2007.WorkFlows/CreacionTareas.zip"&gt;Descargar código Fuente.&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Software Requerido &lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span style="font-size:10pt;"&gt;Windows Server 2003 o superior &lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-size:10pt;"&gt;Microsoft Office SharePoint 2007 (instalación stand alone) &lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-size:10pt;"&gt;Visual Studio 2008 Team Developer&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Desarrollo &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Empiece abriendo Visual Studio 2008 y agregando un nuevo proyecto a la solución anterior.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/001_5F00_07CCB765.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="001" border="0" alt="001" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/001_5F00_thumb_5F00_74E80DED.jpg" width="583" height="407" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;De la lista de Tipos de Proyectos seleccione Workflow y luego de la lista de plantillas SharePoint 2007 Sequential Workflow, le asigna un nombre a su proyecto y de clic en Ok.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/002_5F00_57B24016.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="002" border="0" alt="002" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/002_5F00_thumb_5F00_3A103F4A.jpg" width="581" height="406" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Visual Studio 2008 iniciará un asistente, el cual en esta primera ventana deberá asignarle el nombre&amp;#160; de su flujo de trabajo que desea que aparezca en SharePoint, e ingresar la url del sitio sobre el cual va a publicar el flujo de trabajo, Visual Studio 2008 en plataformas de 32 bits le permite publicar y hacer debug de sus flujos de trabajo para MOSS 2007, para lo cual utilizará la url proporcionada en este paso.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/003_5F00_06872267.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="003" border="0" alt="003" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/003_5F00_thumb_5F00_23ACCA71.jpg" width="604" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Si usted desea puede marcar para que automáticamente se asocie el flujo de trabajo que va a desarrollar con una librería en particular, caso contrario lo puede realizar manualmente utilizando comandos. Para la asociación automática debemos tener claro que significa cada elemento listado en este paso del asistente. El flujo de trabajo se debe asociar a una lista, esta lista será quien inicie el flujo de trabajo bajo ciertas condiciones, la lista de historial me permitirá almacenar toda la información relacionada al flujo de trabajo, por ejemplo: cuando inicio el flujo, cierta actividad, cuanto terminó, quién la terminó, etc., por último tenemos que seleccionar la lista de tareas, en esta lista el flujo de trabajo creará las tareas que nosotros le indiquemos. Antes de continuar y una vez entendido lo anterior pensemos en el siguiente escenario: Tenemos una librería de documentos que cada vez que se modifique un documento este deba ser aprobado por la persona X, persona Y o persona Z (esto implica que cualquiera de dichos usuarios puede aprobar el documento, es decir, estamos hablando de un flujo de aprobación en paralelo), para que dichos usuarios se enteren de que deben aprobar el documento debemos crear tareas y asignárselas para esto utilizaremos la lista de tareas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/004_5F00_47857BFE.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="004" border="0" alt="004" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/004_5F00_thumb_5F00_2A4FAE27.jpg" width="604" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;En este paso final del asistente debemos seleccionar cuando queremos que el flujo de trabajo se inicie, basándonos en el ejemplo anterior debería seleccionar cuando el elemento cambie, pero en este caso yo quiero iniciar el flujo manualmente, razón por la cual selecciono sólo la primera acción.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/005_5F00_580D511F.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="005" border="0" alt="005" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/005_5F00_thumb_5F00_1CD97554.jpg" width="604" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Una vez terminado el asistente se abrirá el diseñador del flujo, recuerden que para la creación de una tarea utilizaremos el ejemplo publicado en el artículo anterior, por lo cual debemos a este proyecto agregar la referencia al mismo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/006_5F00_6EED1EBA.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="006" border="0" alt="006" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/006_5F00_thumb_5F00_6AB32128.jpg" width="607" height="424" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En la ventana de referencias seleccione de proyectos BasicTaskActivity.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/007_5F00_2CE4F1B3.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="007" border="0" alt="007" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/007_5F00_thumb_5F00_11CC22A5.jpg" width="471" height="387" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;En ese momento en el toolbox veremos el componente WssTaskActivity, pero antes de agregarlo debemos insertar en el flujo de trabajo el componente que realizará la creación de las tareas en paralelo, para lo cual seleccionen el componente replicator y llévenlo hacia el área de trabajo, luego seleccionen WssTaskActivity e insértenlo dentro del replicator.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/008_5F00_34EDB601.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="008" border="0" alt="008" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/008_5F00_thumb_5F00_2A00AEEC.jpg" width="604" height="392" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;La siguiente es la vista del flujo de trabajo con el replicator insertado. Le damos doble clic sobre el componente onWorkflowActivated1, para proceder a inicializar variables.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/009_5F00_582A84D9.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="009" border="0" alt="009" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/009_5F00_thumb_5F00_1B45DD3A.jpg" width="604" height="392" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Una vez realizado lo anterior, vamos al código del flujo de trabajo y defina las siguientes variables públicas:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#008000;"&gt;//Contendrá la lista de aprobadores.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; IList approversList;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#008000;"&gt;//Bandera que se utilizará para determinar si la tarea actual&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#008000;"&gt;//fue completada o no, por defecto es falso.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;bool&lt;/span&gt; isActualTaskCompleted = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&amp;#160;&lt;/pre&gt;

&lt;p&gt;En este ejemplo quemaremos en el código la lista de aprobadores, pero debemos tener en cuenta que los aprobadores los podemos obtener de cualquier objeto.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; onWorkflowActivated1_Invoked(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, ExternalDataEventArgs e)
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;{
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;   approversList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ArrayList();
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;   approversList.Add(&amp;quot;&lt;span style="color:#8b0000;"&gt;igec\\ffagas&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;   approversList.Add(&amp;quot;&lt;span style="color:#8b0000;"&gt;igec\\user1a&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;   approversList.Add(&amp;quot;&lt;span style="color:#8b0000;"&gt;igec\\user2a&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p align="justify"&gt;Una vez inicializada la lista de aprobadores regresamos a la vista de diseño del flujo de trabajo y procedemos a configurar las propiedades del replicator, lo primero que debemos hacer es vincular la variable approversList con la propiedad InitialChildData, el replicator utilizará esta lista para la creación de las actividades, veamos al replicator como un foreach, lo que implica que no debemos programar el avance al siguiente elemento de la lista, el replicator permite dos tipos de iteraciones en serie o en paralelo, por defecto está en serie, procedamos a cambiarlo a paralelo. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/010_5F00_0491AB60.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="010" border="0" alt="010" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/010_5F00_thumb_5F00_13E50D6F.jpg" width="514" height="414" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Luego, procedemos a programar los siguientes métodos del replicator, para lo cual en la lista de propiedades ingrese el nombre del método y enter, automáticamente el VS abrirá la vista de código del flujo:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; ParallelChildInitialized(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, ReplicatorChildEventArgs e)
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;{
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  &lt;span style="color:#008000;"&gt;/* Debemos hacer un cast de la actividad que está actualmente instanciada
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;     con la actividad que creamos en el proyecto anterior, para &lt;/p&gt;&lt;p&gt;     poder tener acceso 
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;     a las propiedades públicas de la misma. Estas propiedades &lt;/p&gt;&lt;p&gt;     nos permitirán asignar a un usuario,
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;     la descripción, título, ID (es un GUID), y el campo de estado de la tarea.
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  */&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  &lt;span style="color:#008000;"&gt;//Recuerde que los usuarios a los que se va a asignar la tarea se encuentran en la lista,&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  &lt;span style="color:#008000;"&gt;//entonces debe hacer referencia al dato actualmente instanciado y asignarselo al campo público de la actividad.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  (e.Activity &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; BasicTaskActivity.WssTaskActivity).strAsignadoA = e.InstanceData.ToString();
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  (e.Activity &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; BasicTaskActivity.WssTaskActivity).strDescripcion = &amp;quot;&lt;span style="color:#8b0000;"&gt;Demo Tarea Paralelas&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  (e.Activity &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; BasicTaskActivity.WssTaskActivity).strTitulo = &amp;quot;&lt;span style="color:#8b0000;"&gt;Demo Tarea Paralela&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  (e.Activity &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; BasicTaskActivity.WssTaskActivity).taskId = Guid.NewGuid();
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;  &lt;span style="color:#008000;"&gt;// Para obtener información de una columna de sharepoint la debemos instanciar por su GUID, &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;para lo cual utilizaremos las propiedades del flujo,&lt;/span&gt;
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;  &lt;span style="color:#008000;"&gt;// instanciamos la lista de tareas, luego sus campos y le pasamos como &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;parametro el nombre que se muestra en sharepoint&lt;/span&gt;
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;  &lt;span style="color:#008000;"&gt;// en este caso me interesa conocer la información del campo estado, y obtengo su ID (GUID) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;que utilizará el WssTaskActivity para obtener la información&lt;/span&gt;
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;  &lt;span style="color:#008000;"&gt;// del estado actual de la tarea &lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;  (e.Activity &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; BasicTaskActivity.WssTaskActivity).idCampoEstado = &lt;/p&gt;&lt;p&gt;workflowProperties.TaskList.Fields[&amp;quot;&lt;span style="color:#8b0000;"&gt;Estado&lt;/span&gt;&amp;quot;].Id;
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; ParallelChildCompleted(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, ReplicatorChildEventArgs e)
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;// Validamos cada vez que se complete una actividad hija del &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;replicator el estado actual de la tarea&lt;/span&gt;
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;// si la tarea fue completada, cambiamos el estado de la &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;variable isActualTaskCompleted a True.&lt;/span&gt;
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;            &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; ((e.Activity &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; BasicTaskActivity.WssTaskActivity).esTareaCompletada)
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;            {
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;                &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.isActualTaskCompleted = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;            }
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;        }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;/*Este método corresponde a la condición del replicator, &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#008000;"&gt;debe seleccionar en el tipo de condición (Until Condition)
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;código, y luego insertar el siguiente método, y le asignamos &lt;/p&gt;&lt;p&gt;el valor de la variable this.isActualTaskCompleted, con esto
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;cuando un usuario complete la tarea el flujo terminará.
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;*/&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; ParallelTasksNotCompleteCondition(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, ConditionalEventArgs e)
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;            e.Result = &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.isActualTaskCompleted;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;        }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Una vez realizado lo anterior, compilamos y ejecutamos el flujo de trabajo, esto le abrirá un navegador y deberá inicializar el flujo manualmente:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/011_5F00_70A9FC5C.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="011" border="0" alt="011" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/011_5F00_thumb_5F00_0880BDB6.jpg" width="529" height="330" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;

&lt;p&gt;De la lista de flujos de trabajo seleccionamos el que acabamos de publicar y le aparecerá que la operación de inicialización está en proceso.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/012_5F00_24CDFFD6.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="012" border="0" alt="012" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/012_5F00_thumb_5F00_0D534BA5.jpg" width="540" height="337" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;A continuación en el estado del flujo de trabajo veremos que se ha creado las tareas para los usuarios que configuramos en la lista&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/013_5F00_723A7C96.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="013" border="0" alt="013" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/013_5F00_thumb_5F00_0768823F.jpg" width="552" height="331" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Seleccionamos cualquiera de ellas y editamos su estado&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/014_5F00_78DD604C.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="014" border="0" alt="014" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/014_5F00_thumb_5F00_5FB1E047.jpg" width="554" height="332" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Seleccionamos completada. (Tenga en cuenta que si su sharepoint está en español deberá cambiar el código de la tarea personalizada), por lo siguiente:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; cambiaTarea_Invoked(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, ExternalDataEventArgs e)
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;&lt;p&gt;            &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; estado = &lt;/p&gt;&lt;p&gt;cambiaTarea_AfterProperties1.ExtendedProperties[idCampoEstado].ToString();
&lt;/p&gt;&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;            &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (estado != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;            {
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;                &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (estado.Equals(&amp;quot;&lt;span style="color:#8b0000;"&gt;Completada&lt;/span&gt;&amp;quot;))
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;                    &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.esTareaCompletada = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;            }
&lt;/pre&gt;&lt;pre style="background-color:#ffffff;margin:0em;width:100%;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;font-size:12px;"&gt;        }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/015_5F00_7141CB12.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="015" border="0" alt="015" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/015_5F00_thumb_5F00_789D8ABF.jpg" width="673" height="403" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego de completar la tarea el flujo aparecerá con un estado ya no en curso sino en Finalizado.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/016_5F00_5B67BCE8.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="016" border="0" alt="016" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/016_5F00_thumb_5F00_1DAAAF5F.jpg" width="674" height="404" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1678381" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/VSTS+2008/default.aspx">VSTS 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Personalizacion/default.aspx">Personalizacion</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Workflows/default.aspx">Workflows</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category></item><item><title>[MOSS 2007 – VS Team Test] ¿Puedo Ejecutar Pruebas Web a Sitios de SharePoint Utilizando Team Test?</title><link>http://msmvps.com/blogs/ffagas/archive/2008/11/02/moss-2007-vs-team-test-191-puedo-ejecutar-pruebas-web-a-sitios-de-sharepoint-utilizando-team-test.aspx</link><pubDate>Sun, 02 Nov 2008 05:25:45 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1652797</guid><dc:creator>Francisco X. Fagas</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/ffagas/rsscomments.aspx?PostID=1652797</wfw:commentRss><comments>http://msmvps.com/blogs/ffagas/archive/2008/11/02/moss-2007-vs-team-test-191-puedo-ejecutar-pruebas-web-a-sitios-de-sharepoint-utilizando-team-test.aspx#comments</comments><description>&lt;p align="justify"&gt;Con Visual Studio Team Test podemos ejecutar pruebas como manuales, unitarias, web, carga, etc, en este artículo les hablaré de cómo ejecutar pruebas web sobre sitios implementados con &lt;a target="_blank" href="http://office.microsoft.com/es-es/sharepointserver/FX100492003082.aspx"&gt;Microsoft Office SharePoint Server 2007 (MOSS 2007)&lt;/a&gt;, la prueba que realizaré es ingresar a un sitio básico, luego dirigirme al subsitio de documentos y abrir una librería documental, para lo cual debemos considerar que los usuarios que van a ingresar son usuarios de un directorio activo y que antes de ingresar al sitio deberán digitar sus credenciales, el sitio que vamos a probar se muestra a continuación:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject1_5F00_3B97F6A8.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject1" border="0" alt="MOSSTestProject1" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject1_5F00_thumb_5F00_5B8353A5.jpg" width="644" height="389" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Para ejecutar la prueba antes descrita vamos a empezar creando un nuevo proyecto de pruebas.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject2_5F00_456CC246.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject2" border="0" alt="MOSSTestProject2" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject2_5F00_thumb_5F00_6226375B.jpg" width="644" height="458" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Una vez creado el proyecto de pruebas, agregaremos una nueva prueba de tipo web que llamaré MossTestNav1.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject3_5F00_73B62226.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject3" border="0" alt="MOSSTestProject3" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject3_5F00_thumb_5F00_7B11E1D3.jpg" width="580" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Al momento que creamos la prueba web Visual Studio abrirá un IE para grabar la secuencia de la prueba que deseamos ejecutar (El sitio solicitará el usuario y contraseña antes de abrir el sitio)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject4_5F00_6C1A8CEC.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject4" border="0" alt="MOSSTestProject4" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject4_5F00_thumb_5F00_5B52E23E.jpg" width="644" height="390" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;(Subsitio de Documentos)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject5_5F00_585D7D8B.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject5" border="0" alt="MOSSTestProject5" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject5_5F00_thumb_5F00_548FB2EE.jpg" width="644" height="389" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;(Librería Documental)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject6_5F00_695185A1.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject6" border="0" alt="MOSSTestProject6" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject6_5F00_thumb_5F00_0B0D3866.jpg" width="644" height="389" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Al finalizar la secuencia para detener la grabación de la misma deben dar clic en Stop. Luego mandamos a ejecutar la prueba guardada con la herramienta y tendremos el siguiente resultado (Podemos observar que los 3 request retornan error y en la vista del navegador observamos el mensaje: Usted no está autorizado para ver esta página), este error se da porque no le estamos pasamos las credenciales del usuario con el que deseamos ejecutar la prueba.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject6.1_5F00_38CADB5E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject6.1" border="0" alt="MOSSTestProject6.1" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject6.1_5F00_thumb_5F00_5AF2C117.jpg" width="644" height="389" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Con Visual Studio 2008 Team Test podemos configurar data sources (orígenes de datos) para ejecutar nuestra pruebas, estos orígenes de datos para pruebas web pueden ser bases de datos, archivos csv y xml, para este caso crearé un archivo xml llamado usuarios y agregaré 4 usuarios con su respectiva contraseña:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject7_5F00_3D50C04B.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject7" border="0" alt="MOSSTestProject7" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject7_5F00_thumb_5F00_67704866.jpg" width="644" height="377" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Una vez creado el archivo xml retorno a Visual Studio y en la prueba web selecciono “Agregar Data Source” (En la imagen a continuación ver 1), luego en el asistente selecciono “XML file”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject8_5F00_2CE522C5.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject8" border="0" alt="MOSSTestProject8" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject8_5F00_thumb_5F00_5D4B816E.jpg" width="644" height="390" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;A continuación selecciono el archivo anteriormente creado.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject9_5F00_6F17EF6E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject9" border="0" alt="MOSSTestProject9" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject9_5F00_thumb_5F00_19A3AA7F.jpg" width="550" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Seleccionamos la tabla que vamos a utilizar para esta prueba y cerramos el asistente con Finalizar.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject10_5F00_6854C01E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject10" border="0" alt="MOSSTestProject10" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject10_5F00_thumb_5F00_182F61E0.jpg" width="550" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Una vez configurado el data source debemos establecer las credenciales de la prueba, para esto junto a “Agregar Data Source” existe un botón “Set Credentials”, en el cuadro de dialogo seleccionamos los campos de la tabla del data source que corresponde al nombre de usuario y contraseña.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject11_5F00_0AE8D8CD.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject11" border="0" alt="MOSSTestProject11" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject11_5F00_thumb_5F00_325FA537.jpg" width="644" height="388" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez realizadas estas configuraciones volvamos a ejecutar la prueba web, ahora podremos observar que no recibimos error y en el tab “Web Browser” vemos que se ha iniciado sesión con el primer usuario que configuramos en el archivo usuarios.xml (Nota: el usuario intranetadmin constituye para el sitio el usuario cuenta del sistema).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject11.1_5F00_35B11712.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject11.1" border="0" alt="MOSSTestProject11.1" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject11.1_5F00_thumb_5F00_180F1646.jpg" width="644" height="389" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;En el caso anterior la prueba web se ejecutó una sola vez debido a que así estaba configurado, si queremos ejecutar la misma prueba web para varios usuarios y validar el nivel de permisos de los mismos y determinar que esta viendo cada usuario de la intranet, en la ventana de resultados de la prueba web den clic sobre “Edit run settings”, a continuación se les presentará el siguiente cuadro de dialogo dobre procedemos a cambiar el número de ejecuciones de “Fixed run count (1)” a “One run per data source row”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject12_5F00_72757317.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject12" border="0" alt="MOSSTestProject12" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject12_5F00_thumb_5F00_7058744E.jpg" width="562" height="484" /&gt;&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Para finalizar, ejecutamos nuevamente la prueba web y esta vez podemos observar que se ejecuta 4 veces (debido a que tenemos 4 entradas en el data source), comparemos el resultado de la ejecución anterior (ejecución con cuenta del sistema) con la ejecución actual, en la vista del web browser nos podemos dar cuenta que con el usuario que inició sesión en la segunda ejecución corresponde a la segunda entrada del data source (user1a) y debido a que este usuario solo tiene nivel de permisos de lector no aparece ningún link de acciones administrativas como “Acciones del sitio”. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;(Resultado ejecución anterior de la prueba)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject14_5F00_22036BD7.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject14" border="0" alt="MOSSTestProject14" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject14_5F00_thumb_5F00_4FC10ECF.jpg" width="644" height="389" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;(Resultado ejecución actual de la prueba)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject13_5F00_2F95DC45.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="MOSSTestProject13" border="0" alt="MOSSTestProject13" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MOSSTestProject13_5F00_thumb_5F00_2A8378C9.jpg" width="644" height="389" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1652797" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/VSTS+2008/default.aspx">VSTS 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Team+Test/default.aspx">Team Test</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category></item><item><title>[MOSS 2007]¿ Puedo instalar WSS 3 o MOSS 2007 en Windows Server 2008 con SQL Server 2008?</title><link>http://msmvps.com/blogs/ffagas/archive/2008/09/02/moss-2007-191-puedo-instalar-wss-3-o-moss-2007-en-windows-server-2008-con-sql-server-2008.aspx</link><pubDate>Tue, 02 Sep 2008 19:16:47 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1646509</guid><dc:creator>Francisco X. Fagas</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/ffagas/rsscomments.aspx?PostID=1646509</wfw:commentRss><comments>http://msmvps.com/blogs/ffagas/archive/2008/09/02/moss-2007-191-puedo-instalar-wss-3-o-moss-2007-en-windows-server-2008-con-sql-server-2008.aspx#comments</comments><description>&lt;p&gt;Hace unos días atrás durante una reunión con comunidades me hicieron esta pregunta, pues la respuesta es muy sencilla si y la forma de instalarlo es la misma como si fuera sobre un Windows Server 2003 con SQL Server 2005, pero debes tener en cuenta los siguientes tips:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;En Windows Server 2008 debes agregar dos roles a tu servidor: Application Server y Web Server.  &lt;li&gt;Debes instalar el .Net Framework 3.5 y el Sp1 (Requerido para instalar SQL Server 2008 - mas detalle puedes encontrarlo &lt;a href="http://msmvps.com/blogs/ffagas/archive/2008/08/07/instalaci-243-n-de-sql-server-2008-rc0-en-windows-server-2008.aspx"&gt;aquí&lt;/a&gt;), si vas a utilizar a RS integrado con MOSS 2007 les recomiendo que durante la instalación de SQL Server 2008 simplemente instalen pero no configuren el RS, luego lo configurarán manualmente en base a su arquitectura física de la implementación (Deben utilizar el &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=200fd7b5-db7c-4b8c-a7dc-5efee6e19005"&gt;SQL Server 2008 Reporting Services Add-in&lt;/a&gt;. Recuerden también este &lt;a href="http://msmvps.com/blogs/ffagas/archive/2008/08/11/moss-2007-ssrs2005-componentes-de-integraci-243-n-de-sql-server-reporting-services-no-aparece-en-la-administraci-243-n-de-aplicaciones-de-la-herramienta-central-de-administraci-243-n-de-sharepoint-2007.aspx"&gt;tip&lt;/a&gt;)  &lt;li&gt;Debes instalar el WSS 3.0 o MOSS 2007 con SP1. Si tienen el instalador sin SP y el SP lo descargaron por separado, lo que deben hacer es copiar el instalador en el disco del servidor, así como el SP de WSS y MOSS, luego para cada instalador ejecuten lo siguiente:  &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;%nombre_de_instalador_sp_WSS/MOSS&lt;/strong&gt;.exe% /extract:C:\SP%WSS/MOSS%&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;*Lo que se encuentra entre %% es variable dependerá del nombre del instalador del SP y así mismo para el nombre de la carpeta donde van a extraer los archivos.&lt;/p&gt; &lt;p&gt;Finalmente copien el contenido extraido de cada SP de WSS y MOSS 2007 y peguenlo en la carpeta update del instalador de MOSS 2007.&lt;/p&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1646509" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category></item><item><title>[MOSS 2007 - VS2008] Mejores prácticas al momento de utilizar objetos de Windows SharePoint Services</title><link>http://msmvps.com/blogs/ffagas/archive/2008/08/12/moss-2007-vs2008-mejores-pr-225-cticas-al-momento-de-utilizar-objetos-de-windows-sharepoint-services.aspx</link><pubDate>Tue, 12 Aug 2008 05:10:48 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1644343</guid><dc:creator>Francisco X. Fagas</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/ffagas/rsscomments.aspx?PostID=1644343</wfw:commentRss><comments>http://msmvps.com/blogs/ffagas/archive/2008/08/12/moss-2007-vs2008-mejores-pr-225-cticas-al-momento-de-utilizar-objetos-de-windows-sharepoint-services.aspx#comments</comments><description>&lt;p&gt;Tal como comenté en un post anterior respaldando mi información me encontré con este artículo que revisé antes de presentarme a dar mi examen de certificación de desarrollo de aplicaciones con MOSS 2007 por Junio del año pasado y que durante todo este tiempo me ha sido de mucha utilidad para escribir código de manera correcta y optimizado, el artículo lo pueden encontrar &lt;a href="http://msdn.microsoft.com/en-us/library/aa973248.aspx"&gt;aquí&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.MOSS2007VS2008Mejoresprcticasalmomentode_5F00_283/MCTS_2800_rgb_29005F00_507_5F00_526_5F00_530_5F00_1076_5F00_1077_5F00_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="60" alt="MCTS(rgb)_507_526_530_1076_1077" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas.MOSS2007VS2008Mejoresprcticasalmomentode_5F00_283/MCTS_2800_rgb_29005F00_507_5F00_526_5F00_530_5F00_1076_5F00_1077_5F00_thumb.jpg" width="311" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1644343" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/VSTS+2008/default.aspx">VSTS 2008</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Best+Practice/default.aspx">Best Practice</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/MOSS+2007/default.aspx">MOSS 2007</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/ffagas/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category></item></channel></rss>