2017-04-05 80 views
1

我在「GetAttachedDataInformationUCS」命令之前在「BundleClose」鏈中插入自定義命令,但它在「關閉」命令後執行該命令。我曾嘗試在「GetAttachedDataInformationUCS」之前,之後和之後插入它,但它總是在「Close」命令後執行。我如何才能按預期工作?插入的命令鏈執行順序不正確

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

下面是自定義命令:

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

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

    public string Name { get; set; } 
} 

這裏是日誌的縮短版,顯示不正確的命令執行:

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

該SDK存在錯誤。我可以保證。我提交了許多關於IWS/WDE sdk的票。由於Unity Container,有命令使用錯誤。最好的方式來使用這個。

正如你可以看到在頁面底部有GetAttachedDataInformationUCS是鏈的「0」命令。如果你插入0,你的命令將是第一個。如果你插入「1」,將是; getattach。 - >你的命令 - >更新......

P.S.在你的命令的執行方法上,false是繼續下一個命令,true是打破命令鏈。

P.S.它由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 
+0

我同意。另外文檔說BundleClose鏈中有一堆命令,但是如果在模塊加載時調用ICommandManager.DumpToLog(),您將會看到該鏈只有IsPossibleToClose,ValidateEditableDataBundle和Close。在我的情況下,在關閉工作之前放置該命令。那些丟失的命令必須稍後添加。 –

0

不知道爲什麼,但在此之前將它添加「關閉」命令起作用。

相關問題