• Авторизация


Связь workflow с hosted applications 07-03-2005 01:38 к комментариям - к полной версии - понравилось!


Workflow's definitions are presented in three tables of ContactCenterAIF DB : 1)  все определённые workflows даются в таблице WorkflowsMaster, все определённые шаги (steps) даются в таблице WorkflowStepsMaster, связь между ними, т.е. из каких шагов состоит какой workflow, дается в таблице WorkflowStepMap. Наконец, каждый шаг связан с одной и только одной application через ту же таблицу WorkflowStepsMaster (ксати, что делает непонятным, зачем вообще понадобились steps) .


For example, (assuming clear installation) the following query outputs all  hosted applications that intended to run from workflow 1:


select wsmas.StepID, wsmas.Name as 'Step Name',sequence, apps.ApplicationId, apps.Name
from WorkflowStepMap as wsm
 left join WorkflowStepsMaster as wsmas on wsm.stepid = wsmas.StepID
 left join Application as apps on apps.ApplicationId = wsmas.ApplicationId 
where workflowid = 1
order by sequence asc


Output:


StepID    StepName  sequence   ApplicationId Name


1           Account             0           6                  Accounts
2           Cell Coverage   1           8                  Cell Coverage
3           External App     2           7                  StandaloneTestApp


(3 row(s) affected)


Таким образом мы нашли, что workflow 1 состоит из 3-х шагов, которые будут исполняться в указанной (according to sequence column) последовательности и на каждом шаге будет исполняться соответствующая application. Каждый шаг представлен в Agent Desktop своим именем - StepName column.


 


[показать]


Какие workflows доступны для какого агента, решаеется с помошью таблицы AgentWorkflowACL.


Дальнейший план такой :


1). Каждая hosted application имеет свой initialization string в своей строчке таблицы Application. В зависимости от типа приложения он несколько меняет форму, но главное в том, что для каждой application, соотвеветствующей исполняемому из workflow шагу, AgentDesktop из нее может узнать во-первых, где найти hosed application и где выводить ее UI. Понятно, что от самой hosted application требуется поддержка некоторого протокола, согласно которому AgentDesktop сможет с ней разговаривать. Таким протоколом является IHostedApplication interface и его реализация в классe HostedControl (в HostedApplication.dll assembly). Т.о. на этом шаге становится понятным как разрабатывать hosted appilcations - имплементируя IHostedApplication - и как установить разработанный assembly into AgentDesktop.


2). AzMan. Попытка выполнить workflow без предварительной кохфигурации AzMan, дает примерно такой результат :


[показать]


Именно AzMan занимается управлением указанного здесь 'access to the hosted applications'. AzMan (в файле AzManCCF.xml) представляет собой Authorization Store. Введение в тему можно найти здесь. Непосредствено к нему обращается лишь ContactCenterAIF Web Service, в web.config которого и нужно внести путь к самому файлу


<

add key="AzManStore" value="

msxml://C:InetpubwwwrootContactCenterAIFAzManCCF.xml

"
/>

Authorization Manager MMC snap-in используется для добавления groups и их назначения to scopes. Scopa'ми в данном случае являются applications, один к одному из таблицы Application. В Agents group добавляют CCSUsers group  и потом назначают RoleAssignment для каждой желаемой application (scope).  Существует еще опция редактирования AzMan через LDAP, но ее мы пока оставим в стороне.


В любом случае, после Role Assignment, выполним метод GetApplications из ContactCenterAIF.Application.asm WebService. Если посмотреть на его результаты внимательно, можно понять, что он делает - выбираются строки из таблицы Application (stored procedure GetAllApplications2) и для каждой из них проверяется authorization в AzManCCF. Сама выглядит примерно так :

IAzClientContext ctx;IAzScope scope = m_AzManApplication.OpenScope(<ApplicationName>, null);if( scope != null ){ Array roles = (Array)ctx.GetRoles(<ApplicationName>, scope.Name); if( roles.GetLength(0) > 0 ) isAuthorized = true;}

В следующем утверждении я не уверен, но по-моему, те applications, у которых Type = 1, автоматически подсоединяются к имени customer в AgentDesktop :

[показать]
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Связь workflow с hosted applications | Oleg_Kleiman - Soft kibitzing | Лента друзей Oleg_Kleiman / Полная версия Добавить в друзья Страницы: раньше»