{"id":2657,"date":"2017-07-12T11:17:26","date_gmt":"2017-07-12T09:17:26","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=2657"},"modified":"2018-07-18T13:24:43","modified_gmt":"2018-07-18T11:24:43","slug":"spfx-extensions-crear-campo-personalizado","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/","title":{"rendered":"SPFX Extensions: C\u00f3mo crear un Campo Personalizado"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2680\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png\" alt=\"SPFX Extensions Como crear un Campo Personalizado\" width=\"973\" height=\"370\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png 973w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado-300x114.png 300w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado-768x292.png 768w\" sizes=\"auto, (max-width: 973px) 100vw, 973px\" \/><\/p>\n<p>El <strong>SharePoint FrameWork<\/strong> ha venido para quedarse en nuestros desarrollos. Si el a\u00f1o pasado Microsoft ya dio un golpe sobre la mesa anunciando el <strong>SPFX<\/strong> y las herramientas a utilizar, este a\u00f1o en el<em> Summit<\/em> empezaron a mostrar todas las novedades y algunas de ellas ya est\u00e1n en Preview P\u00fablicas, por lo que podemos empezar a probarlas y ver los escenarios en los que encajan.<\/p>\n<p>Una de las novedades en las que m\u00e1s inter\u00e9s tenemos los desarrolladores, es la que Microsoft ha llamado:\u00a0<a href=\"https:\/\/dev.office.com\/blogs\/announcing-availability-of-sharepoint-framework-extensions-developer-preview\" target=\"_blank\" rel=\"noopener noreferrer\">\u00abSharePoint Framework Extensions\u00bb<\/a><\/p>\n<p><!--more--><\/p>\n<h2><strong>\u00bfQu\u00e9 son las SharePoint Framework Extensions?<\/strong><\/h2>\n<p>El SPFX lo \u00fanico que pod\u00eda realizar hasta la fecha, era la implementaci\u00f3n de WebParts en Cliente, pero aun hay muchos aspectos que no est\u00e1n abordando: Custom Actions, modificaci\u00f3n de campos personalizados (JSLink, XSLT, etc.. ) o c\u00f3mo a\u00f1adir nuestras personalizaciones en las listas.<\/p>\n<p>Pues bien, todos estos elementos son los que han anunciado que se incorporar\u00e1n al SPFX. Como hemos dicho, de momento est\u00e1n en Preview y no se pueden utilizar en entornos productivos. En el art\u00edculo de hoy vamos a ver<strong> c\u00f3mo empezar con las Extensiones \u00abField Customizer\u00bb o Campos Personalizados.<\/strong><\/p>\n<h2><strong>\u00bfQu\u00e9 es un \u00abField Customizer\u00bb?<\/strong><\/h2>\n<p>Todo desarrollador de SharePoint que se precie se ha topado con el requerimiento de modificar el estilo o el comportamiento de un campo de una lista de SharePoint. En versiones anteriores a 2013 se hacia de una forma \u00abartesanal\u00bb, entrando en el formulario y a\u00f1adiendo nuestro c\u00f3digo de la mejor manera posible.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2683\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.jpg.png\" alt=\"SPFX Extensions Como crear un Campo Personalizado.jpg\" width=\"978\" height=\"269\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.jpg.png 978w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.jpg-300x83.png 300w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.jpg-768x211.png 768w\" sizes=\"auto, (max-width: 978px) 100vw, 978px\" \/><\/p>\n<p>En la versi\u00f3n 2013 se introdujo un nuevo concepto para intentar gobernar esta \u00abinyecci\u00f3n\u00bb de c\u00f3digo. El invento se llamo<strong> JSLink. <\/strong><\/p>\n<p>Con JSLink se pueden hacer cosas muy chulas, pero en algunos escenarios su comportamiento no es el deseado y<strong> se producen errores que no se pueden controlar<\/strong>. Ahora, con la salida de las SPFX, el equipo de producto ha querido estandarizar en la medida de lo posible el desarrollo con el mismo <em>tooling<\/em> de herramientas y lenguaje de programaci\u00f3n: Visual Studio Code, NodeJS, TypeScript, Gulp, Yeoman, etc.<\/p>\n<p><strong>Manos a la obra\u00a0<\/strong><\/p>\n<p>Utilizando la plantilla de Yeoman habilitada para ello pondremos la siguiente instrucci\u00f3n:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nyo @microsoft\/sharepoint\r\n<\/pre>\n<p><strong>NOTA<\/strong>: En el equipo d<img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-2667\" title=\"SPFX Extensions Como crear un Campo Personalizado.jpg\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/youpdate.png\" alt=\"\" width=\"231\" height=\"124\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/youpdate.png 726w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/youpdate-300x161.png 300w\" sizes=\"auto, (max-width: 231px) 100vw, 231px\" \/>e producto de la primera versi\u00f3n hay un<strong> error en el versionado<\/strong>. Dependiendo de si ejecutas el comando en una carpeta que ya tiene node-modules instalados, es posible que no funcione. Mi consejo es que actualices la plantilla de @microsoft\/sharepoint desde el propio Yeoman. Para ello, pones el comando Y<em>o<\/em> y seleccionas la opci\u00f3n de actualizar una de las plantillas<\/p>\n<p>Una vez ejecutamos la instrucci\u00f3n Yo seleccionaremos la opci\u00f3n Extensions(Preview). Dentro de esta pantalla tendremos tres opciones: Application Customizer, Field Customizer, ListView Command Set. En nuestro caso seleccionaremos <strong>Field Customizer<\/strong> (las otras dos opciones ya las veremos en los siguientes art\u00edculos).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2670 size-large\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/yo-1024x452.jpg\" alt=\"SPFX Extensions Como crear un Campo Personalizado.jpg\" width=\"1024\" height=\"452\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/yo-1024x452.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/yo-300x132.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/yo-768x339.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/yo.jpg 1446w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>A continuaci\u00f3n, nos indicar\u00e1n que vamos a utilizar ReactJS o ning\u00fan framework JavaScript. Este es uno de los primeros cambios respecto a los WebParts, en los que ten\u00edamos m\u00e1s frameworks JS disponibles.<\/p>\n<p>Esto no quiere decir que no se puedan utilizar, sin embargo, todos los esfuerzos que el equipo de producto hace en SPFX, es utilizando ReactJS. Respecto a \u00a0los WebParts, mi opini\u00f3n es que <strong>ReactJS no es la \u00fanica alternativa posible, <\/strong>por lo tanto<strong>,\u00a0<\/strong>para equipos de desarrollo que est\u00e9n utilizando otro framework, no es necesario el aprendizaje de ReactJS.<\/p>\n<p>En el caso de las Extensions, creo que \u00a0sobre una ingenier\u00eda de los mismos es perjudicial y por eso mismo, <strong>la utilizaci\u00f3n de librer\u00edas ligeras se adapta mejor a las necesidades que podamos tener<\/strong>. Por este motivo, ReactJS puede ser una opci\u00f3n mejor que utilizar otros frameworks \u00a0m\u00e1s pesados.<\/p>\n<p>Una vez tenemos creada la plantilla, vamos a la ubicaci\u00f3n desde donde se ha creado la extensi\u00f3n, y observamos que se ha creado una carpeta con su nombre \u00a0y el de su fichero typescript.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-2672\" title=\"SPFX Extensions Como crear un Campo Personalizado.jpg\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/slider.jpg\" alt=\"\" width=\"303\" height=\"260\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/slider.jpg 580w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/slider-300x258.jpg 300w\" sizes=\"auto, (max-width: 303px) 100vw, 303px\" \/><\/p>\n<p>Este fichero ts, tiene una clase que hereda de BaseFieldCustomizer&lt;IProps&gt; (esta es la clase que se ha creado para la inyecci\u00f3n de las extensions). En esta clase para nuestros desarrollo tendremos que sobreescribir tres m\u00e9todos <strong>onInit, onRenderCell y OnDisposeCell.<\/strong><\/p>\n<p>En nuestro ejemplo, en el m\u00e9todo onRenderCell (cuando se renderice el campo) a\u00f1adiremos nuestro desarrollo. En nuestro campo vamos a renderizar un campo en formato de Slider.<\/p>\n<p><strong>Para ello pondremos este c\u00f3digo<\/strong><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n  @override\r\n  public onRenderCell(event: IFieldCustomizerCellEventParameters): void {\r\n\r\n    const value: string = event.cellValue;\r\n    const id: string = event.row.getValueByName('ID').toString();\r\n    const hasPermissions: boolean = this.context.pageContext.list.permissions.hasPermission(SPPermission.editListItems);\r\n    \r\n    const sliderField: React.ReactElement&amp;amp;lt;{}&amp;amp;gt; =\r\n      React.createElement(SliderField, { value: value, id: id, disabled: !hasPermissions, onChange: this.onSliderValueChanged.bind(this) } as ISliderFieldProps);\r\n    ReactDOM.render(sliderField, event.cellDiv);\r\n  }\r\n<\/pre>\n<p>Este c\u00f3digo \u00a0obtiene el valor de la celda, consigue el identificador del elemento y crea un elemento de React llamado<strong> SliderField.<\/strong> Este componente tiene el siguiente c\u00f3digo:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nexport default class SliderField extends React.Component&amp;amp;lt;ISliderFieldProps, ISliderState&amp;amp;gt; {\r\nconstructor(props: ISliderFieldProps, state: ISliderState) {\r\n    super(props, state);\r\n    const intVal = parseInt(props.value);\r\n    this.state = {\r\n      value: isNaN(intVal) ? null : intVal\r\n    };\r\n  }\r\n  @override\r\n  public componentDidMount(): void {\r\n    Log.info(LOG_SOURCE, 'React Element: SliderField mounted');\r\n  }\r\n\r\n  @override\r\n  public componentWillUnmount(): void {\r\n    Log.info(LOG_SOURCE, 'React Element: SliderField unmounted');\r\n  }\r\n  @override\r\n  public render(): React.ReactElement&amp;amp;lt;{}&amp;amp;gt; {\r\n    return (      \r\n\r\n\r\n&amp;amp;lt;div className={styles.cell}&amp;amp;gt;\r\n        {this.state.value &amp;amp;amp;&amp;amp;amp;\r\n        (\r\n          &amp;amp;lt;ReactSlider value={this.state.value} max={100} onChange={this.onChange.bind(this)} disabled={this.props.disabled} \/&amp;amp;gt;\r\n        )}\r\n      &amp;amp;lt;\/div&amp;amp;gt;\r\n\r\n\r\n    );\r\n  }\r\n  private onChange(value: number): void {\r\n    if (this.props.onChange)\r\n      this.props.onChange(value, this.props.id);\r\n  }\r\n}\r\n<\/pre>\n<h2><strong>\u00bfC\u00f3mo lo probamos?<\/strong><\/h2>\n<p>Para los WebParts, uno de los grandes avances fue que dispon\u00edamos de un entorno en local en el cual pod\u00edamos hacer nuestras pruebas sin tener instalado un SharePoint, cosa que \u00a0facilita mucho la vida a los desarrolladores. Ahora bien,<strong> para las Extensions no disponemos de un entorno en local<\/strong>, por lo que tendremos que levantar el servidor NodeJS en local e ir a nuestro servidor de SharePoint Online, a la biblioteca donde queremos probar este campo y por \u00faltimo, \u00a0a\u00f1adir la siguiente url:<\/p>\n<p>loadSPFX=true&amp;debugManifestsFile=https:\/\/localhost:4321\/temp\/manifests.js&amp;fieldCustomizers={\u00abField\u00bb:{\u00abid\u00bb:\u00bb0e3d8b71-56aa-4405-9225-f08a80fc1d71&#8243;,\u00bbproperties\u00bb:{\u00absampleText\u00bb:\u00bbHello!\u00bb}}}<\/p>\n<p>De esta url tendremos que<strong> modificar el valor Field<\/strong> por el nombre de nuestra columna personalizada, y el id de la extensi\u00f3n dentro del Catalogo de Producto. Este identificador lo podemos obtener mirando el manifiesto de la propia soluci\u00f3n.<\/p>\n<p>Para facilitar la depuraci\u00f3n de nuestras soluciones, varios miembros de la comunidad han creado una tarea de Gulp que nos genera esta url con los valores de nuestra soluci\u00f3n. Para m\u00e1s informaci\u00f3n sobre esta tarea os recomiendo \u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-build-extensions\/tree\/master\/gulp-tasks\/serve-info#setup\" target=\"_blank\" rel=\"noopener noreferrer\">pinchar en este enlace<\/a>.<\/p>\n<h2><strong>\u00bfC\u00f3mo lo desplegamos en nuestro tenant?<\/strong><\/h2>\n<p>Ahora mismo, este es el aspecto m\u00e1s flojo y en el que m\u00e1s esfuerzo debemos hacer \u00a0antes de \u00a0ponerlo en entornos Productivos. Los pasos que hay que seguir, son:<\/p>\n<p>1.- Subir la App a nuestro cat\u00e1logo de aplicaciones.<br \/>\n2.- Subir el desarrollo al CDN<br \/>\n3.- Instalar la App en el Site Collection.<br \/>\n4.- Actualizar el CliendSideID en el campo que queremos aplicarle esta personalizaci\u00f3n. Esto mediante desarrollo.<\/p>\n<p>El equipo de producto est\u00e1 trabajando en una API para poder tener un ciclo de vida m\u00e1s acorde a un desarrollo moderno y que no se vuelva a incurrir en errores como en las primeras versiones de SharePoint.<\/p>\n<h2><strong>Resumen<\/strong><\/h2>\n<p><strong>Las SPFX Extensions<\/strong> son un gran avance para la incorporaci\u00f3n de los Modern Site en las nuevas Intranet y un espaldarazo definitivo para volver a incorporar a SharePoint Online como uno de los productos esenciales en las organizaciones.<\/p>\n<p>En posteriores art\u00edculos abordaremos los otros tipos de \u00abExtensions\u00bb de los que disponemos.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>El SharePoint FrameWork ha venido para quedarse en nuestros desarrollos. Si el a\u00f1o pasado Microsoft ya dio un golpe sobre la mesa anunciando el SPFX y las herramientas a utilizar, este a\u00f1o en el Summit empezaron a mostrar todas las &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[180],"tags":[188,178],"class_list":["post-2657","post","type-post","status-publish","format-standard","hentry","category-spfx","tag-field-customizer","tag-spfx"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SPFX Extensions: C\u00f3mo crear un Campo Personalizado - Desarrollando sobre SharePoint<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"SPFX Extensions: C\u00f3mo crear un Campo Personalizado - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"El SharePoint FrameWork ha venido para quedarse en nuestros desarrollos. Si el a\u00f1o pasado Microsoft ya dio un golpe sobre la mesa anunciando el SPFX y las herramientas a utilizar, este a\u00f1o en el Summit empezaron a mostrar todas las &hellip; Continue reading &rarr;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"SPFX Extensions: C\u00f3mo crear un Campo Personalizado\",\"datePublished\":\"2017-07-12T09:17:26+00:00\",\"dateModified\":\"2018-07-18T11:24:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/\"},\"wordCount\":1365,\"commentCount\":0,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2017\\\/07\\\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png\",\"keywords\":[\"field customizer\",\"spfx\"],\"articleSection\":[\"spfx\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/\",\"name\":\"SPFX Extensions: C\u00f3mo crear un Campo Personalizado - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2017\\\/07\\\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png\",\"datePublished\":\"2017-07-12T09:17:26+00:00\",\"dateModified\":\"2018-07-18T11:24:43+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/spfx-extensions-crear-campo-personalizado\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2017\\\/07\\\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2017\\\/07\\\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png\",\"width\":973,\"height\":370,\"caption\":\"SPFX Extensions Como crear un Campo Personalizado\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/\",\"name\":\"Desarrollando sobre SharePoint\",\"description\":\"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SPFX Extensions: C\u00f3mo crear un Campo Personalizado - Desarrollando sobre SharePoint","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/","twitter_card":"summary_large_image","twitter_title":"SPFX Extensions: C\u00f3mo crear un Campo Personalizado - Desarrollando sobre SharePoint","twitter_description":"El SharePoint FrameWork ha venido para quedarse en nuestros desarrollos. Si el a\u00f1o pasado Microsoft ya dio un golpe sobre la mesa anunciando el SPFX y las herramientas a utilizar, este a\u00f1o en el Summit empezaron a mostrar todas las &hellip; Continue reading &rarr;","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"SPFX Extensions: C\u00f3mo crear un Campo Personalizado","datePublished":"2017-07-12T09:17:26+00:00","dateModified":"2018-07-18T11:24:43+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/"},"wordCount":1365,"commentCount":0,"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png","keywords":["field customizer","spfx"],"articleSection":["spfx"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/","name":"SPFX Extensions: C\u00f3mo crear un Campo Personalizado - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png","datePublished":"2017-07-12T09:17:26+00:00","dateModified":"2018-07-18T11:24:43+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/spfx-extensions-crear-campo-personalizado\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2017\/07\/SPFX-Extensions-Como-crear-un-Campo-Personalizado.png","width":973,"height":370,"caption":"SPFX Extensions Como crear un Campo Personalizado"},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/","name":"Desarrollando sobre SharePoint","description":"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/2657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/comments?post=2657"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/2657\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=2657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=2657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=2657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}