Lavorare con l'approvazione del contenuto / moderazione in CSOM
-
10-12-2019 - |
Domanda
Il modello di oggetti di SharePoint fornisce una proprietà di un SPListItem
chiamato SPListItem.ModerationInformation.Status
per consentire di determinare l'attuale stato di approvazione / moderazione del contenuto se una libreria documenti ha abilitato l'approvazione dei contenuti.La proprietà generacodictagcode è un'istanza del ModerationInformation
e class SPModerationInformation
è un'istanza del Status
.
Come posso lavorare con questi oggetti / proprietà dal modello dell'oggetto laterale client?Il lato client enum SPModerationStatusType
non contiene la proprietà ListItem
come la sua parte del lato del lato server
Soluzione
Anche se la classe CSOM ListItem
non ha una proprietà ModerationInformation
, sono stato in grado di accedere a questo valore attraverso il nome interno del campo:
ListItem item = file.Item;
clientContext.Load(item);
clientContext.ExecuteQuery();
int status = Convert.ToInt32(item["_ModerationStatus"]);
.
e l'enum è definito come:
public enum SPModerationStatusType
{
Approved, //0
Denied, //1
Pending, //2
Draft, //3
Scheduled //4
}
.
Questo mi ha preso dove avevo bisogno di essere.
Altri suggerimenti
Here is the full list of Internal Column name :
https://sharepointmalarkey.wordpress.com/2008/08/21/sharepoint-internal-field-names/
public enum Status
{
Approved, //0
Denied, //1
Pending, //2
Draft, //3
Scheduled //4
}
ListItem item = ctx.Web.Lists.GetByTitle('listname').AddItem(listObj);
clientContext.Load(item);
clientContext.ExecuteQuery();
item["_ModerationStatus"] = Convert.ToInt32(Status.Approved);
item.Update();
ctx.ExecuteQuery();
.