Copiar de una Bibloteca a una Lista en SharePoint (Javascript)

Tengo el placer de presentarle algo que ya estaba jodido intentando, gracias a mi compañero de la empresa Carlos Rodriguez, pude sacar este código de como copiar de una biblioteca a una lista ambas de sharepoint, utilizando código en javascript.

tiene un nivel mayor al tener dos campos administrados. ciudad y categoria

//como llamo a las librerias de JS de SharePoint

SP.SOD.registerSod(“sp.taxonomy.js”, “/_layouts/15/sp.taxonomy.js”);
SP.SOD.executeFunc(‘sp.js’, ‘SP.ClientContext’, function(){
SP.SOD.loadMultiple([“sp.taxonomy.js”], function(){
retrieveListItems(); //era un ejemplo pero de lo deje, podria ser llamada de cualquier forma
});
});

var siteUrl = ‘/es/sala-de-prensa/’; //ubicación desde
var siteUrlAdd = ‘/es/sala-de-prensa/’; //ubicación hasta (cualquier cosa)

function retrieveListItems() {
var okToContinue = confirm(“Iniciar proceso de migración?”); //deseas o no?
if(okToContinue){ //si deseas
var clientContext = new SP.ClientContext(siteUrl); //llama desde a
var oList = clientContext.get_web().get_lists().getByTitle(‘cualquierBiblioteca’);
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml(“<view><viewfields><fieldref name=’title’ /><fieldref name=’FileLeafRef’ /><fieldref name=’Articulo_x0020_Destacado’ /><fieldref name=’Categor_x00ed_a_x0020_del_x0020_audio’ /><fieldref name=’Ciudad_x0020_de_x0020_Origen’ /><fieldref name=’ArticleStartDate’ /><fieldref name=’Descripci_x00f3_n_x0020_del_x0020_articulo’ /></viewfields></view>”); //llamado desde CAML
this.collListItem = oList.getItems(camlQuery); //procesa
clientContext.load(collListItem); //carga
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));

//y ejecuta si es correcto o falla
}//fin if ()
}

//si es correcto
function onQuerySucceeded(sender, args) {
var validacion = true;
var listItemInfo = ”;
var listItemEnumerator = collListItem.getEnumerator();
var items = 0;
var Tittles = new Array();

var clientContextAdd = new SP.ClientContext(siteUrlAdd);
var oListAdd = clientContextAdd.get_web().get_lists().getByTitle(‘CualquierLista’);
debugger; //depurar o para para hacer un paso a paso
var field = oListAdd.get_fields().getByInternalNameOrTitle(“Ciudad_x0020_de_x0020_Origen”);
var txField = clientContextAdd.castTo(field, SP.Taxonomy.TaxonomyField);
var itemCreateInfoAdd = new SP.ListItemCreationInformation();
this.oListItemAdd = oListAdd.addItem(itemCreateInfoAdd);
var ciudad = null; //carga ciudad

var catfield = oListAdd.get_fields().getByInternalNameOrTitle(“Categor_x00ed_a_x0020_del_x0020_”);
var cattxField = clientContextAdd.castTo(catfield, SP.Taxonomy.TaxonomyField);
var catitemCreateInfoAdd = new SP.ListItemCreationInformation();
this.oListItemAdd = oListAdd.addItem(catitemCreateInfoAdd);
var categoria = null; //carga categoria

//var validacion = true; //para revisar en el paso a paso y solo validad 1 o el # que desee

while (listItemEnumerator.moveNext()) { //&& validacion == true
var oListItem = listItemEnumerator.get_current();
oListItemAdd.set_item(‘Title’, oListItem.get_item(‘Title’));
oListItemAdd.set_item(‘Articulo_x0020_Destacado’, oListItem.get_item(‘Articulo_x0020_Destacado’));
oListItemAdd.set_item(‘URL_x0020_Audio’, oListItem.get_item(‘FileLeafRef’));
debugger;
var categoria = oListItem.get_item(‘Categor_x00ed_a_x0020_del_x0020_audio’);
var ciudad = oListItem.get_item(‘Ciudad_x0020_de_x0020_Origen’);

var termFieldValue = null; //vacio el campo
if(ciudad !== null){ //cuando NO esta vacio
termFieldValue = new SP.Taxonomy.TaxonomyFieldValue(); //leemos
termFieldValue.set_label(ciudad.get_label()); //cargamos el label (información)
termFieldValue.set_termGuid(ciudad.get_termGuid()); //leemos el GUID
termFieldValue.set_wssId(ciudad.get_wssId()); //código del campos administrado
txField.setFieldValueByValue(oListItemAdd, termFieldValue); //cargamos
} //finalizamos

if(categoria !== null){
termFieldValue = new SP.Taxonomy.TaxonomyFieldValue();
termFieldValue.set_label(categoria.get_label());
termFieldValue.set_termGuid(categoria.get_termGuid());
termFieldValue.set_wssId(categoria.get_wssId());
cattxField.setFieldValueByValue(oListItemAdd, termFieldValue);
}

oListItemAdd.set_item(‘Fecha_x0020_del_x0020_art_x00ed_’, oListItem.get_item(‘ArticleStartDate’));
oListItemAdd.set_item(‘Resumen_x0020_del_x0020_articulo’, oListItem.get_item(‘Descripci_x00f3_n_x0020_del_x0020_articulo’));

oListItemAdd.update();
clientContextAdd.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededAdd), Function.createDelegate(this, this.onQueryFailedAdd)); //uno

items++;
//if(items ==1){ //en este caso es 1 pero podrian ser poco
// validacion = false; //validamos
//} //fin
}
debugger;
alert(‘Termino!!! Migro: ‘ + items + ” Items”);
}

//si hay un problema?

function onQuerySucceededAdd() {
//alert(‘Item created: ‘ + oListItemAdd.get_id())
}

function onQueryFailedAdd(sender, args) {
//alert(‘Error al onQueryFailedAdd: Request failed. ‘ + args.get_message() + ‘\n’ + args.get_stackTrace());
}

function onQueryFailed(sender, args) {
//alert(‘Error al onQueryFailed: Request failed. ‘ + args.get_message() + ‘\n’ + args.get_stackTrace());
}

y listo el pollo!!!

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s