Интеграция социальных сетей в BPM: Часть 2. Добавление данных из Twitter в CRM-систему

Проектирование в системе Bonita бизнес-процесса, использующего социальные сети

В этой статье из двух частей показано, как построить приложение для управления бизнес-процессом (business process management - BPM), которое собирает, отображает и использует данные из социальной сети. В первой части говорилось о том, как приложение подключается к Web-сервису Twitter и предоставляет пользователям возможность поиска данных по ключевым словам. Во второй части мы закончим настройку приложения и свяжем его с системой управления взаимоотношениями с клиентами (customer relationship management - CRM), чтобы передать результаты поиска для практического применения в организации.

Билал Сиддикви, внештатный консультант, WaxSys

Билал Сиддикви (Bilal Siddiqui) является инженером-электронщиком, консультантом по XML и соучредителем WaxSys, компании, чья деятельность направлена на упрощение электронного бизнеса. После окончания в 1995 г. Инженерно-технологического Университета, г. Лахор, и получения степени по электронной технике, он начал разрабатывать программные продукты для промышленных систем управления. В дальнейшем он занимался XML и использовал свой опыт в программировании C++ для разработки Web- и Wap-базируемых инструментов для XML-технологий, серверных парсинговых программных продуктов и служебных приложений. Билал – проповедник передовых технологий и часто публикуется в этой области.



23.04.2012

IBM и BPM

IBM уже давно активно работает в области бизнес-процессов, предлагая широкий набор коммерческих инструментов для моделирования, имитации, выполнения, адаптации, контроля и оптимизации бизнес-процессов. В апреле IBM анонсировала Business Process Manager V7.5, существенное обновление своей комплексной платформы BPM. Его выход ожидается в июне 2011 года. А до тех пор следите за деятельностью IBM в области BPM по статьям портала developerWorks.

В первой части этой статьи, состоящей из двух частей, мы рассмотрели функции и архитектуру приложения для поиска данных в социальной сети с использованием BPM-механизма с открытым исходным кодом Bonita. Мы начали строить это приложение:

  • настроив в Bonita коннектор TwitterSearchConnector, который позволяет бизнес-процессу подключиться к Twitter;
  • воспользовавшись Bonita для создания шаблона класса TwitterSearchConnector, содержащего функциональность подключения к Twitter;
  • вручную отредактировав класс TwitterSearchConnector, чтобы он использовал Twitter4J – Java-библиотеку с открытым исходным кодом для работы с API Twitter;
  • протестировав класс TwitterSearchConnector в автономном режиме.

Те, кто не выполнил все шаги по настройке TwitterSearchConnector в части 1, могут просто импортировать в свою установку Bonita файл TwitterSearchConnector.jar из загрузки исходного кода для этой статьи. Выберите пункт Import connector меню Connectors Bonita. Найдите файл TwitterSearchConnector.jar и нажмите кнопку Open, чтобы увидеть в редакторе Bonita полный Java-код TwitterSearchConnector, включая ту его часть, которая была отредактирована вручную в части 1.

Упражнение: IBM BPM в действии

IBM BPM обеспечивает полную видимость и контроль процесса, что имеет решающее значение для организаций, стремящихся выжить и преуспеть в сегодняшней постоянно меняющейся бизнес-среде. Используйте упражнение "IBM BPM в действии" для моделирования и выполнения бизнес-процессов в визуальной среде, не требующей программирования.

В части 2 мы расскажем обо всех действиях, формах и переменных, используемых приложением, и настроим бизнес-процесс приложения. Затем мы присоединим TwitterSearchConnector к бизнес-процессу и протестируем приложение, запустив его в Bonita и выполнив поиск сообщений Twitter по ключевым словам. После этого мы усовершенствуем приложение, настроив его для отображения профиля пользователя Twitter, соответствующего выбранным результатам поиска, и добавления данных этого профиля в CRM-систему.

Бизнес-процесс поискового приложения

В загрузке исходного кода к этой статье есть файл с именем SocialMediaSearchApplication_ProcessFormsAndVariables_1.0.proc. Он содержит все определения процесса, формы и переменные, необходимые для настройки поискового приложения. (Подробные сведения о настройке процессов, форм и переменных в Bonita можно почерпнуть из статьи Bonita для управления бизнес-процессами.) Файл в SocialMediaSearchApplication_ProcessFormsAndVariables_1.0.proc нужно импортировать в свою установку Bonita. Выберите пункт Import на главной панели инструментов Bonita и найдите файл SocialMediaSearchApplication_ProcessFormsAndVariables_1.0.proc, как показано на рисунке 1.

