<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oscar Martin Blog 2.0</title>
	<atom:link href="http://oscarmartin.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://oscarmartin.org</link>
	<description>[ Web 2.0 &#124; Tecnología &#124; Accesibilidad &#124; Seguridad ]</description>
	<lastBuildDate>Mon, 13 May 2013 07:00:38 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Listado de permisos de usuarios de un sitio en SharePoint 2010</title>
		<link>http://oscarmartin.org/seguridad/2793/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2793</link>
		<comments>http://oscarmartin.org/seguridad/2793/#comments</comments>
		<pubDate>Mon, 13 May 2013 07:00:38 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Permisos]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[usuarios]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2793</guid>
		<description><![CDATA[Una de las ultimas cosas que me han solicitado es recuperar todos los usuarios y sus permisos de una colección de sitio o subsitio en SharePoint 2010&#8230; La forma mas rápida que se me ocurrió es la de crear un script de PowerShell para ello. Como creo que os podría ser de utilidad, lo comparto con todos vosotros: function Get-UsersPermissions([string]$portalurl, [String[]]$excludewebs, [...]]]></description>
				<content:encoded><![CDATA[<p><a  href="http://oscarmartin.org/wp-content/uploads/2011/12/powershell.png" class="thickbox no_icon" title="powershell"><img class="alignleft size-full wp-image-1911" alt="powershell" src="http://oscarmartin.org/wp-content/uploads/2011/12/powershell.png" width="125" height="125" /></a>Una de las ultimas cosas que me han solicitado es recuperar todos los usuarios y sus permisos de una colección de sitio o subsitio en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>&#8230;</p>
<p>La forma mas rápida que se me ocurrió es la de crear un script de <a  href="http://oscarmartin.org/category/powershell-2/">PowerShell</a> para ello. Como creo que os podría ser de utilidad, lo comparto con todos vosotros:</p>
<pre class="wp-code-highlight prettyprint">function Get-UsersPermissions([string]$portalurl, [String[]]$excludewebs, [string]$onesite) 
{ 
    [void][System.Reflection.Assembly]::LoadWithPartialName(&quot;Microsoft.SharePoint&quot;) 
    $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local 
	#añade la barra si no existe
    if (-not $portalurl.EndsWith(&quot;/&quot;)) { $portalurl = $portalurl + &quot;/&quot; } 
	#recorre todos los servicios de la granaja
    foreach ($spService in $farm.Services) 
	{ 
        if (!($spService -is [Microsoft.SharePoint.Administration.SPWebService])) { continue; } 
        foreach ($webApp in $spService.WebApplications) 
		{ 
            if ($webApp -is [Microsoft.SharePoint.Administration.SPAdministrationWebApplication]) { continue; } 
			$webAppUrl = $webApp.GetResponseUri(&#039;Default&#039;).AbsoluteUri 
			if ($webAppUrl.ToUpper() -eq $portalurl.ToUpper())
			{ 
				#recorre las colecciones que existen en la aplicacion web
				foreach ($site in $webApp.Sites) 
				{ 
					#si existe algun parametro 
					if (($onesite -ne $null) -and ($onesite -ne &quot;&quot;)) 
					{ 
						#verifica si se ha incluido el parametro Web
						if ($site.Url.ToUpper() -ne $onesite.ToUpper()) { continue; } 
					} 
					#recorre los sitios que existen en la coleccion
					foreach ($web in $site.AllWebs) 
					{ 
						if ($excludewebs -contains $web.Url) 
						{ 
							Write-Host &quot;Se ha excluido el sigioente sitio: &quot; $web.Url 
							continue 
						} 
						foreach ($user in $web.SiteUsers)
						{ 
							#excluye al usuario: sharepoint\system 
							if ($user.Loginname.StartsWith(&quot;SHAREPOINT\&quot;)) { continue; } 
							#recupera la informacion a mostrar
							$data = @{ 
										&quot;Coleccion&quot; = $site.Url 
										&quot;Url sitio&quot; = $web.Url 
										&quot;Nombre sitio&quot; = $web.Title 
										&quot;Usuario&quot; = $user.Loginname 
										&quot;Nombre&quot; = $user.Name 
										&quot;Roles&quot; = $user.Roles 
										&quot;Grupos&quot; = $user.Groups 
							} 
							New-Object PSObject -Property $data 
						} 
						$web.Dispose(); 
					} 
					$site.Dispose() 
				} 
			} 
		} 
	} 
}

#---------------------------------------------------------------
#Opcion 1: Listas de los usuarios y sitio del la Aplicacion Web: http://intranet, pero solo muestra los usuarios y permisos del subsitio: http://intranet/sites/test
# Get-UsersPermissions -portalurl:http://intranet/  -onesite:http://intranet/sites/test | Out-GridView
#---------------------------------------------------------------
#Opcion 2: Listas de los usuarios y sitio del la Aplicacion Web http://intranet, pero excluye los 3 sitios: /gastos, /docs y /rrhh
# Get-UsersPermissions -portalurl:http://intranet/ -excludewebs:@(&#039;http://intranet/gastos&#039;,&#039;http://intranet/docs&#039;,&#039;http://intranet/rrhh&#039;)  | Out-GridView
#---------------------------------------------------------------
#Opcion 3: Lista todas los sitios y usuarios de la Aplicacion Web: http://intranet
# Get-UsersPermissions -portalurl:http://intranet/ | Out-GridView
#---------------------------------------------------------------</pre>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/seguridad/2793/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel Services &#8211; The workbook cannot be opened</title>
		<link>http://oscarmartin.org/sharepoint-2010/excel-services-the-workbook-cannot-be-opened/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=excel-services-the-workbook-cannot-be-opened</link>
		<comments>http://oscarmartin.org/sharepoint-2010/excel-services-the-workbook-cannot-be-opened/#comments</comments>
		<pubDate>Mon, 22 Apr 2013 07:00:29 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[Excel Services]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[excel service]]></category>
		<category><![CDATA[Permisos]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2764</guid>
		<description><![CDATA[Si estas intentado abrir un archivo Excel en SharePoint 2010, a través de Excel Services (partimos que el servicio ya esta instalado en la granja) y recibes este mensaje de error: &#8220;The workbook cannot be opened&#8220;, sin duda, se trata de un problema de permisos de base de datos. Para solucionar este problema, has de [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" alt="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" width="232" height="53" />Si estas intentado abrir un archivo Excel en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, a través de Excel Services (partimos que el servicio ya esta instalado en la granja) y recibes este mensaje de error: &#8220;<strong>The workbook cannot be opened</strong>&#8220;, sin duda, se trata de un problema de permisos de base de datos.</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/04/excel_f1.jpg" class="thickbox no_icon" title="excel_f1"><img class="aligncenter size-full wp-image-2784" alt="excel_f1" src="http://oscarmartin.org/wp-content/uploads/2013/04/excel_f1.jpg" width="342" height="127" /></a></p>
<p>Para solucionar este problema, has de dar permiso de &#8220;<strong>db_owner</strong>&#8221; a la cuenta de servicio que estas usando para ejecutar Excel Services, siguiendo los siguientes pasos:</p>
<p>1) Abre el administrador de bases de datos &#8220;SQL Server Management Studio&#8221; y localiza la base de datos o bases de datos de contenido (puedes verlo en el Visor de Eventos de Windows &#8220;<strong>&lt;Content Database Name&gt;</strong>&#8221; y selecciona &#8220;<strong>Security</strong>&#8220;.</p>
<p>2) Dentro de esta sección, posicionate en &#8220;<strong>Users</strong>&#8221; y con el botón derecho, selecciona &#8220;<strong>New User &#8230;</strong>&#8221;</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/04/excel_f2.jpg" class="thickbox no_icon" title="excel_f2"><img class="aligncenter size-full wp-image-2785" alt="excel_f2" src="http://oscarmartin.org/wp-content/uploads/2013/04/excel_f2.jpg" width="382" height="305" /></a></p>
<p>3) Introducimos la cuenta de servicio que ejecuta el servicio de Excel Service (que puedes localizar en <strong>Security -&gt; Configure Service Accounts</strong>, seleccionado el pool del servicio) y le asignamos el rol de &#8220;<strong>db_owner</strong>&#8220;.</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/04/excel_f3.jpg" class="thickbox no_icon" title="excel_f3"><img class="aligncenter size-full wp-image-2786" alt="excel_f3" src="http://oscarmartin.org/wp-content/uploads/2013/04/excel_f3.jpg" width="620" height="556" /></a></p>
<p>&nbsp;</p>
<p>4) Guarda los cambios y verás como los archivos Excel ser abren correctamente en tu navegador web.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/excel-services-the-workbook-cannot-be-opened/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel Services &#8211; This workbook cannot be opened because it is not stored in an Excel Services Application trusted location</title>
		<link>http://oscarmartin.org/sharepoint-2010/excel-services-this-workbook-cannot-be-opened-because-it-is-not-stored-in-an-excel-services-application-trusted-location/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=excel-services-this-workbook-cannot-be-opened-because-it-is-not-stored-in-an-excel-services-application-trusted-location</link>
		<comments>http://oscarmartin.org/sharepoint-2010/excel-services-this-workbook-cannot-be-opened-because-it-is-not-stored-in-an-excel-services-application-trusted-location/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 07:00:57 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[Excel Services]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[excel service]]></category>
		<category><![CDATA[Trusted File Locations]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2762</guid>
		<description><![CDATA[Si estas intentado abrir un archivo Excel en SharePoint 2010, a través de Excel Services (partimos que el servicio ya esta instalado en la granja) y recibes este mensaje de error: &#8220;This workbook cannot be opened because it is not stored in an Excel Services Application trusted location&#8221; Para solucionar este problema, has de realizar [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" alt="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" width="232" height="53" />Si estas intentado abrir un archivo Excel en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, a través de Excel Services (partimos que el servicio ya esta instalado en la granja) y recibes este mensaje de error: &#8220;<strong>This workbook cannot be opened because it is not stored in an Excel Services Application trusted location</strong>&#8221;</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/04/excel_e1.jpg" class="thickbox no_icon" title="excel_e1"><img class="aligncenter size-full wp-image-2776" alt="excel_e1" src="http://oscarmartin.org/wp-content/uploads/2013/04/excel_e1.jpg" width="342" height="193" /></a></p>
<p>Para solucionar este problema, has de realizar los siguientes pasos:</p>
<p>1) Abres la Administración Central y vas a: <strong>Manage service applications -&gt; <strong>Excel Services Application (o el nombre que le hayas dado al servicio) -&gt; Trusted File Locations.</strong></strong></p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/04/excel_e2.jpg" class="thickbox no_icon" title="excel_e2"><img class="aligncenter size-full wp-image-2777" alt="excel_e2" src="http://oscarmartin.org/wp-content/uploads/2013/04/excel_e2.jpg" width="885" height="389" /></a></p>
<p>2) En esta pantalla, has de añadir la url del Web Application (como por ejemplo: http://intranet.com) y marcar la opción &#8221;<strong>Children trusted</strong>&#8221; para asegurarte que todas las bibliotecas de documentos que contengan archivos Excel, se abre correctamente en el navegador web.</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/04/excel_e3.jpg" class="thickbox no_icon" title="excel_e3"><img class="aligncenter size-full wp-image-2779" alt="excel_e3" src="http://oscarmartin.org/wp-content/uploads/2013/04/excel_e3.jpg" width="354" height="343" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/excel-services-this-workbook-cannot-be-opened-because-it-is-not-stored-in-an-excel-services-application-trusted-location/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel Services &#8211; Unable to process the request. Wait a few minutes and try performing this operation again</title>
		<link>http://oscarmartin.org/sharepoint-2010/excel-services-unable-to-process-the-request-wait-a-few-minutes-and-try-performing-this-operation-again/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=excel-services-unable-to-process-the-request-wait-a-few-minutes-and-try-performing-this-operation-again</link>
		<comments>http://oscarmartin.org/sharepoint-2010/excel-services-unable-to-process-the-request-wait-a-few-minutes-and-try-performing-this-operation-again/#comments</comments>
		<pubDate>Wed, 10 Apr 2013 07:00:36 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[Excel Services]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[cliente]]></category>
		<category><![CDATA[excel service]]></category>
		<category><![CDATA[navegador web]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2766</guid>
		<description><![CDATA[Si estas intentado abrir un archivo Excel en SharePoint 2010, a través de Excel Services (partimos que el servicio ya esta instalado en la granja) y recibes este mensaje de error: &#8220;Unable to process the request. Wait a few minutes and try performing this operation again&#8221; puedes realizar varias acciones: 1) Puedes verificar que la conexión de [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" alt="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" width="232" height="53" />Si estas intentado abrir un archivo Excel en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, a través de Excel Services (partimos que el servicio ya esta instalado en la granja) y recibes este mensaje de error: &#8220;<strong>Unable to process the request. Wait a few minutes and try performing this operation again</strong>&#8221; puedes realizar varias acciones:</p>
<p>1) Puedes verificar que la conexión de servicio con Excel Service está habilitada, para ello, en la Administración Central te vas a: <strong>Application Management -&gt; Manage Web Application -&gt; &lt;Nombre_Web_Application&gt; -&gt; Service connections</strong>.</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2013/04/excel_err1.png" class="thickbox no_icon" title="excel_err1"><img class="aligncenter size-full wp-image-2769" alt="excel_err1" src="http://oscarmartin.org/wp-content/uploads/2013/04/excel_err1.png" width="520" height="311" /></a></p>
<p>En este formulario, has de asegurarte de el servicio Excel (según lo hayas llamado cuando lo creaste), esta habilitado:</p>
<p>&nbsp;</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/04/excel_err2.png" class="thickbox no_icon" title="excel_err2"><img class="aligncenter size-full wp-image-2771" alt="excel_err2" src="http://oscarmartin.org/wp-content/uploads/2013/04/excel_err2.png" width="502" height="224" /></a></p>
<p>&nbsp;</p>
<p>Con estas verificaciones, debería funcionar correctamente el servicio y abrir tus archivos Excel en el navegador web.</p>
<p>2) Una segunda opción, es configurar la Coleccion de Sitio, para que, en vez de abrir el archivo Excel en el navegador web, te lo abra en el cliente de paquete Office. Para ello, te remito a <a  href="http://geeks.ms/blogs/mcortes/archive/2011/12/30/sharepoint-2010-forzar-la-apertura-de-documentos-en-cliente.aspx" target="_blank">este post de Mario Cortés</a> donde se detallan todos los pasos a seguir.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/excel-services-unable-to-process-the-request-wait-a-few-minutes-and-try-performing-this-operation-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parando el servicio User Profile Synchronization</title>
		<link>http://oscarmartin.org/sharepoint-2010/parando-el-servicio-user-profile-synchronization/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=parando-el-servicio-user-profile-synchronization</link>
		<comments>http://oscarmartin.org/sharepoint-2010/parando-el-servicio-user-profile-synchronization/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 07:00:40 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[Get-SPServiceInstance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Starting]]></category>
		<category><![CDATA[Stop-SPServiceInstance]]></category>
		<category><![CDATA[User Profile]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2749</guid>
		<description><![CDATA[Mas de una vez me ha pasado que el servicio &#8220;User Profile Synchronization&#8221; se ha quedado en estado &#8220;Starting&#8220;&#8230; Si en principio se ha seguido la guía de instalación y tiene los permisos adecuados, una de las soluciones podría ser la de parar dicho servicio y volverlo a arrancar&#8230; Para para el servicio &#8220;User Profile Synchronization&#8221; con PowerShell, es necesario realizar [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" alt="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" width="232" height="53" />Mas de una vez me ha pasado que el servicio &#8220;<strong>User Profile Synchronization</strong>&#8221; se ha quedado en estado &#8220;<span style="color: #339966;"><strong>Starting</strong></span>&#8220;&#8230; Si en principio se ha seguido la guía de instalación y tiene los permisos adecuados, una de las soluciones podría ser la de parar dicho servicio y volverlo a arrancar&#8230;</p>
<p>Para para el servicio &#8220;<strong>User Profile Synchronization</strong>&#8221; con PowerShell, es necesario realizar los siguientes pasos:</p>
<p>1) Obtenemos el listado de todos los Servicios de la granja o entorno de SharePoint (incluyendo su GUID)</p>
<pre class="wp-code-highlight prettyprint">Get-SPServiceInstance</pre>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/03/StopUserProfile01.png" class="thickbox no_icon" title="StopUserProfile01"><img class="aligncenter size-full wp-image-2750" alt="StopUserProfile01" src="http://oscarmartin.org/wp-content/uploads/2013/03/StopUserProfile01.png" width="667" height="450" /></a></p>
<p>2) Localizamos el GUID del servicio User Profile Synchronization y llamamos al comando Stop-SPServiceInstance:</p>
<pre class="wp-code-highlight prettyprint">Stop-SPServiceInstance [GUID_User_Profile_Synchronization]</pre>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/03/StopUserProfile02.png" class="thickbox no_icon" title="StopUserProfile02"><img class="aligncenter size-full wp-image-2751" alt="StopUserProfile02" src="http://oscarmartin.org/wp-content/uploads/2013/03/StopUserProfile02.png" width="666" height="223" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/parando-el-servicio-user-profile-synchronization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Editar plantillas de SharePoint (archivos stp) de una forma cómoda y sencilla</title>
		<link>http://oscarmartin.org/sharepoint-2007/editar-plantillas-de-sharepoint-archivos-stp-de-una-forma-comoda-y-sencilla/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=editar-plantillas-de-sharepoint-archivos-stp-de-una-forma-comoda-y-sencilla</link>
		<comments>http://oscarmartin.org/sharepoint-2007/editar-plantillas-de-sharepoint-archivos-stp-de-una-forma-comoda-y-sencilla/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 07:39:42 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[CAB]]></category>
		<category><![CDATA[iexpress]]></category>
		<category><![CDATA[makecab]]></category>
		<category><![CDATA[plantilla]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[STP]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2736</guid>
		<description><![CDATA[Es posible que te hayas visto en la necesidad de tener que editar plantillas de listas de SharePoint, para pasarlas a una granja diferente o similar&#8230; Una cosa que suele ser común es que en tu servidor de pruebas no tengas todos los Language Packs instalados, y cuando quieras usar dichas plantillas de lista, no puedas hacerlo. Para poder realizar esto, es necesitar [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" alt="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" width="232" height="53" />Es posible que te hayas visto en la necesidad de tener que editar plantillas de listas de SharePoint, para pasarlas a una granja diferente o similar&#8230; Una cosa que suele ser común es que en tu servidor de pruebas no tengas todos los Language Packs instalados, y cuando quieras usar dichas plantillas de lista, no puedas hacerlo.</p>
<p>Para poder realizar esto, es necesitar editar el manifiesto de la planilla y ponerle el idioma, que tengas instalado en tu entorno. Para editar un archivo stp existen varios métodos que comento a continuación:</p>
<p>1) Existe una forma manual de poder editarlos, cuyos pasos serian:</p>
<ol>
<li>Copia y renombra la extensión del archivo .stp por .cab</li>
<li>Extrae el contenido del archivo (yo suelo usar WinRar)</li>
<li>Abre el archivo manifest.xml en un editor de texto (Visual Studio, Notepad, Dreamweaver, etc.)</li>
<li>Modifica el archivo manifest.xml</li>
<li>Usando la linea de comando,  sitúate en el directorio/carpeta que contenga el manifiesto ya editado</li>
<li>Teclea el siguiente comando, sustituyendo el &lt;nombre_plantilla&gt; por el deseado: <strong>makecab.exe manifest.xml &lt;nombre_plantilla&gt;.cab</strong></li>
<li>Esto generará un archivo .cab que deberemos renombrar de extensión a .stp</li>
<li>Ya tenemos listo la plantilla modificada, preparada para subir a SharePoint</li>
</ol>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/03/makecab01.png" class="thickbox no_icon" title="makecab01"><img class="aligncenter size-full wp-image-2738" alt="makecab01" src="http://oscarmartin.org/wp-content/uploads/2013/03/makecab01.png" width="665" height="328" /></a></p>
<p>2) Existe otra forma mucho mas sencilla, cuyos pasos serian:</p>
<ol>
<li>Copia y renombra la extensión del archivo .stp por .cab</li>
<li>Extrae el contenido del archivo (yo suelo usar WinRar)</li>
<li>Abre el archivo manifest.xml en un editor de texto (Visual Studio, Notepad, Dreamweaver, etc.)</li>
<li>Modifica el archivo manifest.xml</li>
<li>Buscar la aplicación<strong> iexpress.exe</strong> y ejecutala</li>
<li>Sigue los pasos del wizard</li>
<li>Esto generará un archivo .cab que deberemos renombrar de extensión a .stp</li>
<li>Ya tenemos listo la plantilla modificada, preparada para subir a SharePoint</li>
</ol>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2013/03/IEXPRESS02.png" class="thickbox no_icon" title="IEXPRESS02"><img class="aligncenter size-full wp-image-2740" alt="IEXPRESS02" src="http://oscarmartin.org/wp-content/uploads/2013/03/IEXPRESS02.png" width="440" height="334" /></a></p>
<p>Este segundo paso es mucho mas cómodo si tu plantilla, contiene mas de un archivo (es decir a aparte del manifest.xml) ya que no tienes que generar ningún script para que te haga el empaquetado usando makecab.</p>
<p>Para más información sobre <strong>IExpress Wizard</strong>, puedes <a  href="http://technet.microsoft.com/en-us/library/dd346760.aspx" target="_blank">consultar esta pagina de Microsoft</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2007/editar-plantillas-de-sharepoint-archivos-stp-de-una-forma-comoda-y-sencilla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DisableLoopbackCheck en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2007/disableloopbackcheck-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=disableloopbackcheck-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2007/disableloopbackcheck-en-sharepoint-2010/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 07:00:50 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[DisableLoopbackCheck]]></category>
		<category><![CDATA[FQDN]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Windows Server]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2709</guid>
		<description><![CDATA[Uno de los problemas con el que nos podemos encontrar los desarrolladores de SharePoint 2010, es que cada vez que intentamos acceder a sitios de nuestros entornos de desarrollo o preproducción de SharePoint, que se habíamos creado previamente, nos pide en repetidas ocasiones (las tres de rigor) su usuario y contraseña antes de devolver un error [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Uno de los problemas con el que nos podemos encontrar los desarrolladores de SharePoint 2010, es que cada vez que intentamos acceder a sitios de nuestros entornos de desarrollo o preproducción de SharePoint, que se habíamos creado previamente, nos pide en repetidas ocasiones (las tres de rigor) su usuario y contraseña antes de devolver un error <strong>401.1 Access Denied</strong> y una entrada en el Visor de Eventos de Windows.</p>
<p>En principio esto no debe de ser un problema ya que ningún usuario usa directamente los servidores de la granja de SharePoint para navegar por los sitios ahí hosteados. Pero ¿y si es un servidor de desarrollo o pruebas? En estos casos es obligatorio que podamos acceder a los sitios sin que este comportamiento ocurra.</p>
<p>Este comportamiento del sistema, es una característica de seguridad introducida desde el Service Pack 1 de Windows Server 2003 y está presente hasta las versiones actuales de Windows Server 2008 R2. Básicamente lo que hace es bloquear el acceso a una Web Application usando el <strong>FQDN</strong>, si esto sucede la característica entra en acción y bloquea este acceso enviando un error <strong>401.1 Access Denied</strong>. ¿Por qué se introdujo esta característica? Pues porque existían varios ataques que se basaban en reflección para engañar a IE y hacerle creer que se estaba trabajando de manera local y así burlar muchas restricciones de seguridad.</p>
<p>¿Como podemos solucionar este problema (siempre y cuando se traten de entornos no productivos)? Existen dos métodos .. uno a través de la ejecución de un comando de PowerShell y la segunda añadiendo una clave en el Registro de Windows.</p>
<p><strong>1) Ejecución de este comando PowerShell:</strong></p>
<pre class="wp-code-highlight prettyprint">New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name &quot;DisableLoopbackCheck&quot; -value &quot;1&quot; -PropertyType dword</pre>
<p>En la siguiente imagen puede apreciarse la ejecución de este comando:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/12/DisableLoopbackCheck_03.jpg" class="thickbox no_icon" title="DisableLoopbackCheck_03"><img class="aligncenter  wp-image-2724" title="DisableLoopbackCheck_03" src="http://oscarmartin.org/wp-content/uploads/2012/12/DisableLoopbackCheck_03.jpg" alt="" width="552" height="135" /></a></p>
<p><strong>2) Modificando directamente el Registro de Windows:</strong></p>
<p>- Pincha en el botón de Inicio o presiona la tecla Windows + X (dependiendo la versión de Windows), pincha en Ejecutar, escribe: &#8220;<strong>regedit</strong>&#8221; y presiona Intro.<br />
- En el editor del Registro de Windows, localiza la siguiente clave: <strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa</strong><br />
- Pincha con el botón derecho del ratón en <strong>Lsa</strong>, selecciona nueva <strong>Valor de DWORD (32 bits)</strong></p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/12/DisableLoopbackCheck_01.jpg" class="thickbox no_icon" title="DisableLoopbackCheck_01"><img class="aligncenter size-medium wp-image-2714" title="DisableLoopbackCheck_01" src="http://oscarmartin.org/wp-content/uploads/2012/12/DisableLoopbackCheck_01-300x180.jpg" alt="" width="300" height="180" /></a><br />
- Introducimos el nombre &#8220;<strong>DisableLoopbackCheck</strong>&#8221; y presionamos Intro.<br />
- Pinchamos con el botón derecho del raton sobre esta nueva clave &#8220;<strong>DisableLoopbackCheck</strong>&#8220;, y seleccionamos Modificar.<br />
- Introducimos un &#8220;1&#8243; en el campo Información del valor  y presionamos Intro.</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/12/DisableLoopbackCheck_02.jpg" class="thickbox no_icon" title="DisableLoopbackCheck_02"><img class="aligncenter size-medium wp-image-2715" title="DisableLoopbackCheck_02" src="http://oscarmartin.org/wp-content/uploads/2012/12/DisableLoopbackCheck_02-300x184.jpg" alt="" width="300" height="184" /></a><br />
- Cerramos el editor del Registro de Windows y reiniciamos el servidor para que los cambios tengan efecto.</p>
<p>Para información mas detallada sobre este problema, podéis consultar el <a  title="KB896861" href="http://support.microsoft.com/kb/896861" target="_blank">KB896861</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2007/disableloopbackcheck-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como obtener el estado del Workflow de un Item con C#</title>
		<link>http://oscarmartin.org/sharepoint-2010/como-obtener-el-estado-del-workflow-de-un-item-con-c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-obtener-el-estado-del-workflow-de-un-item-con-c</link>
		<comments>http://oscarmartin.org/sharepoint-2010/como-obtener-el-estado-del-workflow-de-un-item-con-c/#comments</comments>
		<pubDate>Wed, 14 Nov 2012 08:03:02 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[SPWorkflowStatus]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2696</guid>
		<description><![CDATA[Una de las cosas que me ha surgido, ha sido la necesidad de obtener mediante programación, el estado de los items de una lista o biblioteca en SharePoint 2010. Es un proceso muy sencillo, ya que hay que obtener la el valor del campo que se genera en la lista, cuando se le asocia un workflow, únicamente lo [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Una de las cosas que me ha surgido, ha sido la necesidad de obtener mediante programación, el estado de los items de una lista o biblioteca en <a  href="http://oscarmartin.org/category/sharepoint-2010/" target="_blank">SharePoint 2010</a>.</p>
<p>Es un proceso muy sencillo, ya que hay que obtener la el valor del campo que se genera en la lista, cuando se le asocia un workflow, únicamente lo que debemos hacer posteriormente, es convertir el numero por un texto legible. En caso de ser necesario puedes hacer directamente la traducción en castellano de los estados, si eliminas la linea System.Enum.GetName(typeof(SPWorkflowStatus), WorkflowStatusValue) y la sustituyes por un <a  href="http://msdn.microsoft.com/es-es/library/06tc147t(v=vs.80).aspx" target="_blank">switch</a> por ejemplo&#8230;</p>
<p>Aquí os dejo una función que podrá serviros de ayuda, los unicos parametros que hay que pasar son:</p>
<p>siteUrl = Url del sitio<br />
listName = Nombre de la lista o libreria a la cual esta asociado el workflow<br />
itemId = Identificador, del item que queremos consultar<br />
wfFieldName = Nombre del campo de la lista donde se muestra el estado del workflow</p>
<p>&nbsp;</p>
<pre class="wp-code-highlight prettyprint">static string GetWorkflowStatud(string siteUrl, string listName, int itemId, string wfFieldName)
{
  string result = string.Empty;
  SPSecurity.RunWithElevatedPrivileges(delegate
  {
	try
	{
	  using (SPSite spSite = new SPSite(siteUrl))
	  {
		using (SPWeb spWeb = spSite.OpenWeb())
		{
		  //instancia la lista/biblioteca
		  SPList spList = spWeb.Lists[listName]; 
		  //recupera el item de la lista
		  SPListItem spListItem = spList.Items.GetItemById(itemId); 
		  //recupera el valor del campo del Workflow
		  Int32 WorkflowStatusValue = Convert.ToInt32(spListItem[wfFieldName]); 
		  //traduce el numero a texto
		  string WorkflowStatusString = System.Enum.GetName(typeof(SPWorkflowStatus), WorkflowStatusValue); 
		  //almacena el estado del Workflow
		  result = WorkflowStatusString;
		}
	  }
	}
	catch (Exception ex) { result = ex.Message; }
  });
  return result;
}</pre>
<p>Para más información, puedes consultar el enumerador <a  href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.workflow.spworkflowstatus.aspx" target="_blank">SPWorkflowStatus</a> con los posibles estados del workflow.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/como-obtener-el-estado-del-workflow-de-un-item-con-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminar características de la base de datos de contenido con PowerShell</title>
		<link>http://oscarmartin.org/sharepoint-2010/eliminar-caracteristicas-de-la-base-de-datos-de-contenido-con-powershell/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eliminar-caracteristicas-de-la-base-de-datos-de-contenido-con-powershell</link>
		<comments>http://oscarmartin.org/sharepoint-2010/eliminar-caracteristicas-de-la-base-de-datos-de-contenido-con-powershell/#comments</comments>
		<pubDate>Thu, 25 Oct 2012 07:00:37 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[MissingFeature]]></category>
		<category><![CDATA[Remove-SPFeature]]></category>
		<category><![CDATA[Remove-SPFeatureFromContentDB]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2672</guid>
		<description><![CDATA[Una de mis tareas es revisar el Analizador de mantenimiento de SharePoint 2010, donde quedan registrados problemas que pueden hacer que una granja de SharePoint tenga problemas de seguridad, escalabilidad, rendimiento&#8230; Uno de los problemas que he detectado y que viene siendo recurrente, es soluciones han sido eliminadas, antes de que las características correspondientes hayan sido desactivadas de colecciones de sitios [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1911" title="powershell" src="http://oscarmartin.org/wp-content/uploads/2011/12/powershell.png" alt="" width="125" height="125" /></p>
<p>Una de mis tareas es revisar el Analizador de mantenimiento de <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, donde quedan registrados problemas que pueden hacer que una granja de SharePoint tenga problemas de seguridad, escalabilidad, rendimiento&#8230;</p>
<p>Uno de los problemas que he detectado y que viene siendo recurrente, es soluciones han sido eliminadas, antes de que las características correspondientes hayan sido desactivadas de colecciones de sitios y sitios.</p>
<p>Este problema queda registrado en el  Analizador de mantenimiento, con la categoría a nivel de granja: &#8221;<strong>Missing server side dependencies</strong>&#8220;.</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorDependencias.png" class="thickbox no_icon" title="ErrorDependencias"><img class="aligncenter  wp-image-2674" title="ErrorDependencias" src="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorDependencias.png" alt="" width="539" height="27" /></a></p>
<p style="text-align: left;">Dentro de esta categoría, puedes encontrar registros como el siguiente, donde se detallo el problema:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorDependencias01.png" class="thickbox no_icon" title="ErrorDependencias01"><img class="aligncenter  wp-image-2678" title="ErrorDependencias01" src="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorDependencias01.png" alt="" width="578" height="77" /></a></p>
<blockquote>
<p style="text-align: left;">[MissingFeature] Database [_WSS_DSI01] has reference(s) to a missing feature: Id = [e8389ec7-70fd-4179-a1c4-6fcb4342d7a0]. The feature with Id e8389ec7-70fd-4179-a1c4-6fcb4342d7a0 is referenced in the database [_WSS_DSI01], but is not installed on the current farm. The missing feature may cause upgrade to fail. Please install any solution which contains the feature and restart upgrade if necessary.</p>
</blockquote>
<p style="text-align: left;">Este mensaje de error indica un nombre de base de datos de contenido (_WSS_DSI01) y el identificador de la característica (e8389ec7-70fd-4179-a1c4-6fcb4342d7a0), lo malo es que este error, no informa sobre los sitios o colecciones de sitios donde la característica existe y además, aunque supiéramos donde se ha activado esta característica, no es posible desde el interfaz de usuario desactivarla, ya que dicha solución se ha eliminado de la granja.</p>
<p style="text-align: left;">El siguiente script de <a  href="http://oscarmartin.org/category/powershell-2/">PowerShell</a>, nos informa de que sitios o colecciones de sitio de la base de datos de contenido, contienen la referencia a esta característica y fuerza la desactivación de de esta.</p>
<pre class="wp-code-highlight prettyprint">function Remove-SPFeatureFromContentDB($ContentDb, $FeatureId, [switch]$ReportOnly)
{
    $db = Get-SPDatabase | where { $_.Name -eq $ContentDb }
    [bool]$report = $false
    if ($ReportOnly) { $report = $true }
    $db.Sites | ForEach-Object 
    {
        Remove-SPFeature -obj $_ -objName &quot;site collection&quot; -featId $FeatureId -report $report
        $_ | Get-SPWeb -Limit all | ForEach-Object 
        {
            Remove-SPFeature -obj $_ -objName &quot;site&quot; -featId $FeatureId -report $report
        }
    }
}

function Remove-SPFeature($obj, $objName, $featId, [bool]$report)
{
    $feature = $obj.Features[$featId]
    if ($feature -ne $null) 
    {
        if ($report) 
        {
            write-host &quot;Feature found in&quot; $objName &quot;:&quot; $obj.Url -foregroundcolor Red
        }
        else
        {
            try 
            {
                $obj.Features.Remove($feature.DefinitionId, $true)
                write-host &quot;Feature successfully removed from&quot; $objName &quot;:&quot; $obj.Url -foregroundcolor Red
            }
            catch 
            {
                write-host &quot;There has been an error trying to remove the feature:&quot; $_
            }
        }
    }
    else 
    {
        #write-host &quot;Feature ID specified does not exist in&quot; $objName &quot;:&quot; $obj.Url
    }
}</pre>
<p>&nbsp;</p>
<p>Si únicamente queremos obtener el listado de sitios y colecciones de sitios, donde se referencia esta característica, deberás utilizando de la siguiente forma:</p>
<pre class="wp-code-highlight prettyprint">Remove-SPFeatureFromContentDB -ContentDB &quot;_WSS_DSI01&quot; -FeatureId &quot;e8389ec7-70fd-4179-a1c4-6fcb4342d7a0&quot; –ReportOnly</pre>
<p>&nbsp;</p>
<p>Si por el contrario, además de obtener el listado, deseas eliminar las referencias de la base de dato de contenido, deberás utilizarlo como anteriormente, el único cambio es que has de eliminar el parámetro &#8221;–ReportOnly&#8221;:</p>
<pre class="wp-code-highlight prettyprint">Remove-SPFeatureFromContentDB -ContentDB &quot;_WSS_DSI01&quot; -FeatureId &quot;e8389ec7-70fd-4179-a1c4-6fcb4342d7a0&quot;</pre>
<p>&nbsp;</p>
<p>Una vez hayas eliminado todas las referencias erróneas, es necesario volver a analizar  la categoría: &#8220;Missing server side dependencies&#8221; dentro del Analizador de mantenimiento, para comprobar que los errores han desaparecido.</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorDependencias02.png" class="thickbox no_icon" title="ErrorDependencias02"><img class="aligncenter size-full wp-image-2692" title="ErrorDependencias02" src="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorDependencias02.png" alt="" width="418" height="127" /></a></p>
<p>Referencia: <a  href="http://get-spscripts.com/2011/06/removing-features-from-content-database.html">get-spscripts.com</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/eliminar-caracteristicas-de-la-base-de-datos-de-contenido-con-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consultar los logs de ULS de SharePoint 2010 en SQL Server</title>
		<link>http://oscarmartin.org/sharepoint-2010/consultar-los-logs-de-uls-de-sharepoint-2010-en-sql-server/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=consultar-los-logs-de-uls-de-sharepoint-2010-en-sql-server</link>
		<comments>http://oscarmartin.org/sharepoint-2010/consultar-los-logs-de-uls-de-sharepoint-2010-en-sql-server/#comments</comments>
		<pubDate>Mon, 15 Oct 2012 06:00:00 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Diagnostic Data Provider]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[ULS]]></category>
		<category><![CDATA[Web Analytics]]></category>
		<category><![CDATA[WSS_Logging]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2654</guid>
		<description><![CDATA[Es posible que se os haya dado el caso de tener que consultar los logs de SharePoint 2010 conocidos como Unified Logging System (ULS), en entornos formados por grandes granjas de servidores&#8230; Este proceso en este caso se convierte en algo tedioso, si no tienes forma de identificar en que servidor físico estas haciendo la petición, para consultar su Correlation [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Es posible que se os haya dado el caso de tener que consultar los logs de <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a> conocidos como <strong>Unified Logging System (ULS),</strong> en entornos formados por grandes granjas de servidores&#8230; Este proceso en este caso se convierte en algo tedioso, si no tienes forma de identificar en que servidor físico estas haciendo la petición, para consultar su Correlation ID.</p>
<p>Antes de nada indicar que Microsoft recomienda no acceder directamente a la información de la plataforma, desde la base de datos, sino que debe hacerse a través del modelo de objetos de SharePoint. Este seria el único caso excepcional, donde podemos acceder directamente a través de consultas SQL.</p>
<p><a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, a nivel de granja crea una base de datos llamada <strong>WSS_Logging</strong>, donde almacena toda la información de la plataforma SharePoint, como por ejemplo: información que envía al visor de eventos de Windows, información de los contadores de rendimiento, inventario de los sitios existentes, los logs de ULS&#8230; eso si <strong>con un periodo de antigüedad de 14 días</strong>, toda información que pase de ese tiempo sera eliminada.</p>
<p>La información de esta base de datos, también es usada para consolidar los datos de Web Analytics a través de los jobs <strong>Microsoft SharePoint Foundation Usage Data Import</strong> y <strong>Microsoft SharePoint Foundation Usage Data Processing</strong>.</p>
<p>También es importante remarcar, que la información se vuelca desde la granja a la tabla <strong>WSS_Logging</strong>, a través de varios<strong> timer job que se ejecuta cada varios minutos</strong> (este valor es diferente para cada uno de ellos). Aquí tenéis el listado de jobs que vuelca información a esta base de datos (estos datos pueden consultarse en la Administración Central):</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/ULSSql_01.jpg" class="thickbox no_icon" title="ULSSql_01"><img class="aligncenter size-full wp-image-2656" title="ULSSql_01" src="http://oscarmartin.org/wp-content/uploads/2012/10/ULSSql_01.jpg" alt="" width="428" height="178" /></a></p>
<p>El job en concreto, que actualiza la información en el ULS es: <strong>Diagnostic Data Provider: Trace Log</strong> y se ejecuta por defecto<strong> cada 10 minutos</strong> y esta es su configuración:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/ULSSql_03.jpg" class="thickbox no_icon" title="ULSSql_03"><img class="aligncenter  wp-image-2658" title="ULSSql_03" src="http://oscarmartin.org/wp-content/uploads/2012/10/ULSSql_03.jpg" alt="" width="500" height="184" /></a></p>
<p>Si, como comentábamos anteriormente, queremos acceder a la misma información que existe en los logs de SharePoint, directamente, deberemos realizar consultas sobre la vista: <strong>[dbo].[ULSTraceLog]</strong>. Es importante remarcar que debes utilizar las vistas y no las tablas para realizar las consultas.</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/ULSSql_02.jpg" class="thickbox no_icon" title="ULSSql_02"><img class="aligncenter size-full wp-image-2657" title="ULSSql_02" src="http://oscarmartin.org/wp-content/uploads/2012/10/ULSSql_02.jpg" alt="" width="282" height="625" /></a></p>
<p>Los campos de esta vista son:<strong> [PartitionId], [RowId], [LogTime], [MachineName], [ProcessID], [ProcessName], [ThreadID], [Area], [Category], [Level], [EventID], [Message], [CorrelationId], [RowCreatedTime]</strong>. Estos campos son similares a la informacion que se almacenan en los archivos de ULS.</p>
<p>Como veis existe el campo  [CorrelationId] por el cual vamos a conseguir filtrar los datos, para cotar la información.</p>
<p>De este modo, podrás localizar registros de logs sin tener que buscar físicamente en varios archivos ULS, a través de la granja&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/consultar-los-logs-de-uls-de-sharepoint-2010-en-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear items con servicios REST de diferentes tipos de contenido</title>
		<link>http://oscarmartin.org/sharepoint-2010/crear-items-con-servicios-rest-de-diferentes-tipos-de-contenido/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=crear-items-con-servicios-rest-de-diferentes-tipos-de-contenido</link>
		<comments>http://oscarmartin.org/sharepoint-2010/crear-items-con-servicios-rest-de-diferentes-tipos-de-contenido/#comments</comments>
		<pubDate>Mon, 08 Oct 2012 06:00:22 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[content-type]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2640</guid>
		<description><![CDATA[Otra duda que se nos ha planteado es la creación de items en una lista o biblioteca de diferentes tipos de contenido utilizando servicios REST en  SharePoint 2010. Previamente ya habíamos visto como Listar, añadir, modificar y borrar información con REST en SharePoint 2010, pero partíamos que la lista o biblioteca solo tenia un tipo de contenido por defecto. Ahora se nos plantea [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Otra duda que se nos ha planteado es la creación de items en una lista o biblioteca de diferentes tipos de contenido utilizando servicios REST en  <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>.</p>
<p>Previamente ya habíamos visto como <a  href="http://oscarmartin.org/sharepoint-2010/listar-anadir-modificar-y-borrar-informacion-con-rest-en-sharepoint-2010/">Listar, añadir, modificar y borrar información con REST en SharePoint 2010</a>, pero partíamos que la lista o biblioteca solo tenia un tipo de contenido por defecto. Ahora se nos plantea un complicación mas, que es crear un ítem de un tipo de contenido concreto.</p>
<p>Suponemos que tenemos la lista &#8220;DemoList&#8221; a la cual tiene el tipo de contenido por defecto &#8220;Elemento&#8221; y le hemos añadido un segundo tipo de contenido llamado &#8220;Anuncio&#8221;.</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/contenttypeREST_01.jpg" class="thickbox no_icon" title="contenttypeREST_01"><img class="aligncenter  wp-image-2643" title="contenttypeREST_01" src="http://oscarmartin.org/wp-content/uploads/2012/10/contenttypeREST_01.jpg" alt="" width="454" height="140" /></a></p>
<p>Ahora queremos añadir un nuevo item de tipo &#8220;Anuncio&#8221;&#8230; lo que deberíamos hacer es definir ese nuevo item y especificar su tipo de contenido:</p>
<pre class="wp-code-highlight prettyprint">static void CreateDataContentType()
{
	//recupera la informacion del servicio 
	DevPortalHomeDataContext dataContext = new DevPortalHomeDataContext(new Uri(&quot;http://servidor/_vti_bin/listdata.svc/&quot;));
	dataContext.Credentials = CredentialCache.DefaultNetworkCredentials; 
	//crea y define un nuevo item en la lista DemoList (definimos el Content Type)
	DemoListItem demoListItem = new DemoListItem()
	{
		ContentType = &quot;Announcement&quot;,
		Title = &quot;Registro de tipo contenido Anuncio&quot;,
		Cuerpo = &quot;Cuerpo del anuncio&quot;
	};
	//añade el item a la lista
	dataContext.AddToDemoList(demoListItem);
	dataContext.SaveChanges();
	Console.WriteLine(&quot;Registro creado correctamente&quot;);
}</pre>
<p>En el caso de no especificar el campo ContentType, SharePoint asume que el nuevo item, es del tipo de contenido predeterminado.</p>
<p>En la siguiente imagen se puede apreciar, como el nuevo registro añadido con esta función, es de tipo &#8220;Anuncio&#8221;:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/contenttypeREST_02.jpg" class="thickbox no_icon" title="contenttypeREST_02"><img class="aligncenter  wp-image-2646" title="contenttypeREST_02" src="http://oscarmartin.org/wp-content/uploads/2012/10/contenttypeREST_02.jpg" alt="" width="470" height="108" /></a></p>
<p> Es importante saber que has de conocer los posibles tipos de contenido de la lista en cuestión, ya que no hay forma de saber (ni siquiera con los metadatos: <strong>http://servidor/_vti_bin/listdata.svc/$metadata</strong>) de los posibles valores del campo: <em>&lt;Property Name=&#8221;TipoDeContenido&#8221; Type=&#8221;Edm.String&#8221; Nullable=&#8221;true&#8221; /&gt;</em>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/crear-items-con-servicios-rest-de-diferentes-tipos-de-contenido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como subir documentos con el servicio REST en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/como-subir-documentos-con-el-servicio-rest-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-subir-documentos-con-el-servicio-rest-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/como-subir-documentos-con-el-servicio-rest-en-sharepoint-2010/#comments</comments>
		<pubDate>Fri, 05 Oct 2012 06:00:15 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SetSaveStream]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2620</guid>
		<description><![CDATA[Otra de las funcionalidades clave, con respecto a uso de servicios REST en SharePoint 2010, y siguiendo con el post: Listar, añadir, modificar y borrar información con REST en SharePoint 2010, es la posibilidad de subir un documento, a una biblioteca de documentos. Esta funcionalidad, debe realizarse desde un cliente (en este caso voy a hacerlo desde una aplicación de [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Otra de las funcionalidades clave, con respecto a uso de servicios REST en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, y siguiendo con el post: <a  href="http://oscarmartin.org/sharepoint-2010/listar-anadir-modificar-y-borrar-informacion-con-rest-en-sharepoint-2010">Listar, añadir, modificar y borrar información con REST en SharePoint 2010</a>, es la posibilidad de subir un documento, a una biblioteca de documentos.</p>
<p>Esta funcionalidad, debe realizarse desde un cliente (en este caso voy a hacerlo desde una aplicación de consola). Parto de la anterior aplicación que montamos en mi <a  href="http://oscarmartin.org/sharepoint-2010/listar-anadir-modificar-y-borrar-informacion-con-rest-en-sharepoint-2010">anterior post</a>,  lo único que vamos a realizar es añadirle un método más, parar poder subir documentos.</p>
<p>Este seria el método:</p>
<pre class="wp-code-highlight prettyprint">static void UploadDocument()
{
	using (FileStream file = File.Open(@&quot;C:\TEMP\Documento.txt&quot;, FileMode.Open))
	{
		//recupera la informacion del servicio 
		DevPortalHomeDataContext dataContext = new DevPortalHomeDataContext(new Uri(&quot;http://servidor/_vti_bin/listdata.svc/&quot;));
		dataContext.Credentials = CredentialCache.DefaultNetworkCredentials; 
		//declara las caracteristicas del el documento
		string path = &quot;/Documents/Documento.txt&quot;;
		string Name = &quot;Documento&quot;;
		string contentType = &quot;plain/text&quot;;
		string Title = &quot;Documento&quot;;
		//crea el documento
		DocumentsItem documentItem = new DocumentsItem()
		{
			ContentType = contentType,
			Name = Name,
			Path = path,
			Title = Title
		};
		//sube el documento al la biblioteca
		dataContext.AddToDocuments(documentItem);
		dataContext.SetSaveStream(documentItem, file, false, contentType, path);
		dataContext.SaveChanges();
		Console.WriteLine(&quot;Documento subido correctamente&quot;);
	} 
}</pre>
<p>Para su correcto funcionamiento, hay que crear un archivo de texto plano en C:\TEMP\ llamado Documento.txt.</p>
<p>Se puede añadir para un correcto funcionamiento de la aplicación, control de excepciones&#8230;   ya que si existe algún problema, se produzca una excepción de tipo <strong>System.Data.Services.Client.DataServiceRequestException</strong>.</p>
<p>Nota: El método <a  href="http://msdn.microsoft.com/es-es/library/system.data.services.client.dataservicecontext.setsavestream(v=vs.100).aspx" target="_blank">DataServiceContext.SetSaveStream</a> únicamente está accesible desde el Framework 4.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/como-subir-documentos-con-el-servicio-rest-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listar, añadir, modificar y borrar información con REST en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/listar-anadir-modificar-y-borrar-informacion-con-rest-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=listar-anadir-modificar-y-borrar-informacion-con-rest-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/listar-anadir-modificar-y-borrar-informacion-con-rest-en-sharepoint-2010/#comments</comments>
		<pubDate>Thu, 04 Oct 2012 06:00:11 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2572</guid>
		<description><![CDATA[Una de las ventajas que tiene SharePoint, es el uso de servicios con protocolos estándares para poder consumir información desde cualquier plataforma&#8230; Este es el caso de REpresentational State Transfer (REST),  que técnicamente no es un protocolo, pero puede definirse como un modelo de diseño de Servicio Web basado en XML sobre HTTP. ¿Como podemos usar servicios REST en SharePoint 2010? [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Una de las ventajas que tiene SharePoint, es el uso de servicios con protocolos estándares para poder consumir información desde cualquier plataforma&#8230; Este es el caso de <a  href="http://es.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">REpresentational State Transfer (REST)</a>,  que técnicamente no es un protocolo, pero puede definirse como un modelo de diseño de Servicio Web basado en XML sobre HTTP.</p>
<p>¿Como podemos usar servicios REST en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>? Si tenemos un sitio de SharePoint, podemos acceder a su contenido, a través de  <strong>ADO.NET Data Services</strong>, lo único que debemos hacer es poner en el navegador la siguiente url: <strong><em>http://&lt;servidor&gt;/_vti_bin/listdata.svc/</em></strong> para ver el listado de todas las entidades con las que podemos interactuar.</p>
<p>En caso de que tengáis problemas para recuperar esta información, podéis consultar este post: <a  href="http://oscarmartin.org/sharepoint-2010/no-se-puede-cargar-idataserviceupdateprovider-usando-rest-en-sharepoint-2010" target="_blank">No se puede cargar IDataServiceUpdateProvider usando REST en SharePoint 2010</a>.</p>
<p>Es posible navegar entre las entidades, incluyendo en la url el nombre de la entidad, como por ejemplo, del listado de objetos que tenemos en este sitio:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/CodingREST_01.jpg" class="thickbox no_icon" title="CodingREST_01"><img class="aligncenter  wp-image-2580" title="CodingREST_01" src="http://oscarmartin.org/wp-content/uploads/2012/10/CodingREST_01.jpg" alt="" width="407" height="306" /></a></p>
<p>Podríamos visualizar los items de la lista DemoList accediendo a la url:</p>
<ul>
<li><em><strong>http://&lt;servidor&gt;/_vti_bin/listdata.svc/DemoList</strong></em></li>
</ul>
<p>Es necesario conocer los metadatos de la entidad, para realizar consultas mas complejas&#8230;</p>
<ul>
<li><em><strong>http://&lt;servidor&gt;/_vti_bin/listdata.svc/$metadata</strong></em></li>
</ul>
<p>Si queremos recuperar la información del primer item de esta lista, podemos obtenerlo de la siguiente forma: <em><strong> </strong></em></p>
<ul>
<li><em><strong>http://&lt;servidor&gt; </strong><strong>/_vti_bin/listdata.svc/DemoList(1)</strong></em></li>
</ul>
<p><em><strong></strong></em><em>Si queremos únicamente devolver el titulo del item, solo tienes que especificar el nombre del campo:</em></p>
<ul>
<li><em><strong>http://&lt;servidor&gt;/_vti_bin/listdata.svc/DemoList(1)/Título</strong></em></li>
</ul>
<p><em><strong></strong></em>También podemos hacer filtros, como por ejemplo, con el titulo del item:</p>
<ul>
<li><em><strong>http://&lt;servidor&gt;/_vti_bin/listdata.svc/DemoList?$filter=Título eq &#8216;Otro nuevo registro&#8217; </strong></em></li>
</ul>
<div>Incluso podemos ordenar la información:</div>
<div>
<ul>
<li><em><strong>http://&lt;servidor&gt;/_vti_bin/listdata.svc/DemoList?$orderby=Título</strong></em></li>
</ul>
</div>
<p>&nbsp;</p>
<p>Si preferimos consumir este servicio desde una aplicación .NET es tan sencillo como:</p>
<p style="padding-left: 30px;"><strong>1)</strong> Desde Visual Studio, creas un nuevo proyecto de tipo &#8220;Console Application&#8221;</p>
<p style="padding-left: 30px;"><strong>2)</strong> Añades una referencia al servicio REST, es decir con el botón derecho sobre el proyecto pulsas &#8220;Add Service Reference&#8230;&#8221; y añades la url del servicio:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/CodingREST_02.jpg" class="thickbox no_icon" title="CodingREST_02"><img class="aligncenter  wp-image-2581" title="CodingREST_02" src="http://oscarmartin.org/wp-content/uploads/2012/10/CodingREST_02.jpg" alt="" width="440" height="356" /></a></p>
<p style="padding-left: 30px;"><strong>3)</strong> Dependiendo de la acción que queramos realizar, podemos usar cualquiera de los siguientes métodos, que gracias a LYNQ podemos trabajar con la información:</p>
<p>Listado de items de una lista:</p>
<pre class="wp-code-highlight prettyprint">static void GetData()
{
	//recupera la informacion del servicio 
	DevPortalHomeDataContext dataContext = new DevPortalHomeDataContext(new Uri(&quot;http://servidor/_vti_bin/listdata.svc/&quot;));
	dataContext.Credentials = CredentialCache.DefaultNetworkCredentials; 
	//recupera el listado de items de la lista DemoList
	var result = from items in dataContext.DemoList select new { Title = items.Title, };
	foreach (var item in result)
	Console.WriteLine(item);
}</pre>
<p>Creación de un nuevo item en una lista:</p>
<pre class="wp-code-highlight prettyprint">static void CreateData()
{
	//recupera la informacion del servicio 
	DevPortalHomeDataContext dataContext = new DevPortalHomeDataContext(new Uri(&quot;http://servidor/_vti_bin/listdata.svc/&quot;));
        dataContext.Credentials = CredentialCache.DefaultNetworkCredentials; 
	//crea un nuevo item en la lista DemoList
	DemoListItem demoListItem = new DemoListItem();
	demoListItem.Title = &quot;Registro REST&quot;;
	dataContext.AddToDemoList(demoListItem);
	dataContext.SaveChanges();
	Console.WriteLine(&quot;Registro creado correctamente&quot;);
}</pre>
<p>Actualización de un item existente en una lista:</p>
<pre class="wp-code-highlight prettyprint">static void UpdateData()
{
	//recupera la informacion del servicio 
	DevPortalHomeDataContext dataContext = new DevPortalHomeDataContext(new Uri(&quot;http://servidor/_vti_bin/listdata.svc/&quot;)); 
        dataContext.Credentials = CredentialCache.DefaultNetworkCredentials; 
	//modifica un item existente en la lista DemoList
	DemoListItem demoListItem = dataContext.DemoList.Where(i =&amp;gt; i.Title == &quot;Registro REST&quot;).FirstOrDefault();
	demoListItem.Title = &quot;Registro REST - modificado&quot;;
	dataContext.UpdateObject(demoListItem);
	dataContext.SaveChanges();
	Console.WriteLine(&quot;Registro modificado correctamente&quot;);
}</pre>
<p>Eliminacion de un item de una lista:</p>
<pre class="wp-code-highlight prettyprint">static void DeleteData()
{
	//recupera la informacion del servicio 
	DevPortalHomeDataContext dataContext = new DevPortalHomeDataContext(new Uri(&quot;http://servidor/_vti_bin/listdata.svc/&quot;)); 
        dataContext.Credentials = CredentialCache.DefaultNetworkCredentials; 
	//borra el item existente en la lista DemoList
	DemoListItem demoListItem = dataContext.DemoList.Where(i =&amp;gt; i.Title == &quot;Registro REST - modificado&quot;).FirstOrDefault();
	dataContext.DeleteObject(demoListItem);
	dataContext.SaveChanges();
	Console.WriteLine(&quot;Registro borrado correctamente&quot;);
}</pre>
<p>&nbsp;</p>
<p>Aquí tenéis el resultado de la ejecución de estos métodos:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/CodingREST_03.jpg" class="thickbox no_icon" title="CodingREST_03"><img class="aligncenter  wp-image-2598" title="CodingREST_03" src="http://oscarmartin.org/wp-content/uploads/2012/10/CodingREST_03.jpg" alt="" width="404" height="203" /></a></p>
<p>Para mas información sobre el servicio REST en SharePoint 2010 podéis consultar la pagina de MSDN: <a  href="http://msdn.microsoft.com/es-es/library/ff521587.aspx" target="_blank">Interfaz de REST de SharePoint Foundation</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/listar-anadir-modificar-y-borrar-informacion-con-rest-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No se puede cargar IDataServiceUpdateProvider usando REST en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/no-se-puede-cargar-idataserviceupdateprovider-usando-rest-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=no-se-puede-cargar-idataserviceupdateprovider-usando-rest-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/no-se-puede-cargar-idataserviceupdateprovider-usando-rest-en-sharepoint-2010/#comments</comments>
		<pubDate>Wed, 03 Oct 2012 06:00:05 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[IDataServiceUpdateProvider]]></category>
		<category><![CDATA[KB976126]]></category>
		<category><![CDATA[KB976127]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2552</guid>
		<description><![CDATA[Al intentar utilizar los servicios REpresentational State Transfer (REST) en SharePoint 2010, nos encontramos con el siguiente error, como se muestra en la siguiente imagen: Could not load type ‘System.Data.Services.Providers.IDataServiceUpdateProvider’ from assembly ‘System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′. Lo primero que hice al ver este error, es ver si en la GAC había una entrada del ensamblado: System.Data.Service&#8230; y ahí estaba, con [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;"><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Al intentar utilizar los servicios <a  href="http://es.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">REpresentational State Transfer (REST)</a> en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, nos encontramos con el siguiente error, como se muestra en la siguiente imagen:</p>
<p><em><strong>Could not load type ‘System.Data.Services.Providers.IDataServiceUpdateProvider’ from assembly ‘System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′.</strong></em></p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorREST_01.jpg" class="thickbox no_icon" title="ErrorREST_01"><img class="aligncenter  wp-image-2555" title="ErrorREST_01" src="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorREST_01.jpg" alt="" width="466" height="239" /></a></p>
<p>Lo primero que hice al ver este error, es ver si en la GAC había una entrada del ensamblado: <strong>System.Data.Service</strong>&#8230; y ahí estaba, con la versión: 3.5.30729.1.</p>
<p>Después de buscar un rato por la Red, vi que había un par de parches que solucionaba este problema, concretamente el <a  href="http://support.microsoft.com/kb/976127/en-us" target="_blank">KB976127</a> y el <a  href="http://support.microsoft.com/kb/976126" target="_blank">KB976126</a>, los cuales actualizan el <strong>ADO.NET Data Services</strong> para poder consumir servicios <strong>REST</strong> en el .NET Framework 3.5, el primero para los sistemas operativos: Windows 7 y Windows Server 2008 R2 y el segundo para: Windows 2000, Windows Server 2003, Windows XP, Windows Vista and Windows Server 2008.</p>
<p>Tras la instalación del parche adecuado, verificamos que los servicios, vuelven a funcionar correctamente, accediendo por ejemplo a <em>http://&lt;servidor&gt;/_vti_bin/listdata.svc/</em>:</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorREST_02.jpg" class="thickbox no_icon" title="ErrorREST_02"><img class="aligncenter size-full wp-image-2559" title="ErrorREST_02" src="http://oscarmartin.org/wp-content/uploads/2012/10/ErrorREST_02.jpg" alt="" width="470" height="433" /></a></p>
<p>Puedes descargar los parches (dependiendo del sistema operativo que estés usando):</p>
<ul>
<li><a  href="http://www.microsoft.com/en-us/download/details.aspx?id=2343" target="_blank">ADO.NET Data Services Update for .NET Framework 3.5 SP1 for Windows 7 and Windows Server 2008 R2</a></li>
<li><a  href="http://www.microsoft.com/en-us/download/details.aspx?id=5121" target="_blank">ADO.NET Data Services Update for .NET Framework 3.5 SP1 for Windows 2000, Windows Server 2003, Windows XP, Windows Vista and Windows Server 2008</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/no-se-puede-cargar-idataserviceupdateprovider-usando-rest-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sincronizar un sitio de SharePoint Server 2007 con SharePoint Workspace 2010</title>
		<link>http://oscarmartin.org/sharepoint-2007/sincronizar-un-sitio-de-sharepoint-server-2007-con-sharepoint-workspace-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sincronizar-un-sitio-de-sharepoint-server-2007-con-sharepoint-workspace-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2007/sincronizar-un-sitio-de-sharepoint-server-2007-con-sharepoint-workspace-2010/#comments</comments>
		<pubDate>Mon, 01 Oct 2012 07:00:58 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint Workspace]]></category>
		<category><![CDATA[Groove]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Workspace]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2535</guid>
		<description><![CDATA[Hola, una de las preguntas que me han realizado es como se posible sincronizar con SharePoint Workspace 2010 un sitio de SharePoint 2007. Este es un proceso muy sencillo, ya que Microsoft ha mantenido la compatibilidad con las versiones antes del producto, aunque es algo diferente al proceso de sincronización habitual. Si intentamos abrir un sitio de SharePoint [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-2536" title="workspace_2010" src="http://oscarmartin.org/wp-content/uploads/2012/09/workspace_2010.png" alt="" width="79" height="79" />Hola, una de las preguntas que me han realizado es como se posible sincronizar con <strong>SharePoint Workspace 2010</strong> un sitio de <a  href="http://oscarmartin.org/category/sharepoint-2007/">SharePoint 2007</a>.</p>
<p>Este es un proceso muy sencillo, ya que <strong>Microsoft</strong> ha mantenido la compatibilidad con las versiones antes del producto, aunque es algo diferente al proceso de sincronización habitual. Si intentamos abrir un sitio de SharePoint 2007, recibiremos el siguiente error:</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/ws2010_2007_01.png" class="thickbox no_icon" title="ws2010_2007_01"><img class="aligncenter size-full wp-image-2537" title="ws2010_2007_01" src="http://oscarmartin.org/wp-content/uploads/2012/09/ws2010_2007_01.png" alt="" width="496" height="171" /></a></p>
<p>Para solucionar este problema y poder sincronizar un sitio de SharePoint 2007 utilizando SharePoint Workspace 2010, lo que tienes que hacer es lo siguiente:</p>
<ol>
<li>En la ficha <strong>Inicio</strong> de la <strong>Barra de inicio</strong> de SharePoint Workspace, haz clic en <strong>Nuevo</strong> y, a continuación, en <strong>Área de trabajo de Groove</strong>.</li>
<li>En la ventana <strong>Nueva área de trabajo de Groove</strong>, haga clic en <strong>Opciones</strong>, seleccione <strong>2007</strong> en la lista desplegable<strong>Versión del área de trabajo</strong> y, por último, haga clic en <strong>Aceptar</strong>.</li>
<li>En la nueva área de trabajo, haga clic en la ficha <strong>Área de trabajo</strong>, en <strong>Agregar</strong> y, a continuación, en <strong>Archivos de SharePoint</strong>.<br />
&nbsp;<a  href="http://oscarmartin.org/wp-content/uploads/2012/09/ws2010_2007_02.png" class="thickbox no_icon" title="ws2010_2007_02"><img class="aligncenter size-full wp-image-2539" title="ws2010_2007_02" src="http://oscarmartin.org/wp-content/uploads/2012/09/ws2010_2007_02.png" alt="" width="203" height="430" /></a></p>
<p>&nbsp;</li>
<li>Introduces las credenciales y la herramienta Archivos de Office SharePoint 2007 se agrega al área de trabajo, que puede sincronizar una única biblioteca de documentos en un sitio de Office SharePoint Server 2007 o de SharePoint Server 2010.</li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2007/sincronizar-un-sitio-de-sharepoint-server-2007-con-sharepoint-workspace-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como obtener el AggregationId para estadísticas en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/como-obtener-el-aggregationid-para-estadisticas-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-obtener-el-aggregationid-para-estadisticas-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/como-obtener-el-aggregationid-para-estadisticas-en-sharepoint-2010/#comments</comments>
		<pubDate>Tue, 25 Sep 2012 06:00:21 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[AggregationId]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SiteMap]]></category>
		<category><![CDATA[WASiteInventorySnapshot]]></category>
		<category><![CDATA[Web Analytics]]></category>
		<category><![CDATA[WSS_Logging]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2518</guid>
		<description><![CDATA[El AggregationId es un parámetro necesario, a la hora de llamar a las diferentes funciones de SQL Server de bases de datos como  Web Analytics reporting y staging. Estas bases de datos, se crean al configurar la aplicacion de servicio de Web Analytics en SharePoint 2010. Para obtener el AggregationId  de un sitio, lo único que has de ejecutar desde  “SQL Server Management [...]]]></description>
				<content:encoded><![CDATA[<p><a  href="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" class="thickbox no_icon" title="sharepoint2010"><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" /></a>El <strong>AggregationId</strong> es un parámetro necesario, a la hora de llamar a las diferentes funciones de SQL Server de bases de datos como  Web Analytics reporting y staging. Estas bases de datos, se crean al configurar la aplicacion de servicio de Web Analytics en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>.</p>
<p>Para obtener el <strong>AggregationId</strong>  de un sitio, lo único que has de ejecutar desde  <em>“SQL Server Management Studio”</em> es la siguiente consulta SQL:</p>
<pre class="wp-code-highlight prettyprint">--Obtiene el AggregationId por cada Site
SELECT DISTINCT DimensionName, AggregationId, SM.[Path]
FROM [WebAnalyticsReportingdb].[dbo].[WASiteInventorySnapshot] WASIS WITH (NOLOCK)
INNER JOIN [ConfigDB].[dbo].[SiteMap] SM
ON WASIS.DimensionName = SM.Id
WHERE WASIS.DimensionType=0
ORDER BY [Path]</pre>
<p>&nbsp;</p>
<p>PD. Puede que tengas que renombrar los nombres de las bases de datos de Configuración de SharePoint <em>[ConfigDB]</em> y de Web Analytics <em>[WebAnalyticsReportingdb]</em>, ya que en mi granja se llaman así, pero no por este motivo se tienen que llamar igual en la tuya&#8230;</p>
<p>Aquí tienes un ejemplo de funciones que necesitan dicho parámetro:</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/AggregationId.jpg" class="thickbox no_icon" title="AggregationId"><img class="aligncenter size-full wp-image-2530" title="AggregationId" src="http://oscarmartin.org/wp-content/uploads/2012/09/AggregationId.jpg" alt="" width="352" height="657" /></a></p>
<p>En posteriores post explicare, como hacer uso de esta información para extender las estadísticas de <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, sin depender de las limitaciones, como por ejemplo: la del limite de <strong>2000 registros por informe</strong>, o la de <strong>14 días de antigüedad de los datos</strong> si hacemos uso de la tabla <strong>WSS_Logging</strong>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/como-obtener-el-aggregationid-para-estadisticas-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurar Remote Blob Storage (RBS) en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/configurar-remote-blob-storage-rbs-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=configurar-remote-blob-storage-rbs-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/configurar-remote-blob-storage-rbs-en-sharepoint-2010/#comments</comments>
		<pubDate>Mon, 24 Sep 2012 07:00:27 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[RBS]]></category>
		<category><![CDATA[Remote Blob Store]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2430</guid>
		<description><![CDATA[Con este post quiero explicar como se ha de configurar Remote Blob Storage o RBS en SharePoint 2010. Parto que todos sabemos que es RBS y los tipos de contenido Blob, únicamente aclarar que este sistema de almacenar ficheros en File System es algo propio de SQL Server 2008 llamado FILESTREAM y SharePoint 2010 lo único que hace es a través de la [...]]]></description>
				<content:encoded><![CDATA[<p><a  href="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" class="thickbox no_icon" title="sharepoint2010"><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" /></a>Con este post quiero explicar como se ha de configurar Remote Blob Storage o RBS en <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>. Parto que todos sabemos que es <a  href="http://msdn.microsoft.com/es-es/library/gg638709.aspx" target="_blank">RBS</a> y los tipos de contenido <a  href="http://msdn.microsoft.com/es-es/library/ms131277.aspx" target="_blank">Blob</a>, únicamente aclarar que este sistema de almacenar ficheros en File System es algo propio de SQL Server 2008 llamado <a  href="http://msdn.microsoft.com/es-es/library/cc716724.aspx" target="_blank">FILESTREAM</a> y SharePoint 2010 lo único que hace es a través de la siguiente configuración, permitir que dichos ficheros (han de ser de gran tamaño) se almacenen en el sistemas de archivos en vez de en base de datos con lo cual, se tenga una mayor velocidad de acceso&#8230;</p>
<p>Requisitos: La versión mínima de SQL Server seria: Microsoft SQL Server 2008 R2, Microsoft SQL Server 2008 con Service Pack 1 (SP1) y Cumulative Update 2.</p>
<p>Aclarado esto, vamos a ver los pasos a seguir a la hora de activar RBS en una base de datos de contenido de <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a> y antes de nada debemos asegurarnos que la cuenta que vamos a utilizar es miembro del grupo de Administradores de SharePoint y miembro de SQL Server con los roles de dbcreator y securityadmin.</p>
<p>1) Partimos que tenemos claro en que base de datos de contenido de SharePoint vamos a habilitar RBS, así que lo primero es habilitar FILESTREAM en nuestro servicio de SQL Server, para ello:</p>
<p>Abrimos &#8220;<em>SQL Server Configuration Manager&#8221;</em>, seleccionamos &#8220;<em>SQL Services&#8221;</em> y en la ventana de la derecha, accedemos a las propiedades de &#8220;<em>SQL Server&#8221;</em>. Esto nos abrirá una nueva ventana sobre la que pincharemos en la pestaña &#8220;<em>FILESTREAM&#8221;</em> y activaremos las siguientes opciones:</p>
<ul>
<li><em><span style="font-family: Arial;"><span style="font-size: small;">&#8220;Enable FILESTREAM for Transact-SQL access&#8221; </span></span></em></li>
<li><em>&#8220;Enable FILESTREAM for file I/O streaming access&#8221; </em></li>
<li><em>&#8220;Allow remote clients to have streaming access to FILESTREAM data&#8221;</em></li>
</ul>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/08/RBS01.jpg" class="thickbox no_icon" title="RBS01"><img class="aligncenter  wp-image-2432" title="RBS01" src="http://oscarmartin.org/wp-content/uploads/2012/08/RBS01.jpg" alt="" width="500" height="464" /></a></p>
<p>2) Tras habilitar en el servicio SQL Server el <em>FILESTREAM</em>, debemos activarlo en SharePoint, para ello abrimos <em>&#8220;SQL Server Management Studio&#8221;</em>, y ejecutamos el siguiente script sql:</p>
<pre class="wp-code-highlight prettyprint">Use [master]
Exec sp_configure filestream_access_level, 2
Reconfigure</pre>
<p>Una vez ejecutado, abrimos el &#8220;<em>SharePoint 2010 Management Shell</em>&#8221; para identificar el nombre de la base de datos de nuestra Web Application (también puede hacerse de un Site Collection) y escribimos:</p>
<pre class="wp-code-highlight prettyprint">$db = Get-SPContentDatabase –WebApplication http://miintranet
$db</pre>
<p>Tras obtener el nombre (Name) de la base de datos, volvemos a  abrir el <em>&#8220;SQL Server Management Studio&#8221; y ejecutamos las siguientes sentencias sql:</em></p>
<ul>
<li>Creación de una clave maestra para nuestra base de datos:</li>
</ul>
<pre class="wp-code-highlight prettyprint">Use [DemoContentDB]
If not exists (select * from sys.symmetric_keys where name =
N&#039;##MS_DatabaseMasterKey##&#039;)create master key encryption by
password = N&#039;Admin Key Password !2#4&#039;</pre>
<ul>
<li>Creación del filegroup:</li>
</ul>
<pre class="wp-code-highlight prettyprint">If not exists (select groupname from sysfilegroups where groupname=
N&#039;RBSFilestreamProvider&#039;)alter database [DemoContentDB] 
add filegroup RBSFilestreamProvider contains filestream</pre>
<ul>
<li>Una vez tenemos el filegroup, debemos añadir el archivo de filestream (en este ejemplo lo creamos en la ruta C:\RBSDataStore):</li>
</ul>
<pre class="wp-code-highlight prettyprint">Alter database [DemoContentDB] add file (name = 
RBSFilestreamFile, filename = &#039;C:\RBSDataStore&#039;) to filegroup RBSFilestreamProvider</pre>
<p>Para comprobar que todo se ha creado correctamente, abrimos el explorador de archivos y comprobamos que la carpeta ha sido creada:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/08/RBS02.jpg" class="thickbox no_icon" title="RBS02"><img class="aligncenter  wp-image-2433" title="RBS02" src="http://oscarmartin.org/wp-content/uploads/2012/08/RBS02.jpg" alt="" width="557" height="239" /></a></p>
<p>3) El siguiente paso es instalar el proveedor RBS en los servidores de SQL Server y SharePoint 2010, para ello debemos descargar el paquete &#8220;<em>RBS.msi</em>&#8221; de Microsoft: <a  href="http://go.microsoft.com/fwlink/?LinkID=177388" target="_blank">http://go.microsoft.com/fwlink/?LinkID=177388</a> y realizar la instalación desde consola, para ello:</p>
<ul>
<li>Accedemos al servidor SQL Server de la granja</li>
<li>Copiamos el paquete descargado &#8220;<em>RBS.msi</em>&#8221; a: &#8220;<em>C:\SPSetupInfo\</em>&#8220;</li>
<li>Abrimos la &#8220;<em>Consola de Windows</em>&#8221; y ejecutamos el siguiente comando en &#8220;<em>C:\SPSetupInfo\</em>&#8220;:</li>
</ul>
<pre class="wp-code-highlight prettyprint">msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME=&quot;DemoContentDB&quot; DBINSTANCE=&quot;SQL\SQLSP&quot; FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1</pre>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/08/RBS03.jpg" class="thickbox no_icon" title="RBS03"><img class="aligncenter  wp-image-2434" title="RBS03" src="http://oscarmartin.org/wp-content/uploads/2012/08/RBS03.jpg" alt="" width="600" height="120" /></a></p>
<p>Los dos únicos parámetros que debemos tener en cuenta son el nombre de la base de datos y la instancia de SQL Server.</p>
<p>La ejecución de este comando puede tardar varios minutos, puedes verificar si ha terminado, desde el administrador de tareas de Windows buscando el proceso &#8220;<em>msiexec.exe</em>&#8220;.</p>
<p>Una vez finalizado debemos comprobar en el archivo de log que deja en  &#8221;<em>C:\SPSetupInfo\rbs_install_log.txt’</em>&#8221; que la instalación ha ido correcta, para ello buscamos casi al final del archivo el siguiente mensaje:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/08/RBS04.jpg" class="thickbox no_icon" title="RBS04"><img class="aligncenter  wp-image-2435" title="RBS04" src="http://oscarmartin.org/wp-content/uploads/2012/08/RBS04.jpg" alt="" width="556" height="253" /></a></p>
<p> Si todo ha ido correctamente, debemos instalar el anterior paquete en todos los servidores de SharePoint de la granja:</p>
<ul>
<li>Accedemos al resto de servidores de SharePoint 2010 de la granja</li>
<li>Copiamos el paquete descargado &#8220;<em>RBS.msi</em>&#8221; a: &#8220;<em>C:\SPSetupInfo\</em>&#8220;</li>
<li>Abrimos la consola de Windows y ejecutamos el siguiente comando en &#8220;<em>C:\SPSetupInfo\</em>&#8220;:</li>
</ul>
<pre class="wp-code-highlight prettyprint">msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi DBNAME=&quot;DemoContentDB&quot; DBINSTANCE=&quot;SQL\SQLSP&quot; ADDLOCAL=Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer</pre>
<p>Los dos únicos parámetros que debemos tener en cuenta son el nombre de la base de datos y la instancia de SQL Server. Se paciente porque este proceso tardara unos minutos en cada uno de los servidores de la granja.</p>
<p>Una vez finalizado debemos comprobar que las bases de datos se han creado en nuestra base de datos de contenido &#8220;DemoContentDB&#8221;, así que volvemos a  abrir el <em>&#8220;SQL Server Management Studio&#8221;</em>, navegamos hasta la base de datos y verificamos que nuevas tablas con el prefijo &#8220;<em>mssqlrbs_</em>&#8221; han sido creadas:</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/08/RBS05.jpg" class="thickbox no_icon" title="RBS05"><img class="aligncenter size-full wp-image-2436" title="RBS05" src="http://oscarmartin.org/wp-content/uploads/2012/08/RBS05.jpg" alt="" width="456" height="691" /></a></p>
<p>4) Tras configurar RBS, solo queda activar y especificar el proveedor en SharePoint 2010, por lo que:</p>
<ul>
<li>Volvemos a abrir el &#8221;<em>SharePoint 2010 Management Shell</em>&#8221; y ejecutamos el siguiente script:</li>
</ul>
<pre class="wp-code-highlight prettyprint">$db = Get-SPContentDatabase -Site http://miientranet/sitios/DemoSite
$db
$rbss = $db.RemoteBlobStorageSettings
$rbss | format-list
$rbss.Installed()
$rbss.Enable()
$rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
$rbss | format-list</pre>
<p>El único que parámetro que hay que indicar es la url de la colección de sitio donde debemos activarlo.</p>
<p>5) El ultimo paso es comprobar que los ficheros que subimos a nuestro sitio, se están almacenando físicamente en disco en vez de hacerlo en base de datos, para ello subimos varios documentos a SharePoint y tras hacerlo, comprobamos como en el directorio &#8220;<em>C:\RBSDataStore</em>&#8221; se ven reflejados:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/08/RBS06.jpg" class="thickbox no_icon" title="RBS06"><img class="aligncenter  wp-image-2437" title="RBS06" src="http://oscarmartin.org/wp-content/uploads/2012/08/RBS06.jpg" alt="" width="574" height="464" /></a></p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/configurar-remote-blob-storage-rbs-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outlook 2010 solicita siempre las credenciales al arrancar</title>
		<link>http://oscarmartin.org/office-2010/outlook-2010-solicita-siempre-las-credenciales-al-arrancar/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=outlook-2010-solicita-siempre-las-credenciales-al-arrancar</link>
		<comments>http://oscarmartin.org/office-2010/outlook-2010-solicita-siempre-las-credenciales-al-arrancar/#comments</comments>
		<pubDate>Thu, 20 Sep 2012 08:47:48 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[Office 2010]]></category>
		<category><![CDATA[Credenciales]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Outlook 2010]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2496</guid>
		<description><![CDATA[Después de instalar Windows 8 en uno de mis ordenadores, instalé el resto de software que utilizo, entre ellos en Office 2010. Tras la instalación personalizada, observo que cada vez que inicio el cliente de Outlook 2010, me pide credenciales, es decir que no esta almacenando mis datos. Tras buscar información en la Red, di con la solución al problema, los pasos [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-2497" title="outlook2010" src="http://oscarmartin.org/wp-content/uploads/2012/09/outlook2010.jpg" alt="" width="166" height="41" /></p>
<p>Después de instalar <strong>Windows 8</strong> en uno de mis ordenadores, instalé el resto de software que utilizo, entre ellos en <strong>Office 2010</strong>. Tras la instalación personalizada, observo que cada vez que inicio el cliente de <strong>Outlook 2010</strong>, me pide credenciales, es decir que no esta almacenando mis datos.</p>
<p>Tras buscar información en la Red, di con la solución al problema, los pasos a realizar para corregir este error son:</p>
<p style="padding-left: 30px;"><strong>1)</strong> Cerrar el cliente de Outlook 2010</p>
<p style="padding-left: 30px;"><strong>2)</strong> Una vez cerrado, desde el explorador de Windows ir a la siguiente ruta: &#8221;%userprofile%\AppData\Roaming\Microsoft\Protect&#8221;</p>
<p style="padding-left: 30px;"><strong>3)</strong> En dicha ruta encontraras una carpeta con nombre alfanumérico (como se puede ver en la imagen). Renombra la carpeta, para que no se llame igual</p>
<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/OutlookError01.jpg" class="thickbox no_icon" title="OutlookError01"><img class="aligncenter  wp-image-2498" title="OutlookError01" src="http://oscarmartin.org/wp-content/uploads/2012/09/OutlookError01.jpg" alt="" width="433" height="139" /></a></p>
<p>&nbsp;</p>
<p style="padding-left: 30px;"><strong>4)</strong> Abre de nuevo el cliente de Outlook 2010, lo que hará que se genere de nuevo esta carpeta. Introduce tus credenciales y ya no tendrás que volver a introducirlas más.</p>
<p>Referencia: <a  href="http://social.technet.microsoft.com/Forums/en/office2010/thread/cd38f3f2-892f-470c-b52e-17b8beeb275e" target="_blank">Outlook 2010 doesn&#8217;t save password (Exchange)</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/office-2010/outlook-2010-solicita-siempre-las-credenciales-al-arrancar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ejecutar usuario avanzado en Windows 8</title>
		<link>http://oscarmartin.org/windows-8/ejecutar-usuario-avanzado-en-windows-8/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ejecutar-usuario-avanzado-en-windows-8</link>
		<comments>http://oscarmartin.org/windows-8/ejecutar-usuario-avanzado-en-windows-8/#comments</comments>
		<pubDate>Tue, 18 Sep 2012 14:40:38 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2475</guid>
		<description><![CDATA[Tras varios meses trabajando con Windows 8 (tanto en el ordenador de la empresa como en el de casa) he podido exprimir un poco todas sus funcionalidades. La experiencia inicial puede ser un poco confusa al desaparecer la barra de inicio, pero tras unas horas, lo encuentras todo al alcance de la mano&#8230; Las combinaciones [...]]]></description>
				<content:encoded><![CDATA[<p><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/Windows8.jpg" class="thickbox no_icon" title="Windows8"><img class="alignleft size-full wp-image-2483" title="Windows8" src="http://oscarmartin.org/wp-content/uploads/2012/09/Windows8.jpg" alt="" width="186" height="38" /></a>Tras varios meses trabajando con Windows 8 (tanto en el ordenador de la empresa como en el de casa) he podido exprimir un poco todas sus funcionalidades.</p>
<p>La experiencia inicial puede ser un poco confusa al desaparecer la barra de inicio, pero tras unas horas, lo encuentras todo al alcance de la mano&#8230;</p>
<p>Las combinaciones de teclas, es algo que siempre he usado mucho, y en este sistema no iva a ser menos, por lo que aquí tenéis unas cuantas&#8230;</p>
<p style="padding-left: 30px;"><strong>Tecla de Windows: </strong>Lanza la pantalla estilo Metro de inicio de Windows y a su vez tu puedes teclear letras claves para buscar alguna aplicación.</p>
<p style="padding-left: 30px;"><strong>Win + D:</strong> Lanza la antigua interfaz de Windows (el escritorio de toda la vida).</p>
<p style="padding-left: 30px;"><strong>Win + C: </strong>Lanza un menú donde tú puedes buscar, compartir y cambiar ajustes.</p>
<p style="padding-left: 30px;"><strong>Win + I: </strong>Te permite abrir el panel de ajustes donde puedes modificar los ajustes de las aplicaciones.</p>
<p style="padding-left: 30px;"><strong>Win + Q: </strong>Abre la pantalla con estilo Metro de búsqueda de aplicaciones.</p>
<p style="padding-left: 30px;"><strong>Win + F: </strong>Abre la pantalla con estilo Metro de búsqueda genérica.</p>
<p style="padding-left: 30px;"><strong>Win + E:</strong> Explorador de Windows.</p>
<p style="padding-left: 30px;"><strong>Win + R:</strong> Ejecutar.</p>
<p style="padding-left: 30px;"><strong>Win + &#8220;+&#8221; o &#8220;-&#8221;:</strong> Lupa / Zoom In y Out.</p>
<p style="padding-left: 30px;"><strong>Win + Tab:</strong> Cambiar entre aplicaciones de pantalla completa.</p>
<p>&#8230;y por ultimo pero no por eso la menos interesante, la siguiente combinación, me parece la mas ultil de todas, la ejecución de usuario avanzado o herramientas administrativas:</p>
<p style="padding-left: 30px;"><strong>Win + X: </strong>Abre la ventana de usuario avanzado o herramientas administrativas.</p>
<p>En la siguiente imagen podeis ver las opciones existentes con esta combinación de teclas:</p>
<p><img class="aligncenter size-full wp-image-2478" title="winX" src="http://oscarmartin.org/wp-content/uploads/2012/09/winX.png" alt="" width="239" height="352" /></p>
<p>Con esta opción, no echareis de menos vuestro antiguo botón de inicio de Windows <img src='http://oscarmartin.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/windows-8/ejecutar-usuario-avanzado-en-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conversión de archivos VHD a VMDK</title>
		<link>http://oscarmartin.org/vmware/conversion-de-archivos-vhd-a-vmdk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=conversion-de-archivos-vhd-a-vmdk</link>
		<comments>http://oscarmartin.org/vmware/conversion-de-archivos-vhd-a-vmdk/#comments</comments>
		<pubDate>Fri, 14 Sep 2012 08:42:03 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[Microsoft Virtual PC]]></category>
		<category><![CDATA[VHD]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[vmdk]]></category>
		<category><![CDATA[WinImage]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2452</guid>
		<description><![CDATA[Hace varios meses, escribi otro post titulado Conversión de archivos VDI a VMDK, en el cual se explicaba como convertir discos duros virtuales en formato VirtualBox a VMWare. Pues esta vez le ha tocado el turno a los discos duros virtuales de Microsoft Virtual PC o tambien conocidos como VHD. Para realizar la conversion de VHD a VMDK lo [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft  wp-image-1223" title="vmware" src="http://oscarmartin.org/wp-content/uploads/2011/10/vmware.gif" alt="" width="142" height="142" />Hace varios meses, escribi otro post titulado <a  href="http://oscarmartin.org/varios/conversion-de-archivos-vdi-a-vmdk/">Conversión de archivos VDI a VMDK</a>, en el cual se explicaba como convertir discos duros virtuales en formato <a  href="http://www.virtualbox.org/" target="_blank">VirtualBox</a> a <a  href="http://www.vmware.com/es/" target="_blank">VMWare</a>. Pues esta vez le ha tocado el turno a los discos duros virtuales de <a  href="http://www.microsoft.com/windows/virtual-pc/" target="_blank">Microsoft Virtual PC</a> o tambien conocidos como <a  href="http://en.wikipedia.org/wiki/VHD_(file_format)" target="_blank">VHD</a>.</p>
<p>Para realizar la conversion de VHD a VMDK lo que vamos a necesitar es descargarnos la herramienta <a  href="http://www.winimage.com" target="_blank">WinImage</a>, que puedes hacerlo desde <a  href="http://www.winimage.com/download.htm" target="_blank">aquí</a> (esta disponible tanto en plataforma x86 como x64). Una vez tenemos la hemos instalado, debemos seguir los siguientes pasos:</p>
<p>1) En el menu de herramientas, seleccionamos &#8220;Disk&#8221; y posteriormente &#8220;Convert Virtual Hard Disk Image&#8230;&#8221;</p>
<p style="text-align: left;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-01.png" class="thickbox no_icon" title="convert-vhd-winimage-01"><img class="aligncenter size-full wp-image-2453" title="convert-vhd-winimage-01" src="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-01.png" alt="" width="300" height="207" /></a></p>
<p style="text-align: left;">2) Seleccionamos el archivo VHD que queremos convetir</p>
<p style="text-align: left;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-02.png" class="thickbox no_icon" title="convert-vhd-winimage-02"><img class="aligncenter size-full wp-image-2454" title="convert-vhd-winimage-02" src="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-02.png" alt="" width="477" height="59" /></a></p>
<p style="text-align: left;">3) Una vez seleccionado el archivo, nos aparecerá la siguiente pantalla, donde debemos seleccionar si queremos que nuestro disco va a tener un tamaño fijo o va a crecer de forma dinámica:<span style="text-align: center;"> </span></p>
<p style="text-align: left;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-03.png" class="thickbox no_icon" title="convert-vhd-winimage-03"><img class="aligncenter size-full wp-image-2455" title="convert-vhd-winimage-03" src="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-03.png" alt="" width="425" height="142" /></a></p>
<p style="text-align: left;">4) Y por ultimo, solo nos queda definir donde vamos a guardar el nuevo disco virtual, y el formato que tendrá. En este caso vamos a seleccionar como tipo &#8220;VMWare VMDK (*.vmdk)&#8221;</p>
<p style="text-align: left;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-04.png" class="thickbox no_icon" title="convert-vhd-winimage-04"><img class="aligncenter size-full wp-image-2456" title="convert-vhd-winimage-04" src="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-04.png" alt="" width="561" height="102" /></a></p>
<p style="text-align: left;">5) El proceso de conversión comenzará, así que podemos ir a tomar un café porque se tomará su tiempo (depende del tamaño del disco virtual original)</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-05.png" class="thickbox no_icon" title="convert-vhd-winimage-05"><img class="aligncenter size-full wp-image-2459" title="convert-vhd-winimage-05" src="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-05.png" alt="" width="201" height="145" /></a></p>
<p style="text-align: left;">6) Como ultimo paso y tras la conversión, la aplicación intentará montar la imagen, si no quieres hacerlo, únicamente has de dar al botón &#8221;Cancel&#8221;</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-06.png" class="thickbox no_icon" title="convert-vhd-winimage-06"><img class="aligncenter size-full wp-image-2461" title="convert-vhd-winimage-06" src="http://oscarmartin.org/wp-content/uploads/2012/09/convert-vhd-winimage-06.png" alt="" width="303" height="172" /></a></p>
<p style="text-align: left;">Para usar este disco únicamente tienes con abrir la configuración de tu maquina virtual VMWare y añadirle este disco&#8230; <img src='http://oscarmartin.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/vmware/conversion-de-archivos-vhd-a-vmdk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crear una Colección de Sitio en una nueva base de datos de contenido en SharePoint 2010</title>
		<link>http://oscarmartin.org/sharepoint-2010/crear-una-coleccion-de-sitio-en-una-nueva-base-de-datos-de-contenido-en-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=crear-una-coleccion-de-sitio-en-una-nueva-base-de-datos-de-contenido-en-sharepoint-2010</link>
		<comments>http://oscarmartin.org/sharepoint-2010/crear-una-coleccion-de-sitio-en-una-nueva-base-de-datos-de-contenido-en-sharepoint-2010/#comments</comments>
		<pubDate>Wed, 29 Aug 2012 06:00:04 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Get-SPWebApplication]]></category>
		<category><![CDATA[New-SPContentDatabase]]></category>
		<category><![CDATA[New-SPSite]]></category>
		<category><![CDATA[Set-SPContentDatabase]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2414</guid>
		<description><![CDATA[Por defecto, SharePoint 2010 al crear una Aplicación Web (o Web Application), internamente genera una nueva base de datos de contenido, donde almacenará toda la información que haya dentro de este nuevo sitio, es decir, la información de Colecciones de Sitios y Subsitios&#8230; Se nos puede dar el caso que queramos, por diferentes motivos (mantenimiento, escalabilidad, seguridad, etc.), [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1911" title="powershell" src="http://oscarmartin.org/wp-content/uploads/2011/12/powershell.png" alt="" width="125" height="125" />Por defecto, <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a> al crear una Aplicación Web (o Web Application), internamente genera una nueva base de datos de contenido, donde almacenará toda la información que haya dentro de este nuevo sitio, es decir, la información de Colecciones de Sitios y Subsitios&#8230;</p>
<p>Se nos puede dar el caso que queramos, por diferentes motivos (mantenimiento, escalabilidad, seguridad, etc.), crear una Colección de Sitio en una base de datos diferente, a la que tiene por defecto una Aplicación Web&#8230; en ese caso y como desde la interface Web de <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a> no se permite realizar este tipo de acciones, debemos recurrir a un pequeño script de <a  href="http://oscarmartin.org/category/powershell-2/">PowerShell</a>, con el que podremos hacerlo de una forma muy sencilla.</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/08/SiteCollDB.jpg" class="thickbox no_icon" title="SiteCollDB"><img class="aligncenter  wp-image-2425" title="SiteCollDB" src="http://oscarmartin.org/wp-content/uploads/2012/08/SiteCollDB.jpg" alt="" width="560" height="270" /></a></p>
<p>El siguiente script crea una una Colección de Sitio en una nueva base de datos:</p>
<pre class="wp-code-highlight prettyprint">$w = Get-SPWebApplication -Identity &quot;http://miintranet&quot;
New-SPContentDatabase &quot;DemoContentDB&quot; -DatabaseServer &quot;localhost\SharePoint&quot; -WebApplication $w
New-SPSite &quot;http://miintranet/sitios/DemoSite&quot; -OwnerAlias &quot;SPDOMAIN\omartin&quot; -ContentDatabase &quot;DemoContentDB&quot; -Name &quot;Demo Site&quot;
Set-SPContentDatabase -Identity &quot;DemoContentDB&quot; -Status Disabled</pre>
<p>Para que no haya duda, voy a comentar el script:</p>
<ul>
<li>Lo primero que hacemos es definir sobre que Aplicación Web (en este caso: http://miintranet) vamos a crear la nueva Colección de Sitio.</li>
<li>El siguiente paso, es la creación de una nueva base de datos asignándola a la Aplicación Web, para ello debemos indicar, el nombre de la base de datos, el servidor SQL Server y el objeto SPWebApplication que hemos definido anteriormente.</li>
<li>Una vez la base de datos esta lista, creamos la Colección de Sitio, por lo que especificamos varios parámetros obligatorios</li>
<li>Por ultimo u no menos importante, si solo queremos que en esta base de datos este esta Colección de Sitio y no se creen las nuevas Colecciones que vayamos creando en esta base de datos, debemos de ponerla offline (en caso de no ser requerido, esta ultima linea se puede comentar).</li>
</ul>
<p>Referencia de comandos de <a  href="http://oscarmartin.org/category/powershell-2/">PowerShell</a>: <a  href="http://technet.microsoft.com/es-es/library/ff607562.aspx" target="_blank">Get-SPWebApplication</a>, <a  href="http://technet.microsoft.com/es-es/library/ff607572.aspx" target="_blank">New-SPContentDatabase</a>, <a  href="http://technet.microsoft.com/es-es/library/ff607937.aspx" target="_blank">New-SPSite</a>, <a  href="http://technet.microsoft.com/es-es/library/ff607912.aspx" target="_blank">Set-SPContentDatabase</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/crear-una-coleccion-de-sitio-en-una-nueva-base-de-datos-de-contenido-en-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Libro gratuito: Programming Windows 8 Apps with HTML, CSS, and JavaScript</title>
		<link>http://oscarmartin.org/html5/libro-gratuito-programming-windows-8-apps-with-html-css-and-javascript/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=libro-gratuito-programming-windows-8-apps-with-html-css-and-javascript</link>
		<comments>http://oscarmartin.org/html5/libro-gratuito-programming-windows-8-apps-with-html-css-and-javascript/#comments</comments>
		<pubDate>Thu, 23 Aug 2012 06:00:37 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Gratis]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Libro]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2401</guid>
		<description><![CDATA[De la mano de Microsoft Press, podemos disfrutar de forma gratuita de este libro: &#8220;Programming Windows 8 Apps with HTML, CSS, and JavaScript&#8221; escrito por Kraig Brockschmidt. Este libro cuenta en algo más de 500 paginas, como implementar aplicaciones para Windows 8 utilizando los lenguajes HTML, CSS y JavaScript (en un total de 12 capítulos), haciendo hincapié en [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-2402" title="ProgrammingWindows8Apps" src="http://oscarmartin.org/wp-content/uploads/2012/08/ProgrammingWindows8Apps.jpg" alt="" width="197" height="240" />De la mano de <a  href="http://www.microsoft.com/mspress" target="_blank">Microsoft Press</a>, podemos disfrutar <span style="text-decoration: underline;">de forma gratuita</span> de este libro: &#8220;<strong>Programming Windows 8 Apps with HTML, CSS, and JavaScript</strong>&#8221; escrito por <a  href="http://www.kraigbrockschmidt.com/">Kraig Brockschmidt</a>.</p>
<p>Este libro cuenta en algo más de 500 paginas, como implementar aplicaciones para Windows 8 utilizando los lenguajes HTML, CSS y JavaScript (en un total de 12 capítulos), haciendo hincapié en los citados lenguajes, en la capa de presentación y en las librerías de Windows 8 para JavaScript.</p>
<p>Como os podréis imaginar, este no es un libro totalmente acabado, ya que el autor actualmente esta escribiendo un nuevo capitulo sobre todo el tema de notificaciones&#8230; pero de momento podemos aprovechar esta versión con muchísimo contenido.</p>
<p>Para mi, uno de los puntos mas interesantes ha sido la introducción a aplicaciones WinRT, arquitectura de aplicaciones y características de la plataforma Windows 8.</p>
<ul>
<li>Puedes descargar el libro en formato PDF desde <a  href="http://download.microsoft.com/download/6/D/D/6DD55B7A-7F27-4A2B-985A-082C10D1E6C5/Microsoft_Press_eBook_Programming_Windows_8_Apps_with_HTML_CSS_and_JavaScript_Second_Preview_PDF.pdf" target="_blank">aquí</a>.</li>
<li>Puedes descargarte (en un archivo .zip)  el codigo fuente de ejemplo y videos referentes a este libro, desde <a  href="http://download.microsoft.com/download/3/8/A/38A3C627-3462-4C74-876C-C4C1DF512AEF/Microsoft_Press_eBook_Programming_Windows_8_Apps_with_HTML_CSS_and_JavaScript_Second_Preview_Companion_Content.zip" target="_blank">aquí</a>.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/html5/libro-gratuito-programming-windows-8-apps-with-html-css-and-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Designer: Unexpected error on server associating the workflow</title>
		<link>http://oscarmartin.org/sharepoint-2010/sharepoint-designer-unexpected-error-on-server-associating-the-workflow/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharepoint-designer-unexpected-error-on-server-associating-the-workflow</link>
		<comments>http://oscarmartin.org/sharepoint-2010/sharepoint-designer-unexpected-error-on-server-associating-the-workflow/#comments</comments>
		<pubDate>Wed, 22 Aug 2012 06:00:23 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint Designer]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[UserDefinedWorkflowMaximumComplexity]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2388</guid>
		<description><![CDATA[Utilizando los workflows estándar de SharePoint 2010, nos ha aparecido el siguiente problema, cuando hemos intentado desde SharePoint Designer 2010 publicar un Workflow con múltiples pasos de aprobación: &#8220;Errors were found when compiling the workflow. The workflow files were saved but cannot be run. Unexpected error on server associating the workflow&#8220;. En la siguiente imagen podemos ver la pantalla [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1206" title="sharepoint2010" src="http://oscarmartin.org/wp-content/uploads/2011/10/sharepoint2010.png" alt="" width="232" height="53" />Utilizando los workflows estándar de <a  href="http://oscarmartin.org/category/sharepoint-2010/">SharePoint 2010</a>, nos ha aparecido el siguiente problema, cuando hemos intentado desde SharePoint Designer 2010 publicar un Workflow con múltiples pasos de aprobación: &#8220;<em>Errors were found when compiling the workflow. The workflow files were saved but cannot be run. Unexpected error on server associating the workflow</em>&#8220;. En la siguiente imagen podemos ver la pantalla de error del Designer:</p>
<p style="text-align: center;"><a  href="http://oscarmartin.org/wp-content/uploads/2012/08/WF_Error01.jpg" class="thickbox no_icon" title="WF_Error01"><img class="aligncenter  wp-image-2389" title="WF_Error01" src="http://oscarmartin.org/wp-content/uploads/2012/08/WF_Error01.jpg" alt="" width="458" height="119" /></a></p>
<p>Buceando en Internet, he encontrado que <a  href="http://www.microsoft.com" target="_blank">Microsoft</a> tiene reportado en el siguiente articulo: <a  href="http://support.microsoft.com/kb/2557533" target="_blank">http://support.microsoft.com/kb/2557533</a> este problema, en el que se indica que es necesario aumentar la propiedad <a  href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebapplication.userdefinedworkflowmaximumcomplexity.aspx" target="_blank">UserDefinedWorkflowMaximumComplexity</a>, para poder implementar workflows con muchos pasos.</p>
<p>El valor actual de dicha propiedad se encuentra por defecto en 7000 por lo que podríamos aumentarlo a 30000 para que no nos vuelva a pasar este problema&#8230; para ello lo único que debemos hacer es ejecutar este sencillo script de <a  href="http://oscarmartin.org/category/powershell-2/">PowerShell</a> , donde se aumenta el valor de <strong>UserDefinedWorkflowMaximumComplexity</strong>:</p>
<p>&nbsp;</p>
<pre class="wp-code-highlight prettyprint">$app = get-spwebapplication http://miintranet.com
Write-Host &quot;Limite actual: &quot; $app.UserDefinedWorkflowMaximumComplexity
$app.UserDefinedWorkflowMaximumComplexity = 30000
$app.Update()
Write-Host &quot;Nuevo limite: &quot; $app.UserDefinedWorkflowMaximumComplexity</pre>
<p>&nbsp;</p>
<p>Por ultimo solo queda reiniciar el servicio IIS con un <strong>IISReset</strong> de todas las maquinas de la granja, y volver a publicar el workflow desde Designer&#8230;</p>
<p><strong><span style="text-decoration: underline;">Actualización</span>:</strong> Otra solución a este problema, que personalmente no he probado, es la de realizar unas pequeñas modificaciones en el <strong>web.config</strong> de la aplicación, como se indica en <a  href="http://www.manjuke.com/2011/05/fixed-sharepoint-designer-error.html" rel="contributor-to nofollow" target="_blank">Manjuke&#8217;s Blog</a> sin necesidad de tener que tocar parámetros de objetos SharePoint.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2010/sharepoint-designer-unexpected-error-on-server-associating-the-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2013 Preview</title>
		<link>http://oscarmartin.org/sharepoint-2013/sharepoint-2013-preview/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharepoint-2013-preview</link>
		<comments>http://oscarmartin.org/sharepoint-2013/sharepoint-2013-preview/#comments</comments>
		<pubDate>Wed, 08 Aug 2012 12:27:34 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[SharePoint 2013]]></category>
		<category><![CDATA[Preview]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2357</guid>
		<description><![CDATA[Microsoft ha publicado en este mes de agosto la una versión &#8221;preview&#8221; de SharePoint. Esta ultima versión es conocida con el nombre de SharePoint 2013 Preview. Esta nueva versión nos trae varias mejoras a nivel de escalabilidad, seguridad y flexibilidad, que ire analizando en posteriores posts. Si quieres conocer todos los detalles de la mano de Microsoft sobre esta nueva versión de la plataforma, puedes [...]]]></description>
				<content:encoded><![CDATA[<p><a  href="http://sharepoint.microsoft.com" target="_blank"><br />
<img class="alignleft size-full wp-image-2359" title="sharepoint2013" src="http://oscarmartin.org/wp-content/uploads/2012/08/sharepoint2013.jpg" alt="" width="228" height="69" />Microsoft</a> ha publicado en este mes de agosto la una versión &#8221;preview&#8221; de SharePoint. Esta ultima versión es conocida con el nombre de <strong>SharePoint 2013 Preview</strong>.</p>
<p>Esta nueva versión nos trae varias mejoras a nivel de<strong> escalabilidad, seguridad y flexibilidad</strong>, que ire analizando en posteriores posts. Si quieres conocer todos los detalles de la mano de <a  href="http://sharepoint.microsoft.com" target="_blank">Microsoft</a> sobre esta nueva versión de la plataforma, puedes consultar <a  href="http://sharepoint.microsoft.com/en-us/preview/sharepoint-benefits.aspx" target="_blank">la página oficial</a>.</p>
<p>Por otro lado, en <a  href="http://msdn.microsoft.com/" target="_blank">MSDN</a> y orientado a desarrolladores, se han publicado las <a  href="http://msdn.microsoft.com/en-US/sharepoint/fp123576" target="_blank">nuevas funcionalidades y capacidades</a> resumidas en el siguiente vídeo:</p>
<p><center><iframe src="http://hub.video.msn.com/embed/9b5540f2-6e04-4ae8-bb71-fbfdf8634a96/?vars=bWt0PWVuLXVzJmJyYW5kPU1TX09mZmljZSZsaW5rb3ZlcnJpZGUyPWh0dHAlM2ElMmYlMmZ3d3cubWljcm9zb2Z0LmNvbSUyZm9mZmljZSUyZnByZXZpZXclM2Z2aWRlb2lkJTNkJTdiMCU3ZCZsaW5rYmFjaz1odHRwJTNhJTJmJTJmd3d3LmJpbmcuY29tJTJmdmlkZW9zJmNvbmZpZ0NzaWQ9TVNOVmlkZW8mY29uZmlnTmFtZT1zeW5kaWNhdGlvbnBsYXllciZzeW5kaWNhdGlvbj10YWcmcGxheWVyLmZyPXNoYXJlZW1iZWQtc3luZGljYXRpb24%3d" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="432" height="243"></iframe></center>&nbsp;</p>
<p>Si quieres descargarte <strong>SharePoint Server 2013 Preview</strong>, puedes hacerlo desde <a  href="http://technet.microsoft.com/en-us/evalcenter/hh973397.aspx" target="_blank">aquí</a> y comprobar todas sus nuevas funcionalidades y mejoras&#8230;</p>
<p>Por otro lado, se ha lanzado contenido dirigido tanto para IT-Pros como para desarrolladores</p>
<p>IT-Pros</p>
<ul>
<li><a  href="http://technet.microsoft.com/en-US/sharepoint/fp123606" target="_blank">http://technet.microsoft.com/en-US/sharepoint/fp123606</a></li>
<li><a  href="http://www.microsoft.com/en-us/download/details.aspx?id=30361" target="_blank">http://www.microsoft.com/en-us/download/details.aspx?id=30361</a></li>
</ul>
<p>Desarrollo</p>
<ul>
<li><a  href="http://msdn.microsoft.com/en-US/sharepoint/fp123633" target="_blank">http://msdn.microsoft.com/en-US/sharepoint/fp123633</a></li>
<li><a  href="http://msdn.microsoft.com/en-us/sharepoint" target="_blank">http://msdn.microsoft.com/en-us/sharepoint</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/sharepoint-2013/sharepoint-2013-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Libro gratuito: Time-Saving VS11 and ASP.NET 4.5 Features You Shouldn’t Miss</title>
		<link>http://oscarmartin.org/visual-studio-2010/libro-gratuito-time-saving-vs11-and-asp-net-4-5-features-you-shouldnt-miss/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=libro-gratuito-time-saving-vs11-and-asp-net-4-5-features-you-shouldnt-miss</link>
		<comments>http://oscarmartin.org/visual-studio-2010/libro-gratuito-time-saving-vs11-and-asp-net-4-5-features-you-shouldnt-miss/#comments</comments>
		<pubDate>Fri, 13 Jul 2012 08:20:40 +0000</pubDate>
		<dc:creator>OMG</dc:creator>
				<category><![CDATA[ASP.NET 4.5]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Visual Studio 2012]]></category>
		<category><![CDATA[Gratis]]></category>
		<category><![CDATA[Libro]]></category>
		<category><![CDATA[Telerik]]></category>

		<guid isPermaLink="false">http://oscarmartin.org/?p=2349</guid>
		<description><![CDATA[Gracias a la gente de Telerik, podemos disfrutar más que de un libro, yo lo clasificaría como artículo muy completo sobre a las mejores características que ahorran tiempo en Visual Studio 2012 y ASP.NET 4.5. Tiene un total de 20 paginas y está escrito por los mejores ingenieros en Telerik, donde se explican varias características especiales de Visual [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-2350" title="BookVS12" src="http://oscarmartin.org/wp-content/uploads/2012/07/BookVS12.jpg" alt="" width="192" height="165" />Gracias a la gente de <a  href="http://www.telerik.com" target="_blank">Telerik</a>, podemos disfrutar más que de un libro, yo lo clasificaría como artículo muy completo sobre a las mejores características que ahorran tiempo en <strong>Visual Studio 2012</strong> y <strong>ASP.NET 4.5</strong>.</p>
<p>Tiene un total de 20 paginas y está escrito por los mejores ingenieros en <a  href="http://www.telerik.com" target="_blank">Telerik</a>, donde se explican varias características especiales de <strong>Visual Studio 2012,</strong> como:</p>
<ul>
<li>JavaScript Intellisense</li>
<li>CSS Intellisense</li>
<li>ASP.NET y Web API (Información general y las operaciones CRUD)</li>
<li>Strongly Typed Data Binding</li>
<li>Page Inspector (nueva herramienta de depuración)</li>
<li>&#8230;</li>
</ul>
<p>Para poder descargarte este articulo en formato PDF, puedes hacerlo desde <a  href="http://www.telerik.com/campaigns/visual-studio-2012.aspx" target="_blank">aquí</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://oscarmartin.org/visual-studio-2010/libro-gratuito-time-saving-vs11-and-asp-net-4-5-features-you-shouldnt-miss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.884 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-06-20 11:22:45 -->
