2017-10-21 4 views
1

J'écris un script JS pour intercepter et effectuer des validations supplémentaires lorsque l'utilisateur passe à l'étape suivante du processus de gestion dans Dynamic 365 Online.Comment puis-je savoir si l'utilisateur passe à l'étape suivante ou précédente du flux de processus métier lorsque l'événement OnStageChange est déclenché dans Dynamic 365 Online?

Je lie ma fonction à l'événement OnStageChange de Dynamic 365, mais cet événement n'est pas seulement déclenché lorsqu'un utilisateur passe à l'étape suivante, mais également lorsqu'il revient à l'étape précédente.

Est-ce que c'est le moyen de savoir si l'utilisateur passe à l'étape suivante ou précédente?

+0

Pourriez-vous nous indiquer le code -vis? – OneNeptune

Répondre

1

Vous devrez mettre à jour votre code pour OnStageChange à getEventArgs, cela vous permettra de voir si le getDirection était 'suivant' ou 'précédent'.

Sans voir votre code, je ne peux pas fournir de conseils d'implémentation spécifiques, mais cela répond à votre question.

est le lien ci-dessous pour mieux comprendre comment gérer les événements `OnStageChange »:

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

+0

Merci beaucoup. J'ai vérifié ce document, je ne peux pas croire que j'ai raté la partie sur getEventArgs. – tsukumogami

+0

@tsukumogami Si c'est la bonne réponse, veuillez la marquer afin que les personnes ayant ce problème à l'avenir puissent trouver une solution. Vous n'êtes pas le premier à rencontrer ce problème, et ne sera pas le dernier! Heureux d'avoir pu aider! – OneNeptune

1

Merci à @OneNeptune, j'ai réussi à résoudre mon problème comme suit.

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. 
    } 
} 

Fonction onFormLoad est ajouté à l'événement onLoad de la forme, avec l'option « contexte d'exécution passe comme premier paramètre » vérifié.