Mi è capitato, in questi ultimi giorni, di realizzare un prodotto che si interfacciasse con SharePoint tramite gli web service. Puntualizzando che Microsoft ha fatto veramente un buon lavoro, mi trovo a dover aggiornare lo stato di un documento, lasciando la possibilità all'utente, di deciderne il ciclo di vita.
Non mi dilungo nella spiegazione degli stati dei documenti e dei potenti workflow messi a disposizione da SharePoint, ma vi segnalo un interessante argomento.
Dopo alcune ricerche cerco di aggiornare lo stato così: (0 è approved; 2 è pending; 1 è rejected)
Lists listService = new Lists();
listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
XmlDocument doc = new XmlDocument();
System.Xml.XmlElement updates = doc.CreateElement("Batch");
try
{
updates.InnerXml = string.Format(@"<Method id='1' Cmd='Update'>" +
"<Field Name='SPR No'>63626</Field>" +
"<Field Name='Severity'>Critical Failure</Field>" +
"<Field Name='_ModerationStatus'>1</Field>" + "</Method>");
XmlNode node = listService.UpdateListItems ("139289E8-7DE2-4EBF-99DE-BC57B6AE0129", updates);
}
catch(Exception ex)
{
string strError = ex.Message;
}
ma nulla da fare si aggiorna tutto meno lo stato...
navigando qua e la nelle sperdute terre del web trovo questo post molto interessante:
Synchronizing with Windows SharePoint Services, Part 1
ma soprattutto la seconda parte:
Synchronizing with Windows SharePoint Services, Part 2
dove è ben evidenziato che esiste nei cmd 4 possibilità:
Method |
Description |
New |
Create a new item with the specified field values. |
Update |
Update the specified field values for an item. |
Moderate |
Change the moderation status for an item (used in the same manner as Update). The ModerationStatus field can only be changed by a Cmd=Moderate call. |
Delete |
Delete the item with the following field values |
dalla documentazione Microsoft Windows SharePoint Services Software Development Kit appaiono sole le prime 3 New Update Delete.
Cambiando "<Method id='1' Cmd='Moderate'>" ho risolto magicamente il problema.
spero di essere stato di aiuto...