Postando um código que me ajudou bastante no meu trabalho.
Abaixo um exemplo como pegar as informações da lista do Sharepoint e fazer um CRUD (Create, Read, Update, Remove)
No Código estou utilizando Javascript Ajax.
ENVELOPE XML
para o CRUD, será necessário criar um XML "soap:Envelope". eu criei uma function para não ficar refazendo código.
nas variáveis
[SITE] = seu site sharepoint
[listname] = o nome da sua lista, no meu caso seria 'log'.
[batch] = uma outra parte do XML, que mostrarei no CRUD.
[SITE] = seu site sharepoint
[LIST_ID] = o ID da sua lista, para pegar é simples, abra sua lista, vá em "definição da lista", e na URL vc já verá o ID dela, como na figura:
Bom é isso galera.. espero ter ajudado vocês.
Qualquer dúvida, sugestão comenta ai, fortaleça o Blog..
vlw flws
[SITE] = seu site sharepoint
[listname] = o nome da sua lista, no meu caso seria 'log'.
[batch] = uma outra parte do XML, que mostrarei no CRUD.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function updateListItems(listname, batch){ var soapEnvelope = "<?xml version=\"1.0\" encoding=\"utf-8\"?> \ <soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"> \ <soap:Body> \ <UpdateListItems xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\"> \ <listName>"+listname+"</listName><updates><Batch OnError=\"Continue\" ListVersion=\"0\">"+batch+"</Batch></updates></UpdateListItems> \ </soap:Body> \ </soap:Envelope>"; $.ajax({ url: "[SITE]/_vti_bin/lists.asmx", beforeSend: function(xhr) { xhr.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"); }, type: "POST", dataType: "xml", async: false, data: soapEnvelope, contentType: "text/xml; charset=utf-8" }); } |
CREATE LIST
com o método "updateListItens", vamos só criat agora a TAG method.
nas variáveis
Cmd = vamos colocar New... novo item
Cmd = vamos colocar New... novo item
1 2 3 4 5 6 7 8 9 10 11 12 13 | function createLog(log){ var method = ""; method += "<Method ID=\"1\" Cmd=\"New\">"; method += "<Field Name=\"user\">"+log.ows_user.ows_ID+"</Field>"; method += "<Field Name=\"project\">"+log.ows_project.ows_ID+"</Field>"; method += "<Field Name=\"projectStatus\">"+log.ows_projectStatus+"</Field>"; method += "<Field Name=\"list\">"+log.ows_list+"</Field>"; method += "<Field Name=\"field\">"+log.ows_field+"</Field>"; method += "<Field Name=\"oldValue\">"+log.ows_oldValue+"</Field>"; method += "<Field Name=\"newValue\">"+log.ows_newValue+"</Field>"; method += "</Method>"; updateListItems("log", method); } |
READ LIST
nas variáveis[SITE] = seu site sharepoint
[LIST_ID] = o ID da sua lista, para pegar é simples, abra sua lista, vá em "definição da lista", e na URL vc já verá o ID dela, como na figura:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var logList = []; $.ajax({ type: "POST", url: "http://[SITE]/_vti_bin/owssvr.dll?Cmd=Display&XMLDATA=TRUE&List={[LISTA_ID]}&RowLimit=0", dataType: "xml", async: false, success: function(response){ logList = []; $(response).find('row').each(function(){ var _log = new Object(); _log.ows_ID = $(this).attr("ows_ID"); _log.ows_user = getUser($(this).attr("ows_user").split(';#')[0]); _log.ows_project = getProject($(this).attr("ows_project").split(';#')[0]); _log.ows_projectStatus = $(this).attr("ows_projectStatus"); _log.ows_list = $(this).attr("ows_list"); _log.ows_field = $(this).attr("ows_field"); _log.ows_oldValue = $(this).attr("ows_oldValue"); _log.ows_newValue = $(this).attr("ows_newValue"); _log.ows_created = $(this).attr("ows_Created"); _logList.push(_log); }); } }); |
UPDATE LIST
nas variáveis
Cmd = vamos colocar Update
Cmd = vamos colocar Update
1 2 3 4 5 6 7 8 | function setLog(id, newValue){ var method = ""; method += "<Method ID=\"1\" Cmd=\"Update\">"; method += "<Field Name=\"ID\">"+id+"</Field>"; method += "<Field Name=\"newValue\">"+newValue+"</Field>"; method += "</Method>"; updateListItems("log", method); } |
DELETE LIST
nas variáveis
Cmd = vamos colocar Delete
Cmd = vamos colocar Delete
1 2 3 4 5 6 7 | function deleteLog(id){ var method = ""; method += "<Method ID=\"1\" Cmd=\"Delete\">"; method += "<Field Name=\"ID\">"+id+"</Field>"; method += "</Method>"; updateListItems("log", method); } |
Bom é isso galera.. espero ter ajudado vocês.
Qualquer dúvida, sugestão comenta ai, fortaleça o Blog..
vlw flws
Nenhum comentário:
Postar um comentário