Текущее время: Чт, июл 24 2025, 06:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Активация трансформаций и DTP
СообщениеДобавлено: Ср, апр 01 2009, 10:03 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 28 2008, 08:28
Сообщения: 24
Люди, может кто копался и написал программу которая активирует трансформации и DTP. Обозначьте, пожалуйста, если есть какие-то исследованные моменты: функциональные модули, таблицы, где лежат эти объекты и связи с этими объектами.
В свое время делал такое для уровней агрегации исследовал, готов поделиться готовой программой.


Последний раз редактировалось SVT_ Ср, апр 01 2009, 10:09, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Активация трансформаций и DTP
СообщениеДобавлено: Ср, апр 01 2009, 10:08 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 28 2008, 08:28
Сообщения: 24
*&---------------------------------------------------------------------*
*& Report ZLVLACT
*&
*&---------------------------------------------------------------------*
*& Тарсов С.В. 01.09.2008
*& Активация всех уровней агрегации по инфоисточникам
*&---------------------------------------------------------------------*

REPORT ZLVLACT.


DATA: infprov TYPE V_COMPDIR_COMPIC-INFOCUBE,
it_agglvl TYPE TABLE OF RSPLS_ALVL-AGGRLEVEL,
it_return TYPE TABLE OF BAPIRET2,
c_stat(3),
str_mes TYPE BAPIRET2-message.

FIELD-SYMBOLS: <fs_aggrlvl> TYPE RSPLS_ALVL-AGGRLEVEL,
<fs_message> TYPE BAPIRET2 .

SELECT-OPTIONS: so_iprv FOR infprov OBLIGATORY.

START-OF-SELECTION.
* break starasov.
REFRESH it_agglvl.
SELECT DISTINCT aggrlevel
FROM rspls_alvl
INTO TABLE it_agglvl
WHERE infoprov IN so_iprv AND
objstat EQ 'INA'.

IF sy-subrc EQ 4.
MESSAGE 'Все уровни агрегации активны' TYPE 'S'.
ENDIF.

END-OF-SELECTION.
LOOP AT it_agglvl ASSIGNING <fs_aggrlvl>.

CALL FUNCTION 'RSPLS_ALVL_CHANGE'
EXPORTING
I_AGGRLEVEL = <fs_aggrlvl>
* I_OBJVERS = RS_C_OBJVERS-NEW
* IMPORTING
* E_SUBRC =
TABLES
E_TK_RETURN = it_return
.
c_stat = 'Ok'.
CLEAR str_mes.

READ TABLE it_return WITH KEY type = 'E' ASSIGNING <fs_message>.
IF sy-subrc EQ 0.
c_stat = 'Err'.
str_mes = <fs_message>-message.
ELSE.

CALL FUNCTION 'RSPLS_ALVL_ACTIVATE'
EXPORTING
I_AGGRLEVEL = <fs_aggrlvl>
* IMPORTING
* E_SUBRC =
TABLES
E_TK_RETURN = it_return
.
READ TABLE it_return WITH KEY type = 'E' ASSIGNING <fs_message>.
IF sy-subrc EQ 0.
c_stat = 'Err'.
str_mes = <fs_message>-message.
ENDIF.

ENDIF.

WRITE AT : /(30) <fs_aggrlvl>,
(4) c_stat,
(90) str_mes.

ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Активация трансформаций и DTP
СообщениеДобавлено: Ср, апр 01 2009, 13:05 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 28 2008, 08:28
Сообщения: 24
Таблица трансформаций RSTRAN.
Еще нашел класс CL_RSTRAN_TRFN там есть то что нужно(Конструктор нормальный и метод IF_RSO_TLOGO_MAINTAIN~ACTIVATE) - но не могу я его использовать - тип у него private. В объектном абапе толком не шарю. Как его попользовать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Активация трансформаций и DTP
СообщениеДобавлено: Чт, апр 02 2009, 11:03 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 28 2008, 08:28
Сообщения: 24
Раскопал как это сделать классы CL_RSBK_DTP_COLLECTION для DTP, CL_RSTRAN_TRFN_COLLECTION для трансформаций.
Таблица RSBKDTP заголовок дтп, но там статусы дебильные, таблица RSBKDTPSTAT - статусы дтп.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Активация трансформаций и DTP
СообщениеДобавлено: Чт, апр 02 2009, 11:06 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 28 2008, 08:28
Сообщения: 24
*&---------------------------------------------------------------------*
*& Report ZTRANSFORM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZTRANSFORM.
PARAMETERS object TYPE c LENGTH 40.
DATA: r_transf TYPE REF TO CL_RSTRAN_MAINTAIN,
r_dtp TYPE REF TO CL_RSBK_DTP_COLLECTION,
* CL_RSTRAN_TRFN_COLLECTION
r_exept TYPE REF TO CX_RSTRAN_EXCEPTION,
r_cexept TYPE REF TO CX_RS_ACCESS_ERROR,

l_subrc LIKE SY-SUBRC,
c_stat(3),
t_err(80),
str TYPE string,
it_transf TYPE STANDARD TABLE OF RSTRAN-TRANID,
it_dtp TYPE STANDARD TABLE OF SOBJ_NAME,
b_erdtp TYPE RS_BOOL,
e_dtp TYPE RSO_TH_TLOGO,
t_dtp_c TYPE RSD_T_C30.
FIELD-SYMBOLS: <fs_e_dtp> TYPE RSO_S_TLOGO,
<fs_transf> TYPE RSTRAN-TRANID,
<fs_dtp> TYPE SOBJ_NAME.

START-OF-SELECTION.
break tarasov_s.
b_erdtp = 0.
REFRESH it_transf.
SELECT DISTINCT TRANID
FROM RSTRAN
INTO TABLE it_transf
WHERE OBJSTAT EQ 'INA' AND
( TARGETNAME EQ object OR
SOURCENAME EQ object ).

IF sy-subrc EQ 0.
b_erdtp = 1.
ENDIF.

REFRESH it_dtp.
SELECT DISTINCT a~DTP
FROM RSBKDTP AS a
JOIN RSBKDTPSTAT AS b
ON b~dtp EQ a~dtp
INTO TABLE it_dtp
WHERE b~OBJSTAT EQ 'INA' AND
( a~TGT EQ object OR
a~SRC EQ object ).

IF sy-subrc EQ 0.
b_erdtp = 1.
ENDIF.

IF b_erdtp EQ 0.
MESSAGE 'Нет зависимых трансформаций и DTP' TYPE 'S'.
ENDIF.

END-OF-SELECTION.

WRITE AT : /(34) 'ОБРАБОТКА ТРАНСФОРМАЦИЙ'.

LOOP AT it_transf ASSIGNING <fs_transf>.
c_stat = 'Ok'.
TRY.

CREATE OBJECT r_transf
EXPORTING
I_TRANID = <fs_transf>.
IF r_transf IS BOUND.
CALL METHOD r_transf->EXECUTE
EXPORTING
I_WRKMODE = 'ACTI'
IMPORTING
E_SUBRC = l_subrc.
Free r_transf.
ELSE.
c_stat = 'Err'.
ENDIF.
CATCH CX_RSTRAN_CANCELLED CX_RSTRAN_ERROR_WITH_MESSAGE CX_RSTRAN_DISPLAY_ONLY INTO r_exept.
str = r_exept->IF_MESSAGE~GET_LONGTEXT( ).
t_err = r_exept->if_message~get_text( ).

c_stat = 'Err'.
* break tarasov_s.
ENDTRY.


WRITE AT : /(34) <fs_transf>,
(4) c_stat,
(80) t_err.

ENDLOOP.

TRY.


WRITE AT : /(34) 'ОБРАБОТКА DTP'.

* break tarasov_s.
CREATE OBJECT r_dtp.

LOOP AT it_dtp ASSIGNING <fs_dtp>.

CALL METHOD r_dtp->ADD_TLOGO
EXPORTING
I_OBJNM = <fs_dtp>
IMPORTING
E_NOT_MODIFYABLE = b_erdtp.

IF b_erdtp = 'X'.
WRITE AT : /(32) <fs_dtp>,
(24) 'проблемы при добавлении'.
ELSE.
WRITE AT : /(32) <fs_dtp>,
(10) 'добавлено'.
ENDIF.

ENDLOOP.

WRITE AT : /(34) 'Сохранение DTP'.

CALL METHOD r_dtp->SAVE
IMPORTING
E_TH_TLOGO_ERROR = e_dtp.

LOOP AT e_dtp ASSIGNING <fs_e_dtp>.
WRITE AT : /(42) <fs_e_dtp>-OBJNM,
(25) 'проблемы при сохранении'.
ENDLOOP.

WRITE AT : /(34) 'Активация DTP'.

CALL METHOD r_dtp->ACTIVATE
IMPORTING
E_TH_TLOGO_ERROR = e_dtp
E_T_TABLNM_CNV = t_dtp_c.

LOOP AT e_dtp ASSIGNING <fs_e_dtp>.
WRITE AT : /(42) <fs_e_dtp>-OBJNM,
(25) 'проблемы при активации' .
ENDLOOP.

