2017-09-27 3 views
0

Je compare des champs de deux entités différentes, de sorte que si les valeurs sont différentes, le champ sur le formulaire 1 est défini sur la valeur du champ dans l'autre formulaire. Le problème est que, bien que la logique semble juste pour certains des blocs, il refuse de continuer au prochain bloc if/else sauf si la valeur précédente a changé.Comparer des champs de différentes entités

Donc, il va aux blocs qui vérifient l'état et le pays sans problèmes, peu importe si l'un ou l'autre est changé.Cependant, sauf si l'état ou le pays est changé (ou pays est commenté) il ne continue pas à vérifiez ces valeurs. Je ne sais pas ce que je manque ici. Je me suis assuré que rien n'est imbriqué et que toute la logique fonctionne réellement.

  Xrm.Utility.alertDialog("about to check state"); 
      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.Utility.alertDialog("its null"); 
       Xrm.Page.getAttribute("hc_stateid"). 
        setValue([ 
         { 
          id: result["_hc_state_value"], 
          name: result["[email protected]"], 
          entityType: result["[email protected]"] 
         }]); 
       Xrm.Utility.alertDialog("state changes"); 
      } 

      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); 
       } 
       else { 


        Xrm.Page.getAttribute("hc_stateid"). 
         setValue([ 
          { 
           id: result["_hc_state_value"], 
           name: result["[email protected]"], 
           entityType: result["[email protected]"] 
          }]); 
        Xrm.Utility.alertDialog("state changes"); 
       } 
      } 


      Xrm.Utility.alertDialog("about to check country"); 
      /*if (getFieldValue("hc_countryid") == null && result["_hc_country_value"] != null) 
      { 
       Xrm.Page.getAttribute("hc_countryid"). 
         setValue([ 
          { 
           id: result["_hc_country_value"], 
           name: result["[email protected]"], 
           entityType: result["[email protected]Microsoft.Dynamics.CRM.lookuplogicalname"] 
          }]); 
       Xrm.Utility.alertDialog("country changed"); 

      } 
      else if (result["_hc_country_value"] != getFieldValue("hc_countryid")[0].id.replace("{", "").replace("}", "").toString().toLowerCase()) { 
       if (result["_hc_country_value"] == null) { 
        Xrm.Page.getAttribute("hc_countryid").setValue(null); 
       } 
       else { 
        Xrm.Page.getAttribute("hc_countryid"). 
         setValue([ 
          { 
           id: result["_hc_country_value"], 
           name: result["[email protected]"], 
           entityType: result["[email protected]"] 
          }]); 
        Xrm.Utility.alertDialog("country changed"); 
       } 
      } */ 

      Xrm.Utility.alertDialog("about to check prim spec"); 
      Xrm.Utility.alertDialog("prim specialty: " + (result["_hc_primaryspecialty_value"] != getFieldValue("hc_primaryspecialtyid")[0].id.replace("{", "").replace("}", "").toString().toLowerCase()).toString()); 
      if (getFieldValue("hc_primaryspecialtyid") == null && result["_hc_primaryspecialty_value"] != null) { 
       Xrm.Page.getAttribute("hc_primaryspecialtyid"). 
         setValue([ 
          { 
           id: result["_hc_primaryspecialty_value"], 
           name: result["[email protected]alue"], 
           entityType: result["[email protected]ame"] 
          }]); 
      } 

      else if (result["_hc_primaryspecialty_value"] != getFieldValue("hc_primaryspecialtyid")[0].id.replace("{", "").replace("}", "").toString().toLowerCase()) { 
       Xrm.Utility.alertDialog("inside else if"); 
       if (result["_hc_primaryspecialty_value"] == null) { 
        Xrm.Page.getAttribute("hc_primaryspecialtyid").setValue(null); 
       } 
       else { 
        Xrm.Utility.alertDialog("prime spec"); 
        Xrm.Page.getAttribute("hc_primaryspecialtyid"). 
         setValue([ 
          { 
           id: result["_hc_primaryspecialty_value"], 
           name: result["[email protected]alue"], 
           entityType: result["[email protected]ame"] 
          }]); 
       } 
      } 
      else { 

      } 

      Xrm.Utility.alertDialog("after prim spec"); 
+0

Avez-vous pu le déboguer? Des erreurs? –

+0

J'ai été capable de le déboguer et aucune erreur. Il était vraiment bizarre, il a complètement ignoré certaines des conditions. Quelque part, j'ai remédié à cela en ajoutant des instructions else else et qui l'ont forcé à continuer. Ça n'a pas de sens mais ça prend mal. – amberl

Répondre

0

donc pour que je l'obtenir au travail, je devais ajouter vide autre si les conditions .It contraint à continuer et vérifier les autres conditions. Cela n'a aucun sens pour moi, mais je ne pouvais pas trouver une autre façon de contourner le problème.

  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["[email protected]"], 
          entityType: result["[email protected]"] 
         }]); 
       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["[email protected]"], 
           entityType: result["[email protected]"] 
          }]); 
        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["[email protected]"], 
           entityType: result["[email protected]"] 
          }]); 
        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["[email protected]"], 
          entityType: result["[email protected]"] 
         }]); 
       save = true; 
      } 
      else { 

      }