簡體   English   中英

使用Dynamics 365 Web API使用空備用鍵檢索記錄

[英]retrieve a record using Dynamics 365 Web API with empty alternate key

問題

我正在嘗試使用key屬性為null的Web API從Dynamics 365查詢記錄。

途徑

為了進行測試,我創建了一個具有字符串屬性,整數屬性和十進制屬性的實體。 然后,我創建了一個備用鍵,並將這三個屬性放入其中,從而使屬性的組合變得唯一。 然后,我創建了一些記錄。

使用Web API查詢數據的工作符合預期。 我用這些值創建了一條記錄:

{ "my_string_key": "s1", "my_integer_key": 1, "my_decimal_key": 1.23 }

並像這樣查詢它:

/my_entities(my_string_key='s1',my_integer_key=1,my_decimal_key=1.23)

這將返回所需的記錄。

但是,當任何關鍵字段為空時,我無法使其正常工作,它始終返回400,並顯示消息“錯誤的請求-查詢語法錯誤”。 為了澄清起見:我特意創建了其中關鍵屬性之一為空的記錄,如下所示:

{ "my_integer_key": 1, "my_decimal_key": 1.23 } { "my_string_key": "s1", "my_decimal_key": 1.23 } { "my_string_key": "s1", "my_integer_key": 1 }

請注意,每條記錄是如何缺少關鍵屬性之一的,這實際上使該記錄為空。

我嘗試使用=null=empty=''==Microsoft.OData.Core.ODataNullValue但沒有任何效果。 我試圖這樣查詢他們:

/my_entities(my_string_key=null,my_integer_key=1,my_decimal_key=1.23) /my_entities(my_string_key='s1',my_integer_key=null,my_decimal_key=1.23) /my_entities(my_string_key='s1',my_integer_key=1,my_decimal_key=null)

我還嘗試省略其中帶有null的屬性,如下所示:

/my_entities(my_integer_key=1,my_decimal_key=1.23) /my_entities(my_string_key='s1',my_decimal_key=1.23) /my_entities(my_string_key='s1',my_integer_key=1)

這些都不起作用。 誰能提供解決方案?

最后的話

我知道關鍵屬性不應為空,因為這不是關鍵屬性的重點。 但是,我的情況需要處理此特定情況。

我也知道我可以只使用$ filter參數,但是我想一個解決方案而不必求助於這種“變通方法”。 畢竟,這是關鍵,我想將其視為一個關鍵。

我認為您的努力證明了關鍵屬性不能為空。 所以,該換另一種方法了。

創建一個自定義屬性,並用三個關鍵屬性的組合值填充它。 您可以在實體的“創建並最終更新”消息的操作前階段注冊的插件中執行此操作。

使用自定義屬性作為鍵屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM