[英]Lookup Dynamics 365 entity with alternate key that is a lookup property with the 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.