Pregunta

En una aplicación que estoy trabajando, estoy interactuar con SharePoint (2010) a través de el .NETO del Lado del Cliente Modelo de Objetos, y estoy tratando de dar cuenta de un gran número de configuraciones posibles de las bibliotecas de documentos.

En el caso de que un documento de la biblioteca tiene la aprobación de contenido activada, si puedo crear un nuevo Folder objeto, el estado de aprobación se aplica a este ListItem así:

Newly Created Folder

¿Cómo puedo obtener una referencia a la ListItem que es el recién creado Folder objeto?

Necesito establecer este valor a SPModerationStatusType.Approved mediante programación al crear una nueva carpeta, pero no puede encontrar una manera de modificar los campos de la ListItem dado que sólo tengo una Folder objeto.

Quiero conseguir un ListItem objeto para que yo pueda hacer algo como esto:

Trabajando Con la Aprobación de Contenido / Moderación En CSOM

Editar:

Para SharePoint 2013, que han aparentemente tomado esto en consideración y han añadido un Folder.ListItemAllFields propiedad que sería exactamente lo que necesito aquí, pero esta propiedad no está disponible para el 2010 CSOM.

¿Fue útil?

Solución

Lo resuelto por el uso de un CamlQuery directamente después de la creación a la devolución de las carpetas con el mismo nombre como un ListItemCollection:

SP.CamlQuery query = new SP.CamlQuery();
query.ViewXml = "<View Scope='RecursiveAll'>" +
                  "<Query>" +
                    "<Where>" +
                      "<And>" +
                        "<Eq>" +
                          "<FieldRef Name='ContentType'/>" +
                          "<Value Type='Text'>Folder</Value>" +
                        "</Eq>" +
                        "<Eq>" +
                          "<FieldRef Name='FileLeafRef'/>" +
                          "<Value Type='Text'>" + subFolderName + "</Value>" +
                        "</Eq>" +
                      "</And>" +
                    "</Where>" +
                  "</Query>" +
                "</View>";

SP.ListItemCollection items = list.GetItems(query);
clientContext.Load(items);
clientContext.ExecuteQuery();

Con un poco de validación del elemento I puede establecer la propiedad como el que necesito.

Licenciado bajo: CC-BY-SA con atribución
scroll top