valores una obtener objetos mostrar modificar lista item eliminar elementos elemento dinamica agregar c# xml sharepoint service

obtener - mostrar elementos de una lista c#



SharePoint: ¿cómo insertar elementos nuevos usando el servicio web de la lista? (1)

Usar el servicio web Listas para insertar elementos en una lista de SharePoint puede ser complicado. Como este método tiene la forma: XML in, XML out, puede ser difícil obtener los parámetros correctos.

Primero, debería echar un vistazo a la definición de la lista. Se puede recuperar con el método GetList (), como se muestra a continuación:

XmlNode listXml = sharePointLists.GetList(listName); File.WriteAllText("listdefinition.xml", listXml.OuterXml);

Importante aquí son los nombres de los campos y sus tipos de datos. Los nombres de campo nunca serán los mismos que los que ve en la GUI de SharePoint. Un buen ejemplo es el campo Título que se usa para el primer campo de la lista.

Ahora que lo sabe, puede crear la consulta para ir a SharePoint. Un ejemplo:

<Batch OnError="Continue"> <Method ID="1" Cmd="New"> <Field Name="Title">Abcdef</Field> <Field Name="Project_x0020_code">999050</Field> <Field Name="Status">Open</Field> </Method> </Batch>

El elemento Batch es el elemento raíz del XML. En el interior puedes poner diferentes métodos. Estos deberían obtener una ID única (que se usa para informarle de los errores) y un comando, que puede ser, por ejemplo, "Nuevo" o "Actualizar". Dentro del Método, coloca elementos de Campo que especifican el valor para cada campo. Por ejemplo, el campo Título obtiene el valor "Abcdef". Tenga cuidado de usar el nombre exacto tal como lo devuelve GetList ().

Para ejecutar la consulta en SharePoint, use el método UpdateListItems ():

XmlNode result = sharePointLists.UpdateListItems(listDefinition.Name, updates);

El valor de retorno es un fragmento XML que contiene el estado de cada actualización. Por ejemplo:

<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/"> <Result ID="1,New"> <ErrorCode>0x00000000</ErrorCode> <z:row ows_ContentTypeId="0x010036F3F587127F1A44B8BA3FEFED4733C6" ows_Title="Abcdef" ows_Project_x0020_code="999050" ows_Status="Open" ows_LinkTitleNoMenu="Abcdef" ows_LinkTitle="Abcdef" ows_ID="1005" ... xmlns:z="#RowsetSchema" /> </Result> </Results>

Puede analizar esto y mirar el Código de Error para ver qué métodos fallaron.

En la práctica, he creado una clase de contenedor que se encarga de todos los detalles sucios. Desafortunadamente, este es propiedad de mi empleador, así que no puedo compartirlo contigo.

Esta clase contenedora es parte de una utilidad interna que se utiliza para recuperar información de nuestra base de datos de proyectos y publicarla en SharePoint. Dado que fue desarrollado durante el horario de la compañía, no puedo publicarlo aquí.

Tengo una lista con 2 campos de texto y un campo de elección. ¿Cómo uso el servicio web Lists.asmx para insertar un nuevo elemento? Puedo hacer una referencia web al servicio lists.asmx, por lo que puede suponer que esto se conoce.

Me gustaría un ejemplo completo que incluya el código y el XML para la consulta CAML. Idealmente, la muestra usaría C #.