Текущее время: Пт, июл 25 2025, 16:14

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot]


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

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