2016-04-28 1 views
1

Ich arbeite in Dynamics CRM 2015 Online und muss eine bedingte Regel auf die Opportunity anwenden, wenn sie zum ersten Mal aus einer Lead-Qualifikation erstellt wird. Unter bestimmten Voraussetzungen müssen wir die Business Process Flow-Stufe automatisch auf die zweite Stufe im Flow vorschieben. Ich habe dies bereits mit Variationen eines Plugins in Opportunity Create versucht, um die Stage-ID festzulegen, aber es scheint, dass jeder Wert, den ich dort einstelle, ignoriert wird, wenn die Opportunity von einem Lead erstellt wird. Im Moment versuche ich eine JavaScript-Funktion während des Opportunity Form OnLoad-Ereignisses auszulösen. Ein Haken hier ist, ich arbeite auch gegen ein Feld, das Geschäft ist erforderlich, aber nicht ausgefüllt, wenn die Opportunity von einem Lead erstellt wird, so kann ich nicht einfach Xrm.Page.data.process.moveNext() im Skript. Stattdessen aktualisiere ich die Opportunity mithilfe der JQuery SDK-Funktion updateRecord, die Teil der CRM SDK-Skripts ist. Hier ist die wichtigen Bits des Codes:Verwenden Sie clientseitiges Skript zum Festlegen der Geschäftsprozessablaufphase für Opportunity in Dynamics CRM

opp = { 
    OpportunityId: oppId, 
    StageId: newProcessStageId 
} 

SDK.JQuery.updateRecord(
    oppId, 
    opp, 
    "Opportunity", 
    function() { 
     // success, refresh the form 
     Xrm.Page.data.refresh(); 
    }, 
    function (error) { 
     alert("An error occurred while updating the opportunity: " + error.description); 
    } 
); 

Dies funktioniert auf die Bühne zu ändern, aber das Problem auf dem Formular ist das Business Process Flow zeigt noch die erste Stufe als die gewählte Stufe, obwohl sie die Fahne bewegt die aktive Phase anzeigt, Stufe 2, wie in diesem Screenshot zu sehen:

enter image description here

nach dem Update kann ich eine Aktualisierung der Formulardaten, aber ich sehe keinen Weg, um die „ausgewählt“ zu setzen Bühne, um die neue aktive Bühne anzupassen. Ich habe die SDK-Dokumente durchsucht und gesucht, konnte aber nichts finden, was dies tun würde. Jede Hilfe wird sehr geschätzt!

Antwort

0

Das erforderliche Feld beim Laden nicht benötigen, um die Bühne zu wechseln. Versuchen Sie dann, zur nächsten Stufe überzugehen.

+0

Als eine Alternative zu dem in meinem ursprünglichen Beitrag beschriebenen Prozess habe ich auch versucht, das erforderliche Feld auf optional zu wechseln, und dann eine 'Xrm.Page.data.process.moveNext () Aber ich bekam ein unerwartetes Verhalten davon. Die Antwort von diesem Anruf war "dirtyForm", obwohl sich nichts anderes geändert hatte. Ich habe versucht, zuerst einen Speicher- und Formular-Refresh zu machen und trotzdem die "dirtyForm" -Antwort zu erhalten. Dieses Verhalten ist aufgrund der SDK-Dokumente, die sich auf diese Funktionen beziehen, nicht korrekt, sodass dies im Moment ebenfalls nicht möglich ist. – AK3800

0

Was passiert, wenn Sie einen Xrm.Utility.openEntityForm() Anruf anstelle einer data.refresh machen? (Übrigens, ich habe auch eine Weile versucht, eine bestimmte Stufe in JS zu setzen, und habe auch noch nichts gefunden. Ich denke, wenn Sie das Formular komplett neu laden und nicht nur die Daten, dann sollte das ausgewählte zum aktiven setzen.)