SSD: el síndrome de la Sharepoint dependencia

Sharepoint me proporciona seguridad y me hace sentir más fuerte. Las 10 cosas que más me gustan de Sharepoint.

jueves, 19 de noviembre de 2015

¿Cómo crear una vista de hoja de datos y ocultarla en c# en SharePoint 2010?

SPList listaRiesgos = oWebsite.Lists.TryGetList("Issues y riesgos"); System.Collections.Specialized.StringCollection columnas = new System.Collections.Specialized.StringCollection(); columnas.Add("Title"); columnas.Add("Observaciones"); string query = "<Where><And><Neq><FieldRef Name='Estado_Cumplimiento_Riesgo'/><Value Type='Text'>Cerrado</Value></Neq><Neq><FieldRef Name='Estado_Cumplimiento_Riesgo'/><Value Type='Text'>Desestimado</Value></Neq></And></Where><OrderBy><FieldRef...

lunes, 16 de noviembre de 2015

La foto del anillo especial por los cinco años como MVP!

...

domingo, 25 de octubre de 2015

¿Cómo listas los nombres internos de las columnas de una lista en SharePoint con PowerShell?

$web = Get-SPWeb http://t0004010369:2332/plantilla_proyecto$lista = $web.Lists["Issues y riesgos"]$lista.Fields | Select Title, InternalName | sort InternalName | out-file c:\nombres.txtNotePad c:\nombres.txt...

jueves, 8 de octubre de 2015

Stack Overflow (in Spanish)

Esto está llegando ...http://area51.stackexchange.com/proposals/42810/stack-overflow-in-spanish...

jueves, 1 de octubre de 2015

Quinto año de MVP :-)

Muy contento :-)...

miércoles, 23 de septiembre de 2015

¿Cómo eliminar manejadores de eventos huérfanos con C# en SharePoint?

Arquitectura de la soluciónUn sitio raízVarios sitios hijosTipos de contenido en el sitio raízListas en los sitios hijos que consumen los tipos de contenido del sitio raízManejadores de eventos asociados a los tipos de contenido del sitio raíz en forma programática:El problemaSe presenta un error al tratar de eliminar los eventos asociados el tipo de contenido, propagando el cambio hacia los tipos de contenido descendientes:El errorMensaje: Operación...

lunes, 21 de septiembre de 2015

¿Cómo listas los manejadores de eventos de los tipos de contenido del sitio raíz en SharePoint con C#?