Рисунок 1. Импортирование определений процесса приложения
Скриншот импорта определений процесса приложения в Bonita

Нажмите кнопку Finish. Процесс поискового приложения открывается на панели в окне редактора Bonita, как показано на рисунке 2.

Рисунок 2. Определение процесса поискового приложения
Определение процесса поискового приложения

На рисунке 2 видно, что определение процесса содержит шесть блоков, каждый из которых соответствует действию поискового приложения. Если нажать на любой блок, свойства соответствующего действия появятся под панелью в нижнем правом окне с четырьмя вкладками: General, Application, Appearance и Simulation.

Самый левый блок на рисунке 2 называется Present the search page (Представление страницы поиска). Это действие отображает простую страницу поиска - форму Search Tweets (рисунок 1 в части 1), куда пользователь вводит ключевое слово для поиска. Я настроил одну переменную процесса, searchKeyWord, для хранения ключевого слова, введенного пользователем. Чтобы увидеть переменную searchKeyWord (и другие переменные), щелкните в любом месте панели вне шести блоков и выберите вкладку General в нижнем правом окне, а затем вкладку Data, как показано на рисунке 3.

Рисунок 3. Выбрана переменная процесса приложения searchKeyWord
Скриншот с выбранной переменной процесса приложения searchKeyWord

Второе окно слева на рисунке 2 называется Search messages on Twitter (Поиск сообщений в Twitter). В следующем разделе статьи мы настроим TwitterSearchConnector для связи с этим действием. TwitterSearchConnector получает ключевое слово из формы Search Tweets и передает его в Web-сервис Twitter. Переменная tweetsFound содержит результаты поиска, возвращаемые коннектором TwitterSearchConnector.

Третье действие на рисунке 2 (Display Twitter messages – Отображение сообщений Twitter) отображает результаты поиска (найденные твиты) пользователю, как показано на рисунке 2 в части 1. Как говорилось в части 1, в готовом приложении пользователь сможет выбрать любое сообщение и, нажав кнопку, увидеть профиль отправившего его пользователя Twitter.

Следующее действие (Fetch profile of Twitter user - Выборка профиля пользователя Twitter) использует другой коннектор Bonita (TwitterUserProfileConnector, показанный на рисунке 5 в части 1), который мы настроим позднее. Он подключается к Twitter для извлечения профиля пользователя Twitter. Для этого используются пять входов: две пары ключей безопасности, полученных в части 1, для входа в Web-сервис Twitter и переменная twitterUserName, которая определяет имя пользователя Twitter, чей профиль нужно получить. TwitterUserProfileConnector возвращает семь параметров пользователя Twitter: имя, местонахождение, язык, изображение, адрес Web-сайта пользователя, число последователей в Twitter и описание ― каждый из которых нужно записать в переменную процесса.

Пятое действие (Display Twitter user profile - Показать профиль пользователя Twitter) отображает профиль пользователя Twitter в форме User Profile (рисунок 3 в части 1). Профиль содержит семь атрибутов пользователя Twitter. Форма User Profile позволяет также нажать кнопку и добавить пользователя Twitter в SugarCRM в качестве новой учетной записи.

Последнее действие (самый правый блок на рисунке 2, Add profile to SugarCRM – Добавление профиля в SugarCRM) вводит пользователя Twitter в систему SugarCRM. Для реализации этой функции нужно присоединить коннектор Create Sugar Account (он входит в состав Bonita) к действию Add profile to SugarCRM.


Присоединение TwitterSearchConnector к бизнес-процессу

Теперь можно настроить TwitterSearchConnector на соединение с бизнес-процессом приложения. Мы подключим его к действию Search messages on Twitter.

Щелкните на блоке действия Search messages on Twitter на панели процесса, чтобы отобразить его свойства в нижнем правом окне. Выберите вкладку Connectors на вкладке General, обведенную на рисунке 4 синим овалом.

Рисунок 4. Вкладка Connectors действия Search messages on Twitter
Вкладка Connectors действия Search messages on Twitter

На вкладке Connectors показаны коннекторы, связанные с действием. Сейчас связанных коннекторов нет. Нажмите кнопку Add (на рисунке 4 обведена красным овалом). Откроется диалоговое окно коннектора Select со списком коннекторов, доступных для настройки с этим действием.

Вы увидите коннекторы для многих популярных приложений, таких как Jasper и SugarCRM, расположенных в соответствующих категориях. При настройке TwitterSearchConnector в части 1 мы указали категорию Social. Разверните категорию Social и выберите TwitterSearchConnector, как показано на рисунке 5.

