Миньоны — бесплатный пакет стикеров для BBM
2015-12-08 03:45:18
Сегодня, в BBM появился отличный бесплатный пакет стикеров — Миньоны, который ни в коем случае ...
+ развернуть текст сохранённая копия
Сегодня, в BBM появился отличный бесплатный пакет стикеров — Миньоны, который ни в коем случае нельзя пропустить! Для загрузки, вам нужно перейти в магазин BBM по ссылке в конце этой статьи. Скачать бесплатный пакет стикеров Миньоны для BBM
Тэги:
bbm,
новости
BlackBerry закрывает BBM Meetings 10 февраля
2015-12-02 14:21:55
BlackBerry закрывает проект BBM Meetings, предназначенный для онлайн конференций, всего через 15 ...
+ развернуть текст сохранённая копия
BlackBerry закрывает проект BBM Meetings, предназначенный для онлайн конференций, всего через 15 месяцев после того, как он был запущен в ноябре 2014 года. Сервис BBM Meetings, который предлагал клиентам доступ к видео и голосовым конференциям на BlackBerry 10, iOS, Android, Windows и Mac, будет закрыт 10 февраля 2016 года. Расширение приложения обмена сообщениями BBM, BBM Meetings … Читать далее BlackBerry закрывает BBM Meetings 10 февраля →
Тэги:
bbm,
meetings,
новости
Новые функции последней версии BBM в Beta Zone BlackBerry
2015-11-10 20:17:23
В то время как многие получают в свои руки новое устройство от BlackBerry — BlackBerry Priv ...
+ развернуть текст сохранённая копия
В то время как многие получают в свои руки новое устройство от BlackBerry — BlackBerry Priv — те, кто продолжает использовать операционную систему BlackBerry 10, а также имеет доступ к BlackBerry Beta Zone, получили последнюю бета версию BBM. Она приносит некоторые новые функции, такие как возможность отзыва отправленного изображения, реализованную также, как отзыв сообщения в … Читать далее Новые функции последней версии BBM в Beta Zone BlackBerry →
Тэги:
bbm,
новости
Пользовательские задачи 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
Страницы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...