Сегодня 15 ноября, пятница ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Записки Oracle-ойда
Записки Oracle-ойда
Голосов: 1
Адрес блога: http://stan1slav.blogspot.com/
Добавлен: 2011-07-16 14:20:30 блограйдером stan1slav
Принадлежит блограйдеру stan1slav
 

Резервное копирование Skype-переписки для Windows

2017-01-26 20:28:00 (читать в оригинале)

Давно задумывался об сохранении всей истории переписок в Skype при переустановке ОС или при переходе на новый ноутбук.
На этот счёт есть полезная статья на сайте поддержки Skype - Can I back up my chat history and transfer it from one computer to another?. Но выполнять данные действия вручную для меня не удобно, поэтому сделал скрипт позволяющий автоматизировать данный процесс и сохранять переписку в файловое хранилище (в моём случае Dropbox):

REM Script creation
echo REM Article https://support.skype.com/en/faq/FA392/how-do-i-manage-my-conversation-history-in-skype-for-windows-desktop > BackupSkype.cmd
echo title SkypeBackup >> BackupSkype.cmd
echo SET SKYPE_ACCOUNT_NAME=stanislav.devyatov>>BackupSkype.cmd
echo SET SKYPE_BACKUP_FOLDER=C:\Users\Stanislav\Dropbox\Backup>>BackupSkype.cmd
echo SET 7Zip_HOME="C:\Program Files (x86)\7-Zip">>BackupSkype.cmd
echo taskkill /IM skype.exe >> BackupSkype.cmd
echo sleep 10 >> BackupSkype.cmd
REM Create new file
REM echo %7Zip_HOME%\7z.exe a %SKYPE_BACKUP_FOLDER%\skypeBackup_%date%.zip %SKYPE_BACKUP_FOLDER%\ -mx9>>BackupSkype.cmd
echo %7Zip_HOME%\7z.exe a %SKYPE_BACKUP_FOLDER%\skypeData.zip %SKYPE_BACKUP_FOLDER%\ -mx9 -aoa>>BackupSkype.cmd
echo start skype >> BackupSkype.cmd

REM Copy script
move /Y BackupSkype.cmd %appdata%\Skype\

REM Create task
SchTasks /Create /F /SC DAILY /TN MySkypeBackup /TR “%appdata%\Skype\BackupSkype.cmd” /ST 12:00

Требуется установить 7-Zip и изменить значение полей выделенных желтым.

Ошибка при создании домена по умолчанию в JDeveloper 12.2.1 на платформе Windows 10

2016-03-16 20:51:00 (читать в оригинале)

Ошибка:
 wlst >   
wlst > Initializing WebLogic Scripting Tool (WLST) ...
wlst >
wlst > Welcome to WebLogic Server Administration Scripting Shell
wlst >
wlst > Type help() for help on available commands
wlst >
wlst > Failed to get environment, environ will be empty: (0, u'Failed to execute command ([\'sh\', \'-c\', \'env\']): java.io.IOException: Cannot run program "sh": CreateProcess error=2, \u041D\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044F \u043D\u0430\u0439\u0442\u0438 \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u044B\u0439 \u0444\u0430\u0439\u043B')
wlst >
Error: ADRS_DOMAIN_PASSWORD environment variable not set.
wlst >
wlst >
wlst > Exiting WebLogic Scripting Tool.
wlst >

Варианты решения:
1. Изменить архиве
%JDEVELOPER_HOME%/wlserver/common/wlst/modules/jython-modules.jar следующий файл \Lib\javashell.py (добавленное выделено красным):
   ...
os = str(os or sys.registry.getProperty( "python.os" ) or \
System.getProperty( "os.name" ))
_osTypeMap = (
( "nt", ( 'nt', 'Windows NT', 'Windows NT 4.0', 'WindowsNT',
'Windows 2000', 'Windows 2003', 'Windows XP', 'Windows CE',
'Windows Vista', 'Windows Server 2008', 'Windows 7', 'Windows 8',
'Windows 10', 'Windows Server 2012' )),
( "dos", ( 'dos', 'Windows 95', 'Windows 98', 'Windows ME' )),
( "mac", ( 'mac', 'MacOS', 'Darwin' )),
( "None", ( 'None', )),
)
...

2. Открыть сервисный запрос (SR) в поддержку и получить официальный патч.

Пользовательские задачи Oracle BPM 12c: роли и подразделения пользователей

2015-12-30 16:30:00 (читать в оригинале)

Участником задачи могут быть:
  • пользователь (user);
  • группа пользователей (group);
  • роль пользователей (app.role), в контексте Oracle BPM.
Взаимосвязь между участниками указана ниже:

Орг.единицы (Organization Unit) определяют структуру организации, например:

Важно отметить, что орг.единицы логически связанны только с ролями пользователей (т.е. не для группы пользователей и тем более не для пользователя).

Рассмотрим на примере как работает механизм орг.единиц:

В соответствии со схемой выше, в организации есть 3 бухгалтера по одному в каждом отделении и аналогично 3 инженера в каждом отделении.
Создадим две роли "Бухгалтер" и "Инженер" и три орг.подразделения и добавим в них соответствующих сотрудников. Таким образом получается:
Роль
Пользователь
Организационное подразделение
Бухгалтер
Иванова
Западносибирское отд.
Сидирова
Уральское отделение
Кузнецова
Дальневосточное отд.
Инженер
Петрова
Западносибирское отд.
Алексеева
Уральское отделение
Борисова
Дальневосточное отд.

Создадим простейший BPMN-процесс с одной задачей:

Но данная задача должна назначаться на роль "Бухгалтер" уральского подразделения, для этого добавляем перед назначением задачи добавим script-активность, в которой укажем необходимое орг.подразделение (Process / Predefined Variables / Organization Unit):
Если бы мы не указали орг.подразделение, то задача назначилась на всех участников роли "Бухгалтер", т.е. доступ был бы у 3-х сотредников. 
Так как мы указали орг.подразделение, то задача назначится на того сотрудника роли "Бухгалтер", который входит в указанное подразделение, т.е. Сидорову.

Данная функциональность позволяет сильно сократить количество ролей (без неё потребовалось бы 6 ролей вместо 2).


Пользовательские задачи Oracle BPM 12c: пример реализации ограничения перечня пользователей для операции "Делегирование"

2015-11-08 09:52:00 (читать в оригинале)

По умолчанию задачу в 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);
}
}



Пользовательские задачи Oracle BPM 12c: Custom Escalation Java Function

2015-11-07 08:49:00 (читать в оригинале)

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.

Установка:

  1. Собрать JAR содержащий класс и положить его в директорию $MW_HOME\soa\soa\modules\oracle.soa.ext_11.1.1
  2. Запустить ant в директории $MW_HOME\soa\soa\modules\oracle.soa.ext_11.1.1 (вероятно потребуется проинициализировать переменные окружения)
  3. Перезагрузить soa-сервер для того, чтобы новый класс был доступен серверу (был в classpath).
  4. Зарегистрировать Task Escalation Function:
    1. Войти в EM (Enterprise Manager Fusion Middleware Control)
    2. Перейти в soa-infra -> SOA Administration -> Workflow Properties
    3. Перейти на закладку Task и добавить наш класс (Add function) следующим образом:
Альтернативный вариант: вместо указанных действий в п.1-2 можно положить скомпилированный класс в директорию $MW_HOME\soa\soa\modules\oracle.soa.ext_11.1.1\classes


Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.