通过Web服务更新MS CRM中的活动?

时间:2010-08-02 14:32:40

标签: dynamics-crm

我整个上午都在尝试这样做。任何人都有一个代码片段(C#),显示如何通过Web服务更新CRM中的“活动”? 我可以使用实体创建CreateReadUpdateDelete,但我不确定如何使用Activities。

在谷歌上找不到任何东西......

2 个答案:

答案 0 :(得分:5)

您有什么特别要更新的?基本上,更新活动就像更新任何其他实体一样,您只需使用task实体。

public void CloseTask(CrmService crmsvc, Guid activityid, DateTime start, DateTime end)
{
    ColumnSet cols = new ColumnSet();
    cols.Attributes = new string[] { "activityid", "statecode" };

    task tsk = (task)crmsvc.Retrieve(EntityName.task.ToString(), activityid, cols);
    if(tsk.statecode.Value != TaskState.Open)
         return;

    tsk.actualstart = new CRMDateTime();
    tsk.actualstart.value = start.ToString();
    tsk.actualend =  new CRMDateTime();
    tsk.actualend.value = end.ToString();


    crmsvc.Update(tsk);

    SetStateTaskRequest state = new SetStateTaskRequest();
    state.EntityId = activityid;
    state.TaskState = TaskState.Completed;
    state.TaskStatus = -1; // Let MS CRM decide this property;
    SetStateTaskResponse stateSet = (SetStateTaskResponse)crmsvc.Execute(state);

}

编辑:添加了一些示例代码。请注意,我必须修改我必须删除的一些专有代码,所以我不知道这是否会实际编译。它虽然很接近。

答案 1 :(得分:0)

我们还可以使用程序集版本控制更新自定义工作流程活动。以下链接提供了更多信息:

http://msdn.microsoft.com/en-us/library/gg328011.aspx