Рисунок 5. Выбор TwitterSearchConnector в категории Social
Скриншот с выбранным TwitterSearchConnector в категории Social

Теперь нужно выполнить следующие действия, чтобы присоединить TwitterSearchConnector к действию Search messages on Twitter.

  1. Ввести описательную информацию для роли TwitterSearchConnector действия Search messages on Twitter.
  2. Ввести в TwitterSearchConnector учетные данные (две пары ключей).
  3. Передать в TwitterSearchConnector ключевое слово из формы Search Tweets.
  4. Настроить переменную tweetsFound для получения результатов поиска из TwitterSearchConnector.

Ввод описательной информации

Нажмите кнопку Next в диалоговом окне Select a connector. Появится диалоговое окно Name the connector, как показано на рисунке 6.

Рисунок 6. Диалог Name the connector
Скриншот диалога Name the connector в Bonita

Заполните следующие поля диалога Name the connector:

  • Name: введите Connection of the search application with Twitter (Подключение поискового приложения к Twitter);
  • Description: введите Pass the search keyword to TwitterSearchConnector and fetch Twitter data (Передача ключевого слова TwitterSearchConnector и получение данных из Twitter);
  • Select event: в этом поле можно указать, когда вызывать TwitterSearchConnector – в начале или в конце действия. Оставьте значение по умолчанию. (Потому что, если нужно связать с действием только одну задачу, не имеет значения, вызывать ли TwitterSearchConnector в начале или в конце.);
  • If connector fails: в этом поле необходимо указать, что должно делать действие Search messages on Twitter в случае ошибки TwitterSearchConnector. Это поле позволяет создавать в Bonita отказоустойчивые приложения. Отказоустойчивость выходит за рамки этой статьи, так что оставьте значение этого поля по умолчанию.

Теперь диалоговое окно Name the connector должно выглядеть, как показано на рисунке 7.

Рисунок 7. Заполненная форма Name the connector
Скриншот заполненной формы Name the connector в Bonita

Нажмите кнопку Next. Появится страница Twitter Search Connector Input Parameters (Входные параметры коннектора поиска Twitter).

Передача TwitterSearchConnector ключей безопасности

Как видно на рисунке 8, нужно ввести две пары ключей (ключ доступа с секретным кодом и маркер доступа с секретным кодом), полученные в части 1.

Рисунок 8. Диалоговое окно для ввода информации безопасности
Скриншот диалога настройки ввода информации безопасности в Bonita

На рисунке 8 есть также поле SearchKeyword.

Загрузка исходного кода для этой статьи содержит файл SecurityKeyValues.txt с копией ключей, полученных из Twitter в части 1. Те, кто не получил ключи безопасности, могут скопировать их в диалог настройки из этого файла. Поле SearchKeyword пока оставьте пустым. После ввода данных безопасности диалог должен выглядеть, как на рисунке 9.

Рисунок 9. Диалог настройки безопасности после ввода данных
Скриншот диалога настройки ввода информации безопасности в Bonita

На рисунке 9 содержание полей ключей безопасности скрыто, а поле SearchKeyword оставлено пустым.

Передача ключевого слова поиска в TwitterSearchConnector

Ключевое слово поиска может меняться при каждом запуске приложения, так что его значение нельзя ввести непосредственно в поле SearchKeyword. Поэтому ключевое слово хранится в переменной searchKeyWord (см. раздел Бизнес-процесс поискового приложения). Выберите searchKeyWord из раскрывающегося списка, чтобы передать эту переменную в качестве пятого входного параметра TwitterSearchConnector, как показано на рисунке 10.

Рисунок 10. Выбор searchKeyWord из раскрывающегося списка
Скриншот выбора searchKeyWord из раскрывающегося списка в Bonita

Настройка переменной tweetsFound для получения выходных данных от TwitterSearchConnector

Нажмите кнопку Next. В новом диалоговом окне нужно поставить выходные данные коннектора в соответствие переменным процесса. Здесь можно указать процессу, какая переменная должна хранить список сообщений, найденных в Twitter коннектором TwitterSearchConnector. Напомним, что твиты, найденные коннектором TwitterSearchConnector, хранятся в переменной tweetsFound.

У TwitterSearchConnector есть только один выход, searchResults (см. листинг 2 в части 1). Он содержит сообщения Twitter, найденные TwitterSearchConnector. SearchResults можно найти в раскрывающемся списке Connector output в левой части рисунка 11.

Рисунок 11. Отображение выхода коннектора на переменную процесса
Скриншот окна отображения выхода коннектора на переменную процесса

