Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «fon»
Леа в домике 2015-11-18 21:28:32
Леа Салонга сыграет роль Хелен Бекдел в международной премьере мюзикла "Fun Home", которая состоится ...
+ развернуть текст сохранённая копия
Леа Салонга сыграет роль Хелен Бекдел в международной премьере мюзикла "Fun Home", которая состоится в 2016 году в Маниле
Тэги: fun, home, мюзиклы, повсюду
Дети Гамильтона 2015-11-15 13:37:09
Артисты бродвейского мюзикла "Fun Home" рассказывают о судьбе детей Александра и Элизабет ...
+ развернуть текст сохранённая копия
Артисты бродвейского мюзикла "Fun Home" рассказывают о судьбе детей Александра и Элизабет Гамильтонов
Тэги: #ham4ham, 2015-2016, fun, hamilton, home, голубой, мюзикла, огонёк, сезон, соединённые, штаты
Пользовательские задачи Oracle BPM 12c: пример реализации ограничения перечня пользователей для операции "Делегирование" 2015-11-08 09:52:00
По умолчанию задачу в Oracle BPM можно переназначить или делегировать на любого пользователя, роль и ...
+ развернуть текст сохранённая копия
По умолчанию задачу в Oracle BPM можно переназначить или делегировать на любого пользователя, роль и группу. Но можно ограничить этот перечень создав класс в BPM-проекте (в терминах JDeveloper), который реализует интерфейс oracle.bpel.services.workflow.task.IRestrictedAssignmentCallback. Рассмотрим пример в котором нужно ограничить перечень пользователей для операции "Делегирование" следующим образом: - Если исполнителем задачи является группа или роль, то делегировать можно только пользователям из состава этой группы или роли;
- Если исполнителем задачи является пользователь, то делегировать нельзя (пустой перечень доступных для делегирования пользователей).
Пример кода: import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import oracle.bpel.services.workflow.IWorkflowConstants; import oracle.bpel.services.workflow.task.IRestrictedAssignees; import oracle.bpel.services.workflow.task.IRestrictedAssignmentCallback; import oracle.bpel.services.workflow.task.impl.RestrictedAssignees; import oracle.bpel.services.workflow.task.impl.TaskAssignee; import oracle.bpel.services.workflow.task.model.Task; import oracle.tip.pc.services.common.ServiceFactory; import oracle.tip.pc.services.identity.BPMAppRole; import oracle.tip.pc.services.identity.BPMAuthorizationService; import oracle.tip.pc.services.identity.BPMGroup; import oracle.tip.pc.services.identity.BPMIdentityService; import oracle.tip.pc.services.identity.BPMUser; import oracle.bpel.services.workflow.task.model.IdentityType; public class RestrictedAssignmentCallbackImpl implements IRestrictedAssignmentCallback { public IRestrictedAssignees getPermittedAssignees(Task task, Map map, String currentUser, String identityContext, String operation) { List assignees = new ArrayList(); if (operation.equals(IRestrictedAssignmentCallback.OperationType.REASSIGN.toString())) { //TODO реализовать логику для операции "Переназначение" } else if (operation.equals(IRestrictedAssignmentCallback.OperationType.DELEGATE.toString())) { try { BPMIdentityService idenService = getIdentityServiceInstance(identityContext); List<IdentityType> assigneesList = task.getSystemAttributes().getAssignees(); for (IdentityType assignee : assigneesList) { if (IWorkflowConstants.IDENTITY_TYPE_GROUP.equals(assignee.getType())) { List<BPMUser> usersInGroup = idenService.getParticipantsToGroup(assignee.getDisplayName(), true); for (BPMUser user : usersInGroup) { assignees.add(new TaskAssignee(user.getName(), IWorkflowConstants.IDENTITY_TYPE_USER)); } } else if (IWorkflowConstants.IDENTITY_TYPE_APPLICATION_ROLE.equals(assignee.getType())) { List<BPMUser> usersInGroup = idenService.getParticipantsToAppRole(assignee.getDisplayName(), task.getApplicationContext(), false); for (BPMUser user : usersInGroup) { assignees.add(new TaskAssignee(user.getName(), IWorkflowConstants.IDENTITY_TYPE_USER)); } } else if (IWorkflowConstants.IDENTITY_TYPE_USER.equals(assignee.getType())) { // Пустой список return new RestrictedAssignees(new ArrayList(), true); } } } catch (Exception ex) { ex.printStackTrace(); } } if (!assignees.isEmpty()) { return new RestrictedAssignees(assignees, true); } return null; } public List<IRestrictedAssignmentCallback.OperationType> getRestrictedOperations(Task task, Map map, String currentUser, String identityContext) { return Collections.emptyList(); } private BPMAuthorizationService getAuthorizationService(String realmName) { return ServiceFactory.getAuthorizationServiceInstance(realmName); } private BPMIdentityService getIdentityServiceInstance(String realmName) { return ServiceFactory.getIdentityServiceInstance(realmName); } }
Тэги: bpm, fmw, soa, suite
Пользовательские задачи Oracle BPM 12c: Custom Escalation Java Function 2015-11-07 08:49:00
Custom Escalation Java Function указывается в конфигурации задачи для указания по какой логике будет ...
+ развернуть текст сохранённая копия
Custom Escalation Java Function указывается в конфигурации задачи для указания по какой логике будет выполняться эскалация для пользователей и групп ( для ролей не используется!). Custom Escalation Java Function рассмотрим на примере: package oracle.bpel.services.workflow.assignment.dynamic; import java.util.List; import java.util.Map; import oracle.bpel.services.workflow.task.model.Task; import oracle.bpel.services.workflow.assignment.dynamic.DynamicAssignmentException; import oracle.tip.pc.services.common.ServiceFactory; import oracle.tip.pc.services.identity.BPMAuthorizationService; import oracle.tip.pc.services.identity.BPMAppRole; import oracle.tip.pc.services.identity.BPMAuthorizationService; import oracle.tip.pc.services.identity.BPMGroup; import oracle.tip.pc.services.identity.BPMIdentityService; import oracle.tip.pc.services.identity.BPMUser; /* * Обеспечивает эскалацию на владельца задачи. */ public class OwnerEscalation implements IDynamicTaskEscalationFunction { public String defaultUser; @Override public String getTaskEscalationUser(Task task) throws DynamicAssignmentException { String ownerRole = task.getOwnerRole(); String ownerGroup = task.getOwnerGroup(); String ownerUser = task.getOwnerUser(); if (ownerRole != null) { try { BPMAuthorizationService idenService = ServiceFactory.getIdentityServiceInstance(); List<BPMUser> usersInRole = idenService.getParticipantsToAppRole(ownerRole, task.getApplicationContext(), false); if (usersInRole.size() > 0) { // Берём первого пользователя return usersInRole.get(0).getName(); } } catch (Exception ex) { ex.printStackTrace(); } } else if (ownerGroup != null) { try { BPMAuthorizationService idenService = ServiceFactory.getIdentityServiceInstance(); List<BPMUser> usersInGroup = idenService.getParticipantsToGroup(ownerGroup, true); if (usersInGroup.size() > 0) { // Берём первого пользователя return usersInGroup.get(0).getName(); } } catch (Exception ex) { ex.printStackTrace(); } } else if (ownerUser != null) { return ownerUser; } return defaultUser; } @Override public String getTaskEscalationUser(String string) throws DynamicAssignmentException { return defaultUser; } @Override public void setInitParams(Map map) throws DynamicAssignmentException { // Добавляем параметр указывающий на какого пользователя проводить эскалацию, // если владелец задачи (Owner) не указан defaultUser=(String)map.get("DEFAULT_USER"); } @Override public String getFunctionName() { return "OWNER_ESCALATION"; } @Override public String getDescription() { return "Escalation to task owner"; } }
Логика данного примера: Если у задачи определён владелец (Owner), то эскалация будет выполняться на владельца. Иначе, на пользователя указанного в конфигурации как DEFAULT_USER Важно:- Класс должен быть в пакете oracle.bpel.services.workflow.assignment.dynamic.
Установка:- Собрать JAR содержащий класс и положить его в директорию $MW_HOME\soa\soa\modules\oracle.soa.ext_11.1.1
- Запустить ant в директории $MW_HOME\soa\soa\modules\oracle.soa.ext_11.1.1 (вероятно потребуется проинициализировать переменные окружения)
- Перезагрузить soa-сервер для того, чтобы новый класс был доступен серверу (был в classpath).
- Зарегистрировать Task Escalation Function:
- Войти в EM (Enterprise Manager Fusion Middleware Control)
- Перейти в soa-infra -> SOA Administration -> Workflow Properties
- Перейти на закладку Task и добавить наш класс (Add function) следующим образом:
Альтернативный вариант: вместо указанных действий в п.1-2 можно положить скомпилированный класс в директорию $MW_HOME\soa\soa\modules\oracle.soa.ext_11.1.1\classes
Тэги: bpm, fmw, soa, suite
Кольцо Габриэллы 2015-11-04 20:16:50
Новая Маленькая Элисон бродвейского мюзикла "Fun Home" Габби Пиззоло исполняет песню "Ring of Keys"
+ развернуть текст сохранённая копия
Новая Маленькая Элисон бродвейского мюзикла "Fun Home" Габби Пиззоло исполняет песню "Ring of Keys"
Тэги: fun, home, голубой, мюзикла, огонёк, соединённые, штаты
Главная / Главные темы / Тэг «fon»
|
Взлеты Топ 5
Падения Топ 5
|