CATCH CX_RS_EXISTING CX_RS_NOT_FOUND CX_RS_CANCELLED INTO r_cexept.
str = r_cexept->IF_MESSAGE~GET_LONGTEXT( ).
t_err = r_cexept->if_message~get_text( ).


WRITE AT : (80) t_err.

* break tarasov_s.
ENDTRY.


Последний раз редактировалось SVT_ Чт, апр 02 2009, 12:48, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Активация трансформаций и DTP
СообщениеДобавлено: Чт, апр 02 2009, 11:15 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 28 2008, 08:28
Сообщения: 24
Активирует все неактивные трансформации и DTP, по объекту - тех. имя. из которого или в который они настроены.
Трансформации обрабатывал по отдельности через класс CL_RSTRAN_MAINTAIN, не нашел тогда класс CL_RSTRAN_TRFN_COLLECTION, надо в идеале переписать как для DTP. А то если трансформация в запрос не включена на каждую будет спрашивать в какой запрос. Еще в тупую написано, но работает. Пока некогда красоту наводить и доделывать, какие замечания пишите, или может кто перепишет покрасивей - выкладывайте код.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Активация трансформаций и DTP
СообщениеДобавлено: Пт, апр 03 2009, 12:57 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 28 2008, 08:28
Сообщения: 24
*Трансформации и дтп классом коллекции
*&---------------------------------------------------------------------*
*& Report ZTRANSFORM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZTRANSFORM.
PARAMETERS object TYPE c LENGTH 40.
DATA: r_transf TYPE REF TO CL_RSTRAN_TRFN_COLLECTION,
r_dtp TYPE REF TO CL_RSBK_DTP_COLLECTION,
* CL_RSTRAN_TRFN_COLLECTION
r_exept TYPE REF TO CX_RSTRAN_EXCEPTION,
r_cexept TYPE REF TO CX_RS_ACCESS_ERROR,

l_subrc LIKE SY-SUBRC,
c_stat(3),
t_err(80),
str TYPE string,
it_transf TYPE STANDARD TABLE OF SOBJ_NAME,
it_dtp TYPE STANDARD TABLE OF SOBJ_NAME,
b_erdtp TYPE RS_BOOL,
e_dtp TYPE RSO_TH_TLOGO,
t_dtp_c TYPE RSD_T_C30.
FIELD-SYMBOLS: <fs_e_dtp> TYPE RSO_S_TLOGO,
<fs_transf> TYPE SOBJ_NAME,
<fs_dtp> TYPE SOBJ_NAME.

START-OF-SELECTION.
* break tarasov_s.
b_erdtp = 0.
REFRESH it_transf.
SELECT DISTINCT TRANID
FROM RSTRAN
INTO TABLE it_transf
WHERE OBJSTAT EQ 'INA' AND
( TARGETNAME EQ object OR
SOURCENAME EQ object ).

IF sy-subrc EQ 0.
b_erdtp = 1.
ENDIF.

REFRESH it_dtp.
SELECT DISTINCT a~DTP
FROM RSBKDTP AS a
JOIN RSBKDTPSTAT AS b
ON b~dtp EQ a~dtp
INTO TABLE it_dtp
WHERE b~OBJSTAT EQ 'INA' AND
( a~TGT EQ object OR
a~SRC EQ object ).

IF sy-subrc EQ 0.
b_erdtp = 1.
ENDIF.

IF b_erdtp EQ 0.
MESSAGE 'Нет зависимых трансформаций и DTP' TYPE 'S'.
ENDIF.

END-OF-SELECTION.

TRY.
REFRESH: e_dtp, t_dtp_c.

WRITE AT : /(1) ' ', /(34) 'ОБРАБОТКА ТРАНСФОРМАЦИЙ' color 5.

* break tarasov_s.
CREATE OBJECT r_transf.

LOOP AT it_transf ASSIGNING <fs_transf>.

CALL METHOD r_transf->ADD_TLOGO
EXPORTING
I_OBJNM = <fs_transf>
IMPORTING
E_NOT_MODIFYABLE = b_erdtp.

IF b_erdtp = 'X'.
WRITE AT : /(32) <fs_transf>,
(24) 'проблемы при добавлении'.
ELSE.
WRITE AT : /(32) <fs_transf>,
(10) 'добавлено'.
ENDIF.

ENDLOOP.

WRITE AT : /(1) ' ', /(34) 'Сохранение трансформаций' color 5.

CALL METHOD r_transf->SAVE
IMPORTING
E_TH_TLOGO_ERROR = e_dtp.

LOOP AT e_dtp ASSIGNING <fs_e_dtp>.
WRITE AT : /(42) <fs_e_dtp>-OBJNM,
(25) 'проблемы при сохранении'.
ENDLOOP.