Оставьте выбранным searchResults и присвойте его значение переменной tweetsFound из раскрывающегося списка переменной Destination. В результате этого отображения содержимое searchResults (сообщения, найденные в Twitter) будет скопировано в переменную процесса tweetsFound.

Нажмите кнопку Finish. Все, что мы сделали до сих пор, отражено в файле TwitterSearchApplication_CompleteWithTwitterSearchConnector_2.0.proc из загрузки исходного кода.


Отображение сообщений, найденных в Twitter

Мы настроили первые два блока из рисунка 2 (Present the search page и Search messages on Twitter). Теперь нужно настроить третье действие: Display Twitter messages.

Это всего лишь форма, в которой переменная процесса tweetsFound используется для отображения сообщений, найденных в Twitter. Исходный код загрузки содержит файл TwitterSearchApplication_CompleteWithTwitterMessageDisplay_3.0.proc, в котором есть все для настройки переменной процесса tweetsFound. (О проектировании форм с использованием переменных см. в статье Bonita для управления бизнес-процессами.) Импортируйте в Bonita файл TwitterSearchApplication_CompleteWithTwitterMessageDisplay_3.0.proc.

Выполнение поискового приложения

Теперь можно попробовать запустить поисковое приложение. Нажмите кнопку Run (Выполнить) на главной панели инструментов Bonita, как показано на рисунке 12.

Рисунок 12. Кнопка Run на панели инструментов Bonita
Скриншот с кнопкой Run на панели инструментов Bonita

Дождитесь появления в окне браузера формы Search Tweets, как показано на рисунке 13.

Рисунок 13. Форма Search Tweets
Скриншот формы Search Tweets в браузере

Введите ключевое слово, которое вы хотите найти в Twitter, и нажмите кнопку Search. Во второй форме поисковое приложение отображает сообщения, найденные на Твиттере, как показано на рисунке 14.

Рисунок 14. Сообщения, найденные в Twitter
Скриншот формы с сообщениями, найденными в Twitter

Пока поисковое приложение работает только до этого места, потому что мы еще не настроили остальные действия.


Настройка и подключение TwitterUserProfileConnector

Следующая задача ― настройка четвертого действия из рисунка 2 (Fetch profile of Twitter user). Для этого требуется еще один коннектор Twitter, TwitterUserProfileConnector, аналогичный TwitterSearchConnector. Настройте TwitterUserProfileConnector, руководствуясь шагами, выполненными для TwitterSearchConnector.

  1. Воспользуйтесь мастером Connector creation для создания TwitterUserProfileConnector и добавьте описательную информацию.
  2. Настройте пять входных параметров: две пары ключей безопасности для регистрации в Web-сервисе Twitter и переменную процесса twitterUserName с именем пользователя Twitter, чей профиль был выбран.
  3. Настройте семь выходных параметров: имя, местонахождение, язык, путь к изображению профиля, адрес Web-сайта, число последователей пользователя в Twitter и описание.
  4. Поставьте выходные параметры в соответствие переменным процесса profileName, profileLocation, profileLanguage, profilePath2Image, profileWebSiteURL, profileNumFollowers и profileDescription.
  5. Вручную отредактируйте исходный код Java-класса TwitterUserProfileConnector с применением библиотеки Twitter4J. TwitterUserProfileConnector использует метод searchUsers() класса Twitter, вместо метода Twitter.search(), который мы написали вручную на шаге 4 листинга 4 в части 1. Метод searchUsers() возвращает подробную информацию о профиле пользователя Twitter.
  6. Настройте TwitterUserProfileConnector для присоединения действия Fetch profile of Twitter user.

О коннекторе TwitterSearchConnector я уже подробно рассказал выше и не буду повторятьто же для TwitterUserProfileConnector. Аналогично, я не буду демонстрировать процесс настройки для пятого действия (Display Twitter User Profile, которое отображает профиль пользователя), так как это просто форма. Все настройки для пяти действий бизнес-процесса содержатся в файле TwitterSearchApplication_CompleteWithProfileConnectorAndDisplay_4.0.proc в загрузке с исходным кодом. Если импортировать и запустить файл TwitterSearchApplication_CompleteWithProfileConnectorAndDisplay_4.0.proc в Bonita, то можно убедиться, что все три формы, о которых говорилось в начале части 1, теперь функционируют.


Взаимодействие SugarCRM с Bonita

Осталось настроить только последнее действие из рисунка 2 (Add profile to SugarCRM). В нем используется коннектор Bonita Create Sugar Account, который сообщается с SugarCRM через API Web-сервисов (так же, как TwitterSearchConnector сообщается с Twitter через API Web-сервисов Twitter).

