2017-04-05 8 views
1

"GetAttachedDataInformationUCS"명령 전에 "BundleClose"체인에 사용자 지정 명령을 삽입하고 있지만 "Close"명령 다음에 명령을 실행 중입니다. "GetAttachedDataInformationUCS"가 아닌 다른 명령으로 삽입하기 전에 시도했지만, "닫기"명령 후에 항상 실행됩니다. 의도 한대로 작동하려면 어떻게해야합니까?삽입 된 명령 체인이 올바른 순서로 실행되지 않습니다.

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

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

    public string Name { get; set; } 
} 

잘못된 명령 실행 보여줍니다 로그의 단축 버전입니다 : 여기

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

는 사용자 정의 명령 왜 있는지

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. 공식 Genesys에서 제공하는 솔루션입니다.


ChainBundleClose 

0 GetAttachedDataInformationUCS 
1 UpdateNotePadForVoice 
2 ResetInteractionChatConsultation 
3 IsContactModified 
4 IsPossibleToClose 
5 CompleteDispositionCodeOnBundle 
6 Close 
7 StopInteractionVoiceUCS 
8 GetOutboundPreviewRecord 
+0

this.commandManager.CommandsByName["BundleClose"].Insert(0, new CommandActivator() { CommandType = typeof(InteractionChatDisconnectChatEx) }); 
나는 동의한다. 또한 설명서에는 BundleClose 체인에 많은 명령이 있지만 모듈로드시 ICommandManager.DumpToLog()를 호출하면 체인에 IsPossibleToClose, ValidateEditableDataBundle 및 Close 만 있다는 것을 알 수 있습니다. 내 경우에는 닫기 전에 명령을 가하고. 누락 된 명령은 나중에 추가해야합니다. –

0

을하지,하지만 전에 추가 "닫기"명령이 효과가있었습니다.