Mostrando entradas con la etiqueta MVP. Mostrar todas las entradas
Mostrando entradas con la etiqueta MVP. Mostrar todas las entradas

miércoles, 11 de diciembre de 2013

Entrevista CompartiMOSS

CompartiMOSS es una revista digital especializada en temas de SharePoint y algunas tecnologías relacionadas a esta plataforma de colaboración. En la más reciente edición de la revista del mes de Diciembre se publicó una entrevista que me hicieron en días pasados. 

Les recomiendo ampliamente lean los artículos de esta revista, y claro también lean la entrevista que me hicieron.


viernes, 14 de diciembre de 2012

The HTTP header ACCEPT is missing or its value is invalid making rest call using JavaScript

Es bastante común que al intentar hacer una llamada utilizando la API REST para SharePoint 2013 utilizando JavaScript, como la siguiente:

function onGetCustomers(){
 var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('Clientes')/items/?$select=Title,Nombre,Apellidos";
 
 //$.getjson() falla
 jqCall = $.getJSON(requestUri,null, onGetCustomersSuccess);
 jqCall.error(onError);
}

Nos encontremos con un error como este:


25d
{"error":{"code":"-1, Microsoft.SharePoint.Client.ClientServiceException","message":{"lang":"en-US","value":"The HTTP header ACCEPT is missing or its value is invalid."},"innererror":{"message":"The HTTP header ACCEPT is missing or its value is invalid.","type":"Microsoft.SharePoint.Client.ClientServiceException","stacktrace":"   at Microsoft.SharePoint.Client.Rest.RestRequestProcessor.Process()\r\n   at Microsoft.SharePoint.Client.Rest.RestRequestProcessor.ProcessRequest()\r\n   at Microsoft.SharePoint.Client.Rest.RestService.ProcessQuery(Stream inputStream, IList`1 pendingDisposableContainer)"}}}
0


Y esto se debe sencillamente a que si inspeccionamos a detalle los headers enviados en la petición  encontraremos que hace falta algo adicional:

Headers enviados como parte del request:


Al hacer este tipo de llamadas debemos indicar, junto con el header Accept=application/json, el header: odata=verbose, es decir quedaría de esta forma:   Accept=application/json; odata=verbose. Esto debido a que por el momento solo se soporta el formato verbose de JSON, el formato "light" no es soportado.

Luego entonces cambiamos la llamada para incluir este header, por el siguiente código:

function onGetCustomers(){
 var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('Clientes')/items/?$select=Title,Nombre,Apellidos";

 var requestHeaders={
 "ACCEPT":"application/json;odata=verbose",
 }

 $.ajax({
 url: requestUri,
 type:"GET",
 contentType:"application/json",
 headers: requestHeaders,
 success:onGetCustomersSuccess,
 error:onError
 });
}

Después de realizar esto, la respuesta sera satisfactoria

Algunas referencias:
Important developer changes from Office and SharePoint 2013 Preview to Office and SharePoint 2013
OData Verbose JSON Format

Happy Coding!

viernes, 30 de noviembre de 2012

SharePoint Conference 2012

Pues bien, ha sido un evento fabuloso, bastante bien organizado.

La calidad de profesionales que tuve oportunidad de conocer y las opiniones que compartimos fueron realmente valiosas

Las vegas es una ciudad asombrosa con muchos lugares a donde ir, aunque muy cara. De noche siempre hay algo que hacer

Sin duda un evento que quedara para la historia

Algunas fotos.









viernes, 3 de agosto de 2012

Accediendo al contexto de SharePoint desde un flujo de trabajo

Escribo este post ya que he notado que muchos desarrolladores al crear flujos de trabajo utilizando Visual Studio 2010 para SharePoint 2010, incluso para Project Server 2010, se quejan que durante la ejecución del flujo de trabajo no tienen acceso al "contexto", es decir no pueden utilizar la instancia de la clase SPContext accediéndola de la manera común Microsoft.SharePoint.SPContext.Current.

Y si bien es cierto que durante la ejecución del flujo de trabajo si intentamos acceder al contexto de SharePoint de esta manera siempre obtendremos null, la solución es crear durante la inicialización del flujo de trabajo una instancia del objeto Microsoft.SharePoint.WorkflowActions.WorkflowContext,
la cual nos permitirá acceder a gran parte de la información del contexto de ejecución de SharePoint desde el flujo de trabajo.

Para inicializar una instancia de la clase WorkflowContext, seguimos los siguientes dos sencillos pasos:

Declaramos una propiedad del tipo WorkflowContext y posteriormente la instanciamos utilizando el constructor sin parámetros que existe.

public Microsoft.SharePoint.WorkflowActions.WorkflowContext WFContext { get; set; }

public Workflow1()
{
    WFContext = new Microsoft.SharePoint.WorkflowActions.WorkflowContext();
    InitializeComponent();
}
Después inicializamos la propiedad en el evento Invoked de la actividad OnWorkflowActivated que se agrega automáticamente cuando creamos el flujo de trabajo

private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
{
    WFContext.Initialize(workflowProperties);
}


El código completo se vería asi:

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Workflow;
using Microsoft.SharePoint.WorkflowActions;

