quinta-feira, 3 de março de 2016

CRUD sharepoint 2007

Fala Galera.

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.


 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

 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

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

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