2017-10-21 1 views
1

Ich schreibe ein JS-Skript, um abzufangen und einige zusätzliche Validierungen durchzuführen, wenn der Benutzer in Dynamic 365 Online zur nächsten Stufe des Geschäftsprozessablaufs wechselte.Wie kann ich feststellen, ob der Benutzer zur nächsten oder vorherigen Phase des Geschäftsprozessablaufs wechselt, wenn das OnStageChange-Ereignis in Dynamic 365 Online ausgelöst wird?

Ich verbinde meine Funktion zu OnStageChange Event von Dynamic 365, aber dieses Ereignis wird nicht nur ausgelöst, wenn ein Benutzer in die nächste Stufe verschoben, sondern auch, wenn er zurück in die vorherige Phase bewegt.

Gibt es eine Möglichkeit zu sagen, ob der Benutzer zur nächsten oder vorherigen Phase übergeht?

+0

Können Sie uns Ihren Code zeigen? – OneNeptune

Antwort

1

Sie müssen Ihren Code für die OnStageChange zu getEventArgs aktualisieren, damit Sie sehen können, ob die getDirection "nächste" oder "vorherige" war.

Ohne Ihren Code zu sehen, kann ich keine spezifische Implementierung empfehlen, aber das beantwortet Ihre Frage.

Unten ist der Link zum weiteren Verständnis, wie `‚Ereignisse OnStageChange zu handhaben:

https://msdn.microsoft.com/en-us/library/gg334481.aspx#BKMK_OnStageChange

+0

Vielen Dank. Ich habe das Dokument überprüft, ich kann nicht glauben, dass ich den Teil über getEventArgs verpasst habe. – tsukumogami

+0

@tsukumogami Wenn dies die richtige Antwort ist, markieren Sie diese bitte, damit Personen mit diesem Problem in der Zukunft eine Lösung finden können. Du bist nicht der Erste, der auf dieses Problem trifft, und wird nicht der Letzte sein! Froh, dass ich helfen konnte! – OneNeptune

1

Dank @OneNeptune ich es geschafft, mein Problem wie folgt gelöst.

const NEXT_STAGE_OPTION = "Next" 

function onAccountFormLoad (context) { 
    context.getFormContext().data.process.addOnStageChange(checkMoveStage); 
} 

function checkMoveStage(context) { 
    var targetStageName = context.getFormContext().data.process.getActiveStage().getName(); 
    var direction = context.getEventArgs().getDirection(); 
    console.log("Move to " + direction + " stage:" + targetStageName); 

    if (direction === NEXT_STAGE_OPTION) { 
     // Perform necessary validation when moving to next stage. 
    } 
} 

Funktion onFormLoad wird onLoad Ereignis von Form gegeben, mit "Pass Ausführungskontext als erster Parameter" Option aktiviert.

Verwandte Themen