Написал небольшой скрипт для автоматизации установки прав доступа на элементы. Скрипт будет работать без перезапуска Hyperion Planning
Используем bash для получения данных и формирования SecFile.txt для утилиты ImportSecurity.cmd
Для начала создадим конф файл для установки прав доступа - access_mode.cfg :
once:1400:08.06.2014:Application1:Regional_1:READ
once:1800:09.06.2014:Application2:Regional_2:WRITE
Код скрипта, как обычно комментарии по ходу
Если статья была вам полезна - кликните на баннер или кнопку Donate :)
Используем bash для получения данных и формирования SecFile.txt для утилиты ImportSecurity.cmd
Для начала создадим конф файл для установки прав доступа - access_mode.cfg :
once:1400:08.06.2014:Application1:Regional_1:READ
once:1800:09.06.2014:Application2:Regional_2:WRITE
Код скрипта, как обычно комментарии по ходу
#!/bin/bash # Получаем данные из базы о текущем элементе для формирования SecFile function extract() { group=`$ORACLE_HOME/BIN/sqlplus -S -L $ora_user/$ora_pass@$oracle_sid << EOF | iconv -f utf-8 -t cp1251 set echo off set timing off set heading off set linesize 3000 set verify off set termout on set pages 50000 SET FEEDBACK OFF select * from ( (select g.name || '|' || o.object_name || '|' || decode (a.flags, 0, 'MEMBER', 5, '@ICHILDREN', 6, '@ICHILDREN', 8, '@DESCENDANTS', 9, '@DESCENDANTS', 'ERROR') as "FLAGS" from $application.hsp_object o, $application.hsp_access_control a, $application.hsp_group c, h11.css_groups g where upper(o.object_name)=upper('$element_name') and o.object_id=a.object_id and a.user_id=c.group_id and c.sid=g.identity_id) union all (select u.name || '|' || o.object_name || '|' || decode (a.flags, 0, 'MEMBER', 5, '@ICHILDREN', 6, '@ICHILDREN', 8, '@DESCENDANTS', 9, '@DESCENDANTS', 'ERROR') as "FLAGS" from $application.hsp_object o, $application.hsp_access_control a, $application.hsp_users d, h11.css_users u where upper(o.object_name)=upper('$element_name') and o.object_id=a.object_id and a.user_id=d.user_id and d.sid=u.identity_id) ); EOF ` # Формируем SecFile из полученных данных echo "$group" | sed -e '/^$/d' |while read count; do member=$(echo $count | awk -F"|" {'print $1'} ) status=$(echo $count | awk -F"|" {'print $3'} ) echo "\"$member\",\"$element_name\",$access_mode,$status" >> SecFile.txt done } # Get Current Time current_time=$(date +'%H%M') current_date=$(date +'%d.%m.%y') current_day="$(echo $current_date | awk -F'.' {'print $1'} )" current_month="$(echo $current_date | awk -F'.' {'print $2'} )" # получаем путь до скрипта path=$(dirname $(readlink -e "$0")) # переходим в папку с утилитами Hyperion Planning cd $(cygpath -u "E:\Oracle\Middleware\user_projects\epmsystem1\Planning\planning1") # Чистим файл :> SecFile.txt # Парсим конф файл, проверяем даты запуска cat "$path"/access_mode.cfg | grep -v "#" | while read element; do operation_type="$(echo $element | awk -F':' '{print $1}')" launch_time="$(echo $element | awk -F':' '{print $2}')" ### launch_date="$(echo $element | awk -F':' '{print $3}')" launch_day="$(echo $launch_date | awk -F'.' '{print $1}')" launch_month="$(echo $launch_date | awk -F'.' '{print $2}')" ### application="$(echo $element | awk -F':' '{print $4}')" element_name="$(echo $element | awk -F':' '{print $5}')" access_mode="$(echo $element | awk -F':' '{print $6}')" if [ "$current_time" -eq "$launch_time" ];then if [ "$current_day" -eq "$launch_day" ];then if [ "$launch_month" -eq "$current_month" ];then extract # Запускаем импорт Security из заранее сформированного файла ./ImportSecurity.cmd -f:"pass.txt" "$application, hyperion" fi else echo "No Tasks for Date: $current_day" fi else echo "No Tasks for Time: $current_time" fi done
Если статья была вам полезна - кликните на баннер или кнопку Donate :)
Комментариев нет:
Отправить комментарий