jump to navigation

Error: var logoImg = documentGetElementsByName – MoveSiteTitle February 24, 2013

Posted by juanpablo1manrique in SharePoint, SharePoint Development.
Tags: ,
3 comments

Hola Amigos

Ahora que ingresamos al mundo cross-browser, con sharepoint 2013, encontrmos que sharepoint 2010 todavia tiene algunos incovenientes, uno de ellos se me present en estos días al estar trabajando con el SharePoint recien instalado y con el Master.Page v4 que trae sharepoint por defecto, en Chrome en el momento de hacer debug se evidenciaba error en estas 2 líneas.

PlaceHolderPageTitleInTitleArea

solucion medio temporal:

En SharePoint designer se busca el PlaceHolder:PlaceHolderPageTitleInTitleArea  al abrir el master page se le dice a que visible = false

<asp:ContentPlaceHolder id=”PlaceHolderPageTitleInTitleArea” runat=”server” Visible=”false” />

Esto ya no renderiza este molesto código en sharepoint

Se intento bajar el ultimo Cumulative Update de Diciembre 2012 http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2596957

Pero esto no soluciono el problema

Asi que este place holder quedo con la propiedad visible=”false”, esta solución no me convence del todo así que seguire investigando sobre el tema, cualquier sugerencia con gusto sera recibida.

SHPludos

Advertisements

Modificar las propiedades de un WebPart sin usar el control de EditWebPart por defecto de SharePoint January 18, 2013

Posted by juanpablo1manrique in SharePoint, SharePoint Development.
Tags:
add a comment

Hola amigos

En esta oportunidad he tenido el atrevimiento de modificar las propiedades de un webPart desde un boton sin necesidad de utilizar el control de propiedades que trae por defecto SharePoint,

Recordemos que un WebPart esta dividido en 2 clases importantes una para la definición de WebPart que hereda de Microsoft.SharePoint.UI.WebParts.WebPart de ahora en adelante WebPartMyClass y otra que es un User Control ascx; en el caso de los WebPart visuales de ahora en adelante alias UserControlWebPartMyClass,

Para lograr salvar las propiedades de esta manera es necesario construir un metodo publico en WebPartMyClass de la siguiente manera


public void SaveCustomProperties(string val1, string val2)
{
this.Property1 = val1;
this.Property2 = val2;
this.SaveProperties = true;
this.SaveControlState();
}

El código dice más que mil palabras, 🙂

Y desde el evento de boton del ascx (UserControlWebPartMyClass) llamar este metodo que acabamos de construir de la siguiente manera


protected void Button1_Click(object sender, EventArgs e)
{
((WebPartMyClass)this.Parent).SaveCustomProperties(“val1”, “val2”);
}

Aqui el código de las 2 clases

— Clase WebPartMyClass

using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;


namespace xxxx
{
[ToolboxItemAttribute(false)]
public class Processes : WebPart
{
// Visual Studio might automatically update this path when you change the Visual Web Part project item.
private const string _ascxPath = @”~/_CONTROLTEMPLATES/yyyyy/UserControlWebPartMyClass.ascx”;


protected override void CreateChildControls()
{


Control control = Page.LoadControl(_ascxPath);
((UserControlWebPartMyClass)control).Property1 = this.Property1;
((UserControlWebPartMyClass)control).Property2 = this.Property2;
Controls.Add(control);
}


public void SaveCustomProperties(string val1, string val2)
{
this.Property1 = val1;
this.Property2 = val2;
this.SaveProperties = true;
this.SaveControlState();
}


[WebBrowsable(true), WebDisplayName(“Property1”), WebDescription(“Property1”),
Personalizable(PersonalizationScope.Shared), Category(“Custom Property”),
System.ComponentModel.DefaultValue(“”)]
public string Property1{get;set;}


[WebBrowsable(true), WebDisplayName(“Property1”), WebDescription(“Property1”),
Personalizable(PersonalizationScope.Shared), Category(“Custom Property”),
System.ComponentModel.DefaultValue(“”)]
public string Property2{get;set;}


}
}

— UserControlWebPartMyClass —


using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint.WebPartPages;


namespace xxxx
{
public partial class ProcessesUserControl : WebPartControl
{


protected void Page_Load(object sender, EventArgs e)
{
}


protected void Button1_Click(object sender, EventArgs e)
{
((WebPartMyClass)this.Parent).SaveCustomProperties(“val1”, “val2”);
}


}
}

Este post fue inspirado por esta duda

http://stackoverflow.com/questions/13654841/set-webpart-custom-properties-without-using-the-edit-web-part-interface

Paso a Paso para crear un InfoPath con Submit August 2, 2012

Posted by juanpablo1manrique in InfoPath, SharePoint Development.
Tags: ,
1 comment so far

Buen día,

Aqui un proceso de creación para recordar

  • En MS InfoPath Designer
    • Crear un formulario Nuevo Agregar los controles necesarios
    • Agregar un Botón de submit
    • Publicar el formulario con la opción de Plantilla de formulario aprobada por el administrador (Avanzado)
  • En SharePoint 2010 Central Administrator
    • General Application Settings, Upload Form Template
    • Subir la plantilla y decirle activar para la colección de sitios
  • En SharePoint 2010 interface WEB Librería
    • Crear un Form Library Modificar las opciones avanzadas para soportar varios tipos de contenido
    • Vincular el tipo de contenido del formulario correspondiente
    • Eliminar el tipo de contenido Form
  • En SharePoint 2010 interface WEB User Interface
    • Crear una página de visualización Agregar un web.part de Formularios InfoPath Form Web Part
    • Vincular el formulario correspondiente
  • En MS InfoPath Designer
    • Volver al archivo de InfoPath .xsn Realizar una conexión de envío de datos apuntando a la librería creada anteriormente
    • Ir a archivo opciones de envío y verificar que tomo la conexión de envío de datos creada
    • En opciones de envío ir a Avanzadas y agregar un mensaje de enviado correctamente
    • En el botón de envío dentro del layout del formulario ir a propiedades y asegurarse que ejecute la opción enviar
    • Volver a publicar el formulario
  • En SharePoint 2010 Central Administrator
    • General Application Settings, Upload Form Template
    • Subir la plantilla y ya no hay necesidad de activar
  • En SharePoint 2010 interface WEB User Interface
    • Realizar las pruebas correspondientes

Happy code.

Missing WF May 4, 2012

Posted by juanpablo1manrique in SharePoint, SharePoint Development.
Tags: ,
1 comment so far

Missing WF

Se me ha perdido un flujo de trabajo, suena curioso pero es verdad, en estos días un cliente me ha llamado y me ha dicho se me ha perdido un WF sono curioso pero era verdad.

Cuando se creaba un documento nuevo y se queria dar inicio al workflow

No habia ningún worflow disponible

Pero si ingresaba al manage workflows de la lista el mismo si estaba disponible

Este issue fue dificil de arreglar hasta que finalmente se encontro la solucion, al ingresar a ListSettings-> WorkflowSettings -> RemoteWorkflows, se modifico el radiobutton a allow, y ahi si estuvo disponible el flujo para poder ejecutarlo.

si sharePoint fuera perfecto no lo quería tanto,

Saludos

One or more field types are not installed properly. Go to the list settings page to delete these fields. May 4, 2012

Posted by juanpablo1manrique in SharePoint, SharePoint Development.
Tags: ,
1 comment so far

Hola amigos

Se me ha presentado este error al ejecutar el siguiente código. One or more field types are not installed properly. Go to the list settings page to delete these fields.

  •  int i = (from p in context.SporadicMessageInst                     
  • where p.CreateDateCalc > date                     
  • select p).ToList().Count;  

No ve van a creer el problema que tenia pero lo que sucedia era que en el momento de llamar el contexto lo estaba haciendo con una URL incorrecta, los estaba haciendo con la URL del sitio principal y no la del subsitio donde estaba la lista

siempre puede suceder, entonces toca verificar que nos encontremos en el lugar correcto.

si la ruta es incorrecta y se intenta ajecutar el codigo

  •  var it = from p in context.SporadicMessageInst                     
  • where p.CreateDateCalc > DateTime.Now                     
  • select p;

Funciona bien pero cuando intento llamar el metodo

  • it.Count();
  •  it.ToList();

Arroja el mismo error, y no hay forma de verificar que no sea nulo porque la linea

if (it != null)

Siempre arroja verdadero, entonces no hay forma de validar que estemos en el lugar incorrecto.

Saludos

Codificación de usuarios : SAML : 0#.w : 0#.f March 26, 2012

Posted by juanpablo1manrique in Developer, SharePoint, SharePoint Development, Visual studio 2008.
Tags: ,
1 comment so far

Codificación de usuarios: SAML : 0#.w : 0#.f

Cuando se llama un usuario desde código se muestran unos códigos raros que se agregan al nombre de usuario, investigando sobre el tema los numeros extraños son codificación SAML el cual es necesario para soportar varios tipos de autenticación y el manejo de claims.

Para el caso de usuarios que vienen de sqlMemberShip tenemos códigos como:

0#.f|sqlmembership|user1

Para usuarios que vienen de directorio activo se codifican de la siguiente manera 0#.w|steve\\wilmaf

Una de los posibles maneras de trabajar con estos usuarios y limpiar estos códigos es utilizar lo siguiente,

string userLoginEncoded = SPUtility.FormatAccountName(“i”, entity.Value); string userLogin = SPClaimProviderManager.Local.DecodeClaim(userLoginEncoded).Value;

Espero que les sea de ayuda

Saludos

Form control does not have ControlMode set February 8, 2012

Posted by juanpablo1manrique in SharePoint Development.
Tags: ,
1 comment so far

Hola amigos

Tuve este error cuando estaba trabajando con Visual WebParts en el momento de agregar un Update Panel

Form control does not have ControlMode set

————————————————————–

 <asp:UpdatePanel ID=”UpdatePanel1″ runat=”server”>
                        <ContentTemplate>
                       
                        <table >
                            <tr ………….
                            </tr>
                        </table>
                        </ContentTemplate>
                        </asp:UpdatePanel>

La forma de solucionarlo fue ingresar al archivo de definicion del WebPart, este archivo lo podemos ubicar porque hereda de WebPart

  public class MyControl : WebPart

La forma de solucionarlo es asignar el SPcontrolMode, este parametro se debe modificar antes de que se ejecute el evento de Page_Load por lo tanto lo debemos agregar en el método CreateChildControls

  protected override void CreateChildControls()
        {
            SPContext.GetContext(this.Context).FormContext.FormMode = SPControlMode.Display;
Saludos

 

SharePoint no tiene en cuenta los milisegundos January 25, 2012

Posted by juanpablo1manrique in SharePoint, SharePoint Development.
Tags: ,
1 comment so far

Si se realiza un query como

 

en donde queremos obtener los items que  se encuentren entre un rango de fechas

DateTime endt = new DateTime(2012, 01, 24, 10, 41, 26, 451); //2012/01/24 10:41:26.451

 

DateTime endt = new DateTime(2012, 01, 24, 10, 41, 27, 478); //2012/01/24 10:41:27.478

 

Aunque el CAML Query no falla, definitivamente no tiene en cuenta los milisegundos, sino que los resultados que retorna solo tienen en cuenta los segundos y el resultado es acorde solo a los segundos,

Me puse en la tarea de realizar una búsqueda e imprimir el dato que contenia la columna tipo fecha de la siguiente manera,

DateTime itemCreatedDate = (DateTime)objSPItem[“Created”];
sbMessageResponse.Append(“<br />” + itemCreatedDate.ToString(“yyyy-MM-ddTHH:mm:ss.fffZ”));

El valor mostrado en pantalla no posee valores de milisegundos

——————————Created:2012-01-24T10:41:27.000Z

 

Flujo de trabajo con InfoPath en SharePoint 2010 January 22, 2012

Posted by juanpablo1manrique in SharePoint, SharePoint Development.
Tags: ,
add a comment

Hola Amigos
He creado los siguientes videos donde se explica como crear un formulario de infopath con varias vistas y asociarles un flujo de trabajo espero que les guste,

 

Flujo de trabajo con InfoPath en SharePoint 2010 – Parte 1

Flujo de trabajo con InfoPath en SharePoint 2010 – Parte 2

Listas Maestro Detalle SharePoint 2010 January 19, 2012

Posted by juanpablo1manrique in SharePoint, SharePoint Development.
Tags: ,
add a comment

He realizado un video de manejo de listas maestro – detalle en SharePoint 2010