[英]How to set the Opportunity Status - Dynamics CRM?
我正在嘗試使用MSDN中提供的WinOpportunityRequest和LoseOpportunityRequest API更新開放機會的狀態。 我遵循了MSDN中給出的代碼,甚至提到了stackoverflow的“ 設置機會狀態”
但是,當我為公開機會運行以下代碼時,會引發錯誤,指出
LoseOpportunityRequest req = new LoseOpportunityRequest();
Entity opportunityClose = new Entity("opportunityclose");
opportunityClose.Attributes.Add("opportunityid", new EntityReference(OptyEntityName, new Guid("xxxx-xxx")));
opportunityClose.Attributes.Add("subject", "Lost the Opportunity!");
req.OpportunityClose = opportunityClose;
// 4 = Cancelled and 5 = Out-Sold
req.Status = new OptionSetValue(4);
LoseOpportunityResponse resp = (LoseOpportunityResponse)_serviceProxy.Execute(req);
錯誤-
Id(Guid)上的機會不是有效的狀態碼4
當我嘗試更改已關閉機會的狀態時,它表示該機會已經關閉 。
需要考慮的另一件事是,我的CRM中的此狀態帶有一個掛鎖圖標,表示它已被鎖定。
那么是否可以更改狀態,是否基於角色?
對於開放的機會,我們可以將狀態更改為贏或輸。 因此,我們將在此處使用WinOpportunityRequest和LoseOpportunityRequest 。
因此,我們需要將值更改為-1,以便CRM可以加載默認狀態代碼。
req.Status = new OptionSetValue(4);
更改為-1后,不會引發任何異常。
req.Status = new OptionSetValue(-1);
一旦執行了執行調用。 機會價值將變為丟失。 機會將被關閉。
要重新打開已關閉的機會,我們可以使用SetStateRequest類 。 代碼如下。
var stateRef = new EntityReference("optyname", new Guid("optyid"));
SetStateRequest req = new SetStateRequest();
req.State = new OptionSetValue(0);
req.Status = new OptionSetValue(2);
req.EntityMoniker = stateRef;
SetStateResponse stateSet = (SetStateResponse)_serviceProxy.Execute(req);
執行執行調用后,機會狀態將重新設置為打開,並且狀態顯示為打開。
狀態碼與狀態不同。 狀態代碼可以具有打開,贏得或關閉狀態。 狀態可以有多個值。 詳細信息在msdn中提供。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.