J'insère une commande personnalisée dans la chaîne "BundleClose" avant la commande "GetAttachedDataInformationUCS", mais elle exécute la commande après la commande "Fermer". J'ai essayé de l'insérer avant, après et avec des commandes autres que "GetAttachedDataInformationUCS", mais il est toujours exécuté après la commande "Close". Comment puis-je le faire fonctionner comme prévu?

_commandManager.InsertCommandToChainOfCommandAfter("BundleClose", "GetAttachedDataInformationUCS",
    new List<CommandActivator>
    {
        new CommandActivator
        {
            CommandType = typeof(UpdateDispositionDateCommand),
            Name = "UpdateDispositionDateCommand"
        }
    });

Voici la commande personnalisée:

public class UpdateDispositionDateCommand : IElementOfCommand
{
    public UpdateDispositionDateCommand()
    {
        Name = "UpdateDispositionDateCommand";
    }

    public bool Execute(IDictionary<string, object> parameters, IProgressUpdater progressUpdater)
    {
        return false;
    }

    public string Name { get; set; }
}

Voici une version abrégée du journal qui montre l'exécution incorrecte de la commande:

Exe CoC BundleClose -> Name:GetAttachedDataInformationUCS
Exe CoC BundleClose -> Name:UpdateNotePadForVoice 
Exe CoC BundleClose -> Name:ResetInteractionChatConsultation 
Exe CoC BundleClose -> Name:IsContactModified 
Exe CoC BundleClose -> Name:SipEndpointAskClearSEPCalls 
Exe CoC BundleClose -> Name:IsPossibleToClose 
Exe CoC BundleClose -> Name:CompleteDispositionCodeOnBundle 
Exe CoC BundleClose -> Name:ValidateEditableDataBundle 
Exe CoC BundleClose -> Name:Close 
Exe CoC InteractionVoiceBeforeClose -> Name:DoNotCallOutboundChain
Exe CoC InteractionVoiceBeforeClose -> Name:SetCallResultOutboundRecord
Exe CoC InteractionVoiceBeforeClose -> Name:RescheduleOutboundRecord
Exe CoC InteractionVoiceBeforeClose -> Name:UpdateRecordCommand
Exe CoC InteractionVoiceBeforeClose -> Name:MarkProcessedOutboundChainCommand
Exe CoC InteractionVoiceBeforeClose -> Name:RescheduleGMECallback
Exe CoC InteractionVoiceBeforeClose -> Name:SetGMECallbackDisposition
Exe CoC InteractionVoiceBeforeClose -> Name:ClearSessionCommand
Exe CoC InteractionVoiceBeforeClose -> Name:IsContactModified
Exe CoC InteractionVoiceBeforeClose -> Name:SipEndpointClearSEPCalls
Exe CoC InteractionVoiceBeforeClose -> Name:Close
Exe CoC BundleClose -> Name:UpdateDispositionDateCommand
Exe CoC BundleClose -> Name:StopInteractionVoiceUCS
Exe CoC BundleClose -> Name:GetOutboundPreviewRecord
1
Eric Scherrer 5 avril 2017 à 21:30

2 réponses

Meilleure réponse

Il y a un bug sur ce SDK. Je peux le garantir. Je soumets de nombreux tickets sur IWS / WDE sdk. Il y a un bug d'utilisation de la commande à cause de Unity Container. La meilleure façon de le faire en utilisant ceci.

Comme vous pouvez le voir au bas de la page, il y a GetAttachedDataInformationUCS est la commande "0" de la chaîne. Si vous insérez 0, votre commande sera la première. Si vous insérez "1", sera; getattach. -> votre commande -> mise à jour ......

P.S. sur la méthode d'exécution de votre commande, false est continuer avec la commande suivante, true est rompre la chaîne de commande.

P.S. C'est une solution fournie par Official Genesys.

this.commandManager.CommandsByName["BundleClose"].Insert(0,
                    new CommandActivator() { CommandType = typeof(InteractionChatDisconnectChatEx) });

ChainBundleClose 

0 GetAttachedDataInformationUCS
1 UpdateNotePadForVoice 
2 ResetInteractionChatConsultation 
3 IsContactModified 
4 IsPossibleToClose 
5 CompleteDispositionCodeOnBundle 
6 Close 
7 StopInteractionVoiceUCS 
8 GetOutboundPreviewRecord 
1
orhun.begendi 5 avril 2017 à 21:01

Je ne sais pas pourquoi, mais l'ajouter avant que la commande "Fermer" ne fonctionne.

0
Eric Scherrer 5 avril 2017 à 20:13