WRITE AT : /(1) ' ', /(34) 'Активация трансформаций' color 5.

CALL METHOD r_transf->ACTIVATE
IMPORTING
E_TH_TLOGO_ERROR = e_dtp
E_T_TABLNM_CNV = t_dtp_c.

LOOP AT e_dtp ASSIGNING <fs_e_dtp>.
WRITE AT : /(42) <fs_e_dtp>-OBJNM,
(25) 'проблемы при активации' .
ENDLOOP.

CATCH CX_RS_EXISTING CX_RS_NOT_FOUND CX_RS_CANCELLED INTO r_cexept.
str = r_cexept->IF_MESSAGE~GET_LONGTEXT( ).
t_err = r_cexept->if_message~get_text( ).


WRITE AT : (80) t_err.

* break tarasov_s.
ENDTRY.

* WRITE AT : /(34) 'ОБРАБОТКА ТРАНСФОРМАЦИЙ'.
*
* LOOP AT it_transf ASSIGNING <fs_transf>.
* c_stat = 'Ok'.
* TRY.
*
* CREATE OBJECT r_transf
* EXPORTING
* I_TRANID = <fs_transf>.
* IF r_transf IS BOUND.
* CALL METHOD r_transf->EXECUTE
* EXPORTING
* I_WRKMODE = 'ACTI'
* IMPORTING
* E_SUBRC = l_subrc.
* Free r_transf.
* ELSE.
* c_stat = 'Err'.
* ENDIF.
* CATCH CX_RSTRAN_CANCELLED CX_RSTRAN_ERROR_WITH_MESSAGE CX_RSTRAN_DISPLAY_ONLY INTO r_exept.
* str = r_exept->IF_MESSAGE~GET_LONGTEXT( ).
* t_err = r_exept->if_message~get_text( ).
*
* c_stat = 'Err'.
** break tarasov_s.
* ENDTRY.
*
*
* WRITE AT : /(34) <fs_transf>,
* (4) c_stat,
* (80) t_err.
*
* ENDLOOP.



TRY.
REFRESH: e_dtp, t_dtp_c.

WRITE AT : /(1) ' ', /(34) 'ОБРАБОТКА DTP' color 5.

* break tarasov_s.
CREATE OBJECT r_dtp.

LOOP AT it_dtp ASSIGNING <fs_dtp>.

CALL METHOD r_dtp->ADD_TLOGO
EXPORTING
I_OBJNM = <fs_dtp>
IMPORTING
E_NOT_MODIFYABLE = b_erdtp.

IF b_erdtp = 'X'.
WRITE AT : /(32) <fs_dtp>,
(24) 'проблемы при добавлении'.
ELSE.
WRITE AT : /(32) <fs_dtp>,
(10) 'добавлено'.
ENDIF.

ENDLOOP.

WRITE AT : /(1) ' ', /(34) 'Сохранение DTP' color 5.

CALL METHOD r_dtp->SAVE
IMPORTING
E_TH_TLOGO_ERROR = e_dtp.

LOOP AT e_dtp ASSIGNING <fs_e_dtp>.
WRITE AT : /(42) <fs_e_dtp>-OBJNM,
(25) 'проблемы при сохранении'.
ENDLOOP.

WRITE AT : /(1) ' .', /(34) 'Активация DTP' color 5.

CALL METHOD r_dtp->ACTIVATE
IMPORTING
E_TH_TLOGO_ERROR = e_dtp
E_T_TABLNM_CNV = t_dtp_c.

LOOP AT e_dtp ASSIGNING <fs_e_dtp>.
WRITE AT : /(42) <fs_e_dtp>-OBJNM,
(25) 'проблемы при активации' .
ENDLOOP.

CATCH CX_RS_EXISTING CX_RS_NOT_FOUND CX_RS_CANCELLED INTO r_cexept.
str = r_cexept->IF_MESSAGE~GET_LONGTEXT( ).
t_err = r_cexept->if_message~get_text( ).


WRITE AT : (80) t_err.

* break tarasov_s.
ENDTRY.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Активация трансформаций и DTP
СообщениеДобавлено: Пн, апр 06 2009, 10:20 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вс, июн 26 2005, 22:41
Сообщения: 1135
Откуда: Москва
Пол: Мужской
Смотрите: RS_TRANSTRU_ACTIVATE_ALL и RSAU_UPDR_REACTIVATE_ALL


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Активация трансформаций и DTP
СообщениеДобавлено: Ср, июн 05 2013, 07:59 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 29 2011, 05:52
Сообщения: 36
для активации трансформаций в тестовых и продуктивных системах можно воспользоваться программой RSDG_TRFN_ACTIVATE (нота 1408161)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB