Hola

En los tiempos que corren cada vez más clientes se decantan por el uso de Jquery en sus páginas customizadas y optan por el modelo de objetos cliente JavaScript de SharePoint 2010 y 2013. Sin embargo, resulta que cualquiera con habilidades de depuración puede hacer ingeniería inversa del JavaScript cliente usado internamente por Microsoft y que no debe ser usado por los clientes/Desarrolladores.

Hace poco un cliente nos reportaba un problema usando ese tipo de código JavaScript. Éste más o menos era el siguiente.

function FuncNaive1() {

        var OldCalendarNotify4a = SP.UI.ApplicationPages.CalendarNotify.$4a; /cambiar a $4b si Sp1 o posterior

        SP.UI.ApplicationPages.CalendarNotify.$4a = function ()          

           OldCalendarNotify4a();

            FuncNaive2();

        }

    }

Como veis llamaba a una función interna llamada SP.UI.ApplicationPages.CalendarNotify.$4a y que incluso el mismo era consciente que si estaba instalado SP1 o posterior debería usar otro nombre ($4b) . Esta función contiene la siguiente lógica.

Luego la sobrescribía con otra función que usaba la lógica antigua y una nueva creada por el.

Pues resulta que estas acciones son acciones totalmente no soportadas. No es esperado que un desarrollador llame a SP.UI.ApplicationPages.CalendarNotify.$4a ya que no es un funcionalidad pública definida en el SDK de SP 2010 ni de SP 2013, además de sobrescribir función interna. Finalmente, como se observa, Microsoft ha cambiado la variable que guardaba la variable después del SP1.

Como comentábamos en el post http://blogs.technet.com/b/hablamoss/archive/2012/09/27/reflection-y-o-hacer-ingenier-237-a-inversa-de-cualquier-versi-243-n-de-microsoft-sharepoint-est-225-no-soportado.aspx no se puede hacer ingeniería inversa para ver como funciona el producto ni llamar a funciones/métodos que no son públicos según el SDK.

Para conocer que namespaces y funciones/métodos y objetos son publicas en el SDK del modelo de objetos cliente JavaScript de SharePoint 2010 y 2013 por favor usad como referencia los siguientes enlaces:

SPS 2010 => http://msdn.microsoft.com/en-us/library/ee552096(v=office.14).aspx

SPS 2013 => http://msdn.microsoft.com/en-us/library/jj193034.aspx

Saludos.

Héctor Calvarro Martín. SharePoint Dev/Core. Microsoft Support Escalation Engineer for EMEA