조직에서 CRM 2011을 CRM 2016 SP1로 업그레이드했습니다.CRM 2016 "CRM 매개 변수 필터 - 잘못된 매개 변수"
CRM 2011에서는 OOTB 기능을 지원하지 않는 몇 가지 양식에 사용자 지정 "Lookup Address"단추를 추가했습니다.
당연히 업그레이드 후이 코드는 작동을 멈추었 고 업데이트를 시도했습니다. 처음에는 업그레이드 후 버튼이 아무 것도하지 않았습니다. 그러나 일부 변경 작업을 수행 한 후에는 "작동"하지만 다음 오류가 발생합니다.
<?xml version="1.0"?>
-<error xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<exception>Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: System.InvalidOperationException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #C1D5F608Detail: <OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts"> <ErrorCode>-2147220970</ErrorCode> <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" /> <Message>System.InvalidOperationException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #C1D5F608</Message> <Timestamp>2016-11-29T19:51:26.801987Z</Timestamp> <InnerFault i:nil="true" /> <TraceText i:nil="true" /> </OrganizationServiceFault> </exception>
<parameters xsi:nil="true"/>
<displaytitle/>
<displaytextencoded/>
<displaytext/>
<description>CRM Parameter Filter - Invalid parameter 'headerForm=1' in Request.QueryString on page /CRMTest/Handlers/WebResource.ashx The raw request was 'GET /CRMTest/{636160451970000359}/WebResources/CRMTest/sfa/quotes/dlg_lookupaddress.aspx?Data=LookupAddress&headerForm=1&parentId=%7bDB4A56CB-6809-E511-91A1-0050569C003F%7d&parentType=1&willCall=0' called from .</description>
<file>Not available</file>
<line>Not available</line>
<details>Not available</details>
<traceInfo/>
<requesturl>http://azcrmdev/CRMTest/Handlers/WebResource.ashx?name=CRMTest/sfa/quotes/dlg_lookupaddress.aspx&Data=LookupAddress&headerForm=1&parentId=%7bDB4A56CB-6809-E511-91A1-0050569C003F%7d&parentType=1&willCall=0</requesturl>
<pathAndQuery>/CRMTest/Handlers/WebResource.ashx?name=CRMTest/sfa/quotes/dlg_lookupaddress.aspx&Data=LookupAddress&headerForm=1&parentId=%7bDB4A56CB-6809-E511-91A1-0050569C003F%7d&parentType=1&willCall=0</pathAndQuery>
<source>ASHX_XML</source>
<stacktrace/>
</error>
나는, "encodeURIComponant을"은 "extraqs"매개 변수를 사용하여 시도, 심지어 폼 자체에 이름 매개 변수를 추가 한 . 이것들은 제가 연구 중에 발견 한 모든 가능한 해결책이었습니다 (여기에 포함되어 있습니다). 그러나 이러한 솔루션의 대부분은 2011 년을 향한 것으로 보입니다. 또한 SP1로 업그레이드 한 이후로는이 기능이 전혀 작동하지 않을 수도 있음을 읽었습니다. 나는 지금 며칠 동안 내 바퀴를 돌리고있다.
어떤 통찰력이라도 대단히 감사하겠습니다.
여기에 내가 지금까지 가지고있는 코드가 있습니다 (코드 줄은 "**"로 묶여 있습니다).
function CustomLookup() {
//debugger
//var aoItems = getFieldValue("customerid");
var aoItems = Xrm.Page.getAttribute("customerid").getValue();
if (aoItems == null) {
alert("Account is not Selected");
return;
}
**var object = Xrm.Utility.openWebResource(Xrm.Page.context.prependOrgName("/sfa/quotes/dlg_lookupaddress.aspx?headerForm=1&parentType=1&parentId=" + aoItems[0].id + "&willCall=0"), "LookupAddress", 500, 330, true);**
//debugger
if (object) {
if (object.BillTo && object.ShipTo) {
retrieveRecordXrm(object.Address.AddressId, "CustomerAddressSet", populateBillShipAddress, retrievalFailed, true);
}
else if (object.BillTo) {
retrieveRecordXrm(object.Address.AddressId, "CustomerAddressSet", populateBillAddress, retrievalFailed, true);
}
else if (object.ShipTo) {
retrieveRecordXrm(object.Address.AddressId, "CustomerAddressSet", populateShipAddress, retrievalFailed, true);
}
}
}
당신은 인용에 표준 버튼을 사용하여 트리거 URL을 캡처하는 개발자 도구를 사용을 시도 할 수 있습니다. 대부분의 경우 특정 매개 변수 (headerForm)가 업그레이드 이후 변경되었습니다 ... – Nathan