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

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


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

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


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

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