5

WEB API /api/data/v8.x를 사용하여 XML 가져 오기를 실행하려고합니다. "속성에 숫자 값이 들어있는 위치"와 관련된 질의가있을 때를 제외하고 모두 괜찮습니다. 예를 들어, 다음 fetchXML 전화 번호와 계정을 찾는 것은 '03'이 포함되어Number 값 필터가 포함 된 사용자 정의 FetchXml을 사용하여 Dynamics CRM Web API를 쿼리하는 방법은 무엇입니까?

https://CRM_URL/api/data/v8.0/accounts?fetchXml=<fetch%20mapping%3D"logical"><entity%20name%3D"account"><attribute%20name%3D"name"%20%2F><attribute%20name%3D"telephone1"%20%2F><order%20attribute%3D"name"%20descending%3D"false"%20%2F><filter%20type%3D"and"><condition%20attribute%3D"telephone1"%20operator%3D"like"%20value%3D"%2503%25"%20%2F><%2Ffilter><%2Fentity><%2Ffetch> 

CRM 웹 API :

<fetch mapping="logical"> 
 
    <entity name="account"> 
 
    <attribute name="name" /> 
 
    <attribute name="telephone1" /> 
 
    <order attribute="name" descending="false" /> 
 
    <filter type="and"> 
 
     <condition attribute="telephone1" operator="like" value="%03%" /> 
 
    </filter> 
 
    </entity> 
 
</fetch>

우리는 웹 API에 GET를 통해 그것을 실행하는 경우 다음과 같이 잘못된 XML 오류를 반환합니다.

{ "error": { "code": "", "message": "잘못된 XML입니다.", "innererror": { "메시지": "잘못된 XML입니다.", "type": "System.ServiceModel.FaultException`1 [[Microsoft 중립 Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, 버전 = 8.0.0.0, 문화 = PublicKeyToken = 31bf3856ad364e35]] "}}}

확실히 쿼리 실행이 필터 값이 시작되지 않는 경우 숫자 또는 필터 값에서 '%'가 제거됩니다. 내 결론은 내 필터 값에서 "% + number"인코딩 및 디코딩과 관련이 있다는 것입니다.

내 쿼리에 문제가 있습니까? 아니면이 Dynamics CRM Web API 버그입니까? 주위에 어떤 일이 있니?

+1

놀랍게도 매개 변수로 한 자리 숫자를 전달하면 효과적입니다. 'value = '% 3' '과 같습니다. 'value = '% 03 %'도'value = '% 30 %'도 작동하지 않습니다. – dynamicallyCRM

답변

0

작동하지 않는 이유를 확실하지,하지만 당신은 전화 번호를 포함하는 번호를 여기에 3

cc_WebAPI_ServiceURI/accounts?$filter=contains(telephone1,'3') 
3

, 역학 (365)는 내부적으로 FetchXML 쿼리 문자열을 두 번 디코드를 얻기 위해 필터를 사용할 수 있습니다. 엔지니어링 팀은이 문제에 대해 알려줍니다. 그들은 다음 릴리스에서 그리고 아마도 최신 공개 릴리스에서 수정 사항을 제공 할 것입니다. 그 전까지는 쿼리 문자열을 두 번 인코딩하거나 % 문자를 인코딩 후 %25으로 바꿀 수 있습니다. 예를 들어, 문자열 value%3D"%2503%25"value%3D"%252503%2525"으로 바꿀 수 있습니다. 수정 프로그램을 사용할 수있게되면 제안 된 해결 방법이 더 이상 작동하지 않습니다.

+1

8.2.1.207 –

+1

으로 수정 된 모양입니다. 빌드 8.2.1.207에 수정 사항이 포함되어 있습니다. –