Dynamics crm 是否通过web服务更新MS CRM中的活动?

Dynamics crm 是否通过web服务更新MS CRM中的活动?,dynamics-crm,Dynamics Crm,我整个上午都在试着这么做。有没有人有一个代码片段(C#)显示如何通过webservice更新CRM中的“活动”? 我可以使用实体创建ReadUpdateDelete,但我不确定如何使用活动 在谷歌上也找不到任何东西…你特别想要更新什么?基本上,更新活动就像更新任何其他实体一样,您只需使用任务实体 public void CloseTask(CrmService crmsvc, Guid activityid, DateTime start, DateTime end) { ColumnS

我整个上午都在试着这么做。有没有人有一个代码片段(C#)显示如何通过webservice更新CRM中的“活动”? 我可以使用实体创建ReadUpdateDelete,但我不确定如何使用活动


在谷歌上也找不到任何东西…

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

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);

}

编辑:添加了一些示例代码。注意,我必须修改我必须剥离的一些专有代码,所以我不知道这是否会真正编译。不过很接近。

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

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);

}

编辑:添加了一些示例代码。注意,我必须修改我必须剥离的一些专有代码,所以我不知道这是否会真正编译。不过很接近。

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


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


嗯。。它表示具有该Guid的任务不存在。这是一项活动。。我知道guid在那里…这是实际的错误消息:0x80040217 Id=84112d9e-db9b-df11-910a-00155d0a3024的任务在平台上不存在。事实上,想想看,我们的活动甚至没有这些任务状态,我们有“待定”“批准”“拒绝”。。。我认为“任务”在这里不起作用。你用的是什么版本?这应该适用于3.0和4.0。您的活动是一个不同的自定义实体吗?自定义活动,对不起,不能再说(NDA)了。。它表示具有该Guid的任务不存在。这是一项活动。。我知道guid在那里…这是实际的错误消息:0x80040217 Id=84112d9e-db9b-df11-910a-00155d0a3024的任务在平台上不存在。事实上,想想看,我们的活动甚至没有这些任务状态,我们有“待定”“批准”“拒绝”。。。我认为“任务”在这里不起作用。你用的是什么版本?这应该适用于3.0和4.0。您的活动是一个不同的自定义实体吗?自定义活动,对不起,不能再说了(NDA)。这似乎是关于活动实体记录,而不是CWA。此外,使用程序集版本控制会破坏现有工作流,至少在CRM 4中是这样。这似乎是关于活动实体记录,而不是CWA。此外,使用程序集版本控制会破坏现有工作流,至少在CRM 4中是这样。