2017-04-03 80 views
0

我想以編程方式分配資源給Dynamics 365中的任務。代碼是:動態365-分配資源給任務

private static void AssignResourceToTask(XrmServiceContext xrm) 
{ 
    Guid TaskId = new Guid("e0bdf7c7-6a14-e711-8114-e0071b6ac161"); 
    Guid ResourceId = new Guid("cd01ae07-b9cd-e611-80e7-c4346bac0910"); 
    Guid ProjectId = new Guid("7982feea-a0f2-e611-8130-e0071b6a92f1"); 

    var AssignResource = new msdyn_resourceassignment 
    { 
     msdyn_resourceassignmentId = Guid.NewGuid(), 
     msdyn_bookableresourceid = new Microsoft.Xrm.Client.CrmEntityReference("bookableresource", ResourceId), 
     msdyn_taskid = new Microsoft.Xrm.Client.CrmEntityReference("msdyn_projecttask", TaskId), 
     msdyn_projectid = new Microsoft.Xrm.Client.CrmEntityReference("msdyn_project", ProjectId), 
    }; 

    AssignResource.msdyn_bookableresourceid.Name = "Amy Alberts"; 
    xrm.AddObject(AssignResource); 
    xrm.SaveChanges(); 
} 

但我無法使用上述代碼分配資源給任務。

+0

究竟發生了什麼?拋出異常?資源分配元素是否在CRM中創建?我不確定你想要達到什麼目標,但是確定你沒有分配任何東西,分配方式意味着更換所有者。您並沒有簡單地創建資源分配記錄,而是與具體的項目,任務和可預訂資源相關聯。 –

回答

0

你試過Microsoft.Crm.Sdk.AssignRequest嗎?您的代碼如下所示:

_serviceProxy.EnableProxyTypes(); 
_service = (IOrganizationService)_serviceProxy; 

var assignRequest = new AssignRequest 
{ 
    Assignee = new EntityReference("contact", ResourceId), 
    Target = new EntityReference("task", TaskId) 
}; 

_service.Execute(assignRequest); 

Microsoft有一個示例here