2017-04-05 7 views
1

"GetAttachedDataInformationUCS"コマンドの前にチェーン "BundleClose"にカスタムコマンドを挿入していますが、 "Close"コマンドの後にコマンドを実行しています。 "GetAttachedDataInformationUCS"以外のコマンドの前、後、後に挿入しようとしましたが、常に "閉じる"コマンドの後に実行されます。意図したとおりに動作させるにはどうしたらいいですか?ここでInserted Chain of Commandが正しい順序で実行されていません

_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は次のコマンドで続行されます。本当にコマンドチェーンを解除します。

P.S.オフィシャルジェネシスが提供するソリューションです。

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しかないことがわかります。私の場合、Closeが動作する前にコマンドを入力してください。これらの欠落しているコマンドは後で追加する必要があります。 –

0

なぜ必ず、しかし前にそれを追加しません「閉じる」コマンドが機能しました。

関連する問題