<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5733790482825039236</id><updated>2024-12-18T19:28:25.863-08:00</updated><category term="sharepoint"/><category term="sharepoint 2010"/><category term="sharepoint online"/><category term="sharepoint desarrollo"/><category term="office 365"/><category term="powershell"/><category term="sharepoint designer"/><category term="spfx"/><category term="Microsoft Support"/><category term="SharePoint Online Español"/><category term="c#"/><category term="modelo objetos sharepoint"/><category term="sharepoint framework"/><category term=".net"/><category term="react"/><category term="sharepoint 2010 reuniones"/><category term="sharepoint log"/><category term="trucos"/><category term="70-541"/><category term="Administración SharePoint Online"/><category term="Azure"/><category term="Azure; Azure Functions"/><category term="Extensiones SharePoint Online"/><category term="MSGraph"/><category term="Microsoft .NET"/><category term="Microsoft SharePoint"/><category term="Microsoft Sharepoint Online"/><category term="Pnp Powershell"/><category term="PowerApps"/><category term="SharePoint &amp; CSOM"/><category term="SharePoint Powershell"/><category term="Web parts SharePoint"/><category term="administracion"/><category term="api rest"/><category term="cloud computing"/><category term="desarrollo"/><category term="error"/><category term="error ie"/><category term="gestion del cambio"/><category term="gulp"/><category term="javascript"/><category term="jquery"/><category term="mcts"/><category term="mock"/><category term="mockservice"/><category term="o365"/><category term="office 2010"/><category term="pnp"/><category term="programacion"/><category term="servicios web"/><category term="sharepoint 2013"/><category term="sharepoint search"/><category term="sharepoint sharepoint 2010 reuniones"/><category term="sharepoint workflows"/><category term="soa"/><category term="soapui"/><category term="tip"/><category term="visual studio 2010"/><category term="web analytics"/><category term="web parts"/><category term="windows"/><title type='text'>Blog de David Alonso. Microsoft SharePoint, Office 365, Azure y otras tecnologías Microsoft</title><subtitle type='html'>Microsoft SharePoint, Azure, Office 365</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-2446173750439015215</id><published>2020-04-16T09:08:00.001-07:00</published><updated>2020-04-16T10:31:44.128-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerApps"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><title type='text'>Personalizar Formularios de SharePoint con PowerApps (I)</title><content type='html'>&lt;h1&gt;
¿Cómo personalizar Formularios de una lista de SharePoint con PowerApps?&lt;/h1&gt;
&lt;h2&gt;
¿Qué es PowerApps?
&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0PlybnPsQsv5MGc3kLF-hKO9cdi-QKlZ_mgQBcYyW5aJW-JagA-q6l-waBD7KjKDqgUHIhT3yJWl5HedCkL8DfZXlWCnyGoblZjDrQ2DaKZA2kiyIOq_yPMLc24Sn1bxqeeqKKEWJH0/s1600/logo-powerapp.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;logo-powerapps&quot; border=&quot;0&quot; data-original-height=&quot;353&quot; data-original-width=&quot;689&quot; height=&quot;163&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0PlybnPsQsv5MGc3kLF-hKO9cdi-QKlZ_mgQBcYyW5aJW-JagA-q6l-waBD7KjKDqgUHIhT3yJWl5HedCkL8DfZXlWCnyGoblZjDrQ2DaKZA2kiyIOq_yPMLc24Sn1bxqeeqKKEWJH0/s320/logo-powerapp.png&quot; title=&quot;logo-powerapps&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;
Power&amp;nbsp;Apps es un nuevo servicio incluido dentro de Office 365 que permite que cualquier usuario con conocimientos de Office pueda crear aplicaciones de negocio sin conocimientos de programación. &lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;
El objetivo de las PowerApps es dotar de autonomía a los empleados de las empresas a la hora de crear aplicaciones de procesos de negocio. Éstas aplicaciones se pueden ejecutar tanto en el navegador como en dispositivos móviles. &lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;

Para más información sobre Power Apps hacer clic &lt;a href=&quot;https://docs.microsoft.com/es-es/powerapps/powerapps-overview&quot;&gt;aquí&lt;/a&gt;. 
&lt;/span&gt;&lt;/h4&gt;
&lt;h3&gt;
¿Personalizar un formulario de lista de SharePoint?&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Mediante PowerApps, se puede personalizar un formulario de una lista de SharePoint. Para ello vamos a ver un ejemplo.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Lo primero que se va a realizar es crear una lista llamada Clientes.&amp;nbsp; Esta lista tendrá las siguientes columnas:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Nombre: Columna de tipo texto.&lt;/li&gt;
&lt;li&gt;Dirección: Columna de varias líneas de texto.&lt;/li&gt;
&lt;li&gt;Teléfono: Columna de tipo texto&lt;/li&gt;
&lt;li&gt;CIF: Columna de tipo texto&lt;/li&gt;
&lt;li&gt;Logo: Columna de tipo Imagen&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
A continuación, desde la lista hacer clic en PowerApps en el menú superior.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1npTQbAnd62AzXXFrFI5ye_h0zD9qNCTAuEiLELJPu8lJvUHtIHN9gpuCexZsRXFa3cKxERc0rRni5qtIWdPXveh-T7SfldGSmnBfX8eVkS7k7OQjrrGXEhWD6HPf8SNmSxEEufE6XHI/s1600/personalizar-formularios-powerapp.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;personalizar-formularios&quot; border=&quot;0&quot; data-original-height=&quot;190&quot; data-original-width=&quot;842&quot; height=&quot;72&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1npTQbAnd62AzXXFrFI5ye_h0zD9qNCTAuEiLELJPu8lJvUHtIHN9gpuCexZsRXFa3cKxERc0rRni5qtIWdPXveh-T7SfldGSmnBfX8eVkS7k7OQjrrGXEhWD6HPf8SNmSxEEufE6XHI/s320/personalizar-formularios-powerapp.png&quot; title=&quot;personalizar-formularios&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Y elegir la opción &lt;b&gt;Personalizar formularios&lt;/b&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Se abre la aplicación PowerApps en el navegador.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHuGmQK1LjaZNJAY4clK9QtpfepCoaBlOr_XIeqqbFpwggUZxiMz9QTyBvsC53g_mMVNt7fRUxyKNpR5CdO5IFG9gvEjOl73_As4OPgGEErzFAlmDurEZY1bUkzI8omZXcvG69mk3hmF0/s1600/powerapp-ventana.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;788&quot; data-original-width=&quot;1600&quot; height=&quot;157&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHuGmQK1LjaZNJAY4clK9QtpfepCoaBlOr_XIeqqbFpwggUZxiMz9QTyBvsC53g_mMVNt7fRUxyKNpR5CdO5IFG9gvEjOl73_As4OPgGEErzFAlmDurEZY1bUkzI8omZXcvG69mk3hmF0/s320/powerapp-ventana.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
¿Modificar el orden de los campos del formulario?&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
Para modificar el orden de los campos del formulario hay que seleccionar SharePointForm1 en la vista de árbol y a continuación hacer clic en Editar Campos en la parte de la derecha de la ventana. La siguiente captura muestra estos dos puntos.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwsPcfY8Gcm1pgE58qdVuQMfBpmeZPsr3wJQfDNi_HqOV0QytscWFKOWX6Czk6LrGY1jDC_-dXLqPjoSnidNJZnWTENyT7epSEqVSDdOUUuETRP3b0tqMP_DuGXkDRbK_mRGVx8eFEAa0/s1600/powerapp-orden.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;743&quot; data-original-width=&quot;1600&quot; height=&quot;148&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwsPcfY8Gcm1pgE58qdVuQMfBpmeZPsr3wJQfDNi_HqOV0QytscWFKOWX6Czk6LrGY1jDC_-dXLqPjoSnidNJZnWTENyT7epSEqVSDdOUUuETRP3b0tqMP_DuGXkDRbK_mRGVx8eFEAa0/s320/powerapp-orden.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Al hacer clic en Editar Campos, aparece el menú contextual de los Campos, desde donde se puede seleccionar uno a uno y subir y bajar el orden del campo. En el ejemplo, subiremos la Imagen del logo a la parte superior.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg61ROVYPjxztRT_kbI8PiBK_91pcSoOj42HJTdaExzNg7tVd7U8CyulV_zJYmgGP0MiNLa1qPZ652h2BBG6QbBYDjBsIimFc6ficF_nTNnjv-f_yXl_ee0PGDBogPQZHWYEN2qlf5V5sU/s1600/powerapp-orden-logo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;cambiar-orden&quot; border=&quot;0&quot; data-original-height=&quot;566&quot; data-original-width=&quot;496&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg61ROVYPjxztRT_kbI8PiBK_91pcSoOj42HJTdaExzNg7tVd7U8CyulV_zJYmgGP0MiNLa1qPZ652h2BBG6QbBYDjBsIimFc6ficF_nTNnjv-f_yXl_ee0PGDBogPQZHWYEN2qlf5V5sU/s320/powerapp-orden-logo.png&quot; title=&quot;cambiar-orden&quot; width=&quot;280&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Además, se permite que en el formulario pueda verse la imagen y no el texto de la url seleccionando Tipo de control: Ver imagen.&lt;br /&gt;
&lt;br /&gt;
Otra cosa que vamos a hacer en este mismo bloque de campos es eliminar los datos adjuntos. Al igual que se hace para subir y bajar un campo, tenemos la opción Quitar.&lt;br /&gt;
&lt;h3&gt;
¿Guardar y ver el formulario?&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
Para guardar el formulario hay que hacer clic en la pestaña Archivo &amp;gt; Guardar.&lt;br /&gt;
Una vez guardado es necesario Publicar en SharePoint.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-YDz6X98QMnrhMxcEXlweITk-jDIeHy-fUrsgPysFODYA8CwghnlCTyt7OKAlZEYga73wKodaCcFYzpGJteoz8U4BEsNTXpEzknP4EXQkZo8ZAcr_qfjqhLSHbmGZ8oMU4xK3joKElzg/s1600/powerapp-publicar-formulario.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;publicar-formulario&quot; border=&quot;0&quot; data-original-height=&quot;582&quot; data-original-width=&quot;858&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-YDz6X98QMnrhMxcEXlweITk-jDIeHy-fUrsgPysFODYA8CwghnlCTyt7OKAlZEYga73wKodaCcFYzpGJteoz8U4BEsNTXpEzknP4EXQkZo8ZAcr_qfjqhLSHbmGZ8oMU4xK3joKElzg/s320/powerapp-publicar-formulario.png&quot; title=&quot;publicar-formulario&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Entramos a la lista y creamos un elemento nuevo.&lt;br /&gt;
&lt;br /&gt;
Podremos ver el formulario creado.&lt;br /&gt;
&lt;br /&gt;
En próximos post veremos más opciones a realizar con los formularios y PowerApps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/2446173750439015215/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2020/04/personalizar-formularios-sharepoint-powerapps.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/2446173750439015215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/2446173750439015215'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2020/04/personalizar-formularios-sharepoint-powerapps.html' title='Personalizar Formularios de SharePoint con PowerApps (I)'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw0PlybnPsQsv5MGc3kLF-hKO9cdi-QKlZ_mgQBcYyW5aJW-JagA-q6l-waBD7KjKDqgUHIhT3yJWl5HedCkL8DfZXlWCnyGoblZjDrQ2DaKZA2kiyIOq_yPMLc24Sn1bxqeeqKKEWJH0/s72-c/logo-powerapp.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-5306374916464256649</id><published>2020-03-08T04:18:00.000-07:00</published><updated>2020-03-08T04:21:14.676-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft .NET"/><title type='text'>Cómo firmar un PDF con iText Sharp</title><content type='html'>&lt;h1&gt;
Firmar un pdf en C# con iTextSharp &lt;/h1&gt;
&lt;h2&gt;
¿Qué es iText Sharp?&amp;nbsp;&lt;/h2&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;
iText Sharp es una adaptación a código CV# de la biblioteca iText, que se trata de una biblioteca Open Source para crear y manipular archivos PDF, RTF, y HTML en Java.

&lt;/span&gt;&lt;/h4&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8bHJwr4XkwX8iWHD67W8L13Exb2PDVqSlrl1fbOUPoBfZwKzMwZbwPcjvOuTVUDuOPKtHKWC6XQH9UFWIKUdIVYiXnb9Qdx34spH1nNVpRTHJl6MMryaif60BTpLHAx4V7aWMBlNWA_g/s1600/logo-dotnet-csharp.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;logo-dotnet-csharp&quot; border=&quot;0&quot; data-original-height=&quot;282&quot; data-original-width=&quot;522&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8bHJwr4XkwX8iWHD67W8L13Exb2PDVqSlrl1fbOUPoBfZwKzMwZbwPcjvOuTVUDuOPKtHKWC6XQH9UFWIKUdIVYiXnb9Qdx34spH1nNVpRTHJl6MMryaif60BTpLHAx4V7aWMBlNWA_g/s1600/logo-dotnet-csharp.png&quot; title=&quot;logo-dotnet-csharp&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;
¿Qué significa&amp;nbsp;firmar un documento pdf?&lt;/h2&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Firmar electrónicamente un documento, significa&amp;nbsp; asociar al documento una serie de datos cuyo objetivo es identificar al firmante de manera inequívoca.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Además, asegura la integridad del documento, es decir el documento que se ha firmado es exactamente el mismo que el original por lo que no ha sufrido ninguna modificación.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
Para más información sobre la firma electrónica, puede acceder al portal de administración electrónica haciendo clic en el siguiente &lt;a href=&quot;https://firmaelectronica.gob.es/Home/Ciudadanos/Firma-Electronica.html&quot;&gt;enlace&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Firmar documento pdf programáticamente con c#&lt;/h2&gt;
&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;A continuación adjunto el código fuente para firmar el documento pdf con C#.&amp;nbsp; Lo primero que habría que hacer es añadir con Nugget la librería iText.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre&gt;&lt;code class=&quot;c#&quot;&gt;
 public static void FirmaPDF(string unsignedDocument, string signedDocument,
                                        int x, int y, int width, int height,
                                        string certFileNamePath,
                                        int pageToSign , string password)
    {
      FileStream certificado = new FileStream(certFileNamePath, FileMode.Open);
      Org.BouncyCastle.Pkcs.Pkcs12Store store = new Org.BouncyCastle.Pkcs.Pkcs12Store(certi, ((String)password).ToCharArray());
      String alias = &quot;&quot;;
      System.Collections.Generic.ICollection&lt;org .bouncycastle.x509.x509certificate=&quot;&quot;&gt; chain = new System.Collections.Generic.List&lt;org .bouncycastle.x509.x509certificate=&quot;&quot;&gt;();
      // searching for private key   
      foreach (string al in store.Aliases)
        if (store.IsKeyEntry(al) &amp;amp;&amp;amp; store.GetKey(al).Key.IsPrivate)
        {
          alias = al;
          break;
        }
      Org.BouncyCastle.Pkcs.AsymmetricKeyEntry pk = store.GetKey(alias);
      foreach (Org.BouncyCastle.Pkcs.X509CertificateEntry c in store.GetCertificateChain(alias))
        chain.Add(c.Certificate);
      Org.BouncyCastle.Crypto.Parameters.RsaPrivateCrtKeyParameters parameters = pk.Key as Org.BouncyCastle.Crypto.Parameters.RsaPrivateCrtKeyParameters;
      iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(unsignedDocument);
      FileStream os = new FileStream(signedDocument, FileMode.Create);
      iTextSharp.text.pdf.PdfStamper stamper = iTextSharp.text.pdf.PdfStamper.CreateSignature(reader, os, &#39;\0&#39;,null, true);      

      // Creating the appearance
      iTextSharp.text.pdf.PdfSignatureAppearance appearance = stamper.SignatureAppearance;
      iTextSharp.text.Font font = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 8, iTextSharp.text.Font.ITALIC, iTextSharp.text.BaseColor.BLACK);
      appearance.Layer2Font = font;
      appearance.SignatureRenderingMode = iTextSharp.text.pdf.PdfSignatureAppearance.RenderingMode.DESCRIPTION;
      appearance.SetVisibleSignature(new iTextSharp.text.Rectangle(x, y, width, height), 1, &quot;sig&quot;);
      appearance.Layer2Text = &quot;Firmado digitalmente:&quot; + DateTime.Now.ToString(&quot;dd/MM/yyyy HH:mm:ss&quot;);
      // Creating the signature
      iTextSharp.text.pdf.security.IExternalSignature pks = new iTextSharp.text.pdf.security.PrivateKeySignature(parameters, iTextSharp.text.pdf.security.DigestAlgorithms.SHA256);
      iTextSharp.text.pdf.security.MakeSignature.SignDetached(appearance, pks, chain, null, null, null, 0, iTextSharp.text.pdf.security.CryptoStandard.CMS);

      certificado.Close();     
    }
