Текущее время: Чт, мар 28 2024, 21:02

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




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Первый месяц текущего года
СообщениеДобавлено: Пт, фев 13 2015, 11:29 
Специалист
Специалист

Зарегистрирован:
Ср, авг 06 2014, 09:44
Сообщения: 239
Добрый день!
Подскажите пожалуйста как сделать переменную Первый месяц текущего года? В списке "Обработка через" скорее всего нужно будет выбрать "Программа клиента". А вот на следующей вкладке в списке "Переменная представляет" что нужно выбрать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пт, фев 13 2015, 12:16 
Ассистент
Ассистент

Зарегистрирован:
Ср, фев 10 2010, 15:32
Сообщения: 26
Пол: Мужской
irina_s_210982 написал(а):
Добрый день!
Подскажите пожалуйста как сделать переменную Первый месяц текущего года? В списке "Обработка через" скорее всего нужно будет выбрать "Программа клиента". А вот на следующей вкладке в списке "Переменная представляет" что нужно выбрать?


Что-нибудь вроде этого :

data: l_idx like sy-tabix.
data: zdate(6) type c.
data: zchis(2) type c.
data: zmess(2) type c.
data: zquar(2) type c.
data: zgodd(4) type c.

TYPES: begin of ts_var ,
BE TYPE C LENGTH 4 ,
PERIOD TYPE C LENGTH 6 ,
END of ts_var .

DATA: gs_var TYPE ts_var .

read table l_t_range with key
fieldname = ' '.
l_idx = sy-tabix.
*....
zchis = sy-datum+6(2).
zmess = sy-datum+4(2).
zgodd = sy-datum(4).
if ( zmess = 1 and zchis >= 20 ) or ( zmess = 2 ) or ( zmess = 3 ) or (
zmess = 4 and zchis < 20 ).
zquar = '01'.
endif.
if ( zmess = 4 and zchis >= 20 ) or ( zmess = 5 ) or ( zmess = 6 ) or (
zmess = 7 and zchis < 20 ).
zquar = '02'.
endif.
if ( zmess = 7 and zchis >= 20 ) or ( zmess = 8 ) or ( zmess = 9 ) or (
zmess = 10 and zchis < 20 ).
zquar = '03'.
endif.
if ( zmess = 10 and zchis >= 20 ) or ( zmess = 11 ) or ( zmess = 12 ) or
( zmess = 1 and zchis < 20 ).
zquar = '04'.
endif.

CONCATENATE zgodd zquar into zdate.
*BREAK-POINT.
select single BE PERIOD
from ZNDS_LOCK_PERIOD
into gs_var
where BE EQ '3510' and
PERIOD EQ zdate.

if sy-subrc = '4'.
l_t_range-low = zdate.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-fieldname = 'PERIOD_MAIN'.
l_t_range-iobjnm = 'ZCALQUAR'.
else.
if zquar = '04'.
zquar = '01'.
zgodd = zgodd + 1.
else.
zquar = zquar + 1.
CONCATENATE '0' zquar into zquar.
endif.
CONCATENATE zgodd zquar into zdate.
l_t_range-low = zdate.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-fieldname = 'PERIOD_MAIN'.
l_t_range-iobjnm = 'ZCALQUAR'.

endif.
if l_idx <> 0.
modify l_t_range index l_idx.
else.
append l_t_range.
endif.
p_subrc = 0.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пт, фев 13 2015, 12:42 
Специалист
Специалист

Зарегистрирован:
Ср, авг 06 2014, 09:44
Сообщения: 239
В общем перефразирую свой вопрос. Я создаю переменную с обработкой через программу клиента. Далее в транзакции SE38 нужно найти USER EXIT и там для нее прописать код. Подскажите пожалуйста как найти в транзакции SE38 данный функциональный модуль?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пт, фев 13 2015, 12:42 
Специалист
Специалист

