0
我正在进行服务呼叫以检索在“商机”表单上选择帐户查找的帐户明细(货币,与帐户相关的折扣)(表单类型= = 1 //创建)使用Web API in CRM 2016 On-Premise。一切工作正常,但机会最初保存时,它是马上想出未保存的更改保存按钮旁边的初始保存后,迫使我做另一个保存(异常行为)。我不太确定什么初始保存后价值正在变化。在动态CRM机会初始保存后,数值似乎发生变化
服务调用是同步的,并且在初始保存之前,正在更改帐户查找时触发。任何帮助赞赏!
function SetOpportunityCurrencyAndDiscount(){
var accountId = (GetValue("vm_accountid"))[0].id;
var result = RetrieveRecord("account", null, accountId.slice(1,-1));
var accountDiscount = result["vm_accountdiscount"];
var transactionCurrencyId = result["_transactioncurrencyid_value"];
var currencyName = result["[email protected]dValue"];
SetValue("vm_discount", accountDiscount);
Xrm.Page.getAttribute("transactioncurrencyid").setValue([{ id: transactionCurrencyId, name: currencyName, entityType: "transactioncurrency"}]); }
function RetrieveRecord(recordType, alternateKey, accountId){
var result = null;
var entityType = recordType;
var query = null;
if(alternateKey != null && agencyId == null)
query = "/api/data/v8.0/accounts(emailaddress1='"+alternateKey+"')?$select=name,accountid,_transactioncurrencyid_value,vm_agencydiscount";
else
query = "/api/data/v8.0/accounts("+agencyId+")?$select=name,accountid,_transactioncurrencyid_value,vm_agencydiscount";
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + query, false);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
req.onreadystatechange = function() {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
result = JSON.parse(this.response);
}
else {
alert(this.statusText);
}
}
};
req.send();
return result;
}
嗨Polshgiant,我试过两种方式,不幸的是我无法得到肮脏的领域的细节。当我在控制台上粘贴上面的代码时:Undefined。当我在所有级别和所有可能的字段上启用了审计时,我收到了以下消息:由此操作更改的字段未启用审计跟踪。如果我禁用Retrieve(服务调用)功能,则这种行为是正常的。 – Raghu
Xrm.Page.data.entity.getDataXml()如何?这是否显示你有用的东西?你可以做的另一件事是打开Fiddler检查第二次保存的流量,看看哪些字段正在提交。 – Polshgiant
感谢Polshgiant !.这是货币字段,我正在尝试更新由于某种原因再次更新。 – Raghu