Текущее время: Ср, июл 23 2025, 14:13

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Деривация признака callday bi ip
СообщениеДобавлено: Пн, апр 02 2012, 18:57 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 01 2012, 15:22
Сообщения: 154
здравствуйте! нужно изменить логику настройки деривации признака callday. но с абапом не очень дружу. Помогите понять логику простенького кода, пожалуйста!!!

METHOD IF_RSPLS_CR_METHODS~DERIVE.

DATA: l_s_mesg TYPE if_rspls_cr_types=>tn_s_mesg,
B TYPE I,
D TYPE I,
C TYPE STRING,
E TYPE STRING,
FPER TYPE /BI0/OIFISCPER,
DATE3 TYPE /BI0/OICALDAY,
DATE2 TYPE /BI0/OICALDAY,
l_is_valid TYPE rs_bool.

FIELD-SYMBOLS:
<FPERIOD> TYPE /BI0/OIFISCPER,
<DATE1> TYPE /BI0/OICALDAY,
<CMMT> TYPE /BI0/OICMMT_ITEM,
<RES> TYPE /BIC/OIZCONS_REL.

* определяем присвоение признаков
ASSIGN COMPONENT 'FISCPER' OF STRUCTURE C_S_CHAS to <FPERIOD>.
CHECK <FPERIOD> IS ASSIGNED.
ASSIGN COMPONENT 'CALDAY' OF STRUCTURE C_S_CHAS to <DATE1>.
CHECK <DATE1> IS ASSIGNED.
ASSIGN COMPONENT 'CMMT_ITEM' OF STRUCTURE C_S_CHAS to <CMMT>.
CHECK <CMMT> IS ASSIGNED.

FPER = <FPERIOD>.
CONCATENATE FPER(4) FPER+5(2) '01' INTO DATE2.

IF <CMMT> ne 'BB' and <CMMT> ne 'BB_BURDN' and <CMMT> ne 'BB_DEP_SHORT' and <CMMT> ne 'BB_DEP_LONG'.
CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = DATE2
IMPORTING
LAST_DAY_OF_MONTH = DATE3.
DATE2 = DATE3.
ENDIF.

<DATE1> = DATE2.
CLEAR e_t_mesg.
CLEAR e_t_mesg.

ENDMETHOD.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Деривация признака callday bi ip  Тема решена
СообщениеДобавлено: Вт, апр 03 2012, 07:10 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
to Pavlik, что конкретно не понятно? В самом процессе я не силен. По коду - у Вас есть Changing параметр C_S_CHAS(Characteristics combination), из этого параметра считываются значения признаков FISCPER, CALDAY и CMMT_ITEM.
Code:
ASSIGN COMPONENT 'FISCPER' OF STRUCTURE C_S_CHAS to <FPERIOD>.
CHECK <FPERIOD> IS ASSIGNED.
ASSIGN COMPONENT 'CALDAY' OF STRUCTURE C_S_CHAS to <DATE1>.<<<<<<<<<<<<<
CHECK <DATE1> IS ASSIGNED.
ASSIGN COMPONENT 'CMMT_ITEM' OF STRUCTURE C_S_CHAS to <CMMT>.
CHECK <CMMT> IS ASSIGNED.

На основании этих значений происходит проверка на выполнение условия и вычисляется новое значение для признака CALDAY.
Code:
FPER = <FPERIOD>.
CONCATENATE FPER(4) FPER+5(2) '01' INTO DATE2.

IF <CMMT> ne 'BB' and <CMMT> ne 'BB_BURDN' and <CMMT> ne 'BB_DEP_SHORT' and <CMMT> ne 'BB_DEP_LONG'.
CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
EXPORTING
DAY_IN = DATE2
IMPORTING
LAST_DAY_OF_MONTH = DATE3.
DATE2 = DATE3.
ENDIF.

<DATE1> = DATE2. <<<<<<<<<<<


То есть, если нужно поменять логику деривации, то Вам требуется прописать новую логику для вычисления DATE2 и присвоить это значение в <DATE1>.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Деривация признака callday bi ip
СообщениеДобавлено: Вт, апр 03 2012, 10:21 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, мар 01 2012, 15:22
Сообщения: 154
Спасибо!


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

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


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

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


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

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