viernes, 15 de agosto de 2014

Qué librerías necesitamos para poder usar Client Object desde una página html en Sharepoint 2013?

Supongamos que subimos una página HTML a nuestro Sharepoint por algún motivo, por ej: para mostrarla en un popup por ejemplo con la librería FancyBox (http://fancyapps.com/fancybox/), y  necesitamos usar client object para mostrar información de una lista de Sharepoint.

Qué librerías de Sharepoint necesitamos para poder utilizar Client Object? Necesitamos las siguientes:

<script type="text/javascript"  src="_layouts/15/init.js"></script>
<script type="text/javascript" src="_layouts/15/MicrosoftAjax.js"></script>
<script type="text/javascript" src="_layouts/15/SP.Core.js"></script>
<script type="text/javascript" src="_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="_layouts/15/sp.js"></script>

Supongamos que usamos jquery cómo librería externa. Podemos hacer lo siguiente para usar correctamente client object.

jQuery(document).ready(function($) {

    ExecuteOrDelayUntilScriptLoaded(function () {retrieveCustomersFromSharepoint();}, "sp.js");
   
});

function retrieveCustomersFromSharepoint()
    var clientContext = new SP.ClientContext("http://url_website");
    var oList = clientContext.get_web().get_lists().getByTitle('Customers');
    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml('<View><Query><Where><Eq><FieldRef Name="Title" /><Value Type="Text">' + cliente +'</Value></Eq></Where></Query></View>');
   
    this.collListItem = oList.getItems(camlQuery);       
    clientContext.load(collListItem);
    clientContext.executeQueryAsync(
        Function.createDelegate(this, this.onQuerySucceeded),
        Function.createDelegate(this, this.onQueryFailed)
    );
}

function onQuerySucceeded(sender, args) {
    var listItemInfo = '';
    var listItemEnumerator = collListItem.getEnumerator();
    while (listItemEnumerator.moveNext()) {
        var oListItem = listItemEnumerator.get_current();
        alert(oListItem.get_item('Title'));
    }   
}

function onQueryFailed(sender, args) {
    alert('Request failed. Contactese con Soporte Sharepoint ' + args.get_message() + '\n' + args.get_stackTrace());
}

Este ejemplo sirve también para PHP/JAVA/etc

No hay comentarios:

Publicar un comentario