Я работаю в Unified Service Desk 4.1, и у меня есть требование, при котором мне нужно установить SetFocus на инструментальной панели CRM внутри Unified Service Desk после того, как в диалоговом окне стороннего приложения, размещенного в Unified Service Desk, щелкнуло диалоговое окно. Я хочу сделать следующее:
FireRequestAction(new RequestActionEventArgs("CRM Global Manager", "ShowTab", "Dashboard"));
Я написал размещенный элемент управления для стороннего приложения для отображения его в Unified Service Desk. Кроме того, я написал UII Winform Hosted Control, в котором я получаю дескриптор события нажатия диалогового окна следующим образом:
if (msgBoxButton != null && msgBoxButton.GetSupportedPatterns().Any(p => p.Equals(InvokePattern.Pattern)))
{
Automation.AddAutomationEventHandler(
InvokePattern.InvokedEvent, msgBoxButton, TreeScope.Element,
DialogButtonHandler = new AutomationEventHandler(MessageBoxButtonHandler));
}
private void MessageBoxButtonHandler(object sender, AutomationEventArgs e)
{
MessageBox.Show("Dialog Box clicket from UII Winform at : " + DateTime.Now);
FireRequestAction(new RequestActionEventArgs("CRM Global Manager", "ShowTab", "Dashboard"));
Automation.RemoveAutomationEventHandler(e.EventId, buttonElement, DialogButtonHandler);
}
Я отображаю окно сообщения с диалоговым окном сообщения, которое щелкнуло в следующий раз, простов целях тестирования, что если я смог поймать событие click (которым я являюсь), но по какой-то причине мой FireRequestAction не запускается, а панель мониторинга не фокусируется.
Моя конфигурация Unified Service Desk выглядит следующим образом:
USD Тип компонента: размещенное приложение CCA
Тип размещенного приложения: внешнее размещенное приложение
Адаптер: Использовать адаптер
URI: TestDialogBoxFunctionality (имя сборкиUII Winform Hosted Control)
Тип: TestDialogBoxFunctionality UiiWinformControl (Assembly.ClassName UII Winform Hosted Control)
Внешний URI приложения: DisplayDialogBox.exe (Мое стороннее приложение)