Hi,
There is the code below which starts workflow for an item. The code successfully works when item is not last in a list, but it quietly fails (StartWorkflowOnListItem is called but workflow does not start) if the item is last. What is it? Is it a bug?
Web web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
List list = clientContext.Web.Lists.GetByTitle("mmlib");
clientContext.Load(list);
clientContext.ExecuteQuery();
WorkflowServicesManager manager =newWorkflowServicesManager(clientContext, web);
clientContext.Load(manager);
clientContext.ExecuteQuery();
WorkflowSubscriptionService service = manager.GetWorkflowSubscriptionService();
clientContext.Load(service);
clientContext.ExecuteQuery();
WorkflowSubscriptionCollection wscoll = service.EnumerateSubscriptionsByList(list.Id);
clientContext.Load(wscoll);
clientContext.ExecuteQuery();
CamlQuery camlQuery =CamlQuery.CreateAllItemsQuery();
ListItemCollection listItems = list.GetItems(camlQuery);
clientContext.Load(listItems,
items => items.Include(item => item.DisplayName,item => item.Id));
clientContext.ExecuteQuery();
foreach (ListItem listItemin listItems)
{
clientContext.Load(listItem);
clientContext.ExecuteQuery();
int Id = 95;
if (listItem.Id.Equals(Id))
{
foreach (WorkflowSubscription wsin wscoll)
if (ws.Name.Equals("settitle"))
{
WorkflowInstanceService wis = manager.GetWorkflowInstanceService();
var payload =newDictionary<string,object>();
ClientResult<Guid> result = wis.StartWorkflowOnListItem(ws, listItem.Id, payload);
}
}
}