2016-06-16 9 views
2

Ich habe ein Optionsfeld in Dynamics CRM mit zwei Werten: "In Bearbeitung" (Standard) und "Abgeschlossen". Unter Verwendung von JavaScript möchte ich ein Bestätigungsfeld ausgeben, das während des Feldereignisses OnChange ausgelöst wird. Das Bestätigungsfeld warnt den Benutzer, wenn der Benutzer "Abgeschlossen" ausgewählt hat, werden alle anderen Felder im Datensatz gesperrt.Javascript/MS Dynamics CRM 2016: Ändern des Werts des Optionssatzfelds mit dem Bestätigungsfeld

Wie auch immer, ich schrieb meinen Code so, dass das Bestätigungsfeld den Wert der Option festlegen wird. Aus irgendeinem Grund ändert es nicht die Werte des Feldes. Wenn der Benutzer auf "Abgeschlossen" klickt und der Benutzer im Bestätigungsfeld zum Bestätigen und Bestätigen auf "Abbrechen" klickt, wird der Feldwert immer noch auf "Abgeschlossen" gesetzt. Gibt es einen Grund, warum die Feldwerte nicht gesetzt werden? Hier ist mein Code:

function confirmTaskStatus() { 
if (Xrm.Page.getControl("moc_taskstatus").getDisabled()){ 
    var taskStatusValue; 
    var message = "Do you want to set this Task to Completed? 
        You cannot edit, change or add anything to the Project Task fields 
        once it is set to Completed"; 

    if (confirm(message) == true) { 

     taskStatusValue = 223770000; // Display Label = "Completed" 
     Xrm.Page.getControl("moc_taskstatus").setDisabled(true); 

     } else { 

     taskStatusValue = 223770001; // Display Label = "In Progress" 

    } 

    Xrm.Page.getAttribute("moc_taskstatus").setValue(taskStatusValue); 


} 
} 


function saveTaskStatus() { 
window.setTimeout(confirmTaskStatus, 1000); 
} 

Erbarmen Sie sich mit mir; Ich bin noch ziemlich neu im Bereich Scripting und Dynamics CRM.

Antwort

5

Es sieht so aus, als wäre das Steuerelement deaktiviert (indem Sie Ihr Code-Snippet ansehen). Deaktivierte Attribute SubmitMode ist auf false gesetzt, was bedeutet, dass CRM alle Aktualisierungen des Attributs ignoriert, es sei denn, Sie erzwingen, dass CRM es speichert, indem es SetSubmitMode aufruft, nachdem der Wert aktualisiert wurde.

Xrm.Page.getAttribute("moc_taskstatus").setValue(taskStatusValue); 
Xrm.Page.getAttribute("moc_taskstatus").setSubmitMode('always');