5

Tôi đang cố thực hiện tìm nạp XML bằng cách sử dụng API WEB /api/data/v8.x. Tất cả đều ổn, ngoại trừ khi tôi có truy vấn liên quan đến "nơi một thuộc tính chứa giá trị số". Ví dụ, fetchXML sau đây để tìm tài khoản với số điện thoại chứa '03':Cách truy vấn API Web Dynamics CRM bằng cách sử dụng FetchXml tùy chỉnh có liên quan đến bộ lọc Giá trị số?

<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>

Khi chúng ta chạy nó thông qua GET trên 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 Web API trả về lỗi XML không hợp lệ như sau:

{"error": { "mã": "", "nội dung": "XML không hợp lệ", "innererror": { "message": "XML không hợp lệ", "type": "System.ServiceModel.FaultException`1 [[Microsoft. Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version = 8.0.0.0, Culture = trung tính, PublicKeyToken = 31bf3856ad364e35]]"}}}

việc chạy truy vấn ổn nếu giá trị lọc không khởi động với số hoặc tôi xóa '%' trên giá trị bộ lọc. Kết luận của tôi là điều này là phải làm với mã hóa và giải mã "% + số" trong giá trị bộ lọc của tôi.

Có điều gì sai với truy vấn của tôi hoặc lỗi Dynamics CRM Web API này không? bất kỳ công việc xung quanh?

+1

Đáng ngạc nhiên, chuyển số chữ số đơn lẻ làm tham số hoạt động. 'value = '% 3'' chẳng hạn. Cả hai giá trị 'value = '% 03%'' và 'value = '% 30%'' đều không hoạt động. – dynamicallyCRM

Trả lời

0

Không chắc lý do tại sao nó không hoạt động, nhưng bạn có thể sử dụng bộ lọc để có được một số số điện thoại có chứa 3.

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

Ở đây, Dynamics 365 được nội giải mã chuỗi truy vấn FetchXML hai lần. Nhóm kỹ thuật được thông báo về vấn đề này. Họ sẽ cung cấp bản sửa lỗi trong bản phát hành sắp tới và có thể trong bản phát hành công khai mới nhất. Cho đến khi đó, bạn có thể thử mã hóa chuỗi truy vấn hai lần hoặc thay thế tất cả các lần xuất hiện của % ký tự bằng %25 sau khi mã hóa. Ví dụ: chuỗi value%3D"%2503%25" có thể được thay thế bằng value%3D"%252503%2525". Xin lưu ý rằng khi sửa chữa có sẵn, giải pháp được đề xuất sẽ không còn hoạt động nữa.

+1

Có vẻ như đã sửa với 8.2.1.207 –

+1

Đúng vậy. Xây dựng 8.2.1.207 chứa bản sửa lỗi. –

Các vấn đề liên quan