&lt;/org&gt;&lt;/org&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;NOTAS&lt;/b&gt;:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;En la siguiente función, además de firmar, se adjunta en una posición del documento (concretamente en la página que se envía como parámetro pageToSign) un cuadro con texto. El bloque que añade este texto es el comentado como &quot;Creating the appearance&quot;. El cuadro de texto tendrá las posiciones, ancho y alto que recibe como parámetros de la función. También se podría añadir una imagen, o texto propio del certificado sin modificar la Layer.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Se utilizan dos rutas de fichero. Signeddocument será la ruta donde está el fichero a firmar y&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Si se quiere permitir más de una firma en el documento, hay que fijarse en la siguiente línea:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;c#&quot;&gt;
iTextSharp.text.pdf.PdfStamper stamper = iTextSharp.text.pdf.PdfStamper.CreateSignature(reader, os, &#39;\0&#39;,null, true); 
&lt;/code&gt;&lt;/pre&gt;
En ella, el último parámetro a true permite adjuntar más de una firma en el documento. En caso contrario, cuando se añada una nueva firma, se invalidará la primera. </content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/5306374916464256649/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2020/03/como-firmar-un-pdf-con-itext-sharp.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/5306374916464256649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/5306374916464256649'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2020/03/como-firmar-un-pdf-con-itext-sharp.html' title='Cómo firmar un PDF con iText Sharp'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8bHJwr4XkwX8iWHD67W8L13Exb2PDVqSlrl1fbOUPoBfZwKzMwZbwPcjvOuTVUDuOPKtHKWC6XQH9UFWIKUdIVYiXnb9Qdx34spH1nNVpRTHJl6MMryaif60BTpLHAx4V7aWMBlNWA_g/s72-c/logo-dotnet-csharp.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-4774875101309710949</id><published>2020-03-03T08:42:00.003-08:00</published><updated>2020-03-08T05:39:52.369-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Administración SharePoint Online"/><category scheme="http://www.blogger.com/atom/ns#" term="office 365"/><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint &amp; CSOM"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint online"/><title type='text'>Habilitar Uso Compartido Externo en SharePoint Online Programáticamente </title><content type='html'>&lt;br /&gt;
&lt;h1&gt;
Cómo habilitar Uso Compartido Externo en una colección de sitios de SharePoint Online&lt;/h1&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqFI6DSl3X8pQUgEaBipZOAzLgpxJ3SVJLQCGPKsy2tb8IuisDWnh18PD3wmJ6bC8_kOKDzZomvjvJeuu99s82SnFeMyIgd3MaUBUTg40UUL0zX_MeMPWYc0e2yHlZclFDj4r0PCC9IU/s1600/logo-sharepoint-online.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;habilitar uso compartido sharepoint online&quot; border=&quot;0&quot; data-original-height=&quot;532&quot; data-original-width=&quot;900&quot; height=&quot;189&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqFI6DSl3X8pQUgEaBipZOAzLgpxJ3SVJLQCGPKsy2tb8IuisDWnh18PD3wmJ6bC8_kOKDzZomvjvJeuu99s82SnFeMyIgd3MaUBUTg40UUL0zX_MeMPWYc0e2yHlZclFDj4r0PCC9IU/s320/logo-sharepoint-online.png&quot; title=&quot;habilitar uso compartido sharepoint online&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
¿Que es el Uso Compartido?&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
SharePoint Online permite compartir el contenido de una colección de sitios con personas de fuera de la organización como pueden ser clientes o proveedores.&amp;nbsp; Para habilitar el uso compartido de una colección de sitios, hay que hacer lo siguiente:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Desde la página de Sitios activos del panel de administración de SharePoint moderno, hacer clic en el sitio (colección de sitios) para el que se desea activar el uso compartido.&lt;/li&gt;
&lt;li&gt;Seleccione el sitio.&lt;/li&gt;
&lt;li&gt;Hacer clic en uso compartido en el menú superior.&lt;/li&gt;
&lt;li&gt;A continuación aparecen las siguientes opciones:&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0XBcJZsVtqMnfSouyhyzF80YnP7NKZFAk5Ctyf-yDURqC0b_UBmupDN-oZwjLqOLWEKiK5QJ5iPtFQpjKx_hTuVqSnMehxGnsCUl-gqNLtYU8IuheIRYjSAU7659xe4jYNu1e0JUm-Yc/s1600/uso-compartido-shrepoint-online.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;habilitar-uso-compartido-sharepoint-online&quot; border=&quot;0&quot; data-original-height=&quot;405&quot; data-original-width=&quot;691&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0XBcJZsVtqMnfSouyhyzF80YnP7NKZFAk5Ctyf-yDURqC0b_UBmupDN-oZwjLqOLWEKiK5QJ5iPtFQpjKx_hTuVqSnMehxGnsCUl-gqNLtYU8IuheIRYjSAU7659xe4jYNu1e0JUm-Yc/s1600/uso-compartido-shrepoint-online.png&quot; title=&quot;habilitar-uso-compartido-sharepoint-online&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Más información sobre el uso compartido &lt;a href=&quot;https://docs.microsoft.com/es-es/sharepoint/external-sharing-overview&quot;&gt;aquí&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;
Habilitar uso compartido externo programáticamente&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Las mismas opciones que hemos visto en el apartado anterior, pueden realizarse mediante código fuente C#. Por ejemplo, desde una Azure Function se podría modificar el uso compartido mediante código c#.&amp;nbsp; Si no conocéis que es una Azure Function, dejo &lt;a href=&quot;https://www.dalonsoblog.com/2019/08/como-crear-una-funcion-de-azure-i.html&quot;&gt;aquí &lt;/a&gt;un post de como crear una desde cero.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;A continuación os dejo una función para modificar el uso compartido externo:&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;pre&gt; &lt;code class=&quot;c#&quot;&gt;     
public static void ConfigureExternalSharing(string site, string userSp , string passwordUserSP)
        {            
                ClientContext ccTenant = new AuthenticationManager().GetSharePointOnlineAuthenticatedContextTenant(&quot;https://dalonsoblog.sharepoint.com/&quot;,userSP, ConvertStringToSecureString(passwordUserSP));
                var _tenantAdmin = new Tenant(ccTenant);
                SiteProperties _siteprops = _tenantAdmin.GetSitePropertiesByUrl(site, true);
                ccTenant.Load(_tenantAdmin);
                ccTenant.Load(_siteprops);
                ccTenant.ExecuteQuery();
                _siteprops.SharingCapability = SharingCapabilities.ExternalUserAndGuestSharing;
                _siteprops.Update();
                ccTenant.ExecuteQuery();
                ccTenant.Dispose();           
        }
&lt;/code&gt;
&lt;/pre&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;
La línea importante es:&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;
&lt;pre&gt; &lt;code class=&quot;c#&quot;&gt;  _siteprops.SharingCapability = SharingCapabilities.ExternalUserAndGuestSharing;&lt;/code&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;
Donde&amp;nbsp;ConvertStringToSecureString es una función que he implementado para convertir la password de un string a un SecureString.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;pre&gt; &lt;code class=&quot;c#&quot;&gt;  
private static SecureString ConvertStringToSecureString(string s)
        {
            var secure = new SecureString();
            for (int i = 0; i &amp;lt; s.Length; i++)
            {
                secure.AppendChar(s[i]);
            }
            return secure;
        }&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;c#&quot;&gt;
&lt;/code&gt;
&lt;/pre&gt;
Las opciones que se pueden indicar en la propiedad &lt;b&gt;SharingCapability&lt;/b&gt; son:&lt;br /&gt;
https://docs.microsoft.com/en-us/previous-versions/office/sharepoint-csom/dn174825(v%3Doffice.15)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;SharingCapabilities.Disabled&amp;nbsp;
&lt;/li&gt;
&lt;li&gt;SharingCapabilities.ExternalUserSharingOnly&amp;nbsp;
&lt;/li&gt;
&lt;li&gt;SharingCapabilities.ExternalUserAndGuestSharing 
SharingCapabilities.ExistingExternalUserSharingOnly



&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/4774875101309710949/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2020/03/habilitar-uso-compartido-externo-sharepoint-online.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/4774875101309710949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/4774875101309710949'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2020/03/habilitar-uso-compartido-externo-sharepoint-online.html' title='Habilitar Uso Compartido Externo en SharePoint Online Programáticamente '/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqFI6DSl3X8pQUgEaBipZOAzLgpxJ3SVJLQCGPKsy2tb8IuisDWnh18PD3wmJ6bC8_kOKDzZomvjvJeuu99s82SnFeMyIgd3MaUBUTg40UUL0zX_MeMPWYc0e2yHlZclFDj4r0PCC9IU/s72-c/logo-sharepoint-online.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-772381913021982710</id><published>2020-02-27T01:27:00.000-08:00</published><updated>2020-03-03T08:51:45.691-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft Sharepoint Online"/><category scheme="http://www.blogger.com/atom/ns#" term="MSGraph"/><category scheme="http://www.blogger.com/atom/ns#" term="react"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint framework"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint online"/><category scheme="http://www.blogger.com/atom/ns#" term="spfx"/><title type='text'>Crear un evento en el calendario con Graph  desde un web part SPFX. MSGraphClient</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;h1&gt;
Crear un evento de calendario con MS Graph&lt;/h1&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq4YO8yCo3HWW_l5jEVKHKj4LjAJxoJ4bNwCIZ6piOK0UfRLrVB0CAejvBWsgTei87_-eI4F-vKaW47pSMl7tyZqge_EVQPZ-Jj9ZHDqHgzgM4BhxDKkW-6kpHa_DveZrEsCrtksbJNc/s1600/logo-sharepoint-framework.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;crear-evento-calendario-graph&quot; border=&quot;0&quot; data-original-height=&quot;532&quot; data-original-width=&quot;835&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq4YO8yCo3HWW_l5jEVKHKj4LjAJxoJ4bNwCIZ6piOK0UfRLrVB0CAejvBWsgTei87_-eI4F-vKaW47pSMl7tyZqge_EVQPZ-Jj9ZHDqHgzgM4BhxDKkW-6kpHa_DveZrEsCrtksbJNc/s320/logo-sharepoint-framework.png&quot; title=&quot;crear-evento-calendario-graph&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Lo primero que vamos a hacer es crear el web part, para
ello, como siempre:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;Abre una ventana de comandos y sitúate en la carpeta donde quieras
generar el web part.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Ejecuta yeoman para generar el web part de sharepoint&lt;/span&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-left: 36.0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;yo @microsoft/sharepoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 36.0pt; margin-right: 0cm; margin-top: 12.0pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Continúa
el asistente de SharePoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol start=&quot;1&quot; type=&quot;1&quot;&gt;
 &lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;What is your solution
      name?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: EventosGraphSPFx&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; margin-top: 3.0pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Which baseline packages
      do you want to target for your component(s)?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: SharePoint Online only (latest)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; margin-top: 3.0pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Where do you want to
      place the files?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: Use the current folder&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; margin-top: 3.0pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Do you want to allow the
      tenant admin the choice of being able to deploy the solution to all sites
      immediately without running any feature deployment or adding apps in
      sites?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; margin-top: 3.0pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Will the components in
      the solution require permissions to access web APIs that are unique and
      not shared with other components in the tenant?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: No&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; margin-top: 3.0pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Which type of client-side
      component to create?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: WebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; margin-top: 3.0pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;What is your Web part
      name?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: EventosGraphSPFx&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; margin-top: 3.0pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;What is your Web part
      description?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: EventosGraphSPFx
      Descripción. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; color: #24292e; line-height: normal; margin-top: 3.0pt; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt;&quot;&gt;&lt;b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Which framework would
      you like to use?&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: React&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Cuando
se complete el asistente de creación del web part, vamos a instalar los
siguientes modulos:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;background: #F6F8FA;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; mso-ansi-language: EN-GB;&quot;&gt;npm install @microsoft/microsoft-graph-types --save-dev&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;A continuación,
empezamos a modificar el codigo Fuente. El primer paso es añadir las siguientes
dependencias al fichero .ts que nos ha generado el web part: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; { MSGraphClient } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #032f62; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&#39;@microsoft/sp-http&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #005cc5; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;*&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;as&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; MicrosoftGraph &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #032f62; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&#39;@microsoft/microsoft-graph-types&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Hay que
modificar la function render que nos ha dado por defecto, en su lugar la
dejaremos así: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #005cc5; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;.context.msGraphClientFactory.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #6f42c1; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;getClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #005cc5; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;then&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;((&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #e36209; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;client&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #6f42c1; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;MSGraphClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;)&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #005cc5; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;void&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;const&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;
element&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #6f42c1; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;React&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #6f42c1; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;ReactElement&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #6f42c1; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;IEventosGraphProps&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; React.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #005cc5; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;createElement&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;EventosGraph,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;graphClient: client&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;ReactDom.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #6f42c1; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;render&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;(element,
&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #005cc5; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;.domElement);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;});&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Como se puede
apreciar, le estamos pasando al componente de react una propiedad llamada
graphClient, por lo tanto debemos incluirla en el interfaz de propiedades IEventosGraphProps&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; { MSGraphClient } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #032f62; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&#39;@microsoft/sp-http&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;export&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;interface&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #6f42c1; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;IEventosGraphProps&lt;/span&gt;&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;span lang=&quot;EN-GB&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;graphClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #6f42c1; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;MSGraphClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #24292e; font-family: &amp;quot;segoe ui&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;NOTA&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #24292e; font-family: &amp;quot;segoe ui&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;: para añadir un MSGraphClient hay que
hacer un import:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; { MSGraphClient } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #032f62; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&#39;@microsoft/sp-http&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;A
continuación pasamos a modificar el codigo del fichero .tsx correspondiente al
componente react que se mostrará en el web part.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;En este
caso, lo que voy a hacer es simplemente incluir un botón que cuando haga clic,
introduzca un evento en el calendario del usuario conectado. Evidentemente
podríamos modificar el formulario para que el evento se genere en función de
unas fechas seleccionadas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;La función
render quedará entonces así:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;public&amp;nbsp;render():&amp;nbsp;React.ReactElement&lt;igraphemailprops&gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/igraphemailprops&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;(&lt;/span&gt;&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;div&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;lt;Primarybutton nbsp=&quot;&quot; onclick=&quot;{this._alertClicked}&amp;nbsp;&amp;nbsp;/&quot; text=&quot;Crear Evento&quot; /&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; line-height: normal; margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; line-height: normal; margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;o:p&gt;&lt;/o:p&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp; &amp;nbsp; );&lt;/span&gt;&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10pt;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Como
estoy incluyendo un botón de ui fabric, recordad que hay que añadir un import: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;import&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;{&amp;nbsp;DefaultButton,&amp;nbsp;PrimaryButton,&amp;nbsp;Stack,&amp;nbsp;IStackTokens&amp;nbsp;}&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;from&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&#39;office-ui-fabric-react&#39;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Como
vamos a utilizar MSGraphClient desde el fichero tsx, también tenemos que hacer
un import a éste modulo:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;import&amp;nbsp;*&amp;nbsp;as&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;MicrosoftGraph&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;from&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&#39;@microsoft/microsoft-graph-types&#39;;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d73a49; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Por
último, en el render puede verse que el clic del botón lanza una función llamada
alertClicked. El código de esta función es el siguiente: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;public&amp;nbsp;_alertClicked():&amp;nbsp;void&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;const&amp;nbsp;event&amp;nbsp;:&amp;nbsp;MicrosoftGraph.Event&amp;nbsp;=&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;subject:&amp;nbsp;&quot;Evento
desde SPFX creado&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;body:&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;content:&amp;nbsp;&quot;Hemos
creado un evento desde un web part SPFX”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start:&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dateTime:&amp;nbsp;&quot;2019-11-15T12:00:00&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;timeZone:&amp;nbsp;&quot;Romance&amp;nbsp;Standard&amp;nbsp;Time&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end:&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dateTime:&amp;nbsp;&quot;2019-11-15T14:00:00&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;timeZone:&amp;nbsp;&quot;Romance&amp;nbsp;Standard&amp;nbsp;Time&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;location:{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;displayName:&quot;Lugar
preferido de David?&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;attendees:&amp;nbsp;[&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;emailAddress:&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;address:&quot;david@mysite.onmicrosoft.com&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name:&amp;nbsp;&quot;David&amp;nbsp;Alonso&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;&quot;required&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.props.graphClient&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.api(&#39;https://graph.microsoft.com/v1.0/me/calendar/events&#39;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.post(event,&amp;nbsp;(err,&amp;nbsp;res)&amp;nbsp;= &amp;gt;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(res);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;NOTA&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: para poder utilizar en la función el
this, hay que bindearla. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;b&gt;NOTA2&lt;/b&gt;. En el evento que creo estoy metiendo como asistentes a David Alonso. Puedes generar el evento sin asistentes.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Hasta
aquí tenemos el codigo para poder generar un evento desde SPFX, pero lo
importante ahora es que este componente spfx tenga permisos de Graph para
insertar el evento. Para ello es necesario añadir en el fichero
config\package-solution.json las siguientes líneas &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&quot;webApiPermissionRequests&quot;:&amp;nbsp;[&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;resource&quot;:&amp;nbsp;&quot;Microsoft&amp;nbsp;Graph&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;scope&quot;:&amp;nbsp;&quot;Calendars.ReadWrite&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Quedando
ese fichero de la siguiente forma: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&quot;$schema&quot;:&amp;nbsp;&quot;https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&quot;solution&quot;:&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;name&quot;:&amp;nbsp;&quot;graphemail-client-side-solution&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;id&quot;:&amp;nbsp;&quot;7d871ed2-27a7-474c-b468-a838f043703c&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;version&quot;:&amp;nbsp;&quot;1.0.0.1&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;includeClientSideAssets&quot;:&amp;nbsp;true,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;isDomainIsolated&quot;:&amp;nbsp;false,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;webApiPermissionRequests&quot;:&amp;nbsp;[&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;resource&quot;:&amp;nbsp;&quot;Microsoft&amp;nbsp;Graph&quot;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;scope&quot;:&amp;nbsp;&quot;Calendars.ReadWrite&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&quot;paths&quot;:&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;zippedPackage&quot;:&amp;nbsp;&quot;solution/graphemail.sppkg&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.0pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #F6F8FA; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;NOTA&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;: Fijaros que le he subido un 1 a la versión
;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;A
continuación procedemos a desplegar la solución ejecutando los siguientes
comandos. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;background: #F6F8FA;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; mso-ansi-language: EN-GB;&quot;&gt;gulp bundle --ship&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background: #F6F8FA;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #24292e; font-family: &amp;quot;consolas&amp;quot;; mso-ansi-language: EN-GB;&quot;&gt;gulp package-solution --ship&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Buscamos
el archive de la solucion y lo desplegamos en el catálogo de aplicaciones de
SharePoint. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;Ahora
solo nos queda aprobar los permisos solicitados. Para ello desde el panel de
Administración de SharePoint, buscar Administración de Api&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY_UFwKYlVGL_9Oj4LgEgckuxYZ7IYr_-WWmbikXQa4ssb54eFV1X-ZO1oGGNlurjkGmpv-C9m5NzD3NYdr_P5lB3gFZa-gtpNGRr4_QR2pccLHIbV492zDfnhSNx3KdVAsT2VUpru4fo/s1600/graph1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;594&quot; data-original-width=&quot;1216&quot; height=&quot;195&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY_UFwKYlVGL_9Oj4LgEgckuxYZ7IYr_-WWmbikXQa4ssb54eFV1X-ZO1oGGNlurjkGmpv-C9m5NzD3NYdr_P5lB3gFZa-gtpNGRr4_QR2pccLHIbV492zDfnhSNx3KdVAsT2VUpru4fo/s400/graph1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt;&quot;&gt;
&lt;span style=&quot;color: #24292e; font-family: &amp;quot;segoe ui&amp;quot; , sans-serif; font-size: 12.0pt;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=&quot;color: #24292e; text-align: justify;&quot;&gt;Debería
de aparecer como pendiente los permisos seleccionados desde el SPFX. Tendremos
que aprobarlos y con esto el web part está listo para probar en una página
moderna de SharePoint Online.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: #24292e; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;En otro
post mostraré como visualizar los eventos introducidos en un web part. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/772381913021982710/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2019/11/crear-un-evento-en-el-calendario-con.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/772381913021982710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/772381913021982710'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2019/11/crear-un-evento-en-el-calendario-con.html' title='Crear un evento en el calendario con Graph  desde un web part SPFX. MSGraphClient'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq4YO8yCo3HWW_l5jEVKHKj4LjAJxoJ4bNwCIZ6piOK0UfRLrVB0CAejvBWsgTei87_-eI4F-vKaW47pSMl7tyZqge_EVQPZ-Jj9ZHDqHgzgM4BhxDKkW-6kpHa_DveZrEsCrtksbJNc/s72-c/logo-sharepoint-framework.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-8379592207838118678</id><published>2020-02-26T02:56:00.000-08:00</published><updated>2020-02-26T02:57:04.264-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft SharePoint"/><category scheme="http://www.blogger.com/atom/ns#" term="Pnp Powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint online"/><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Online Español"/><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Powershell"/><title type='text'>Actualizar elemento de una lista con PNP Powershell</title><content type='html'>&lt;h1&gt;
 Actualizar elementos de una lista de SharePoint Online con Powershell&lt;/h1&gt;
&lt;br /&gt;
&lt;h2&gt;
PNP Powershell&lt;/h2&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Pnp (Pattern &amp;amp; Practices) se trata una comunidad de desarrollo de SharePoint de código abierto coordinada por el equipo de ingeniería de SharePoint. Esta iniciativa contiene una biblioteca de comandos de PowerShell llamada PnP de PowerShell, que permite realizar acciones dentro de SharePoint. 
&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzBinwAMWXpFfOa1fugWEHQYXbGuJqEgBCIcReigZAuPcjmkxViPIveXJwvFx1rXFZq7EziTU1TdUonSfwZ2XereYQzTLxC8s0X4FJ0BwzGYmJRzv5-IDxFLff6i6kAMQPR_JaQzkIt5I/s1600/logo-pnp-powershell.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;logo-pnp-powershell&quot; border=&quot;0&quot; data-original-height=&quot;444&quot; data-original-width=&quot;631&quot; height=&quot;224&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzBinwAMWXpFfOa1fugWEHQYXbGuJqEgBCIcReigZAuPcjmkxViPIveXJwvFx1rXFZq7EziTU1TdUonSfwZ2XereYQzTLxC8s0X4FJ0BwzGYmJRzv5-IDxFLff6i6kAMQPR_JaQzkIt5I/s320/logo-pnp-powershell.png&quot; title=&quot;logo-pnp-powershell&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Dejo aquí un enlace a los &lt;span id=&quot;goog_691062031&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://www.blogger.com/:https://docs.microsoft.com/en-us/powershell/sharepoint/sharepoint-pnp/sharepoint-pnp-cmdlets?view=sharepoint-ps&quot;&gt;Cmdlets de PnP Powershe&lt;span id=&quot;goog_691062032&quot;&gt;&lt;/span&gt;ll.&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;
Comando para actualizar elemento de una lista&lt;/h2&gt;
&lt;h4&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Mediante los comandos PNP Powershell, vamos a actualizar columnas de elementos de una lista.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
El comando que vamos a utilizar es SetPnpListItem.&amp;nbsp;&lt;/div&gt;
&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlEwbURfWzN8vPggns7V5OmCS2sjN9z42WaLrVYNwXr6l-oKOnmKrMBkLeeqYwVHPAjcFj78J3AclOJWIwhvcHJ9jo8ajQXZkb-j7r06gMnxE38g5c0Zh_NxgdgMml_vsh3vbWMppi5ns/s1600/PS1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;actualizar-lista-sharepoint-pnp-powershell&quot; border=&quot;0&quot; data-original-height=&quot;332&quot; data-original-width=&quot;496&quot; height=&quot;214&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlEwbURfWzN8vPggns7V5OmCS2sjN9z42WaLrVYNwXr6l-oKOnmKrMBkLeeqYwVHPAjcFj78J3AclOJWIwhvcHJ9jo8ajQXZkb-j7r06gMnxE38g5c0Zh_NxgdgMml_vsh3vbWMppi5ns/s320/PS1.png&quot; title=&quot;actualizar-lista-sharepoint-pnp-powershell&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;hljs-pscommand&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #0101fd; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre-wrap;&quot;&gt;Set-PnPListItem&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre-wrap;&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre-wrap;&quot;&gt; -List&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre-wrap;&quot;&gt; &lt;listpipebind&gt;
                 &lt;/listpipebind&gt;&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre-wrap;&quot;&gt; -Identity&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre-wrap;&quot;&gt; &lt;listitempipebind&gt;
                  [-ContentType &lt;contenttypepipebind&gt;]
                  [-Values &lt;hashtable&gt;]
                  [-SystemUpdate [&lt;switchparameter&gt;]]
                  [-Web &lt;webpipebind&gt;]
                  [-Connection &lt;sponlineconnection&gt;]&lt;/sponlineconnection&gt;&lt;/webpipebind&gt;&lt;/switchparameter&gt;&lt;/hashtable&gt;&lt;/contenttypepipebind&gt;&lt;/listitempipebind&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Donde &lt;listpipebind&gt; es el nombre de la lista y &lt;listitempipebind&gt; es el id del elemento de la lista que se quiere actualizar.&amp;nbsp;&lt;/listitempipebind&gt;&lt;/listpipebind&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h2&gt;
&lt;br /&gt;Ejemplos&lt;/h2&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Veamos algunos ejemplos:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A continuación vamos a actualizar el elemento con ID 1 de la lista Documentos. Las columna que se van a actualizar es &quot;Titulo&quot; por el valor &quot;Titulo actualizado&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;hljs-pscommand&quot; style=&quot;box-sizing: inherit; color: #0101fd; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;Set-PnPListItem&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -List&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Documentos&quot;&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Identity&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-number&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Values&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; @{&lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Titulo&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; = &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Titulo actualizado&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Se puede añadir más de una columna en el mismo comando. Por ejemplo, actualizar la columna Titulo como en el caso anterior y la columna Categoría.&amp;nbsp; Lo que hay que hacer es separar con ; los valores.&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;hljs-pscommand&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #0101fd; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;Set-PnPListItem&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -List&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Documentos&quot;&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Identity&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-number&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Values&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; @{&lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Titulo&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; = &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Titulo actualizado&quot;; &quot;Categoria&quot; = &quot;Categoria actualizada&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
En estos ejemplos, se ha actualizado una columna de tipo texto. Una columna de tipo elección o multitexto sería igual, pero para una columna lookup habría que indicar el ID del elemento de la lista lookup a la que apunta.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;hljs-pscommand&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #0101fd; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;Set-PnPListItem&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -List&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Documentos&quot;&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Identity&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-number&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Values&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; @{&lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Lookup&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; = &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Para una columna de tipo Si/No .&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;hljs-pscommand&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #0101fd; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;Set-PnPListItem&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -List&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Documentos&quot;&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Identity&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-number&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Values&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; @{&lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;ColumnaSiNo&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; = &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;$false&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Por último, una columna de tipo Usuario o grupo permite indicar el id del usuario/grupo o el email. Además permite indicar mas de uno en caso de que la columna esté indicada como &quot;permite mas de un usuario&quot;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;hljs-pscommand&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #0101fd; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;Set-PnPListItem&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -List&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Documentos&quot;&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Identity&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-number&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #007d9a; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; -Values&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; @{&lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;Usuarios&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; = &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;david@dalonsoblog.onmicrosoft.com&quot;,&quot;21&quot;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Acordarse que para lanzar estos comandos es necesario conectarse al sitio, para ello ejecutar el comando&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;hljs-parameter&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #0101fd;&quot;&gt;Connect-PnpOnline &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa; color: #171717; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hljs-string&quot; style=&quot;background-color: #fafafa; box-sizing: inherit; color: #a31515; font-family: , &amp;quot;consolas&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;https://dalonsoblog.sharepoint.com&quot;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/8379592207838118678/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2019/12/actualizar-lista-sharepoint-powershell.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/8379592207838118678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/8379592207838118678'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2019/12/actualizar-lista-sharepoint-powershell.html' title='Actualizar elemento de una lista con PNP Powershell'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzBinwAMWXpFfOa1fugWEHQYXbGuJqEgBCIcReigZAuPcjmkxViPIveXJwvFx1rXFZq7EziTU1TdUonSfwZ2XereYQzTLxC8s0X4FJ0BwzGYmJRzv5-IDxFLff6i6kAMQPR_JaQzkIt5I/s72-c/logo-pnp-powershell.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-5400582720017103978</id><published>2020-02-22T05:43:00.000-08:00</published><updated>2020-02-25T05:53:23.422-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Extensiones SharePoint Online"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint framework"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint online"/><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Online Español"/><category scheme="http://www.blogger.com/atom/ns#" term="spfx"/><category scheme="http://www.blogger.com/atom/ns#" term="Web parts SharePoint"/><title type='text'>Como crear un command set SPFx con un panel react en una librería de documentos</title><content type='html'>&lt;h1&gt;
Como crear una extensión SPFX en SharePoint Online&lt;/h1&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq4YO8yCo3HWW_l5jEVKHKj4LjAJxoJ4bNwCIZ6piOK0UfRLrVB0CAejvBWsgTei87_-eI4F-vKaW47pSMl7tyZqge_EVQPZ-Jj9ZHDqHgzgM4BhxDKkW-6kpHa_DveZrEsCrtksbJNc/s1600/logo-sharepoint-framework.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;extension-sharepoint-framework&quot; border=&quot;0&quot; data-original-height=&quot;532&quot; data-original-width=&quot;835&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq4YO8yCo3HWW_l5jEVKHKj4LjAJxoJ4bNwCIZ6piOK0UfRLrVB0CAejvBWsgTei87_-eI4F-vKaW47pSMl7tyZqge_EVQPZ-Jj9ZHDqHgzgM4BhxDKkW-6kpHa_DveZrEsCrtksbJNc/s320/logo-sharepoint-framework.png&quot; title=&quot;extension-sharepoint-framework&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;
¿Qué es una Extensión SPFX?&lt;/h2&gt;
&lt;div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Una extensión de SharePoint, permite ampliar la funcionalidad propia de SharePoint Online en las páginas Modernas. Con las extensiones se permite crear:&lt;/span&gt;&lt;ul style=&quot;background-color: white; box-sizing: inherit; color: #171717; font-size: 16px; list-style: none; margin: 16px 0px 16px 38px; padding: 0px; text-align: start;&quot;&gt;
&lt;li style=&quot;box-sizing: inherit; list-style: outside none disc; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span data-ttu-id=&quot;4a8e5-111&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit;&quot;&gt;Personalizadores de aplicaciones&lt;/span&gt;.&lt;/span&gt;&amp;nbsp;&lt;span data-ttu-id=&quot;4a8e5-112&quot; style=&quot;box-sizing: inherit;&quot;&gt;Permite agregar scripts a la página, así como tener acceso a marcadores de posición de elementos HTML conocidos y ampliarlos con representaciones personalizadas.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;background-color: white; box-sizing: inherit; color: #171717; font-size: 16px; list-style: none; margin: 16px 0px 16px 38px; padding: 0px; text-align: start;&quot;&gt;
&lt;li style=&quot;box-sizing: inherit; list-style: outside none disc; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span data-ttu-id=&quot;4a8e5-113&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit;&quot;&gt;Personalizadores de campo&lt;/span&gt;.&lt;/span&gt;&amp;nbsp;&lt;span data-ttu-id=&quot;4a8e5-114&quot; style=&quot;box-sizing: inherit;&quot;&gt;Puede usarse para proporcionar vistas modificadas de los datos para los campos de una lista.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;background-color: white; box-sizing: inherit; color: #171717; font-size: 16px; list-style: none; margin: 16px 0px 16px 38px; padding: 0px; text-align: start;&quot;&gt;
&lt;li style=&quot;box-sizing: inherit; list-style: outside none disc; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span data-ttu-id=&quot;4a8e5-115&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit;&quot;&gt;Conjuntos de comandos&lt;/span&gt;.&lt;/span&gt;&amp;nbsp;&lt;span data-ttu-id=&quot;4a8e5-116&quot; style=&quot;box-sizing: inherit;&quot;&gt;Extiende las superficies de comando de SharePoint para agregar nuevas acciones y proporciona código del lado cliente que puede utilizar para implementar comportamientos.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;Para ver más información sobre las extensiones SPFX haz clic &lt;a href=&quot;https://docs.microsoft.com/es-es/sharepoint/dev/spfx/extensions/overview-extensions&quot;&gt;aquí&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;h2&gt;
Tutorial para tu primera Extensión SPFX&lt;/h2&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;A continuación vamos a mostrar los pasos para generar un command set en SharePoint con SPFx que al hacer clic, abra un panel react. En el ejemplo mostraremos dentro del panel algún metadato del documento.&lt;br /&gt;Lo primero que hay que hacer es abrir la ventana de comandos cmd y crear el command set con el comand yeoman:&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background: #fafafa; color: black; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt; line-height: 107%;&quot;&gt;yo
@microsoft/sharepoint&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background: #fafafa; color: black; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt; line-height: 107%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background: #fafafa; color: black; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;background: #fafafa; color: black; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: small;&quot;&gt;A continuación, hay que ir rellenando los pasos del asistente yeoman para la creación del command set:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background: #fafafa; color: black; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt; line-height: 107%;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #fafafa; font-weight: normal;&quot;&gt;Indicar un nombre para el&amp;nbsp; command-extension&amp;nbsp; y presionar Entrar.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #fafafa; font-weight: normal;&quot;&gt;Seleccionar Solo SharePoint Online (más reciente) y presione Entrar.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #fafafa; font-weight: normal;&quot;&gt;Elegir Usar la carpeta actual y presione Entrar. &lt;i&gt;Es por ello por lo que en el primer paso se debería de crear una carpeta y situarse en ella antes de lanzar el asistente yeoman.&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #fafafa; font-weight: normal;&quot;&gt;Seleccionar Y para permitir que la solución se implemente en todos los sitios inmediatamente. En este caso, el command set podrá ser visible en todos los sitios del tenant. Si se desea que el command set solo esté visible en los sitios que lo agreguemos&amp;nbsp;bajo demanda, indicar N.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #fafafa; font-weight: normal;&quot;&gt;Seleccionar N en la pregunta si la solución contiene permisos exclusivos.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #fafafa; font-weight: normal;&quot;&gt;Seleccionar Extensión como tipo de componente del lado cliente que se va a crear.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #fafafa; font-weight: normal;&quot;&gt;Seleccionar ListView Command Set como tipo de extensión que se va a crear.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h4&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;A continuación, comenzará el proceso de creación del command set. Este proceso tarda unos minutos, hay que tener paciencia.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;Nuestro Command Set aparecerá en la barra de menú de la biblioteca de documentos cuando seleccionemos un documento y el objetivo es abrir un panel lateral con información del documento.&lt;br /&gt;Lo primero que vamos a hacer es crear un componente react para mostrar el panel.&lt;br /&gt;Dentro de la carpeta &lt;/span&gt;src\extensions\nombredelcmmandset&lt;span style=&quot;font-weight: normal;&quot;&gt;, creamos otra carpeta llamada components, y dentro de ella creamos un nuevo archivo PanelDocumento.tsx.&amp;nbsp;En ese fichero agregamos los siguientes componentes.&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;*&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;as&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;React&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;react&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Label&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;office-ui-fabric-react/lib/Label&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;TextField&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;DefaultButton&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;PrimaryButton&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;DialogFooter&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;autobind&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Panel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Spinner&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;SpinnerType&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Dialog&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;office-ui-fabric-react&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;getId&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;office-ui-fabric-react/lib/Utilities&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;MessageBar&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;MessageBarType&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;office-ui-fabric-react/lib/MessageBar&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Promise&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;es6-promise&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Checkbox&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;office-ui-fabric-react/lib/Checkbox&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;PageContext&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;@microsoft/sp-page-context&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;ContextualMenu&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;office-ui-fabric-react/lib/ContextualMenu&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;hiddenContentStyle&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;mergeStyles&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;office-ui-fabric-react/lib/Styling&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;HttpClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;SPHttpClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;HttpClientConfiguration&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;HttpClientResponse&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;ODataVersion&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;IHttpClientConfiguration&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;IHttpClientOptions&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;ISPHttpClientOptions&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;@microsoft/sp-http&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;



















&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;screenReaderOnly&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;
= &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;mergeStyles&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;hiddenContentStyle&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;En el mismo .tsx creamos el state del componente.&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;export&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;interface&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;IPanelState&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;saving&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;boolean&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;delayResults&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;?: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;boolean&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;hideDialog&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;boolean&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;sending&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;boolean&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;y sus propiedades, donde nos llegaran los datos del documento que vamos a mostrar en el panel.&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;export&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;interface&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;IPanelProps&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;
{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onClose&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: () &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;void&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;isOpen&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;boolean&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;currentTitle&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;listId&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;spPageContext&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; : &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;PageContext&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;propHttpClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; : &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;HttpClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;En el render, pintaremos un Panel y las Label necesarias para mostrar los datos así como un botón Cancelar para cerrar el Panel.&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;public&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;render&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(): &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;React&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;ReactElement&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;IContabilizarPanelProps&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt; {&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;let&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;isOpen&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;currentTitle&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } = &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;props&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;return&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; (&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;div&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Panel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;isOpen&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;isOpen&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;headerText&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;props&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;titulodoc&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Label&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Nombre
Documento:&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{this&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;props&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;currentTitle&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Label&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Label&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;ID
Lista Firma:&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{this&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;props&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; listId&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;
}&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Label&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;DialogFooter&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;DefaultButton&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;text&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;Cancelar&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onClick&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_onCancel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;disabled&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;state&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;sending&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;DialogFooter&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Panel&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Además, añadimos el método onCancel y otros métodos necesarios:&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_onCancel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;() {&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;props&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onClose&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;();&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_showDialog&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; = (): &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;void&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;setState&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;({ &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;hideDialog:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;false&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_closeDialog&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; = (): &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;void&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;setState&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;({ &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;hideDialog:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;true&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h3&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Volvemos al commandset, para ello en la carpeta src\extensions\nombrecommandset, localizar el archivo &lt;nombrecommandset&gt;CommandSet.ts&lt;/nombrecommandset&gt;Este archivo ejecuta la acción del clic del commandset y lo que queremos es que nos abra un Panel lateral con los datos del documento sobre el que hemos hecho clic.&lt;br /&gt;Para ello, dentro de la clase que se define vamos a incluir un control HTMLdivElement:&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;panelPlaceHolder&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;HTMLDivElement&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; = &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;null&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;En la función onInit vamos a meter este div HTML dentro del body de la página. Se puede incluir esta línea justo debajo del Log.info que nos genera automáticamente la extensión quedando el onInit de la siguiente forma:&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; @&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;override&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;public&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onInit&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(): &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Promise&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;void&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Log&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;info&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;LOG_SOURCE&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;Initialized SpoContabilizarCommandSet&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;panelPlaceHolder&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; = &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;document&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;body&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;appendChild&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;document&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;createElement&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Promise&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;resolve&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;
&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Cuando se crea un commandSet, por defecto nos da 2 botones, pero aquí nos vamos a quedar con uno. Para ello en el método onExecute, dejamos solo el case ‘COMMAND_1’ y además, en elfichero &lt;nomrbecommandset&gt;CommandSet.manifest.json , dentro de “ítems”, dejamos solamente la definición del COMMAND_1 :&lt;/nomrbecommandset&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;items&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;COMMAND_1&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;Command
Prueba&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; },&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;iconImageUrl&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;command&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Se puede modificar el title que será el texto que muestre la acción del menú y el icono. Para subir un icono se puede o bien indicar la ruta de un icono que tengamos en el directorio de la extensión spfx, o indicar el icono en base64.&lt;br /&gt;Volvemos al método onExecute del CommandSet. Vamos a obtener el valor id y el valor del nombre del documento seleccionado, y llamaremos a una función showPanel que será la que muestre el componente react del panel&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;@&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;override&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;public&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onExecute&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;event&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;IListViewCommandSetExecuteEventParameters&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;): &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;void&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;switch&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; (&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;event&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;itemId&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;case&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;COMMAND_1&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;let&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;selectedItem&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; = &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;event&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;selectedRows&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;[&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #b5cea8; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;0&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;const&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;docUrl&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; = &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;selectedItem&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;getValueByName&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;FileRef&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;const&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;listItemId&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; = &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;selectedItem&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;getValueByName&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;ID&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;) &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;as&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;number&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_showPanel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;listItemId&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;docUrl&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;break&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;default&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;throw&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;new&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;Error&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&#39;Unknown
command&#39;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;
&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;La función showPanel y funciones auxiliares:&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_showPanel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;itemId&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;number&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;currentTitle&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;string&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;)&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_renderPanelComponent&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;({&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;isOpen:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;true&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;currentTitle&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;itemId&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;listId:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;context&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;pageContext&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;list&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;id&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;toString&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(),&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onClose:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_dismissPanel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;});&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;@&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;autobind&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_dismissPanel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;() {&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_renderPanelComponent&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;({ &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;isOpen:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;false&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; });&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;}&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;private&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;_renderPanelComponent&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;props&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;any&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;) {&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;const&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;element&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;: &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;React&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;ReactElement&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;IPanelProps&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;gt; = &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;React&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;createElement&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;CustomPanel&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;assign&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;({&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onClose:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;null&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&amp;nbsp;&amp;nbsp;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;currentTitle:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;null&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;itemId:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;null&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;isOpen:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;false&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;listId:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;null&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;propHttpClient:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;context&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;httpClient&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;spPageContext:&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;context&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;pageContext&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;ReactDom&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;render&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;element&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;panelPlaceHolder&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;



&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Con este código,&amp;nbsp; ya se dispone de un CommandSet con un panel.&lt;br /&gt;Para probarlo, se puede indicar la url de una librería en&amp;nbsp; el archivo serve.json en la propiedad &quot;pageUrl&quot;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;pageUrl&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;https://myurl.sharepoint.com/sites/mySite/SitePages/myPage.aspx&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;Se abrirá la biblioteca de documentos y cuando haces clic en el documento, se mostrará en la barra de herramientas una nueva opción con el commandset. Al hacer clic sobre esa opción se abrirá el panel.&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;En futuro post explicaré como desplegar un command set para varias colecciones de sitios.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/5400582720017103978/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2019/08/crear-un-command-set-spfx-con-un-panel.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/5400582720017103978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/5400582720017103978'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2019/08/crear-un-command-set-spfx-con-un-panel.html' title='Como crear un command set SPFx con un panel react en una librería de documentos'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaq4YO8yCo3HWW_l5jEVKHKj4LjAJxoJ4bNwCIZ6piOK0UfRLrVB0CAejvBWsgTei87_-eI4F-vKaW47pSMl7tyZqge_EVQPZ-Jj9ZHDqHgzgM4BhxDKkW-6kpHa_DveZrEsCrtksbJNc/s72-c/logo-sharepoint-framework.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-9155691916397158453</id><published>2019-11-12T06:13:00.000-08:00</published><updated>2020-02-11T08:02:15.101-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="office 365"/><category scheme="http://www.blogger.com/atom/ns#" term="react"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint framework"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint online"/><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint Online Español"/><category scheme="http://www.blogger.com/atom/ns#" term="spfx"/><title type='text'>Añadir un cuadro de texto TextField en un web part React con SharePoint Framework</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1 style=&quot;clear: both; text-align: left;&quot;&gt;
TextField en un web part de SharePoint Framework con React&amp;nbsp;&lt;/h1&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQRVPIssBhsy9LgJET5EgWbvokodHOdnKJb5TuFxonV9AjpZns8SsLV0pnsdcZCSrA7T70jGJ7TZuSegS6ksMsapeEDqbxIGEQniOlC6YGaomkf1LT1VXbCfAt-ybfh1bEZqLYh_N0fMY/s1600/logo-sharepoint-framework.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;logo-sharepoint-framework&quot; border=&quot;0&quot; data-original-height=&quot;532&quot; data-original-width=&quot;835&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQRVPIssBhsy9LgJET5EgWbvokodHOdnKJb5TuFxonV9AjpZns8SsLV0pnsdcZCSrA7T70jGJ7TZuSegS6ksMsapeEDqbxIGEQniOlC6YGaomkf1LT1VXbCfAt-ybfh1bEZqLYh_N0fMY/s320/logo-sharepoint-framework.png&quot; title=&quot;logo-sharepoint-framework&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;clear: both; text-align: left;&quot;&gt;
SharePoint Framework&lt;/h2&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;&quot;&gt;
Vamos a generar un web part y utilizar un componente
TextField de Office UI fabric.&lt;span style=&quot;background: white; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;&quot;&gt; &lt;/span&gt;Con Office
fabric UI puedes&amp;nbsp;&lt;b&gt;aplicar simples estilos CSS&lt;/b&gt;&amp;nbsp;a los
elementos de tus aplicaciones web y hacer que&amp;nbsp;&lt;b&gt;obtengan
automáticamente el aspecto de las aplicaciones de Office&lt;/b&gt;. Es algo
interesante cuando desarrollamos web parts en SharePoitn Online ya que
conseguimos que estos web parts, sin necesidad de tener que jugar con hojas de
estilo, tengan la misma apariencia que el resto de componentes de SharePoint
que se visualizan en la página. Los estilos tienen en cuenta la tipografía, los
colores, los iconos, las animaciones, la distribución de elementos e incluso la
localización a varios idiomas. Otra ventaja es que estos estilos se adaptan sin
problema a cualquier dispositivo: escritorio, móvil, tableta...&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;&quot;&gt;
&lt;b&gt;Office UI
Fabric me ayudó mucho a dar el cambio de programar para SharePoint con SPFX después
de varios años como programador backend en C# y con mi poca experiencia (y poco
gusto) en maquetación, css. &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: justify;&quot;&gt;
Este post puede ser un primer ejemplo de cómo utilizar
componentes UI Fabric dentro de un web part con react ya que será un ejemplo
básico. En otros post directamente trato los componentes UI Fabric como algo
normal y hablo de otras cosas más avanzadas.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;formulario-sharepoint-framework&quot; border=&quot;0&quot; data-original-height=&quot;668&quot; data-original-width=&quot;710&quot; height=&quot;301&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc-gsYahlrKuEfJ5uwBjaLdUOeIIwBAunbQNBN8_gRT8e5jTNAakz3reWp9YRE269jtFgKy_FTPcH8EhNrO-CJpaOxdKvs7vvqbt_kM3-cw9vFhwQSRKrI4nz1TVUSyTLTE30R0drioIc/s320/Textfield.png&quot; title=&quot;formulario-sharepoint-framework&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Doy por creado el web part con yeoman con Framework React, por loq ue paso directamente al código fuente para añadir el componente UI Fabric.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Lo primero que tenemos que hacer es un import del módulo.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;import&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; { &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;TextField&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; } &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #c586c0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;from&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;office-ui-fabric-react&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Los datos que se escriban en el textfield, los iremos guardando en el state de react, para ello tendremos que añadir un campo nuevo dentro del state.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
En el render, vamos a pintar el TextField.&amp;nbsp; Veremos que en el onChanged del TextField, iremos guardando los valores en el state. Para ello generamos una función&amp;nbsp;&lt;span style=&quot;background-color: #1e1e1e; color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 14px;&quot;&gt;handleInputChange&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #4ec9b0; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;TextField&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;label&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;Text Field
Name:&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;id&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&quot;textFieldID&quot;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;onChanged&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;value&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;) &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;handleInputChange&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #ce9178; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;textFieldID&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;value&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;)&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;}&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;required&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;{true}&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: grey; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;mso-ansi-language: EN-GB;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Esa función realiza lo siguiente.&amp;nbsp;&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;public&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;handleInputChange&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;(&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;id&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;, &lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;value&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #569cd6; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;this&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #dcdcaa; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;setState&lt;/span&gt;&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;({&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span lang=&quot;EN-GB&quot; style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;textFieldValue:&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;});&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #1E1E1E; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0cm;&quot;&gt;
&lt;span style=&quot;color: #d4d4d4; font-family: &amp;quot;consolas&amp;quot;; font-size: 10.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
De este modo el valor del textbox lo tendremos siempre en el state de react.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/9155691916397158453/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2019/11/anadir-textfield-sharepoint-react.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/9155691916397158453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/9155691916397158453'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2019/11/anadir-textfield-sharepoint-react.html' title='Añadir un cuadro de texto TextField en un web part React con SharePoint Framework'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQRVPIssBhsy9LgJET5EgWbvokodHOdnKJb5TuFxonV9AjpZns8SsLV0pnsdcZCSrA7T70jGJ7TZuSegS6ksMsapeEDqbxIGEQniOlC6YGaomkf1LT1VXbCfAt-ybfh1bEZqLYh_N0fMY/s72-c/logo-sharepoint-framework.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-5457127140410036248</id><published>2019-11-08T05:31:00.000-08:00</published><updated>2020-02-11T03:53:25.071-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="error"/><category scheme="http://www.blogger.com/atom/ns#" term="gulp"/><category scheme="http://www.blogger.com/atom/ns#" term="spfx"/><category scheme="http://www.blogger.com/atom/ns#" term="tip"/><title type='text'>Error gulp bundle: ENOENT: no such file or directory, scandir &#39;**/node_modules/node-sass/vendor</title><content type='html'>&lt;h1&gt;
&lt;br /&gt;Error en SharePoint Framework&lt;/h1&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR1b_B4d18aI_JFoIXIqt605MKgEoxcBB6Dsjl4ReH1bFYbJ6yklP8DOb6xgq5ZuoV8fC_AjCM0w4GC0JxXuM7WVMZONrfvzYr-2OiIsYGxixVdPL0Nev4TMP3yxZzSfsMu_DCkFks_9w/s1600/error-sharepoint-framework.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;error-sharepoint-framework&quot; border=&quot;0&quot; data-original-height=&quot;532&quot; data-original-width=&quot;835&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR1b_B4d18aI_JFoIXIqt605MKgEoxcBB6Dsjl4ReH1bFYbJ6yklP8DOb6xgq5ZuoV8fC_AjCM0w4GC0JxXuM7WVMZONrfvzYr-2OiIsYGxixVdPL0Nev4TMP3yxZzSfsMu_DCkFks_9w/s320/error-sharepoint-framework.png&quot; title=&quot;error-sharepoint-framework&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
El otro día, me he descargado del repositorio de la empresa un componente SPFX y tras unos cambios, he tratado de generar los bundles con el comando&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 13.6px; line-height: 1.45; overflow-wrap: normal; overflow: auto; padding: 16px; word-break: normal;&quot;&gt;gulp bundle --ship&lt;/pre&gt;
&lt;br /&gt;
Me dió el siguiente error:&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;ENOENT: no such file or directory, scandir &#39;**/node_modules/node-sass/vendor&lt;/span&gt;&lt;/h3&gt;
&lt;br /&gt;
Buscando por internet, encontré una solución ejecutando el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;background-color: #eff0f1; border-radius: 3px; border: 0px; box-sizing: inherit; color: #393318; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;npm rebuild node&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;sass&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
Espero que os sirva de ayuda.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/5457127140410036248/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2019/11/error-gulp-bundle-enoent-no-such-file.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/5457127140410036248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/5457127140410036248'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2019/11/error-gulp-bundle-enoent-no-such-file.html' title='Error gulp bundle: ENOENT: no such file or directory, scandir &#39;**/node_modules/node-sass/vendor'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR1b_B4d18aI_JFoIXIqt605MKgEoxcBB6Dsjl4ReH1bFYbJ6yklP8DOb6xgq5ZuoV8fC_AjCM0w4GC0JxXuM7WVMZONrfvzYr-2OiIsYGxixVdPL0Nev4TMP3yxZzSfsMu_DCkFks_9w/s72-c/error-sharepoint-framework.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-6948294144178921920</id><published>2019-08-12T04:25:00.003-07:00</published><updated>2019-08-12T04:47:11.184-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure; Azure Functions"/><category scheme="http://www.blogger.com/atom/ns#" term="o365"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint online"/><title type='text'>Como Crear una Función de Azure  (I)</title><content type='html'>&lt;br /&gt;
Antes de comenzar, vamos a hacer una pequeña introducción a &lt;b&gt;Funciones de Azure &lt;/b&gt;o &lt;b&gt;Azure Functions.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Una Azure Function es una solución que nos proporciona Microsoft para ejecutar un trozo de código en la nube sin necesidad de disponer de un servidor o una infraestructura para alojar ese código. Además, permite desarrollar en varios lenguajes de programación no solamente en C# o código .NET de Microsoft.&lt;br /&gt;
&lt;br /&gt;
Aquí algunas características de las funciones de Azure sacadas de la &lt;a href=&quot;https://docs.microsoft.com/es-es/azure/azure-functions/functions-overview&quot;&gt;documentación &lt;/a&gt;de Microsoft:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Opción de lenguaje&lt;/b&gt;: escriba funciones usando el lenguaje C#, Java, Javascript, Python u otro de su elección. Consulte Lenguajes admitidos para ver la lista completa.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Modelo de precios de pago por uso :&lt;/b&gt; pague solo el tiempo que haya empleado ejecutando el código.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
Esta es una gran ventaja a la hora de desarrollar una solución para sus clientes puesto que se paga por uso, es decir, el plan de consumo de Azure Functions se factura en función del consumo de recursos y las ejecuciones por segundo. Los precios del plan de consumo incluyen una concesión gratuita mensual de 1 millones de solicitudes de forma que es probable que disponga de Funciones de Azure que salgan &lt;b&gt;prácticamente gratis&lt;/b&gt;.&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #242429; font-family: &amp;quot;segoe ui&amp;quot; , &amp;quot;segoeui&amp;quot; , &amp;quot;segoe wp&amp;quot; , &amp;quot;tahoma&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Utilizar sus propias dependencias&lt;/b&gt; : Funciones de Azure admite NuGet y NPM, para que pueda usar sus bibliotecas. De esta forma, mediante una función de Azure podremos desarrollar un componente que se integre con cualquier entorno utilizando dlls que desarrollemos nosotros mismos.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Seguridad integrada&lt;/b&gt; : proteja las funciones desencadenadas por HTTP con los proveedores de OAuth como Azure Active Directory, Facebook, Google, Twitter y cuenta Microsoft.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Integración simplificada&lt;/b&gt;&amp;nbsp;:&amp;nbsp;fácil aprovechamiento de los servicios de Azure y ofertas de software como servicio (SaaS).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Desarrollo flexible: &lt;/b&gt;codifique las funciones directamente en el portal o configure la integración continua e implemente el código mediante GitHub, Azure DevOps Services y otras herramientas de desarrollo compatibles.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Código abierto&lt;/b&gt; : el tiempo de ejecución de Funciones de Azure es de código abierto y está disponible en GitHub.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación, vamos a ver un ejemplo de como crear una Función de Azure desde el portal web.&amp;nbsp; Para comenzar, entrar en la url &lt;a href=&quot;https://portal.azure.com/&quot;&gt;https:\\ portal.azure.com&lt;/a&gt; con un administrador global de su subscripción de Azure.&lt;br /&gt;
&lt;br /&gt;
Lo primero que hay que hacer es crear el Funcion App, que es un contenedor de aplicaciones donde se alojarán las funciones de Azure. En un Function App puede alojarse más de una función diferente y dispondrá de más de una&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
En el menú lateral izquierdo del portal de Azure, se ofrece
un vínculo a &lt;b&gt;App Services&lt;/b&gt;. Al hacer
clic en este vínculo, &lt;span style=&quot;font-size: 12pt;&quot;&gt;se&lt;/span&gt;
accede a una página de introducción donde se visualizan las aplicaciones de
servicio (App services) existentes.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh19EVHMGXhS5UZYWSR4_Kr8qqoimDUyRigqmiOR5bS7r-eWM87WnBcNDZpoPhNBS5HwpNwV2ceofb7p9_SI4LCLu3ChDB92fp5pPbGSMBf2SvfbOD01GZR9IL1bm0S1a5X4iq5Fq9sm6s/s1600/AF1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;592&quot; data-original-width=&quot;1282&quot; height=&quot;147&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh19EVHMGXhS5UZYWSR4_Kr8qqoimDUyRigqmiOR5bS7r-eWM87WnBcNDZpoPhNBS5HwpNwV2ceofb7p9_SI4LCLu3ChDB92fp5pPbGSMBf2SvfbOD01GZR9IL1bm0S1a5X4iq5Fq9sm6s/s320/AF1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
En la barra de herramientas superior se dispone de una
acción (botón &lt;b&gt;Agregar&lt;/b&gt;) que permite
habilitar un nuevo formulario donde se indica el tipo de Web Apps que se desea
crear. En este caso se selecciona el tipo &lt;b&gt;FunctionApp.&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Al presionar este tipo, se habilita un nuevo formulario de
confirmación haciendo clic sobre el botón &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Crear&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuxaqLhGfg4CyQxpghh3EL5fToCGUuChh8O2ZgDfImh8t4mwwtzq42ydFtvn3azYeOzKVz9KdHNiPpkfTdEbMgJ18nPD80dNEzaUU_JffOSwI4owmJOUlsHSnivZzU1goOIFHrvhGJJ0c/s1600/AF2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;600&quot; data-original-width=&quot;1288&quot; height=&quot;149&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuxaqLhGfg4CyQxpghh3EL5fToCGUuChh8O2ZgDfImh8t4mwwtzq42ydFtvn3azYeOzKVz9KdHNiPpkfTdEbMgJ18nPD80dNEzaUU_JffOSwI4owmJOUlsHSnivZzU1goOIFHrvhGJJ0c/s320/AF2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
A continuación, se habilita otro formulario donde se introducen
los datos de la App service que se desea crear:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Nombre de aplicación&lt;/b&gt;: Se indica un nombre. Para este nombre se asignará una url nombre.azurewebsites.net por lo que deberá ser un nombre indicativo y que no se vaya a usar más.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Suscripción&lt;/b&gt;: se selecciona la suscripción de Azure disponible.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Grupo de recursos:&lt;/b&gt; se mantiene el check Crear nuevo con el nombre que ofrece por defecto. Para próximas aplicaciones de servicio (app services) que se creen, puede reutilizarse seleccionando Usar existente.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;OS:&lt;/b&gt; Windows.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Plan de hospedaje:&lt;/b&gt; Plan de consumo.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Ubicación&lt;/b&gt;: Oeste de Europa.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pila en tiempo de ejecución&lt;/b&gt;: .NET.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Storage&lt;/b&gt;: se mantiene el check Crear nuevo con el nombre que ofrece por defecto. Para próximas aplicaciones de servicio (app services) que se creen, puede reutilizarse seleccionando Usar existente.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Application Insights&lt;/b&gt;: se mantiene el nombre que ofrece por defecto.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7h4ccJtfdYxmHWYzai072vaaD9SQJlH2U_Fre26EN4BuBKcu0Mon9Wos44BtsYYdTA8a_J_Jmr8sz67dnlBJPaOjBvY1B_bAW_XWQuh6eSqg-lZwxsjyO0NqoHIW1a-YrVyCgfpvMNZ8/s1600/AF3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;843&quot; data-original-width=&quot;1371&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7h4ccJtfdYxmHWYzai072vaaD9SQJlH2U_Fre26EN4BuBKcu0Mon9Wos44BtsYYdTA8a_J_Jmr8sz67dnlBJPaOjBvY1B_bAW_XWQuh6eSqg-lZwxsjyO0NqoHIW1a-YrVyCgfpvMNZ8/s320/AF3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Presionando sobre el botón &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Crear &lt;/b&gt;- ubicado en la parte inferior del formulario - se crea la
aplicación de servicio (App service).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ahora Crearemos una Función de Azure y le añadiremos algo de código. Lo primero que deberemos de saber es que hay diferentes tipos de funciones de Azure. Aquí hay una entrada donde se explican los diferentes tipos de funciones de Azure.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Crearemos una Función de tipo HTTP. Esta función se ejecutará cuando entre una petición HTTP. Puede ser útil para comunicar o integrar entornos y utilizarse como una API REST.&lt;br /&gt;
Para ello, dentro de la Function App, en RFunctions, hacer clic en el simbolo + para crear una nueva Función de Azure.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiHiP0OLkpww2P9unChuqqmvr1Wwg0yOW-RTfR88kluvzB8DN9bV-u_7O39nuuAq10-l_Hi8Y63EUosEHDIaUi-BiEHk5XvRAk0KMMsPAJDjw-tgEz9wzBvvoIAI6z6kAs5zWp8YJOOCQ/s1600/AF4.1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;798&quot; data-original-width=&quot;1000&quot; height=&quot;255&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiHiP0OLkpww2P9unChuqqmvr1Wwg0yOW-RTfR88kluvzB8DN9bV-u_7O39nuuAq10-l_Hi8Y63EUosEHDIaUi-BiEHk5XvRAk0KMMsPAJDjw-tgEz9wzBvvoIAI6z6kAs5zWp8YJOOCQ/s320/AF4.1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Seleccionar WebHook + API y hacer clic en &lt;b&gt;Crear&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
La función ya está creada, se puede previsualizar el código que ya se crea por defecto.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjjiMVLwEQx8CGUC1Zugyd5n7-1bX9KLa_XNssgPf8psZoAwRC-k7S6H2BNbjeGnx1rNSc_GfTX2TJlVyF39Sy2dBrKR_UIFCXu-7TSWRN-sW3HU7Q6uftDeCNBzy9vT2f1m4h-uXjnD4/s1600/AF4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;496&quot; data-original-width=&quot;780&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjjiMVLwEQx8CGUC1Zugyd5n7-1bX9KLa_XNssgPf8psZoAwRC-k7S6H2BNbjeGnx1rNSc_GfTX2TJlVyF39Sy2dBrKR_UIFCXu-7TSWRN-sW3HU7Q6uftDeCNBzy9vT2f1m4h-uXjnD4/s320/AF4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Se puede ejecutar la función de Azure desde el propio portal de Azure. En la función,&amp;nbsp; hay un botón de &lt;b&gt;Ejecutar&lt;/b&gt;.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOvjLsVSaozoUr8zRNVyELY1j6NPeIlLfhgtGbcP9KwQz1Dy2pH2OylVLCyS_qS8QB9UQcsI0FEeI0FbmXpZ5_k6WeoAN0sDldinV3gOBZLr6XMXUtk0FVuT0prLbbGA4SVkrTXF9chGM/s1600/AF5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;496&quot; data-original-width=&quot;780&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOvjLsVSaozoUr8zRNVyELY1j6NPeIlLfhgtGbcP9KwQz1Dy2pH2OylVLCyS_qS8QB9UQcsI0FEeI0FbmXpZ5_k6WeoAN0sDldinV3gOBZLr6XMXUtk0FVuT0prLbbGA4SVkrTXF9chGM/s320/AF5.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Para ejecutar la función desde el navegador, se puede obtener su url y meterla en el navegador. Para ello, hay un link&amp;nbsp;&lt;b&gt;Obtener url&lt;/b&gt;, situado justo al lado del botón de&amp;nbsp;&lt;b&gt;Ejecutar&lt;/b&gt;.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmrmcNM0BeizrnbT8h10Nexe6B7B0B287cEEHHiFVZ0jcZHvTVsO6b71-BzK4_kgWBF2xSR4D-rYm9fMLWzkBKgKtk0eU5pJ1xxim655OBlSYJMoJteJLBuA5qv82PKhmh5a-xvcoE-9A/s1600/AF6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;496&quot; data-original-width=&quot;780&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmrmcNM0BeizrnbT8h10Nexe6B7B0B287cEEHHiFVZ0jcZHvTVsO6b71-BzK4_kgWBF2xSR4D-rYm9fMLWzkBKgKtk0eU5pJ1xxim655OBlSYJMoJteJLBuA5qv82PKhmh5a-xvcoE-9A/s320/AF6.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
En la parte inferior de la función de Azure, hay un apartado &lt;b&gt;Registros o Logs&lt;/b&gt; donde se pueden ver todas las lineas de log que se han introducido en el código mediante la sentencia:&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;log.Info(&quot;Texto a introducir en el log&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
o mensajes de error:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;log.Error(&quot;Mensaje de error&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
De esta forma se puede controlar los errores de la función de Azure mediante &lt;b&gt;try/catch&lt;/b&gt; y mostrar en el log el error.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-QMHNo5EEqk3-gSPb0O9MB3-4bPDbCEfm9-mGk5o-eAlcyv93hL0Z8Y60-zW8YT2YKKSrergGeCS8PGlPKKg0b14SblpLd6_R35kQMg28HP6uVWNd_AAXUbRsgBkWMCJvtZoSrw9fLnQ/s1600/AF7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;496&quot; data-original-width=&quot;780&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-QMHNo5EEqk3-gSPb0O9MB3-4bPDbCEfm9-mGk5o-eAlcyv93hL0Z8Y60-zW8YT2YKKSrergGeCS8PGlPKKg0b14SblpLd6_R35kQMg28HP6uVWNd_AAXUbRsgBkWMCJvtZoSrw9fLnQ/s320/AF7.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Según este ejemplo, podremos ejecutar código que se ejecutara mediante una llamada HTTP, de esta forma podremos por ejemplo introducir datos en una base de datos según los parámetros recibidos en la url u obtener un listado de elementos guardados en una base de datos o una lista.&lt;br /&gt;
&lt;br /&gt;
En el siguiente post sobre Funciones de Azure, crearemos una en Visual Studio para poder utilizar dlls externas y hacer algo de código mas complejo que este ejemplo.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/6948294144178921920/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2019/08/como-crear-una-funcion-de-azure-i.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/6948294144178921920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/6948294144178921920'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2019/08/como-crear-una-funcion-de-azure-i.html' title='Como Crear una Función de Azure  (I)'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh19EVHMGXhS5UZYWSR4_Kr8qqoimDUyRigqmiOR5bS7r-eWM87WnBcNDZpoPhNBS5HwpNwV2ceofb7p9_SI4LCLu3ChDB92fp5pPbGSMBf2SvfbOD01GZR9IL1bm0S1a5X4iq5Fq9sm6s/s72-c/AF1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-2856427585309032424</id><published>2019-05-23T00:57:00.000-07:00</published><updated>2019-05-23T00:57:40.058-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="mock"/><category scheme="http://www.blogger.com/atom/ns#" term="mockservice"/><category scheme="http://www.blogger.com/atom/ns#" term="servicios web"/><category scheme="http://www.blogger.com/atom/ns#" term="soa"/><category scheme="http://www.blogger.com/atom/ns#" term="soapui"/><title type='text'>Como crear un Mock de un servicio web SOAP con SoapUI</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
Antes de nada, es necesario explicar que es un &lt;b&gt;Mock&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Un &lt;b&gt;Mock&lt;/b&gt; no es mas que un objeto de prueba. Se utiliza par a simular el comportamiento de un objeto, un servicio , un método ...&lt;br /&gt;
&lt;br /&gt;
En el caso que vamos a explicar, trataremos de generar un mock de un servicio SOAP con el objetivo de simular las respuestas que nos devuelven cada uno de sus métodos.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Esto puede usarse con varios fines, y me he encontrado en varias ocasiones con estos casos:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;El primero de ellos es para devolver la respuesta que nosotros queramos. Es decir, estamos desarrollando un componente que llama a un servicio, y queremos testear el comportamiento de nuestro componente en función de las distintas posibilidades de respuesta del servicio.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Se dispone de un servicio web publicado, pero el entorno de desarrollo se encuentra en una máquina que no tiene acceso a dicho servicio. En ese caso haríamos un mock del mismo y podríamos trabajar desde la maquina de desarrollo con el mock.&lt;/li&gt;
&lt;li&gt;El servicio nos lo publica un cliente, un proveedor o alguien y aún lo ha terminando, o nos ha publicado una versión directamente en un entorno productivo y las pruebas pueden ocasionar inconvenientes en el entorno. Para esto es mejor, una vez dispongamos del descriptor de fichero (WSDL) final, hacer un Mock y&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Para cumplir este objetivo, vamos a utilizar la herramienta SOAP UI, que se trata de una herramienta para la realización de pruebas a aplicaciones con arquitectura orientada a servicios (SOA) y servicios REST.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Cómo&amp;nbsp;obtenemos el WSDL.&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Si el servicio está publicado, podremos poner en Soap UI directamete la url.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Abrimos un nuevo servicio SOAP desde la parte superior de SOAP UI&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-7KVZfRXjyIL5ZuWqZ7TGzr3lXcrscgoIPk-J7y2x85WFzSTjhieigUAG_EU2N9mwTgVyPcf_ZqfbqVjTuV__7w4kLKQHxF4EJNWhnUr0irt3gEqV7wjJfj6Ngsuv_l9icQ88taf5sXE/s1600/soapui1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;116&quot; data-original-width=&quot;606&quot; height=&quot;61&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-7KVZfRXjyIL5ZuWqZ7TGzr3lXcrscgoIPk-J7y2x85WFzSTjhieigUAG_EU2N9mwTgVyPcf_ZqfbqVjTuV__7w4kLKQHxF4EJNWhnUr0irt3gEqV7wjJfj6Ngsuv_l9icQ88taf5sXE/s320/soapui1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
En la ventana que aparece , donde se indica el WSDL hay que indicar la url:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvn6yraKTCLD3p5JogUi3CmFzztMVNrfCgrhmRIRgMQmYwPXn2lGydEclnAwtXPrXW-aLq2pOmiES9cF-UHnmS3o75hrU4EuyzaGOvFeJUaI2uThjg9wjVysT-SjwGOalt8gT-X1AQesg/s1600/soapui2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;285&quot; data-original-width=&quot;573&quot; height=&quot;159&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvn6yraKTCLD3p5JogUi3CmFzztMVNrfCgrhmRIRgMQmYwPXn2lGydEclnAwtXPrXW-aLq2pOmiES9cF-UHnmS3o75hrU4EuyzaGOvFeJUaI2uThjg9wjVysT-SjwGOalt8gT-X1AQesg/s320/soapui2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
En el caso de que nos hayan enviado el fichero WSDL, deberiamos de abrirlo en el botón Examinar (Browse).&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Hacer clic en OK y nos aparecerá el servicio en la parte de la izquierda de SOAPUI&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiKJ0MzMCVmIkClHVvub04Dn7toxXqUhLbUUHoQt05j5IaCK1ibOT-h5nHN-Onsiv9639eCv_JzKG6Z6C2MtgL3dN7x8aH-7IfK8bCsRUvT_V0i4L-V-0RYNQxQL6PIO0URQ1Py4VNQHc/s1600/soapui3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;357&quot; data-original-width=&quot;278&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiKJ0MzMCVmIkClHVvub04Dn7toxXqUhLbUUHoQt05j5IaCK1ibOT-h5nHN-Onsiv9639eCv_JzKG6Z6C2MtgL3dN7x8aH-7IfK8bCsRUvT_V0i4L-V-0RYNQxQL6PIO0URQ1Py4VNQHc/s320/soapui3.png&quot; width=&quot;249&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;b&gt;Cómo generar el Mock&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Si hacemos botón derecho sobre el servicio, tenemos la opción de Generar Mock del servicio (Generate Mock Service).&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWUJMfJN_RFnqTicqRGCfSBlJvqtnTAnk9PIC1Patf2UofSkPlQKst-XwR16oMTOeam0YbiSZl5iwCp48a6hfoz-9db2gMKQBcDJQVtwn59XuVkt2loyJamz9FU3adxf8dHa-M6aV1cdk/s1600/soapui4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;395&quot; data-original-width=&quot;360&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWUJMfJN_RFnqTicqRGCfSBlJvqtnTAnk9PIC1Patf2UofSkPlQKst-XwR16oMTOeam0YbiSZl5iwCp48a6hfoz-9db2gMKQBcDJQVtwn59XuVkt2loyJamz9FU3adxf8dHa-M6aV1cdk/s320/soapui4.png&quot; width=&quot;291&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
La pantalla a continuación nos permite seleccionar el puerto donde publicaremos localmente el mock, los métodos que queremos que estén disponibles en el mock, y el path.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
También es necesario indicar un nombre.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Para publicar el mock, hacer clic en el botón Play.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjR0_Hbb8hquCv_SaabHbRoTGiN1r5Suw7iuhvTIFyAr6r6vI1dmNzrWtYgJHqkLiLD1o8dQsf6BeGBxXsjDnK592K2ebtUvpVDQt4jQHAdshSSXqqOFqlchKeJRopvKcrv909BWq2oDQ/s1600/soapui5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;601&quot; data-original-width=&quot;701&quot; height=&quot;274&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjR0_Hbb8hquCv_SaabHbRoTGiN1r5Suw7iuhvTIFyAr6r6vI1dmNzrWtYgJHqkLiLD1o8dQsf6BeGBxXsjDnK592K2ebtUvpVDQt4jQHAdshSSXqqOFqlchKeJRopvKcrv909BWq2oDQ/s320/soapui5.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
El icono de las flechas, nos abre el descriptor de fichero WSDL publicado en localhost y podemos usar esa url para incorporar al endpoint del mock en&amp;nbsp; nuestro desarrollo.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/2856427585309032424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2019/05/como-crear-un-mock-de-un-servicio-web.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/2856427585309032424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/2856427585309032424'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2019/05/como-crear-un-mock-de-un-servicio-web.html' title='Como crear un Mock de un servicio web SOAP con SoapUI'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-7KVZfRXjyIL5ZuWqZ7TGzr3lXcrscgoIPk-J7y2x85WFzSTjhieigUAG_EU2N9mwTgVyPcf_ZqfbqVjTuV__7w4kLKQHxF4EJNWhnUr0irt3gEqV7wjJfj6Ngsuv_l9icQ88taf5sXE/s72-c/soapui1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-4080776284465887443</id><published>2018-12-12T02:00:00.001-08:00</published><updated>2020-03-08T05:43:36.226-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pnp"/><category scheme="http://www.blogger.com/atom/ns#" term="powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint online"/><title type='text'>Habilitar log al provisionar sitio de SharePoint Online con PNP</title><content type='html'>&lt;h1&gt;
¿Qué es PNP?&lt;/h1&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Pnp (Pattern &amp;amp; Practices) se trata una comunidad de desarrollo de SharePoint de código abierto coordinada por el equipo de ingeniería de SharePoint. Esta iniciativa contiene una biblioteca de comandos de PowerShell llamada PnP de PowerShell, que permite realizar acciones dentro de SharePoint.&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYvtZwf6kDsasmFX2SQhIDTmLQJi8_YsSp4eBU2L4nz3ESRO-l3rLwuw5WMMlJ6J0rpp9iDzD_7uTdc80fLjfwEOCoI9EgqRqw8rrh8vFsEY4y1DtDBwxkAEsW-JokQ2l3z64mMhFW_DU/s1600/logo-pnp-powershell.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;444&quot; data-original-width=&quot;631&quot; height=&quot;224&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYvtZwf6kDsasmFX2SQhIDTmLQJi8_YsSp4eBU2L4nz3ESRO-l3rLwuw5WMMlJ6J0rpp9iDzD_7uTdc80fLjfwEOCoI9EgqRqw8rrh8vFsEY4y1DtDBwxkAEsW-JokQ2l3z64mMhFW_DU/s320/logo-pnp-powershell.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Cuando nos disponemos a provisionar un sitio de SharePoint Online con el comando powershell Apply-PnPProvisioningTemplate, en ocasiones se producen errores y no muestra ningún mensaje indicando de donde proviene el error.&lt;/span&gt;&lt;/h4&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal; text-align: justify;&quot;&gt;Para facilitar un poco la tarea de encontrar el problema en el xml de la plantilla, se puede habilitar un log que se muestra al provisionar. Para ello, justo antes de ejecutar el comando Apply-PnPProvisioningTemplate, hay que ejecutar este otro:&lt;/span&gt;&lt;/4&gt;
&lt;br /&gt;
Set-PnPTraceLog -On -Level Debug&lt;br /&gt;
&lt;h4&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;De esta forma, cuando se ejecute el provisionamiento, se mostrará por pantalla un registro de lo que Office Dev PnP Powershell esta haciendo.&lt;/span&gt;&lt;/div&gt;
&lt;/h4&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/4080776284465887443/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2018/12/habilitar-log-al-provisionar-sitio-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/4080776284465887443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/4080776284465887443'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2018/12/habilitar-log-al-provisionar-sitio-de.html' title='Habilitar log al provisionar sitio de SharePoint Online con PNP'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYvtZwf6kDsasmFX2SQhIDTmLQJi8_YsSp4eBU2L4nz3ESRO-l3rLwuw5WMMlJ6J0rpp9iDzD_7uTdc80fLjfwEOCoI9EgqRqw8rrh8vFsEY4y1DtDBwxkAEsW-JokQ2l3z64mMhFW_DU/s72-c/logo-pnp-powershell.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-2215234261674030128</id><published>2017-12-21T06:36:00.003-08:00</published><updated>2017-12-21T06:43:26.782-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="office 365"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint online"/><title type='text'>Ocultar el titulo de una Pagina en SharePoint Online</title><content type='html'>Hola,&lt;br /&gt;
&lt;br /&gt;
hace poco un cliente me ha pedido que le oculte el titulo del sitio, dentro de la home.&lt;br /&gt;
&lt;br /&gt;
Para ello y sin modificar masterpage o layout, he añadido un Script Editor en cualquier zona de la página (web part de seuencia de comados), y he introducido el siguiente bloque de código:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
(function(){

      document.querySelector(&quot;#pageTitle&quot;).style.display = &#39;none&#39;;&lt;/p&gt;

})();

&lt;/script&gt;
&lt;/code&gt;
&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Espero sirva de ayuda.&lt;br /&gt;
&lt;br /&gt;
Un saludo</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/2215234261674030128/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2017/12/ocultar-el-titulo-de-una-pagina-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/2215234261674030128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/2215234261674030128'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2017/12/ocultar-el-titulo-de-una-pagina-en.html' title='Ocultar el titulo de una Pagina en SharePoint Online'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-6497715989680550736</id><published>2017-11-21T02:53:00.003-08:00</published><updated>2017-11-22T01:33:00.831-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><title type='text'>Algunas urls de SharePoint</title><content type='html'>&lt;br /&gt;
Hola,&lt;br /&gt;
&lt;br /&gt;
a veces me es útil disponer de las url de algunas páginas de SharePoint, como por ejemplo la de cambio de masterpage, dado que ésta solo aparece cuando tienes activada la característica de publicación.&lt;br /&gt;
&lt;br /&gt;
Os pongo algunas, acordaros que hay que poner despues del /_layouts/, /15/16 en funcion de la version de SharePoint (2013, 2016).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Página cambio de masterpage&lt;/b&gt;: /_layouts/15/ChangeSiteMasterPage.aspx&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Página seleccion página de bienvenida:&lt;/b&gt; /_layouts/15/AreaWelcomePage.aspx&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Biblioteca de de páginas maestas:&amp;nbsp;&lt;/b&gt;/_catalogs/masterpage/Forms/AllItems.aspx&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Contenido del sitio:&lt;/b&gt; /_layouts/15/viewlsts.aspx&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Configuración del sitio:&lt;/b&gt; /_layouts/15/settings.aspx&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Guardar sitio como plantilla:&lt;/b&gt; /_layouts/15/savetmpl.aspx&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pagina de mantenimiento de elementos web:&lt;/b&gt; Añadir al edit form&amp;nbsp; ?Contents=1&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Listas ocultas de información de usuario&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;_catalogs/users&lt;/li&gt;
&lt;li&gt;_catalogs/users/simple.aspx&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Perfil de usuario:&lt;/b&gt; /_layouts/15/&lt;span style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-weight: bold;&quot;&gt;userdisp.aspx&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px;&quot;&gt;?id={UserID}&amp;amp;&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px; font-weight: bold;&quot;&gt;Force&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px;&quot;&gt;=True&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;arial&amp;quot;; font-size: 14.6667px;&quot;&gt;&lt;b&gt;Contenido y estructura:&lt;/b&gt;&amp;nbsp;&lt;/span&gt;/_layouts/15/sitemanager.aspx&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Según necesite urls y vaya recopilando, las iré añadiendo en este post.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Un saludo&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/6497715989680550736/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2017/11/algunas-urls-de-sharepoint.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/6497715989680550736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/6497715989680550736'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2017/11/algunas-urls-de-sharepoint.html' title='Algunas urls de SharePoint'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-5790544462365232761</id><published>2017-11-08T08:03:00.002-08:00</published><updated>2017-11-08T08:11:31.684-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="api rest"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="office 365"/><category scheme="http://www.blogger.com/atom/ns#" term="programacion"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><title type='text'>Usar Select2 para  filtrar listas de SharePoi con API REST</title><content type='html'>&lt;br /&gt;
Hace poco me paso que tenia que mostrar un dropdown list con datos de una lista, que obtenia haciendo una llamada a la API REST de SharePoint.&lt;br /&gt;
&lt;br /&gt;
Como sabeis, esa llamada por defecto me devuelve (creo que 100) items, pero añadiendole a la llamada un top=n&amp;nbsp; me devolverá mas. No obstante, me va a devolver tantos elementos como el umbral de la lista tenga marcado.&lt;br /&gt;
&lt;br /&gt;
Se nos ocurrio mejorar esto utilizando el componente select2&amp;nbsp;&lt;a href=&quot;https://select2.org/&quot;&gt;https://select2.org&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
El objetivo es disponer de un dropdownlist, además de un cuadro de texto que va autocompletando con los datos de la lista.&lt;br /&gt;
&lt;br /&gt;
De esta forma segun escribimos en el cuadro de texto, irá filtrando elementos de la lista y mostrandolos. Además permite hacer paginacion de la misma.&lt;br /&gt;
&lt;br /&gt;
Empiezo con un ejemplo:&lt;br /&gt;
&lt;br /&gt;
1. Lo primero que hay que hacer es añadir el scriopt select2 y su css a la página:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
2 . A continuación, añadimos en la página un elemento de tipo select con un class específico.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;select class=&quot;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;sharepoint-select2&lt;/span&gt;&quot;&amp;gt;&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;nbsp;3. Despues usamos el siguiente trozo de código javascript:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;$(&#39;.sharepoint-select2&#39;).select2({&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;width: &#39;200px&#39;,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ajax: {&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;url: function (params, data) {&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;return _spPageContextInfo.webAbsoluteUrl + &quot;/_api/Web/Lists/GetByTitle(&#39;LISTNAME&#39;)/items?$top=30&amp;amp;$select=COLUMNS&amp;amp;$filter=startswith(COLUMNAME,&#39;&quot; + params.term + &quot;&#39;)&quot;;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;b&gt;//fijarse que hago un top30 para tener bloques de 30 elementos&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;},&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;dataType: &#39;json&#39;,&amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;data: function (params) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; var query = {&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; page: params.page || 1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return query;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;},&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; processResults: function (data, params) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; params.page = params.page || 1;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; //&lt;b&gt;ESTA PARTE ES IMPORTANTE EN SELECT2 4.0&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var select2Data = $.map(data.value, function (obj) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; obj.id = obj.COLUMNID;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; obj.text = obj.COLUMNTEXT;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return obj;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;return {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;nbsp;results: select2Data ,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;nbsp; pagination: {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;nbsp; more: true&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;//paginará siempre&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;nbsp;}&lt;span style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;};&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;},&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;cache: true&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp;},&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; placeholder: &#39;Selecciona un elemento ... &#39;,&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; escapeMarkup: function (markup) { return markup; },&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; minimumInputLength: 1,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; templateResult: formatData ,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;nbsp; templateSelection: formatDataSelection&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;});&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
donde las funciones formatData y formatDataSelection:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;function formatData (data) {&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; //Aqui puede devolverse html para pintar un bloque con varios datos ,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // /imagenes etc..&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return&amp;nbsp; data.COLUMNTEXT;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;function formatDataSelection (data) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return data.COLUMNID;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
4. Por ultimo, para páginar yo lo que hice fue manejar 2 variables (ultimo ID de elemento de lista y ultimo texto añadido)&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;var lastID = -1;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;var lastTerm = &quot;&quot;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;$(&#39;.js-data-example-ajax&#39;).select2({&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Cuando se va a sacar la url, se comprueba primero si ha cambiado el cuadro de texto (es nueva busqueda) y en caso de que haya cambiado, reseteo el id a -1.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
if(lastTerm != params.term)&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;thisID = -1;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Despues hago una query u otra dependiendo del id. Si es -1 la query anterior y sino lo que hago es ordenar por D, y devolver aquellos con ID &amp;gt; el idGuardado (lastID)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;if(thisID == -1)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; return&amp;nbsp; LLAMADA ANTERIOR;&lt;span style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;else&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; return _spPageContextInfo.webAbsoluteUrl + &quot;/_api/Web/Lists/GetByTitle(&#39;LISTNAME&#39;)/items?$top=30&amp;amp;$select=COLUMNS&amp;amp;$filter=(startswith(COLUMNNAME,&#39;&quot; + params.term + &quot;&#39;) and (ID gt &quot;+lastID +&quot;))&quot;;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Hay que fijarse que el filtro lo hago con un startswith, es decir, que empiecen por el texto que introduzco.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
En rpocessResults, guardo el latID y el lastTerm:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;processResults: function (data, params) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;params.page = params.page || 1;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;if(data.value.length &amp;gt; 0)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;thisID = data.value[data.value.length-1].ID;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;lastTerm = params.term;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Lo unico raro, es que si continuas haciendo scroll, siempre te aparece el texto&amp;nbsp; de &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Loading more results.&amp;nbsp;&lt;/span&gt;Para quitarlo habria que controlar que no haya mas elementos.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Espero que os sea util.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Un saludo&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/5790544462365232761/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2017/11/usar-select2-para-filtrar-listas-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/5790544462365232761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/5790544462365232761'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2017/11/usar-select2-para-filtrar-listas-de.html' title='Usar Select2 para  filtrar listas de SharePoi con API REST'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-6646440963310987670</id><published>2017-05-22T07:00:00.000-07:00</published><updated>2017-05-22T07:00:06.796-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="desarrollo"/><category scheme="http://www.blogger.com/atom/ns#" term="powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Instalar una dll en la GAC sin Visual Studio</title><content type='html'>Hola,&lt;br /&gt;
&lt;br /&gt;
a contiuación paso un script powershell para ejecutar en un servidor que se desee meter una dll en la GAC sin le herramienta gacutil.&lt;br /&gt;
&lt;br /&gt;
Es algo sencillo, lo paso por si a alguien le puede ser útil.&lt;br /&gt;
&lt;br /&gt;
Se puede generar un script con las siguientes lineas:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Set-location &quot;ruta de la dll&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;[System.Reflection.Assembly]::Load(&quot;System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;$publish = New-Object System.EnterpriseServices.Internal.Publish&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;$publish.GacInstall(&quot;ruta de la dll\nuestradll.dll&quot;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;iisreset&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donde hay que indicar :&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;la ruta donde tenemos la dll que queremos instalar, por ejemplo, Set-location &lt;b&gt;&quot;c:\temp&quot;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Tambien a la hora de instalarla GacInstall(&quot;&lt;b&gt;c:\temp&lt;/b&gt;\nuestradll.dll&quot;)&lt;/li&gt;
&lt;li&gt;Por ultimo el nombre de la dll $publish.GacInstall(&quot;ruta de la dll\&lt;b&gt;nuestradll.dll&lt;/b&gt;&quot;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ejecutar el script y se instalará y actualizará en caso de ya estar instalada.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Un saludo&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/6646440963310987670/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2017/05/instalar-una-dll-en-la-gac-sin-visual.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/6646440963310987670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/6646440963310987670'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2017/05/instalar-una-dll-en-la-gac-sin-visual.html' title='Instalar una dll en la GAC sin Visual Studio'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-1512662073517736539</id><published>2017-04-28T00:29:00.003-07:00</published><updated>2017-04-28T00:29:41.793-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2013"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint desarrollo"/><title type='text'>Obtener el wsp de una solucion implementada en SharePoint</title><content type='html'>&lt;br /&gt;
En ocasiones, es común tener que modificar un proyecto que lleva implementado en Producción bastante tiempo y que nadie conoce cuando fue la última implementación. Es probable además que las personas que hayan desarrollado esa solución, ya no estén en la compañía con lo que no puedan ayudarte.&lt;br /&gt;
&lt;br /&gt;
Tanto a mi como a casi todo el mundo, &amp;nbsp;nos da respeto realizar una implementacion en ese entorno, sin estar seguros de que sea la ultima version. Es por ello, que se recomienda hacer una copia del wsp que se encuentra implementado en SharePoint para que en caso de que nuestra implementación falle, volver a implementarlo.&lt;br /&gt;
&lt;br /&gt;
Para obtener el último wsp implementado, bastará con ejecutar el siguiente comando powershell En la consola de PowerShell de SharePoint:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;csharpcode&quot; style=&quot;background: rgb(238, 238, 238); border: 0px; box-sizing: inherit; color: #454545; font-family: Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, monospace; font-size: 15px; line-height: 1.6; margin-bottom: 1.6em; max-width: 100%; outline: 0px; overflow: auto; padding: 1.6em; vertical-align: baseline; word-wrap: break-word;&quot;&gt;$farm = Get-SPFarm
$file = $farm.Solutions.Item(&lt;span class=&quot;str&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;nombredelasolucion.wsp&quot;&lt;/span&gt;).SolutionFile
$file.SaveAs(&lt;span class=&quot;str&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;c:\rutaaguardar\nombredelasolucion&lt;/span&gt;.wsp&quot;)&lt;/pre&gt;
Espero que sea de utilidad.&lt;br /&gt;
&lt;br /&gt;
Un saludo</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/1512662073517736539/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2017/04/obtener-el-wsp-de-una-solucion.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1512662073517736539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1512662073517736539'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2017/04/obtener-el-wsp-de-una-solucion.html' title='Obtener el wsp de una solucion implementada en SharePoint'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-4083040937905425269</id><published>2017-04-27T00:05:00.003-07:00</published><updated>2017-04-27T00:05:48.053-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><title type='text'>Forzar ejecución de un TimerJob en un servidor en concreto</title><content type='html'>&lt;br /&gt;
Hola a todos,&lt;br /&gt;
&lt;br /&gt;
recientemente me ha pasado que en un proyecto disponiamos de un cluster de varios servidores&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;2 servidores frontales&lt;/li&gt;
&lt;li&gt;2 servidores de aplicación&lt;/li&gt;
&lt;li&gt;2 servidores de indexación&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
Concretamente, los 2 servidores de aplicaciones, los teníamos para lanzar varios timerjobs, que sincronizaban los sistemas de nuestro cliente con su SharePoint por las noches.&lt;br /&gt;
&lt;br /&gt;
Tras un tiempo en ejecución, nos dimos cuenta que los TimerJobs, dejaban tostado el servicio timer de una de las maquinas, por lo que decidimos forzar unos Jobs a un servidor de aplicacion y otros a otra.&lt;br /&gt;
&lt;br /&gt;
Para ello, el TimerJob tiene que tener el siguiente constuctor:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;public NombreTimerJob(string jobName, string jobDescription, SPWebApplication webApplication, &lt;b&gt;SPServer server&lt;/b&gt;): base(jobName, webApplication, server, &lt;b&gt;SPJobLockType.Job&lt;/b&gt;)&lt;br /&gt;{&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&amp;nbsp;En la activación de la Feature, creamos el timerJob y le indicamos el server:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;public override void FeatureActivated(SPFeatureReceiverProperties properties)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; SPServerCollection servers = SPFarm.Local.Servers;&lt;br /&gt;&amp;nbsp; NombreTimerJob &amp;nbsp;timer&amp;nbsp;= new NombreTimerJob &amp;nbsp;(&quot;nombre del timer&quot;, JobDescription, webApplication, servers[&quot;servidor2&quot;]);&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, &amp;nbsp;nos aseguramos que ese TimerJob se está ejecutando en el servidor 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/4083040937905425269/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2017/04/forzar-ejecucion-de-un-timerjob-en-un.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/4083040937905425269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/4083040937905425269'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2017/04/forzar-ejecucion-de-un-timerjob-en-un.html' title='Forzar ejecución de un TimerJob en un servidor en concreto'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-1349949587653047575</id><published>2016-09-29T00:19:00.001-07:00</published><updated>2016-09-29T00:20:01.650-07:00</updated><title type='text'>Delegados y Eventos en C#</title><content type='html'>Hace poco un compañero de trabajo me preguntaba que era un Delegado en .NET.&lt;br /&gt;
&lt;br /&gt;
Le remití a la referencia de la msdn:&amp;nbsp;&lt;a href=&quot;https://msdn.microsoft.com/es-es/library/17sde2xt(v=vs.80).aspx&quot;&gt;https://msdn.microsoft.com/es-es/library/17sde2xt(v=vs.80).aspx&lt;/a&gt;&amp;nbsp;, pero al poco me dijo que estaba igual que si no hubiera leido nada, incluso yo le di la razón. &amp;nbsp;Decidí explicarselo con un ejemplo.&lt;br /&gt;
&lt;br /&gt;
Segun la msdn, un delegado equivale a un puntero a una funcion con seguridad o a una devolucion de una llamada. Resumiendo. Un delegado no es mas que un apuntador a un método de una clase.&lt;br /&gt;
&lt;br /&gt;
Con un ejemplo sacado de:&amp;nbsp;&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/system.delegate(v=vs.110).aspx&quot;&gt;https://msdn.microsoft.com/en-us/library/system.delegate(v=vs.110).aspx&lt;/a&gt;,&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;font-family: Consolas, Courier, monospace !important; font-size: 13px; overflow: auto; padding: 5px; word-wrap: normal;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;using&lt;/span&gt; System;
&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; SamplesDelegate  {

   &lt;span style=&quot;color: green;&quot;&gt;// Declares a delegate for a method that takes in an int and returns a String.&lt;/span&gt;
   &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;delegate&lt;/span&gt; String myMethodDelegate( &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; myInt );

   &lt;span style=&quot;color: green;&quot;&gt;// Defines some methods to which the delegate can point.&lt;/span&gt;
   &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; mySampleClass  {

      &lt;span style=&quot;color: green;&quot;&gt;// Defines an instance method.&lt;/span&gt;
      &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; String myStringMethod ( &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; myInt )  {
         &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; ( myInt &amp;gt; 0 )
            &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt;( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;positive&quot;&lt;/span&gt; );
         &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; ( myInt &amp;lt; 0 )
            &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt;( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;negative&quot;&lt;/span&gt; );
         &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; ( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;zero&quot;&lt;/span&gt; );
      }

      &lt;span style=&quot;color: green;&quot;&gt;// Defines a static method.&lt;/span&gt;
      &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;static&lt;/span&gt; String mySignMethod ( &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; myInt )  {
         &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; ( myInt &amp;gt; 0 )
            &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt;( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;+&quot;&lt;/span&gt; );
         &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; ( myInt &amp;lt; 0 )
            &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt;( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;-&quot;&lt;/span&gt; );
         &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; ( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&quot;&lt;/span&gt; );
      }
   }

   &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; Main()  {

      &lt;span style=&quot;color: green;&quot;&gt;// Creates one delegate for each method. For the instance method, an&lt;/span&gt;
      &lt;span style=&quot;color: green;&quot;&gt;// instance (mySC) must be supplied. For the static method, use the&lt;/span&gt;
      &lt;span style=&quot;color: green;&quot;&gt;// class name.&lt;/span&gt;
      mySampleClass mySC = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; mySampleClass();
      myMethodDelegate myD1 = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; myMethodDelegate( mySC.myStringMethod );
      myMethodDelegate myD2 = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; myMethodDelegate( mySampleClass.mySignMethod );

      &lt;span style=&quot;color: green;&quot;&gt;// Invokes the delegates.&lt;/span&gt;
      Console.WriteLine( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;{0} is {1}; use the sign \&quot;{2}\&quot;.&quot;&lt;/span&gt;, 5, myD1( 5 ), myD2( 5 ) );
      Console.WriteLine( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;{0} is {1}; use the sign \&quot;{2}\&quot;.&quot;&lt;/span&gt;, -3, myD1( -3 ), myD2( -3 ) );
      Console.WriteLine( &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;{0} is {1}; use the sign \&quot;{2}\&quot;.&quot;&lt;/span&gt;, 0, myD1( 0 ), myD2( 0 ) );
   }

}
&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
En el ejemplo se declara el delegado &amp;nbsp;a&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 13px;&quot;&gt;&lt;b&gt;myMethodDelegate&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;y se peude ver que la clase&amp;nbsp;&lt;b style=&quot;font-family: Consolas, Courier, monospace; font-size: 13px;&quot;&gt;mySampleClass&lt;/b&gt;&amp;nbsp; tiene dos metedos que coinciden con el prototipo del delegado.&lt;br /&gt;
&lt;br /&gt;
A continuación en el main se crea un delegado para cada uno de los metodos, pasandole como parametro el nombre del metodo en concreto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Esto quiere decir que myD1 sera un delegado al metodo&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 13px;&quot;&gt;myStringMethod&amp;nbsp;&lt;/span&gt;&amp;nbsp;y myD2 al metodo&amp;nbsp;&lt;b style=&quot;font-family: Consolas, Courier, monospace; font-size: 13px;&quot;&gt;mySampleClass&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Mas información:&amp;nbsp;&lt;a href=&quot;https://msdn.microsoft.com/es-es/library/ms173172.aspx&quot;&gt;https://msdn.microsoft.com/es-es/library/ms173172.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/1349949587653047575/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2016/09/delegados-y-eventos-en-c.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1349949587653047575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1349949587653047575'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2016/09/delegados-y-eventos-en-c.html' title='Delegados y Eventos en C#'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-1159735925721922717</id><published>2013-04-14T01:05:00.000-07:00</published><updated>2013-04-14T01:05:00.435-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="powershell"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2010"/><title type='text'>SharePoint 2010: Cambiar autenticacion en modo clasico a basada en notificaciones</title><content type='html'>Hola a todos,

&lt;br /&gt;
&lt;br /&gt;
Voy a explicar como cambiar la autenticacion de una&amp;nbsp;aplicación&amp;nbsp;web en modo clasico, a basada en notificaciones para configurar FBA.&lt;br /&gt;
&lt;br /&gt;
Para ello hay que abrir la ventana de consola de PowerShell y ejecutar lo siguiente:&lt;br /&gt;
&lt;br /&gt;
Add-PSSnapin Microsoft.SharePoint.PowerShell&lt;br /&gt;
&lt;br /&gt;
A&amp;nbsp;continuación&amp;nbsp;ejecutamos este otro script:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$WebAppName = &quot;http://&lt;yourwebappurl&gt;&quot;
$wa = get-SPWebApplication $WebAppName
$wa.UseClaimsAuthentication = $true
$wa.Update()
&lt;/yourwebappurl&gt;&lt;/pre&gt;
&lt;pre&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;/pre&gt;
Poniendo el nombre de nuestra aplicacion web.&lt;br /&gt;Con esto tendremos configurado la autenticacion basada en notificaciones.&lt;br /&gt;
&lt;pre&gt;
&lt;/pre&gt;
&lt;pre&gt;Fuente: &lt;a href=&quot;http://technet.microsoft.com/en-us/library/gg251985.aspx&quot;&gt;http://technet.microsoft.com/en-us/library/gg251985.aspx&lt;/a&gt; &lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/1159735925721922717/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2013/04/sharepoint-2010-cambiar-autenticacion.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1159735925721922717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1159735925721922717'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2013/04/sharepoint-2010-cambiar-autenticacion.html' title='SharePoint 2010: Cambiar autenticacion en modo clasico a basada en notificaciones'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-1071457922770038770</id><published>2013-03-20T02:06:00.001-07:00</published><updated>2013-03-20T02:06:56.993-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint designer"/><title type='text'>Problemas con el Designer. ¡¡Me borra los formularios!!</title><content type='html'>
Hola,&lt;br/&gt;&lt;br/&gt;

voy a comentar algo curioso que me ha pasado estos días y me ha vuelto loco.&lt;br/&gt;&lt;br/&gt;

Resulta que tenía que realizar numerosos formularios para inserción de datos en diferentes listas. Además de esto, lo que hacían los formularios era llevar por defecto en funcion de un parámetro de QueryString, relacionaban una lista con otra (algo interesante a aportar en el próximo post). &lt;br/&gt;
&lt;br/&gt;
&lt;b&gt;¿Cual era mi problema?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;

Para realizar los formularios, como muchos eran similares pero modificaba algun componente o algun campo, me dedique a copiar y pegar el bloque donde muestran los campos del formulario.&lt;br/&gt;

Al terminar de crearlos todos e ir uno a uno probando, me daba cuenta que el SharePoint Designer me los borraba. &lt;br/&gt;
Tras un gran rato de investigacion y desesperacion encontre lo siguiente.&lt;br/&gt;
Cuando creas un formulario en SharePoint dDesigner, éste te asigna un webpartid al bloque (webpart) que muestra los campos,  cómo yo estaba copiando y pegando en varios formularios, estaba poniendo el mismo webpartid y era algo que SharePoint no aceptaba como correcto :( . &lt;br/&gt;&lt;br/&gt;
&lt;b&gt;La solución paso por borrar todos los parametros _webpartid y que SharePoint Designer los generase automáticamente.&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;

</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/1071457922770038770/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2013/03/problemas-con-el-designer-me-borra-los.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1071457922770038770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1071457922770038770'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2013/03/problemas-con-el-designer-me-borra-los.html' title='Problemas con el Designer. ¡¡Me borra los formularios!!'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-55436193926933639</id><published>2013-03-19T09:01:00.002-07:00</published><updated>2013-03-19T09:01:55.861-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2010"/><title type='text'>Mostrar lista de SharePoint en un GridView (I). Campo de texto con formato enriquecido</title><content type='html'>
Hola,

primero voy a explicar como mostrar una lista de SharePoint en un GridView.
&lt;br/&gt;&lt;br/&gt;
Para ello, basta con obtener el listado de items de la lista.&lt;br/&gt;&lt;br/&gt;

&lt;p&gt;
SPList list = web.Lists[&quot;Nombre de la lista&quot;];&lt;br/&gt;
SPListItemCollection collection  = lista.Items;  &lt;br/&gt;

Grid.DataSource = collection.GetDataTable();&lt;br/&gt;

&lt;/p&gt;

&lt;br/&gt;&lt;br/&gt;

En la lista, disponemos de un campo de texto de varias línea con formato. &lt;br/&gt;
Al mostrar los elementos de la lista, esa columna nos la pinta con html.&lt;br/&gt;

&lt;br/&gt;
&lt;b&gt;¿Como puedo mostrar unicamente el texto?&lt;/b&gt;&lt;br/&gt;
&lt;br/&gt;

Para mostrar unicamente el texto se utilizara la siguiente funcion:&lt;b&gt;SPHttpUtility.ConvertSimpleHtmlToText&lt;/b&gt;&lt;br/&gt;
Ejemplo:&lt;br/&gt;
&lt;i&gt;Mostramos una label en la columna, suponiendo que es la segunda columna la que muestra el texto con formato(por ello accederemos a la Celda[1])&lt;/i&gt;&lt;br/&gt;
&lt;br/&gt;
 Label l = new Label();&lt;br/&gt;
                    l.Text = SPHttpUtility.ConvertSimpleHtmlToText(e.Row.Cells[1].Text, e.Row.Cells[1].Text.Length);
&lt;br/&gt;
//se inserta la label en la columna
                    e.Row.Cells[1].Controls.Add(l); &lt;br/&gt;

&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/55436193926933639/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2013/03/mostrar-lista-de-sharepoint-en-un.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/55436193926933639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/55436193926933639'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2013/03/mostrar-lista-de-sharepoint-en-un.html' title='Mostrar lista de SharePoint en un GridView (I). Campo de texto con formato enriquecido'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-4502900531964816244</id><published>2012-10-04T03:17:00.001-07:00</published><updated>2012-10-04T03:17:51.968-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="modelo objetos sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint desarrollo"/><title type='text'>Redireccionar desde NewForm al EditForm del mismo elemento</title><content type='html'>En el caso de plantearse la necesidad de redireccion hacia el dispform/editform de un elemento justo despues de su inclusion, ésta puede realizarse desde el evento ItemAdding tal y como se muestra en el codigo que introduzco a continuacion.

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt; &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; HttpContext _currentContext = &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; EventReceiver1()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : base()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt; != HttpContext.Current)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _currentContext = HttpContext.Current;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;/// &amp;lt;summary&amp;gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;/// Se va a agregar un elemento
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;/// &amp;lt;/summary&amp;gt;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; override void ItemAdding(SPItemEventProperties properties)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.ItemAdding(properties);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;// Obtenemos la lista
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPSite siteColl = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; SPSite(properties.SiteId);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPWeb site = siteColl.OpenWeb(properties.RelativeWebUrl);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPList list = site.Lists[properties.ListId];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;// Se clona el item ya que al hacer adding lo perderiamos
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EventFiringEnabled = &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPListItem itemToAdd = list.Items.Add();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;// Todos los campos
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemToAdd[&lt;span class=&quot;code-quote&quot;&gt;&quot;Title&quot;&lt;/span&gt;] = properties.AfterProperties[&lt;span class=&quot;code-quote&quot;&gt;&quot;Title&quot;&lt;/span&gt;];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemToAdd[&lt;span class=&quot;code-quote&quot;&gt;&quot;test&quot;&lt;/span&gt;] = properties.AfterProperties[&lt;span class=&quot;code-quote&quot;&gt;&quot;test&quot;&lt;/span&gt;];

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;// Actualizamos el item
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemToAdd.Update();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site.Update();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;// Se obtiene el ID del elemento para la vinculacion
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string IDcampo = itemToAdd.ID.ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EventFiringEnabled = &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;// Limpieza
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site.Dispose();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; siteColl.Dispose();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-comment&quot;&gt;// Redirect
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPUtility.Redirect(&lt;span class=&quot;code-quote&quot;&gt;&quot;/Lists/test/EditForm.aspx?ID=&quot;&lt;/span&gt; + IDcampo, SPRedirectFlags.Default, _currentContext);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class=&quot;code-keyword&quot;&gt;catch&lt;/span&gt; (Exception ex)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; properties.Status = SPEventReceiverStatus.CancelNoError;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; properties.ErrorMessage = &lt;span class=&quot;code-quote&quot;&gt;&quot;ERROR &quot;&lt;/span&gt; + ex.ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; properties.Cancel = &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;


Primero, se realiza la creacion del contexto para posteriormente, clonar el elemento e incluirlo en la lista con los valores del elemtneo original. Esto es debido a que la redireccion bloquea la inserccion del elemento actual en la lista.</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/4502900531964816244/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2012/10/redireccionar-desde-newform-al-editform.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/4502900531964816244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/4502900531964816244'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2012/10/redireccionar-desde-newform-al-editform.html' title='Redireccionar desde NewForm al EditForm del mismo elemento'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-1693999322792271949</id><published>2012-10-03T01:16:00.000-07:00</published><updated>2012-10-03T01:16:14.397-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="modelo objetos sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint designer"/><title type='text'>Malas prácticas para dar permisos a una columna de una lista a un grupo de usuarios</title><content type='html'>
Estos días nos hemos encontrado con un problema para un proyecto. Resulta que tenemos una lista de datos de usuarios (lista personalizada de SharePoint) que los usuarios e un portal han de rellenar. Cuando rellenan esta lista, los miembros de la empresa (usuarios internos), han de rellenar mas datos que el usuario. Esos datos son sensibles a ver por el usuario, es decir &quot;privados&quot; para los usuarios Internos.
&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;Nos encontramos con el primer problema. Hay que darle permisos a unas columnas de una lista a un numero de usuarios.&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;
Voy a enumerar un numero de soluciones que hemos ido afrontando y que no nos han resultado de ayuda.
&lt;br/&gt;&lt;br/&gt;
1. &lt;b&gt;Crear dos formularios diferentes para cada tipo de usuario&lt;/b&gt;. Con el designer, podemos crear 2 formularios NewForm.aspx, 2 EditForm y 2 DispForm, de manera que cuando entre un usuario acceda a unos o a otros. (No voy a explicar como hacer para que unos entren en un formulario y otros en otro, pero habria que utilizar audiencias o modificar el comportamiento del link &quot;Agregar nuevo elemento&quot;, boton de editar, etc, con el designer). &lt;br/&gt;
&lt;b&gt;Problema:&lt;/b&gt; Un formulario(para usuarios finales) era el NewForm, el otro (administrdores o usuarios internos) NewFormAdm.aspx. Si yo accedo como usuario final al NewForm.aspx y modifico la url NewFormAdm.aspx &lt;b&gt;ME SALE ESE FORMULARIO&lt;/b&gt;.
&lt;br/&gt;&lt;br/&gt;
2. &lt;b&gt;Desarrollar un custom control, que muestre un TextBox, combobox, dropdownlist, en funcion de un grupo de usuarios.&lt;/b&gt; Interesante y FUNCIONA&lt;br/&gt;
&lt;b&gt;Problema:&lt;/b&gt; El dato no aparece en los formularios, pero si en las vistas de las listas.
&lt;br/&gt;&lt;br/&gt;
3. &lt;b&gt;Utilizar ECMA Script para capar permisos:&lt;/b&gt; En otra ocasion mostraré como hacer esto, pero basicamente era ocultar por javascript en funcion de un grupo de usuarios.&lt;br/&gt;
&lt;b&gt;Problema:&lt;/b&gt; Si deshabilito javascript APARECEN LOS DATOS.
&lt;br/&gt;&lt;br/&gt;
4. Continuamos con el 3, &lt;b&gt;hacemos que si esta deshabilitado javascript, ocultamos la pagina.&lt;/b&gt; (luego pongo un post de esto). 
&lt;br/&gt;
&lt;b&gt;Problema:&lt;/b&gt; si ponemos un display:none si esta jvascript deshabilitado, APARECE EN EL CODIGO FUENTE, un usuario con conocimientos utilizaria un navegador o herramientas como firebug, para facilmente mostrar los datos. &lt;b&gt;Esto se debe a que el servidor no es el que comprueba si el navegador(cliente) tiene habilitado javascript, con lo cual los datos son enviados desde el servidor al cliente, y es este ultimo el que lo oculta. Deberiamos de NO ENVIAR los datos desde el servidor.&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;
5. Continuamos el 4. &lt;b&gt;Si comprobamos al hacer login si tiene javascript o no, para avisarle y que el servidor no envie datos.&lt;/b&gt;
&lt;br/&gt;
&lt;b&gt;Problema:&lt;/b&gt; ¿y si el usuario entra con javascript habilitado, y lo deshabilita despues? Volvemos al caso 4.
&lt;br/&gt;&lt;br/&gt;
6. &lt;b&gt;Creamos con designer unas paginas aspx en la libreria de Paginas e introducimos los formularios de nuevo, edit y disp.&lt;/b&gt; Esas paginas tienen permisos
&lt;br/&gt;
&lt;b&gt;Problema:&lt;/b&gt;Seguimos sin capar la columna para las vistas. Si genero una vista con unos campos que el user no puede ver, igual lo consigue con conocimientos de SharePoint, por mucho que pongamos filtros en paginas.
&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;SOLUCION:&lt;/b&gt; Como este problema se nos da en muchas listas, no nos quedo otra que realizar siempre 2 listas, una para el usuario final, y otra solamente con permisos a los usuarios internos (lista y lista extendida). La pagina que muestre los datos del usuario y edit, mostrará una pestaña &quot;Datos extendidos&quot; que será añadir los campos del otro elemento.

&lt;br/&gt;&lt;br/&gt;
Cualquier otra solucion sera bien recibira ;)

&lt;br/&gt;&lt;br/&gt;
Un saludo.



</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/1693999322792271949/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2012/10/malas-practicas-para-dar-permisos-una.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1693999322792271949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/1693999322792271949'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2012/10/malas-practicas-para-dar-permisos-una.html' title='Malas prácticas para dar permisos a una columna de una lista a un grupo de usuarios'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-725044518402992850</id><published>2012-10-01T23:30:00.000-07:00</published><updated>2012-10-01T23:31:59.621-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="modelo objetos sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2010"/><title type='text'>Al seleccionar un campo de un combo Custom Control, me muestra los errores de validacion de otras columnas del formulario</title><content type='html'>
Para situarnos,

me he descargado un Custom Control de Codeplex: &lt;br/&gt;&lt;br/&gt;

&lt;a href=&quot;http://cascadefilterlookup.codeplex.com/&quot;&gt;http://cascadefilterlookup.codeplex.com/&lt;/a&gt;

&lt;br/&gt;&lt;br/&gt;

Este Custom Control, permite generar campos en el formulario de la lista de tipo lookup:
&lt;ul&gt;
&lt;li&gt;buscando listas de cualquier sitio (saltandose la restriccion de listas de un solo sitio)&lt;/li&gt;
&lt;li&gt;Realizando un filtro caml para filtrar los resutlados que se muestran.&lt;/li&gt;
&lt;li&gt;Permitiendo realizar combos en cascada. Para ello:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Se introduce el nombre del primer combo (Padre) y le introducimos si este va tener un padre (no) y un hijo(poner el nombre que posteriormente le daremos al hijo.
Para el jio ponemos el nombre del padre y el que hemos puesto anteriormente para el hijo.&lt;/li&gt;
&lt;li&gt;En ambos hay que seleccionar El campo Value, el campo que muestra el combo, y el campo que relaciona uno con otros.&lt;/li&gt;

&lt;/ul&gt;&lt;/ul&gt;

&lt;br&gt;&lt;/br&gt;
&lt;blockquote&gt;&lt;b&gt;Para que se relacionen, ambos combos tienen que alimentarse de una lista, pero el segundo (el hijo) tiene que tener ademas un campo de tipo lookup normal (busqueda) asociado con el padre. Este será el campo que filtre.
Acordarse despues que el campo que hay que seleccionar en el padre para filtrar es el mismo que se muestre en la columna lookup de la lista de hijos.&lt;/b&gt;&lt;/blockquote&gt;


&lt;b&gt;Ahora llegamos al problema para el cual he escrito el post. Con este campo, cada vez que selecciono un valor en los combos para que alimente los combos hijo, me muestra los errores de validacion de cualquier otro campo del formulario que no sean los combos.&lt;/b&gt;&lt;/br/&gt;&lt;br/&gt;

Para solucionar esto:&lt;br/&gt;
&lt;ul&gt;
&lt;li&gt;
Busque en el codigo el DropDownList que pinta el combo. Se llama (CascadingDropDownList)&lt;/li&gt;&lt;li&gt;
y modifico donde aparece &lt;b&gt;this.CascadingDropDownList.CausesValidation = true;&lt;/b&gt; por &lt;b&gt;this.CascadingDropDownList.CausesValidation = false;&lt;/b&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;br/&gt;&lt;br/&gt;
Si miramos la especificacion de CausesValidation en msdn : &lt;a href=&quot;http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.listcontrol.causesvalidation.aspx&quot;&gt;http://msdn.microsoft.com/es-es/library/system.web.ui.webcontrols.listcontrol.causesvalidation.aspx&lt;/a&gt; nos dice lo siguiente:&lt;/br&gt;
Obtiene o establece un valor que indica si se realiza la validación cuando se hace clic en un control derivado de la clase ListControl. Es decir, si es true, validará los campos de la pagina.
&lt;br/&gt;&lt;br/&gt;

Con esto estaria solucionado.

&lt;br/&gt;&lt;br/&gt;

Un saludo

</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/725044518402992850/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2012/10/al-seleccionar-un-campo-de-un-combo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/725044518402992850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/725044518402992850'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2012/10/al-seleccionar-un-campo-de-un-combo.html' title='Al seleccionar un campo de un combo Custom Control, me muestra los errores de validacion de otras columnas del formulario'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5733790482825039236.post-7279672615229754851</id><published>2012-10-01T08:25:00.002-07:00</published><updated>2012-10-01T23:52:18.324-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="sharepoint designer"/><category scheme="http://www.blogger.com/atom/ns#" term="trucos"/><title type='text'>Cambiar el texto &quot;Agregar Nuevo elemento&quot; en una lista de SharePoint y la url del NewForm</title><content type='html'>Hola a todos,

en el siguiente post voy a explicar un metodo sencillo que he empleado para modificar el texto de &lt;i&gt;Agregar Nuevo elemento&lt;/i&gt; de una lista.
&lt;p&gt;

Antes de empezar voy a explicar como llegue a esa necesidad. 
En un proyecto que estabamos realizando, utilizamos listas para crear soliciutudes de alta en los diferentes sistemas de la organizacion. La ventaja de las listas de SharePoint en estos casos, es que solamente con crearlas y añadirle las columnas correspondientes, disponemos del formulario de &quot;Alta&quot;.
&lt;/p&gt;
&lt;p&gt;
El problema que ten&amp;iacute;amos es que el usuario final carece de conocimientos de informatica y de tecnolog&amp;iacute;a web, con lo que el proyecto final deb&amp;iacute;a de ser suficientemente usable y entendible. Debido a esto, una de las peticiones que se nos lanzaba en todo momento era modificar el titulo de &quot;Agregar nuevo elemento&quot; de las listas.&lt;/p&gt;

&lt;p&gt;
Primeramente, pense en la opcion de cambiarlo para todas. &lt;i&gt;Deb&amp;iacutea; de ser un texto en un fichero de recursos, mmmm vamos a modificarlo&lt;/i&gt;
Pero claro, lo que el cliente buscaba es modificarlo apra cada lista (si es una lista de solicitudes &quot;Nueva Solicitud&quot;, si era una reserva &quot;Nueva Reserva&quot;).&lt;/p&gt;

La opcion que opté es utilizar el SharePoint Designer y para ello:
&lt;br/&gt;&lt;br/&gt;
1. Me conecto al sitio con el SharePoint Designer.
&lt;br/&gt;&lt;br/&gt;
2. Entro en la librería de páginas: para ello hacer clie en &quot;Todos los archivos&quot; &amp;gt; &quot;Paginas&quot; 
&lt;br/&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-xN3Pjbhh9sY/UGm0X1gFxpI/AAAAAAAAAIE/orvKWQ4zciA/s1600/designer1.png&quot; imageanchor=&quot;1&quot; style=&quot;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;166&quot; width=&quot;320&quot; src=&quot;http://4.bp.blogspot.com/-xN3Pjbhh9sY/UGm0X1gFxpI/AAAAAAAAAIE/orvKWQ4zciA/s320/designer1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;



3. en el ribbon del designer , crear nueva ASPX
&lt;br/&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/--N6lmW0F7Ds/UGm0dq0CUQI/AAAAAAAAAIQ/AZz8szyXcic/s1600/designer2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;278&quot; width=&quot;305&quot; src=&quot;http://4.bp.blogspot.com/--N6lmW0F7Ds/UGm0dq0CUQI/AAAAAAAAAIQ/AZz8szyXcic/s320/designer2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;



&lt;br/&gt;&lt;br/&gt;
4. Darle un nombre a la página, y hacer clic en botón derecho sobre ella: &lt;b&gt;Editar en modo avanzado&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;
5. En vista codigo, situarse dentro del form1 y Añadir la lista para la que queremos cambiar el texto de nuevo elemento.
&lt;br/&gt;&lt;br/&gt;
Insert&gt; Data View  (Insertar &gt; Vista de datos)
En ocasiones esa opcion está deshabilitada, probar a refrescar para pillar los cambios y deber&amp;iacute;a habilitarse.
&lt;br/&gt;&lt;br/&gt;
6. Una vez añadida la lista, lo primero hay que añadir la opcion de Agregar nuevo elemento, para ello hacer clic en la pestaña Diseño, y seleccionar en el menu Opciones , Summary Toolbar o (barra de herramientas reducida). Con esto aparecera la opcion de agregar nuevo elemento.
&lt;br/&gt;&lt;br/&gt;
7. A continuacion hay que ver la lista en formato XSLT, para ello hacer clic en la pestaña Diseño, y seleccionar Customize XSLT View &gt; Customize entire View (Personalizar XSLT).
&lt;br/&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-qEq6acpmqkI/UGm0uP04WiI/AAAAAAAAAIc/jk6HH1OBNe8/s1600/designer3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;113&quot; width=&quot;320&quot; src=&quot;http://4.bp.blogspot.com/-qEq6acpmqkI/UGm0uP04WiI/AAAAAAAAAIc/jk6HH1OBNe8/s320/designer3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;



&lt;br/&gt;


8. Si seleccionamos la vista diseño, podemos situarnos encima de la opcion Agregar nuevo elemento, y con ella seleccionada, en la vista codigo, puede modificarse el Texto&lt;br/&gt;



Se puede modificar la linea --&gt;     &amp;lt;xsl:value-of select=&quot;$AddNewText&quot; /&amp;gt;  por el texto que se desea que aparezca, por ejemplo &lt;b&gt;Nueva Solicitud&lt;/b&gt;
&lt;br/&gt;


&lt;br/&gt;
&lt;b&gt;Asi mismo, se puede cambiar la url que aparece en el href y/o la url que abre el javascript en el onclick.&lt;/b&gt;
&lt;br/&gt;&lt;br/&gt;


&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-KAEU9lZrq3I/UGm00p-_WXI/AAAAAAAAAIo/dyDroeQLuLQ/s1600/designer4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;50&quot; width=&quot;320&quot; src=&quot;http://1.bp.blogspot.com/-KAEU9lZrq3I/UGm00p-_WXI/AAAAAAAAAIo/dyDroeQLuLQ/s320/designer4.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br/&gt;&lt;br/&gt;
9. A continuación vamos a guardar el listado creado y modificado como web part, para ello en la pestaña Web Part, hacemos clic en Go To Site Gallery (Guardar En Galeria del sitio), para guardar este componente como un web part. Se abrirá  una ventana para guardar y confiogurar por defecto las opciones del web part.
&lt;br/&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-zie7ofa_Deg/UGm1tw5y5RI/AAAAAAAAAI0/38kK41yWbmU/s1600/designer5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;202&quot; width=&quot;320&quot; src=&quot;http://1.bp.blogspot.com/-zie7ofa_Deg/UGm1tw5y5RI/AAAAAAAAAI0/38kK41yWbmU/s320/designer5.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;


&lt;br/&gt;&lt;br/&gt;
10. Para finalizar, si vamos a la web donde hemos creado este web part, Editamos la pagina y añadimos el web part creado (estara en la categoria Varios).


&lt;br/&gt;&lt;br/&gt;

Espero que sea de ayuda..

&lt;br/&gt;&lt;br/&gt;
Un saludo

</content><link rel='replies' type='application/atom+xml' href='http://dalonsoblog.blogspot.com/feeds/7279672615229754851/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://dalonsoblog.blogspot.com/2012/10/cabiar-el-texto-agregar-nuevo-elemento.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/7279672615229754851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5733790482825039236/posts/default/7279672615229754851'/><link rel='alternate' type='text/html' href='http://dalonsoblog.blogspot.com/2012/10/cabiar-el-texto-agregar-nuevo-elemento.html' title='Cambiar el texto &quot;Agregar Nuevo elemento&quot; en una lista de SharePoint y la url del NewForm'/><author><name>David</name><uri>http://www.blogger.com/profile/16085188390464174617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFJOvuhw6FWgEP5aKPB84WS4U-Ik9gl74dQL9Hb2N4EZVkgs50xzWmT0kMI35nbls1wQfXBAFjf4tlr7Q2h-7KQbkoiGf6msZENi_bWJ34E2BCmopMCgB4VSk2D8dNcQ/s220/perfil.jfif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-xN3Pjbhh9sY/UGm0X1gFxpI/AAAAAAAAAIE/orvKWQ4zciA/s72-c/designer1.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>