Зарегистрирован:
Ср, авг 06 2014, 09:44
Сообщения: 239
В общем перефразирую свой вопрос. Я создаю переменную с обработкой через программу клиента. Далее в транзакции SE38 нужно найти USER EXIT и там для нее прописать код. Подскажите пожалуйста как найти в транзакции SE38 данный функциональный модуль?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пт, фев 13 2015, 13:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
По Вашему вопросу:
I.
1) Нужно зайти в транзакцию CMOD.
2) Выбрать или создать проект ZCUSTEX (если уже есть может по другому называться).
3) Нажать "Изменить", затем в панели инструментов "Компоненты"
4) Затем два раза щёлкнуть по "EXIT_SAPLRRS0_001"
5) Два раза щёлкнуть по "ZXRSRU01" в строке с "INCLUDE ZXRSRU01."
II. (работает если расширение уже создано)
1) Зайти в SE80
2) Выбрать пакет, в котором Вы работаете
3) Зайти в дереве слева в "Includes"
4) Двойным щелчком выбрать "ZXRSRU01"

ВАЖНО:
На Вашем месте я бы сделал по-другому. Я бы завёл в кубе или ДСО признак "Месяц" и ограничил бы его в отчёте единичкой.
В таком случае настроенный запрос существенно понятнее.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пт, фев 13 2015, 17:36 
Специалист
Специалист

Зарегистрирован:
Ср, авг 06 2014, 09:44
Сообщения: 239
G написал:
По Вашему вопросу:
I.
1) Нужно зайти в транзакцию CMOD.
2) Выбрать или создать проект ZCUSTEX (если уже есть может по другому называться).
3) Нажать "Изменить", затем в панели инструментов "Компоненты"
4) Затем два раза щёлкнуть по "EXIT_SAPLRRS0_001"
5) Два раза щёлкнуть по "ZXRSRU01" в строке с "INCLUDE ZXRSRU01."
II. (работает если расширение уже создано)
1) Зайти в SE80
2) Выбрать пакет, в котором Вы работаете
3) Зайти в дереве слева в "Includes"
4) Двойным щелчком выбрать "ZXRSRU01"

ВАЖНО:
На Вашем месте я бы сделал по-другому. Я бы завёл в кубе или ДСО признак "Месяц" и ограничил бы его в отчёте единичкой.
В таком случае настроенный запрос существенно понятнее.

К сожалению я делаю отчет уже по готовому инфо-провайдеру. Спасибо за помощь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пт, фев 13 2015, 18:39 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
irina_s_210982 написал(а):
К сожалению я делаю отчет уже по готовому инфо-провайдеру.

Я в своё время исправил такой огрех проектирования и во все провайдеры добавил месяц и квартал.
Думаю, Вам в конце концов всё равно потребуется это сделать :).

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пн, фев 16 2015, 15:04 
Специалист
Специалист

Зарегистрирован:
Ср, авг 06 2014, 09:44
Сообщения: 239
G написал:
irina_s_210982 написал(а):
К сожалению я делаю отчет уже по готовому инфо-провайдеру.

Я в своё время исправил такой огрех проектирования и во все провайдеры добавил месяц и квартал.
Думаю, Вам в конце концов всё равно потребуется это сделать :).

Скажите пожалуйста если в добавлю в куб, в котором уже есть данные, временный признак Месяц, данные в кубе нужно будет обновить заново? чтобы рассчитались значения для признака Месяц. Или я просто добавлю этот признак в куб и данные обновятся автоматом.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пн, фев 16 2015, 15:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, окт 11 2005, 12:10
Сообщения: 687
Откуда: Москва
Пол: Мужской
Автоматом не выйдет.
Нужно будет процесс ремоделирования прогнать.
Это быстрее, чем перезагрузить.

Затем все трансформации обновить, чтобы заполнялся признак при загрузке (при планировании будет заполняться сам).

Повозиться придётся, но потом выиграете при построении отчётов.
Например отчёт будет работать, если выбрано два года и они брошены в развёртку.