namespace WorkflowDemo.Workflow1
{
    public sealed partial class Workflow1 : SequentialWorkflowActivity
    {
        public Guid workflowId = default(System.Guid);
        public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();

        public Microsoft.SharePoint.WorkflowActions.WorkflowContext WFContext { get; set; }

        public Workflow1()
        {
            WFContext = new Microsoft.SharePoint.WorkflowActions.WorkflowContext();
            InitializeComponent();
        }

        private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
        {
            WFContext.Initialize(workflowProperties);
        }
    }
}

Y eso es todo, ahora podemos acceder al contexto de SharePoint utilizando esta propiedad.
Happy Coding!

sábado, 2 de junio de 2012

Sexto Simposio LatinoAmericano de SharePoint

Como cada año se llevó a cabo el sexto simposio latinoamericano de SharePoint, en el cual tuve el privilegio de participar en la presentación "El poder del Business Intelligence con Visio 2010 y SharePoint 2010" en conjunto con Elizabeth Contreras (Project Manager de Project y Visio en Microsoft México) y Antonio Razo (Consultor Sr de BI), a continuación les comparto la ppt que presente.

Cualquier comentario es bienvenido



Happy Coding!

miércoles, 4 de abril de 2012

MVP SharePoint Server 2012


Pues nada, que he recibido ÉL famoso e-mail:

“Estimado Gerardo Reyes,

Enhorabuena. Nos complace presentarle el programa de nombramiento MVP de Microsoft® de 2012. Este nombramiento se concede a los líderes excepcionales de la comunidad técnica que comparten de forma activa su experiencia de alta calidad y de la vida real con otras personas. Le agradecemos especialmente la contribución que ha realizado en las comunidades técnicas en el área de SharePoint Server a lo largo del pasado año.”

Que me acredita como MVP en SharePoint Server para este 2012, y que sin duda me motiva para seguir capacitándome y compartiendo mis experiencias del día a día con las comunidades técnicas.

Gracias a toda la gente que ha influido de una u otra forma en mi crecimiento como consultor y como persona. Especiales agradecimientos y #FF a:

@SrBichi
@mmonterroca
@haarongonzalez
@HardBit
@Virtualman
@jluisestrada
@jrwarrior
@ferglo

Happy Coding!

Etiquetas

SharePoint 2010 (38) Microsoft (32) Desarrollo SharePoint (31) Gerardo Reyes Ortiz (27) SharePoint (20) SharePoint 2013 (18) Errores SharePoint (12) México (10) PowerShell (9) Silverlight (8) Visio Services (7) Features (6) MVP (6) Silverlight 3 (6) WebCast (6) Workflows (6) Configuracion SharePoint 2010 (5) D.F. (5) API REST (4) Configuracion SharePoint 2010; (4) Troubleshooting (4) Visual Studio 2010 (4) Visual studio (4) WSS (4) Web parts (4) Apps (3) Comunidad SharePoint (3) Configuración SharePoint 2013 (3) ODATA (3) SharePoint Server (3) SharePoint; Instalación SharePoint; Troubleshooting; Search Service (3) Silverlight 3.0 (3) Silverlight Toolkit (3) WebParts (3) javascript (3) jquery (3) Eventos SharePoint (2) Office 2010 (2) PeoplePicker (2) REST (2) SQL Server (2) Scripting (2) Search Service Application (2) SharePoint Designer (2) UPA (2) UPS (2) Workflows SharePoint (2) host header (2) Apps Development (1) Big Bang (1) CAS (1) CSOM (1) Codeplex (1) CompartiMOSS (1) Configuracion SharePoint 2010; Errores SharePoint (1) Configuracion SharePoint 2010; SharePoint 2010 (1) Custom Actions (1) Custom Editor Parts (1) Delegate Controls (1) Deployment (1) DisableLoopbackCheck (1) Document Library (1) Entrevista (1) Examenes de Certificación (1) Extract WSP (1) FBA (1) FS4SP (1) Fakes (1) Fast Search Server 2010 For SharePoint (1) Fiddler (1) HTTP.SYS (1) HTTPS (1) JSON (1) Language Pack's (1) Latam (1) MAXDOP (1) MCSM (1) MSExpertos (1) MVC (1) Microsoft México (1) Microsoft; Codeplex; Screencast; (1) My Sites (1) SQL Server 2012 (1) SQL Server Reporting Services (1) Screencast (1) Screencast; (1) Service Applications (1) Service Pack (1) SharePoint 2007 (1) SharePoint 2010 SP 1 (1) SharePoint API (1) SharePoint Conference (1) SharePoint Emulators (1) SharePoint Farm (1) SharePoint Health Analyzer (1) SharePoint Magazine (1) SharePoint Online (1) SharePoint Search (1) SharePoint Test (1) SharePoint; Desarrollo SharePoint (1) Shims (1) Simposio (1) Simposio Latinoamericano (1) SkyDrive Pro (1) Soporte Microsoft (1) Templates (1) Tip (1) VSeWSS (1) Virtual Machine (1) Visual Studio 2012 (1) WCF (1) WSS; IIS 7 (1) Web API (1) Web Content Management (1) Web Services (1) Windows 8 (1) Windows Live ID (1) Xml (1) appcmd (1) iOS (1) jqGrid (1) onload function (1)