SPContentTypeCollection tcs = oSiteCollection.RootWeb.ContentTypes;foreach (SPContentType tc in tcs){  contenido.InnerHtml += "<span><b>" + tc.Name + "</b></span><br>";  SPEventReceiverDefinitionCollection eventos = tc.EventReceivers;  foreach (SPEventReceiverDefinition evento in eventos)  {    contenido.InnerHtml += "<span>" + evento.Synchronization + "</span><br>"; ...

lunes, 17 de agosto de 2015

¿Cómo leer un ítem con buena performance de una lista en SharePoint con C#?

La recomendación es usar GetItemByIdSelectedFields y especificar sólo los elementos que necesitamos. Recordar usar el internal name. using (SPWeb web = SPContext.Current.Web) {   string urlRiesgos = (web.ServerRelativeUrl +  "/Lists/Riesgos").Replace("//","/");   SPList listaRiesgos = web.GetList(urlRiesgos);   SPListItem itemRiesgo = listaRiesgos.GetItemByIdSelectedFields(idRiesgo, "Estado_Cumplimiento_Riesgo", "Tipo_Riesgo");  ...

domingo, 16 de agosto de 2015

¿Cómo especificar un valor nulo como default de una columna de sitio choice en SharePoint con C#?

SPFieldChoice estadoRiesgo = (SPFieldChoice)oSiteCollection.RootWeb.Fields.GetFieldByInternalName("Estado_Cumplimiento_Riesgo");if (estadoRiesgo.DefaultValue != null){  estadoRiesgo.DefaultValue = null;  estadoRiesgo.Update(true);}...

¿Cómo inhabilitar la edición en hoja de datos de una lista en SharePoint con C#?

SPList listaRiesgos = oWebsite.Lists.TryGetList("Issues y riesgos");if (listaRiesgos != null){  if (!listaRiesgos.DisableGridEditing)  {    listaRiesgos.DisableGridEditing = true;    contenido.InnerHtml += "OK";  }  else    contenido.InnerHtml += "NO-OK";}...

viernes, 14 de agosto de 2015

¿Cómo hacer no visible un campo en las pantallas de edición de lista en SharePoint con C#?

        // Modificar visibilidad de columna de sitio        public string alterarVisibilidadColumnaSitio(SPSite sitio, string columna, bool showNew, bool showEdit, bool showDisp)        {            SPField columnaSitio = sitio.RootWeb.Fields.GetFieldByInternalName(columna);            if (columnaSitio.ShowInNewForm == showNew &&...

miércoles, 12 de agosto de 2015

¿Cómo crear un custom job para una colección de sitios en particular en SharePoint con C#?

En este artículo veremos como crear un job personalizado en SharePoint que sea específico de una colección de sitios. Esto lo haremos sin "hardcodear" la URL ni almacenarla en alguna opción de configuración.Para ello seguimos los siguientes lineamientos:Creamos una feature de scope SITEGuardamos la URL de la colección del sitio en forma dinámica en el momento de crear el jobLeemos la URL guardada en el momento de ejecutar el jobPaso 1: featureCreamos...

martes, 28 de julio de 2015

¿Cómo modificar el display name de una columna en una lista de SharePoint con C#?

        public string alterarDisplayNameCampo(SPWeb sitio, string listaP, string columnaIN, string nuevoDN)        {            SPList lista = sitio.Lists[listaP];            SPField columna = lista.Fields.GetFieldByInternalName(columnaIN);            if (columna.Title == nuevoDN)                return "<span style='color: blue'>Columna " + columnaIN + " no modificada.</span><br>"; ...

lunes, 27 de julio de 2015

Programando la Ribbon en SharePoint 2010.

Introducción Es bastante común que se necesiten agregar botones a la barra de herramientas de SharePoint 2010 (RIBBON). Muchas veces esto se resuelve en forma declarativa o con SharePoint Designer, pero otras veces necesitamos ir un poco más allá, por ejemplo, ejecutar código c# luego de presionar un botón o lograr que el botón este asociado a una lista específica y no a un tipo de lista. En este artículo veremos un ejemplo de cómo lograr este...

Diseño Gráfico en SharePoint Foundation 2010 Parte 3.

Introducción En artículos anteriores hicimos una introducción acerca de cómo incorporar en SharePoint 2010 los estilos creados por un diseñador gráfico. Nos basamos en algunas hipótesis como el uso de SharePoint Foundation, páginas maestras, hojas de estilo y modelo de objetos de cliente para JavaScript. Se recomienda leer la parte 1 y la parte 2 antes de continuar. También les recomiendo leer los ejemplos de CAML con Client Object Model, porque...

domingo, 26 de julio de 2015

¿Cómo verificar si un usuario tiene permisos de edición en una lista de SharePoint con C#?

bool tienePermisosChecklist = false;SPSecurity.RunWithElevatedPrivileges(delegate(){  using (SPWeb mi_web = SPContext.Current.Web)  {    SPList listaChecklist = mi_web.Lists.TryGetList("Checklist");    if (listaChecklist != null)      tienePermisosChecklist = listaChecklist.DoesUserHavePermissions(mi_web.CurrentUser, SPBasePermissions.EditListItems);  }});...

viernes, 24 de julio de 2015

Mi escritorio

...

miércoles, 22 de julio de 2015

¿Cómo editar una vista de una webpart en una página en SharePoint con C#?

Supongamos que tenemos que modificar el filtro de una vista en la página de inicio de nuestro sitio.Esta es nuestra webpart:Y este el filtro:El enfoque a utilizar:Encontrar la página de inicioBuscar la webpart por títuloInstanciar su vistaCambiar el QUERYPara ello utilizamos este código:                                    SPFile homeFile = oWebsite.GetFile("default.aspx"); ...

¿Cómo ocultar una columna en un tipo de contenido en SharePoint con C#?

        // Ocultar columna en Tipo de Contenido        public string ocultarColumnaTipoContenido(SPSite sitio, string columna, string tipoContenido)        {            SPContentType tc = sitio.RootWeb.ContentTypes[tipoContenido];            SPFieldLink colLink = tc.FieldLinks[columna];            if (!colLink.Hidden)            {           ...

martes, 21 de julio de 2015

Participando en Sharepoint.Stackexchange.com

Hace un tiempo que empecé a participar en este foro. Es muy interesante. Un premio para esta semana :-)...

viernes, 17 de julio de 2015

¿Cómo ordenar campos en un tipo de contenido en SharePoint con C#?

En este breve artículo mostramos cómo reordenar los campos de un tipo de contenido. Tomamos cómo hipótesis que no necesariamente tenemos que especificar todos los campos, sino sólo los que queremos ordenar. Aquí el código:SPContentType ctRiesgos = oSiteCollection.RootWeb.ContentTypes["Issues y riesgos"];SPFieldLinkCollection campos = ctRiesgos.FieldLinks;if (campos[2].Name != "Opciones_Probabilidad_Riesgo"){  campos.Reorder(new[] { "Title",...

jueves, 4 de junio de 2015

Project 2013 - Columna indicador de estado

La columna indicador de estado es una columna estándar que no requiere una fórmula como un campo personalizado. Según la ayuda de Microsoft, puede tomar estos valores:Si la tarea está completada, el campo Indicador de estado contendrá una marca de verificación.Si la tarea se va a realizar en el futuro, el campo Indicador de estado estará en blanco.Si la tarea va según lo programado, el campo Indicador de estado contiene un reloj con una marca de...

domingo, 24 de mayo de 2015

¿Cómo habilitar versiones en una lista en SharePoint con C#?

SPList listaKPIs = oWebsite.Lists.TryGetList("KPIs");if (listaKPIs != null){  if (!listaKPIs.EnableVersioning)  {    listaKPIs.EnableVersioning = true;    listaKPIs.Update();  }}...

lunes, 18 de mayo de 2015

¿Cómo ocultar un campo en un tipo de contenido en SharePoint con C#?

if (listaInformes.ContentTypes["Elemento"].FieldLinks["Porcentual_Portfolio"].Hidden)  contenido.InnerHtml += "<span style='color: blue'>Informes ya tiene porcentual OCULTO</span><br>";else{  listaInformes.ContentTypes["Elemento"].FieldLinks["Porcentual_Portfolio"].Hidden = true;  listaInformes.ContentTypes["Elemento"].Update();  contenido.InnerHtml += "<span style='color: green'>Porcentual OCULTO en Informes</span><br>";}...

lunes, 27 de abril de 2015

¿Cómo crear un tipo de contenido en SharePoint con C#?

public string nuevoTipoContenido(SPSite sitio, string nombre){  SPContentType viejoTC = sitio.RootWeb.ContentTypes[nombre];  if (viejoTC == null)  {    SPContentType nuevoTC = new SPContentType(sitio.RootWeb.ContentTypes["Elemento"], sitio.RootWeb.ContentTypes, nombre);    sitio.RootWeb.ContentTypes.Add(nuevoTC);    nuevoTC.Group = "PMO Procesos";    nuevoTC.Update();    return "<span style='color: green'>Tipo de contenido " + nombre + " creado.</span><br>"; ...

¿Cómo agregar nodos en el Inicio Rápido / Top Link Bar en SharePoint con C#?

En este breve post mostramos como agregar programáticamente nodos en la barra de vínculos superior y/o en el inicio rápido de SharePoint: contenido.InnerHtml += agregarNodoNavegacion(oWebsite, oWebsite.Navigation.QuickLaunch, "Charter", "Macroplan", "javascript: window.location.href((_spPageContextInfo.webServerRelativeUrl+'/lists/macroplan').replace('//','/'));", true);                    ...

viernes, 24 de abril de 2015

¿Cómo cambiar el display name de una columna de lista en SharePoint con C#?

SPList listaProyectos = oSiteCollection.RootWeb.Lists["Proyectos"];SPField suplentes = listaProyectos.Fields.GetFieldByInternalName("Suplentes");if (suplentes.Title != "Suplentes")  {  contenido.InnerHtml += "No se renombra.";}else{  suplentes.Title = "Otros referentes";  suplentes.Update();  contenido.InnerHtml += "Renombrada";}...

¿Cómo crear una columna de sitio en SharePoint con C#?

if (!oSiteCollection.RootWeb.Fields.ContainsField("Brief")){  oSiteCollection.RootWeb.Fields.Add("Brief", SPFieldType.Note, false);  SPFieldMultiLineText brief = (SPFieldMultiLineText)oSiteCollection.RootWeb.Fields.GetFieldByInternalName("Brief");  brief.NumberOfLines = 12;  brief.RichText = false;  brief.Group = "PMO Procesos";  brief.Update();  contenido.InnerHtml += "OK";}else{  contenido.InnerHtml += "Ya...

jueves, 23 de abril de 2015

¿Cómo hacer que un campo de tipo persona acepte valores múltiples en SharePoint con C#?

// Hacer multivaluado un campo personapublic string alterarCampoPersona(SPSite sitio, string listaP, string columnaP){            SPList lista = sitio.RootWeb.Lists[listaP];            SPFieldUser columna = (SPFieldUser)lista.Fields[columnaP];            if (columna.AllowMultipleValues)                return "Ya es";            else            {   ...

¿Cómo agregar una validación de lista en SharePoint con C#?

El códigoSPList listaManual = oSiteCollection.RootWeb.Lists["Manual"];listaManual.ValidationFormula = "=OR(AND(Valor3=\"\";Color=\"Rojo\");AND(Valor3<>\"\";Color<>\"Rojo\"))";listaManual.ValidationMessage = "Valor3 es obligatorio para Verde y Amarillo y debe ser nulo para Rojo.";listaManual.Update();El resultado...

miércoles, 22 de abril de 2015

¿Cómo crear una lista en SharePoint con C#?

En este post veremos cómo:Crear una listaCrearle un campo de texto, un campo URL y un campo calculadoAjustar el campo títuloAjustas la vista predeterminada (Requiere post anterior)Cargar los primeros ítemsQué les sea útil!try{    SPSite oSiteCollection = SPContext.Current.Site;    // Nueva lista de Configuración    SPList listaProyectoManual = oSiteCollection.RootWeb.Lists.TryGetList("Manual");    if (listaProyectoManual == null)    {        // Nueva lista     ...