比较来自不同实体的字段

时间:2017-09-27 14:35:03

标签: javascript if-statement dynamics-crm-365

我正在比较来自两个不同实体的字段,因此如果值不同,那么表单1上的字段将被设置为字段值在另一个表单上的字段。问题是虽然逻辑似乎适合某些它拒绝继续下一个if / else块的块,除非前一个值发生了变化。

因此无论是否更改,它都会检查州和国家没有问题的块。但是,除非州或国家被更改(或国家被注释掉),否则它不会继续作为主要专业来检查那些价值观。不知道我在这里缺少什么。我确保没有任何东西嵌套,并且所有逻辑实际上都有效。

console.log(users.find(function(u) { return u.email == 'test@user.com' }));

1 个答案:

答案 0 :(得分:0)

  

所以为了让我开始工作,我必须在条件下添加其他空的。它强制它继续并检查其他条件。这对我来说毫无意义,但无法找到解决问题的另一种方法。

            if (getFieldValue("hc_stateid") == null && result["_hc_state_value"] != null) {// checling if value is null on tni becacuse the else if wouldnt execute b/c no id

                Xrm.Page.getAttribute("hc_stateid").
                  setValue([
                      {
                          id: result["_hc_state_value"],
                          name: result["_hc_state_value@OData.Community.Display.V1.FormattedValue"],
                          entityType: result["_hc_state_value@Microsoft.Dynamics.CRM.lookuplogicalname"]
                      }]);
                save = true;
            }
            else if (getFieldValue("hc_stateid") == null && result["_hc_state_value"] == null) {
                //this is needed otherwise it does not continue to check conditons
            }

            else if (result["_hc_state_value"] != getFieldValue("hc_stateid")[0].id.replace("{", "").replace("}", "").toString().toLowerCase()) {//tni has a value


                if (result["_hc_state_value"] == null) {
                    Xrm.Page.getAttribute("hc_stateid").setValue(null);
                    save = true;
                }
                else {


                    Xrm.Page.getAttribute("hc_stateid").
                        setValue([
                            {
                                id: result["_hc_state_value"],
                                name: result["_hc_state_value@OData.Community.Display.V1.FormattedValue"],
                                entityType: result["_hc_state_value@Microsoft.Dynamics.CRM.lookuplogicalname"]
                            }]);
                    save = true; 
                }
            }
            else {

            }




            if (getFieldValue("hc_countryid") == null && result["_hc_country_value"] != null || getFieldValue("hc_countryid") != null && result["_hc_country_value"] == null) {
                if (result["_hc_country_value"] == null) {
                    Xrm.Page.getAttribute("hc_countryid").setValue(null);
                    save = true;
                }
                else {
                    Xrm.Page.getAttribute("hc_countryid").
                        setValue([
                            {
                                id: result["_hc_country_value"],
                                name: result["_hc_country_value@OData.Community.Display.V1.FormattedValue"],
                                entityType: result["_hc_country_value@Microsoft.Dynamics.CRM.lookuplogicalname"]
                            }]);
                    save = true; 
                }
            }
            else if (getFieldValue("hc_countryid") == null && result["_hc_country_value"] == null) {
                //this is needed otherwise it does not continue to check conditons
            }

            else if (getFieldValue("hc_countryid")[0].id.replace("{", "").replace("}", "").toString().toLowerCase() != result["_hc_country_value"]) {

                Xrm.Page.getAttribute("hc_countryid").
                    setValue([
                        {
                            id: result["_hc_country_value"],
                            name: result["_hc_country_value@OData.Community.Display.V1.FormattedValue"],
                            entityType: result["_hc_country_value@Microsoft.Dynamics.CRM.lookuplogicalname"]
                        }]);
                save = true; 
            }
            else {

            }