【发布时间】:2020-01-13 06:10:34
【问题描述】:
setSubmitMode('always') 的未更改字符串字段以空字符串发送到服务器端,而不是 null。
重现步骤:
- 假设我们有两个字段:字符串类型的
jk_name和任意类型的jk_dummy。 - 将
jk_name值设置为null。保存记录。 -
在字符串类型字段上调用
setSubmitMode('always'):Xrm.Page.getAttribute("jk_name").setSubmitMode("always"); 更改
jk_dummy值;不要更改jk_name的值。- 保存记录。
-
在你的插件中,观察你的目标的
Attributes,你会看到:target -> Attributes -> Keys -> [0] -> "jk_name" target -> Attributes -> Values -> [0] -> ""意思是,未更改的
jk_name字段以空字符串值传递给插件。
现在,将此与您有另一个字段的情况进行比较,例如,整数类型的 jk_code。重复上面的步骤,现在你会看到:
target -> Attributes -> Keys -> [0] -> "jk_code"
target -> Attributes -> Values -> [0] -> null
意思是,不变的jk_code字段被传递给插件一个空值。
概括:
setSubmitMode('always') 未更改的字符串字段以空字符串发送到服务器端,而 setSubmitMode('always') 未更改的非字符串字段以空值发送到服务器端。
CRM 这样做是否有特定原因?
【问题讨论】:
-
可能你必须用 MS 创建一张票才能得到像“是的,这是设计使然”或“是的,这是一个错误”之类的答案:) 就像 jasonscript 回答的那样,有默认值概念对于每个 CRM 数据类型。如果你想恢复 DBNULL 而不是空字符串,那么你必须想办法处理它。
-
这有什么更新吗?
-
@ArunVinoth,不
标签: dynamics-crm dynamics-crm-2015