Коннектор Create Sugar Account поставляется в комплекте с Bonita и внутренне управляет всеми связями с SugarCRM. Таким образом, достаточно просто применить Create Sugar Account к действию Add profile to SugarCRM.

Прежде чем продолжить, нужно установить SugarCRM на своем компьютере или где-нибудь в сети. (См. описание процесса установки SugarCRM в разделе Ресурсы). На моей машине установлен SugarCRM Community Edition версии 6.1.6 (Build 5860).

Щелкните на блоке действия Add profile to SugarCRM, чтобы отобразить свойства коннектора в нижнем правом окне. Перейдите на вкладку General, а затем выберите вкладку Connectors и нажмите кнопку Add (Добавить). Появится диалоговое окно Select a connector (см. рисунок 5). Разверните категорию SugarCRM и выберите коннектор Create Sugar Account, как показано на рисунке 15.

Рисунок 15. Выбор коннектора Create Sugar Account
Скриншот диалога Bonita для выбора коннектора Create Sugar Account

Нажмите кнопку Next. Появится диалоговое окно Name the connector (см. рисунок 6). Введите в поля Name и Description соответственно Twitter to Sugar connection и Create a new SugarCRM account using the Twitter user. В остальных полях оставьте значения по умолчанию. Теперь диалоговое окно Name the connector должно выглядеть, как показано на рисунке 16.

Рисунок 16. Диалоговое окно Name the connector для коннектора Create Sugar Account
Скриншот заполненной формы Name the connector в Bonita

Нажмите кнопку Next. Теперь Bonita отображает диалоговое окно SugarCRM Configuration с запросом информации о службе SugarCRM, как показано на рисунке 17.

Рисунок 17. Запрос информации об установке SugarCRM
Скриншот диалога SugarCRM Configuration в Bonita

На рисунке 17 видно, что необходимо заполнить четыре поля:

  • Sugar SOAP Port: введите адрес SOAP-сервера, к которому обращается SugarCRM. (О службе SOAP SugarCRM см. в разделе Ресурсы.) SOAP-сервер на моей машине работал по адресу: http://127.0.0.1:8080/sugarcrm/service/v2/soap.php (это значение показано на рисунке 17).
  • User и Password: введите имя пользователя и пароль для входа в SugarCRM.
  • Application name: в качестве имени приложения, подключенного к SugarCRM, введите учетную запись Twitter.

Нажмите кнопку Next. Появится диалоговое окно с запросом входных параметров, как показано на рисунке 18.

Рисунок 18. Входные параметры для коннектора Create Sugar Account
Скриншот диалога для задания входных параметров коннектора Create Sugar Account

На рисунке 18 видно, что для создания учетной записи коннектор Create Sugar Account запрашивает через раскрывающиеся списки три параметра - имя учетной записи, номер телефона и Web-сайт. Профиль пользователя Twitter, полученный через TwitterUserProfileConnector, не содержит номера телефона пользователя Twitter, так что этот параметр предоставить нельзя. Я указал два других параметра - для переменных процесса profileName и profileWebSiteURL. Выберите эти значения из раскрывающегося списка, как показано на рисунке 19.

Рисунок 19. Входные параметры для коннектора Create Sugar Account
Скриншот диалога для задания входных параметров коннектора Create Sugar Account

Нажмите кнопку Next. В следующем диалоговом окне требуется поставить выход коннектора в соответствие переменной процесса. Поисковое приложение ничего не делает с выходом коннектора Create Sugar Account, так что оставьте этот диалог без изменений и нажмите кнопку Finish. Сохраните свое приложение.

Запустите сервер SugarCRM, затем поисковое приложение и пройдите через все три формы. Нажмите кнопку Add to CRM в форме User Profile. Вы увидите, что к SugarCRM добавилась новая учетная запись пользователя Twitter, чей профиль отображается в форме User Profile.


Заключение

Мы показали, как Bonita использует свою среду коннекторов для интеграции бизнес-процессов с внешними приложениями через Web-сервисы. Мы создали свои собственные коннекторы (TwitterSearchConnector и TwitterUserProfileConnector) и использовали коннектор (Create Sugar Account), входящий в состав Bonita. С помощью методов, предложенных в этой статье, вы сможете вносить в свой бизнес-процесс данные из социальных сетей и других популярных приложений, таких как Facebook.


Загрузка

ОписаниеИмяРазмер
Исходный кодj-sb2.zip19 КБ

Ресурсы

Научиться

Получить продукты и технологии

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Технология Java
ArticleID=811443
ArticleTitle=Интеграция социальных сетей в BPM: Часть 2. Добавление данных из Twitter в CRM-систему
publish-date=04232012