Wiki Infinity X Описание на интеграционния модул
Infinity X интеграционен модул Версия
Този документ описва как да се решат основните проблеми на интеграцията с "Infinity X" в съответствие с моделите на First-Party и Third-Party. Използвани технологии: COM/ActiveX и .NET.
- Интеграционни модели
- Интеграционни технологии
- Принципът на интеграция
- Примери за решаване на типични задачи
- Осъществяване на изходящо повикване
Интеграционният модел First - Party предполага управление на системата от първо лице, т.е. извършва всички действия от името на определен оператор. По правило този модел се използва при интегриране на работни места на различни информационни системи с Infinity X.
Моделът Third - Party ви позволява да управлявате системата от трета страна, т.е. извършва операции от името на всички оператори. По правило този модел се използва при интегриране на сървър на информационни системи с Infinity X.
Използването на визуални форми на ActiveX е възможно само в модела First-Pary.
И двата модела на интеграция включват използването на една от двете технологии: COM / ActiveX или . NET.
COM технологията позволява използването на всеки език за програмиране за достъп и управление на системни обекти. ActiveX технологията ви позволява да вградите визуални инструменти Infinity X в информационна система. По-специално, тези технологии са удобни за използване при интегриране на Infinity X с платформата 1C, Lotus Notes, Excel и др.
Пример за вграждане на интерфейси Infinity в Excel с помощта на ActiveX
технология . NET включва интеграция с помощта на инструменти за разработкасофтуер, поддържащ платформа. NET рамка. Обикновено това е Microsoft Visual Studio (езици C#.NET, VB.NET, C++.NET), както и Embarcadero/Borland Delphi.
Взаимодействието на информационната система с Infinity X се състои от следните стъпки:
1. Подготвителни операции
а. Инициализация на интеграционния модул
° С. Получаване на необходимите интерфейси за решаване на конкретни проблеми
2. Основно съдържание
а. Взаимодействие с интерфейси (получаване на информация и извършване на операции)
3. Изключване
а. Прекъсване на връзката със сървъра Infinity X
b. Освобождаване на ресурси
За да използвате технологията COM/ActiveX, трябва:
- Инсталирайте работна станция Infinity X
- Регистрирайте COM обекти (изпълнете файла register.bat)
- Създайте COM обект "Cx.Integration.Core"
За да използвате .NET технологията, трябва:
- Инсталирайте работна станция Infinity X
- Създайте проект, базиран на .NET Framework 4.0
- Свържете следните модули към проекта:
- Създайте екземпляр на конектора "Infinity X".
Примери за решаване на типични проблеми
1. Осъществяване на изходящо повикване
Задача: когато работното място на оператора с вътрешен номер "101" работи, свържете се със сървъра в режим на трета страна и осъществете изходящо повикване от негово име на номер "84956411010".
Пример за използване на COM технология (съдържанието на файла MakeCall.vbs, който може да се изпълни чрез командния ред на Windows):
Задайте Srv = CreateObject("Cx.Integration.Core")
LogonResult = Srv.LogonEx("IntegrationUser", "1234", "20000", "192.168.200.101", 10010)
Ако (Не е Srv.IsConnected) Тогава
Задайте CallManagement =Srv.GetCallManagement("101")
Пример за използване на .NET технология (в C#):
private void button1_Click(изпращач на обект, EventArgs e)
фабрика = AgatInfinityConnectorManager .GetAvailableFactory().FirstOrDefault(item => item.FactoryName == "Infinity X" );
ако (фабрика == нула)
хвърля ново изключение ("Factory Infinity X не е намерен");
конектор = factory.CreateInstance( това);
connector.Connected += нов EventHandler(connector_Connected);
connector.Connect( "Вход:\"IntegrationUser\" Парола:\"1234\" Адрес на сървъра:\"192.168.200.101\" ServerPort:10010 BiDir" , true );
void connector_Connected( обект подател, EventArgs e)
използвайки (ICallManagement callManagement = connector.GetCallManagement( "101") ))
Подробно описание на основните интерфейси и функции
публичен интерфейс ICxIntegrationCore
/// ID на екземпляр на ядрото (използван при показване на ActiveX формуляри)
низ Core >get ; >
/// Задайте режим на обработка на изключение
True - изключенията са активирани, False - деактивирани
void SetUseExceptions( bool Value);
/// Описание на последната грешка
/// Подробно описание на последната грешка
/// Свържете се със сървъра
void Connect(stringConnectionString);
Роля "20000" - Администратор, "20004" - Оператор, "20010" - Трета страна
/// 1 - успех, останалите - код на грешка (вижте LogonResult)
int LogonEx( низ Вход, низ Парола, низ Роля, низ ServerAddress, int ServerPort);
/// Излез от профила си
/// Прекъснете връзката със сървъра
/// Връща състоянието на текущата връзка към сървъра
низ LogonResultToString( int резултат);
///Вземете интерфейс за управление на обажданията
Вътрешният номер на абоната, чиито връзки желаете
/// управление (FirstParty). Ако е празно - получаваме интерфейс за управление на всички разговори
/// Интерфейс за управление на повикванията
IComCallManagement GetCallManagement(разширение на низ);
/// Вземете интерфейса за достъп до информация за разговори, връзки и сесии
/// Интерфейс за достъп до информация за разговори, връзки и сесии
/// Вземете потребителски интерфейс за управление
/// Интерфейс за управление на потребителя
/// Вземете интерфейс за управление на кампании
/// Интерфейс за управление на кампанията
AgatInfinityConnector. ICampaignsManagement GetCampaignsManagement();
/// Вземете помощен интерфейс
AgatInfinityConnector. IUtilsManager GetUtilsManager();
/// Принудително събиране на настройките на инструмента и тяхното запазване в работния плот.
/// Връща дали настройките са били успешно запазени.
/// Настройките може да не бъдат запазени поради следните причини:
/// Нулирайте работния плот от администратор,
/// Грешка при записване,
/// Методът е предназначен да нулира настройките на инструмента, преди да бъдат създадени.
void GetVersion( out int Ver1, out int Ver2, out int Ver3, out int Ver4);
/// Вземете стойността на генератора за работа с базата данни (Int64)
/// Обработчици на събития за скриптови езици
публичен интерфейс ICxIntegrationCoreEvents
// Извиква се преди да се създаде безмоден прозорец
// Чрез Info.HostID трябва да върнете ID на HostCtrl, в който ще бъде показан прозорецът
void BeforeCreateTool(IToolDescr ToolInfo, информация за обект);
// Събитие: 1 - Създай - прозорецът е създаден
// 2 - Унищожи - прозорецът е затворен
// параметри- не се използва
void ToolStateChanged(IToolDescr ToolInfo, int Event, object Params);