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

Agregar un registro a una lista de sharepoint con web services

wsList.Lists list = new wsList.Lists();

list.Credentials = new NetworkCredential("usuario", "password", "dominio");

XmlNode listXml = list.GetList("Cursos");
string s = "<Batch OnError='Continue'>" +
           "<Method ID='1' Cmd='New'>" +
           "<Field Name='id_curso'>1234</Field>" +
           "<Field Name='nombre_curso'>prueba1</Field>" +
           "</Method>" +
           "</Batch>";
XmlDocument xmlDoc = new XmlDocument();


xmlDoc.InnerXml = s; 
  
XmlNode result = list.UpdateListItems("Cursos", xmlDoc); 

 
Notas: se pueden incluir tantos "Method" como sean necesarios. Cada ID debe ser único (en el ej. hay una sola sentencia, con id 1 si se agregan mas definirlas con id 2, 3, etc)
 
en el xml llamado result, queda el resultado de la ejecución batch (si se produjo algún error aparece allí)

Se pueden utilizar las credenciales del usuario logueado mediante esta sentencia:

list.Credentials = System.Net.CredentialCache.DefaultCredentials; 

Consultas recursivas con CAML


<Query>
   <Where>
      <Eq>
         <FieldRef Name='nombre_campo' />
         <Value Type='Number'>1234</Value>
      </Eq>
   </Where>
<QueryOptions>
   <ViewAttributes Scope = 'Recursive'/>
</QueryOptions>
</Query>

Espacio ocupado por las tablas de una base SQL Server

if exists (select * from sysobjects where id = object_id('dbo.p_sizetables') and sysstat & 0xf = 4)
 drop procedure dbo.p_sizetables
GO
create procedure dbo.p_sizetables
as
Begin transaction

SET NOCOUNT ON
declare @nombre_tabla varchar(100)
declare @propietario varchar(40)
declare @uid int
declare @nombre_completo varchar(150)
declare @nombre_db varchar(256)

create table #resultados
(nombre varchar(50),
 filas decimal(12,0),
 reservado varchar(40),
 data varchar(40),
 tamaño_indice varchar(20),
 no_usado varchar(20))

declare tablas cursor
for select a.uid , propietario = left( b.name,40), tabla =  a.name from sysobjects a, sysusers b
where type = 'U' and a.uid = b.uid and  order by tabla

select @nombre_db = db_name()

OPEN tablas
FETCH NEXT FROM tablas into @uid, @propietario, @nombre_tabla
WHILE @@FETCH_STATUS = 0
BEGIN
    if @uid = 1
    begin
          insert #resultados   
          exec sp_spaceused @nombre_tabla
    end
    else
        begin
         SET @nombre_completo = rtrim(ltrim(@nombre_db))+'.' + ltrim(rtrim(@propietario)) +'.'+ @nombre_tabla
          insert #resultados   
          exec sp_spaceused @nombre_completo
       end
    FETCH NEXT FROM tablas INTO @uid, @propietario, @nombre_tabla
END

CLOSE tablas
DEALLOCATE tablas

select * from #resultados
order by data desc

Commit Transaction



Luego ejecutarlo así:


use [base]
exec p_sizetables



Si muestra un error por algún problema de acceso, filtrar los usuarios de esta forma:


declare tablas cursor
for select a.uid , propietario = left( b.name,40), tabla =  a.name from sysobjects a, sysusers b
where type = 'U' and a.uid = b.uid and b.name <> 'usuario' order by tabla

Modificar el valor de un campo de listas de sharepoint con javascript

Editar el archivo NewForm.aspx correspondiente a la lista.
Agregar el siguiente código debajo del tag PlaceHolderMain: En este caso, el código setea el campo col2 con el valor recibido en el parámetro "abc"


http://blog.markuso.com/posts/9/using-javascript-to-access-a-list-form-field-in-sharepoint-designer/