_________________
Глаза боятся, а руки крюки


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пн, фев 16 2015, 15:28 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, ноя 08 2013, 13:25
Сообщения: 78
Вам необходимо, как вы написали выше, первый месяц текущего года. Т.е. если сейчас 2015 год, то вам необходимо, чтобы переменная имела значение 01.2015, т.е. Январь 2015 года. А, собственно, что вы собрались писать в куб и, самое главное, зачем? Наступит 2016 год и Вам необходимо будет, чтобы переменная принимала уже значение 01.2016.
Возможно, вам необходим первый месяц года, относительно какого-то признака-даты в кубе? Н-р, от даты проводки документа.
К сожалению, вы не указали, какую именно задачу вы собираетесь решить с помощью этой переменной. Возможно, советы были бы конкретнее.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пн, фев 16 2015, 15:48 
Специалист
Специалист

Зарегистрирован:
Ср, авг 06 2014, 09:44
Сообщения: 239
G написал:
Автоматом не выйдет.
Нужно будет процесс ремоделирования прогнать.
Это быстрее, чем перезагрузить.

Затем все трансформации обновить, чтобы заполнялся признак при загрузке (при планировании будет заполняться сам).

Повозиться придётся, но потом выиграете при построении отчётов.
Например отчёт будет работать, если выбрано два года и они брошены в развёртку.

Ну я так и думала, что загрузку заново нужно в куб делать.
Нашла подходящую переменную, которая рассчитывает первый месяц из диапазона. но нашла ее не в BEx а в модуле EXIT_SAPLRRS0_001. В BEx в списке переменных для признака Календарный Год/Месяц я ее не вижу. Как такое может быть? и где искать ее?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пн, фев 16 2015, 15:58 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, ноя 08 2013, 13:25
Сообщения: 78
Предположим, у вас в кубе записи за последние 5 лет. Вы, собираетесь делать, перезагрузку данных. Какой месяц вы бы туда поставили? 01.2015? А как же данные, которые попадали туда в прошлые годы? Запись в куб любого значения, рассчитываемого от текущей даты - это полная бессмыслица.
Вам могут подойти стандартные переменные 0I_CMY01 или 0CYTCM. Ищите их в бизнес содержимом.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пн, фев 16 2015, 16:58 
Специалист
Специалист

Зарегистрирован:
Ср, авг 06 2014, 09:44
Сообщения: 239
irina_s_210982 написал(а):
G написал:
Автоматом не выйдет.
Нужно будет процесс ремоделирования прогнать.
Это быстрее, чем перезагрузить.

Затем все трансформации обновить, чтобы заполнялся признак при загрузке (при планировании будет заполняться сам).

Повозиться придётся, но потом выиграете при построении отчётов.
Например отчёт будет работать, если выбрано два года и они брошены в развёртку.

Ну я так и думала, что загрузку заново нужно в куб делать.
Нашла подходящую переменную, которая рассчитывает первый месяц из диапазона. но нашла ее не в BEx а в модуле EXIT_SAPLRRS0_001. В BEx в списке переменных для признака Календарный Год/Месяц я ее не вижу. Как такое может быть? и где искать ее?

Нашла переменную в BEx, но она мне не подходит так как она переменная-формула. А мне нужна переменная для ограничения признака. В общем для чего это нужно в отчете. Нужно вытащить данные с нарастающим итогом. Для этого я хочу ограничить показатель с одной стороны переменной "Первый месяц текущего года или диапазона" а с другой переменной "Диапазон месяцев". Кстати в отчете в одном запросе, должна быть разбивка по месяцам и одновременно по кварталам? Подскажите пожалуйста как это можно сделать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пн, фев 16 2015, 17:38 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, ноя 08 2013, 13:25
Сообщения: 78
0I_CMY01 или 0CYTCM = диапазон месяцев от начала текущего года до текущего месяца. Это обычные переменные для признаков. Задача у вас самая тривиальная.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Первый месяц текущего года
СообщениеДобавлено: Пн, фев 16 2015, 19:05 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, ноя 08 2013, 13:25
Сообщения: 78
Если вам необходимо данные нарастающим итогом (т.е. апрель=январь+февраль+март и т.д.) и месяца должны быть в колонках, то тут, как мне кажется, только вручную создавать 12 значений в показателях. Можно реализовать не добавляя месяц (0CALMONTH) в куб, а сделать всё в Bex через переменную-замены (для 0CALDAY). Если еще не решили свою задачу - напишу как.


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

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


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

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


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

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