Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamics crm 为什么将setSubmitMode(';始终';)中未更改的字符串字段以空字符串且不为null发送到服务器端?_Dynamics Crm_Dynamics Crm 2015 - Fatal编程技术网

Dynamics crm 为什么将setSubmitMode(';始终';)中未更改的字符串字段以空字符串且不为null发送到服务器端?

Dynamics crm 为什么将setSubmitMode(';始终';)中未更改的字符串字段以空字符串且不为null发送到服务器端?,dynamics-crm,dynamics-crm-2015,Dynamics Crm,Dynamics Crm 2015,未更改的字符串字段setSubmitMode('always')将以空字符串发送到服务器端,且不为null 复制步骤: 假设我们有两个字段:jk_name字符串类型,和jk_dummy任何类型 将jk_name值设置为null。保存记录 在字符串类型字段上调用setSubmitMode('always'): Xrm.Page.getAttribute("jk_name").setSubmitMode("always"); 更改jk_伪值值;不要更改jk_名称值 保存记录 在插件内部,观察目标

未更改的字符串字段
setSubmitMode('always')
将以空字符串发送到服务器端,且不为null

复制步骤:

  • 假设我们有两个字段:
    jk_name
    字符串类型,和
    jk_dummy
    任何类型
  • jk_name
    值设置为
    null
    。保存记录
  • 在字符串类型字段上调用
    setSubmitMode('always')

    Xrm.Page.getAttribute("jk_name").setSubmitMode("always");
    
  • 更改
    jk_伪值
    值;不要更改
    jk_名称

  • 保存记录
  • 在插件内部,观察目标的
    属性
    ,您将看到:

    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这样做有什么具体原因吗?

    我想知道这是否是CRM使用原语的结果。 请参见他在何处描述不同的属性类型和默认值

    我在这里复制了主表:

    CRM TYPE .NET TYPE CAN HOLD NULL? DEFAULT VALUE ----------------------+-------------------+----------------+--------------- Single Line of Text string Yes Option Set OptionSetValue Yes Two Options bool No false Image byte[] Yes Whole Number int No 0 Floating Point Number double No 0.0 Decimal Number decimal No 0 Currency Money Yes Multiple Lines of Text string Yes Date and Time DateTime No DateTime.MinValue Lookup EntityReference Yes CRM类型.NET类型可以容纳空值吗?默认值 ----------------------+-------------------+----------------+--------------- 单行文本字符串是 选项集选项设置值是 两个选项没有错 图像字节[]是 整数整数0 浮点数双精度0.0 十进制数字十进制数字0 货币是的 多行文本字符串“是” 日期和时间DateTime无DateTime.MinValue 查找实体引用是
    我想知道这是否是CRM使用原语的结果。 请参见他在何处描述不同的属性类型和默认值

    我在这里复制了主表:

    CRM TYPE .NET TYPE CAN HOLD NULL? DEFAULT VALUE ----------------------+-------------------+----------------+--------------- Single Line of Text string Yes Option Set OptionSetValue Yes Two Options bool No false Image byte[] Yes Whole Number int No 0 Floating Point Number double No 0.0 Decimal Number decimal No 0 Currency Money Yes Multiple Lines of Text string Yes Date and Time DateTime No DateTime.MinValue Lookup EntityReference Yes CRM类型.NET类型可以容纳空值吗?默认值 ----------------------+-------------------+----------------+--------------- 单行文本字符串是 选项集选项设置值是 两个选项没有错 图像字节[]是 整数整数0 浮点数双精度0.0 十进制数字十进制数字0 货币是的 多行文本字符串“是” 日期和时间DateTime无DateTime.MinValue 查找实体引用是 海朱德

    当在字段上使用setSubmitMode(“always”)时,意味着在使用表单保存时,该字段将始终包含在上,在该表单中,您已使用JS为给定字段设置了该字段

    MS docs的setSubmitMode功能如下:“设置保存记录时是否提交属性中的数据。” 这意味着在该表单上进行保存时,该字段将始终保存到数据库中

    要理解为什么在目标实体中接收此字段为空,需要了解在执行上下文中传递给插件的目标实体的行为

    目标实体将始终包含已更改的字段。在创建时,这意味着所有字段都已填写或始终处于提交模式。更新所有已更改的字段时,或在您的情况下,保存中始终包含的字段

    相反,我们可以使用setSubmitMode通过使用“never”参数从不向数据库提交任何内容。 第三个选项是“dirty”,这是表单上所有字段的默认行为

    我希望这能回答你的问题:)HeyJude

    当在字段上使用setSubmitMode(“always”)时,意味着在使用表单保存时,该字段将始终包含在上,在该表单中,您已使用JS为给定字段设置了该字段

    MS docs的setSubmitMode功能如下:“设置保存记录时是否提交属性中的数据。” 这意味着在该表单上进行保存时,该字段将始终保存到数据库中

    要理解为什么在目标实体中接收此字段为空,需要了解在执行上下文中传递给插件的目标实体的行为

    目标实体将始终包含已更改的字段。在创建时,这意味着所有字段都已填写或始终处于提交模式。更新所有已更改的字段时,或在您的情况下,保存中始终包含的字段

    相反,我们可以使用setSubmitMode通过使用“never”参数从不向数据库提交任何内容。 第三个选项是“dirty”,这是表单上所有字段的默认行为


    我希望这能回答您的问题:)

    谢谢,但它不能回答问题。谢谢,但它不能回答问题。谢谢。我知道
    setSubmitMode()
    是如何工作的。我问为什么字符串字段与非字符串字段的工作方式不同。这很奇怪。我复制是为了我自己的理智