Текущее время: Чт, сен 11 2025, 23:56

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Bex-переменные и User-Exit
СообщениеДобавлено: Сб, янв 28 2006, 23:15 
Ассистент
Ассистент

Зарегистрирован:
Пн, дек 26 2005, 18:23
Сообщения: 42
Проблема такая: хочу ограничить bex-овскую переменную одним значением либо набором значений на основании значения другой переменной. С созданием самой переменной и связи между ними - проблем нет.

В ZXRSRU01 у меня присутствует такой код :

CLEAR L_S_RANGE.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
l_s_range-low = 'MVZ01'.
APPEND l_s_range TO e_t_range.


Когда я запускаю запрос - выскакивает окошко и предлагает мне ввести значение переменной. По умолчанию предлагается нужное мне значение 'MVZ01'. Но когда я нажимаю на плюшку справа от поля ввода (та что вызывает окошко с перечислением доступных для выбора данных) я вижу все остальные значения, которые бы видеть там не хотел. Причём САП позволяет мне выбирать их.
Как сделать так, чтобы и там я мог видеть только нужный мне 'MVZ01'.


И второй вопрос. Как сделать, чтобы переменная могла принимать несколько определённых значений (Допустим MVZ01 и MVZ02 и в окошке отображались бы только они)


Повторюсь - эта переменная - bex'овская и дело происходит в Bex


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 30 2006, 13:11 
Директор
Директор
Аватара пользователя

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 30 2006, 15:58 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2005, 10:34
Сообщения: 99
Откуда: Мытищи
Bkmz написал:
вид переменной несколько отдельных значений, доступный перечень ограничить полномочиями

Проблема-то совсем не в этом...
Функция пользователя для переменных вызывается три раза. Шаг, на котором необходимо произвести обработку, задается в параметре I_STEP.
Надо написать типа
if i_step =1.
код
endif.
I_STEP = 1 выполняется до появления окна переменных ручного ввода и вызывается для каждой переменной, имеющей тип «Программа клиента». На этом шаге можно установить значения переменных по умолчанию.
Вот и все.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Bex-переменные и User-Exit
СообщениеДобавлено: Пн, янв 30 2006, 16:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
stiker написал(а):
Проблема такая: хочу ограничить bex-овскую переменную одним значением либо набором значений на основании значения другой переменной. С созданием самой переменной и связи между ними - проблем нет.

В ZXRSRU01 у меня присутствует такой код :

CLEAR L_S_RANGE.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
l_s_range-low = 'MVZ01'.
APPEND l_s_range TO e_t_range.


Когда я запускаю запрос - выскакивает окошко и предлагает мне ввести значение переменной. По умолчанию предлагается нужное мне значение 'MVZ01'. Но когда я нажимаю на плюшку справа от поля ввода (та что вызывает окошко с перечислением доступных для выбора данных) я вижу все остальные значения, которые бы видеть там не хотел. Причём САП позволяет мне выбирать их.
Как сделать так, чтобы и там я мог видеть только нужный мне 'MVZ01'.


И второй вопрос. Как сделать, чтобы переменная могла принимать несколько определённых значений (Допустим MVZ01 и MVZ02 и в окошке отображались бы только они)


Повторюсь - эта переменная - bex'овская и дело происходит в Bex


никак. только если попробовать заполнять значение переменных результатами другого запроса. Либо скрыть от пользователя то что выбрали перменные и заставить его использовать фильтрацию после выполнения отчета.

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 30 2006, 16:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
vpu написал(а):
Bkmz написал:
вид переменной несколько отдельных значений, доступный перечень ограничить полномочиями

Проблема-то совсем не в этом...
Функция пользователя для переменных вызывается три раза. Шаг, на котором необходимо произвести обработку, задается в параметре I_STEP.
Надо написать типа
if i_step =1.
код
endif.
I_STEP = 1 выполняется до появления окна переменных ручного ввода и вызывается для каждой переменной, имеющей тип «Программа клиента». На этом шаге можно установить значения переменных по умолчанию.
Вот и все.


Не все. после этого пользователь все равно может выбрать ЛЮБОЕ значение из призанака, на котором построена переменная. А то что вы заполняете - это вы фактически программмно заполяете закладку в выборе переменных несколькими значениями . Не более.

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Bex-переменные и User-Exit
СообщениеДобавлено: Пн, янв 30 2006, 20:06 
Ассистент
Ассистент

Зарегистрирован:
Пн, дек 26 2005, 18:23
Сообщения: 42
BW - ник написал:
stiker написал(а):
Проблема такая: хочу ограничить bex-овскую переменную одним значением либо набором значений на основании значения другой переменной.
CLEAR L_S_RANGE.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
l_s_range-low = 'MVZ01'.
APPEND l_s_range TO e_t_range.

Повторюсь - эта переменная - bex'овская и дело происходит в Bex


никак. только если попробовать заполнять значение переменных результатами другого запроса. Либо скрыть от пользователя то что выбрали перменные и заставить его использовать фильтрацию после выполнения отчета.


Похоже что так и есть :(

По ходу у меня возник ещё такой вопрос:
В отчёте я использую 2 переменных. 1-ая ограничивается полномочиями, а вторая - User Exit - должна заполняться на основании того, что ввели в первой переменной.

Это принципиально возможно? Можно узнать значение первой переменной ещё до того, как в окне выбора переменных нажать "выполнить"?
Навскидку при помощи i_step разрулить не удалось... но буду ещё пытаться.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 30 2006, 20:23 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
API_SEMBPS_VARIABLE_GETDETAIL читает значения установленных переменных, если значения не установлены читает значения доступные для выбора.

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 31 2006, 09:54 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
Blizzard написал:
API_SEMBPS_VARIABLE_GETDETAIL читает значения установленных переменных, если значения не установлены читает значения доступные для выбора.


API_SEMBPS_VARIABLE_GETDETAIL читает значения переменных, которые установлены в BPS. Причем тут Bex?

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Bex-переменные и User-Exit
СообщениеДобавлено: Вт, янв 31 2006, 09:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
stiker написал(а):
Это принципиально возможно? Можно узнать значение первой переменной ещё до того, как в окне выбора переменных нажать "выполнить"?
Навскидку при помощи i_step разрулить не удалось... но буду ещё пытаться.


пытайтесь. да поможет вам нота 492504

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 31 2006, 10:13 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
Цитата:
API_SEMBPS_VARIABLE_GETDETAIL читает значения переменных, которые установлены в BPS. Причем тут Bex?

блин...че-то я не в себе...извиняюсь за бред

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 31 2006, 14:40 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 15:04
Сообщения: 215
Откуда: Москва (Старый Оскол)
Всем привет!
Сталкнулся с той же проблемой, есть 3 переменные год, месяц и User-Exit-переменна.
В которую нужно записывать год+мес на конец периода.
т.е. если:
мес = 11
год= 2004
UsEx= 12.2004
или
мес = 12
год= 2004
UsEx= 01.2005

написал вот такой вот код
Code:
data: param_y(4)  type c,
      param_m(2)  type c,
      param_ym(6) type c,
      l_s_range   like RRRANGESID.

CASE I_VNAM.
WHEN 'Z_MG'. " заполняемая переменная
    IF I_STEP = 2. " срабатывает после ввода переменных
      loop at i_t_var_range into param_y where vnam = 'ZYEAR'.
      loop at i_t_var_range into param_m where vnam = 'ZMOHTN_1'.
* если введенный месяц=12 то год+1 и мес 01
      if param_m = '12'.
        param_y = param_y + 1.
        CONCATENATE param_y '01' into param_ym.
      endif.
* если мес<12 то мес+1 год без изменения
      if param_m < '12'.
        param_m = param_m + 1.
        CONCATENATE param_y param_m into param_ym.
      endif.
* записываем в переменную.
      CLEAR L_S_RANGE.
      L_S_RANGE-LOW = param_ym.
      L_S_RANGE-SIGN = 'I'.
      L_S_RANGE-OPT = 'EQ'.
      APPEND L_S_RANGE TO E_T_RANGE.
      endloop.
      endloop.
    ENDIF.
ENDCASE.

И ничего это программа не делает :(
Подскажите как можно её отдебажить, я ставлю точку прерывания,
запускаю отчет в rsrt всё прожовывается без остановки.
Если в rsrt запустить с отладкой и выбрать все галочки то остановки есть но средни них моей нет :\
Подскажите что где не так, я только начал этим User-Exitom заниматься.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Bex-переменные и User-Exit
СообщениеДобавлено: Вт, янв 31 2006, 18:17 
Ассистент
Ассистент

Зарегистрирован:
Пн, дек 26 2005, 18:23
Сообщения: 42
BW - ник написал:
stiker написал(а):
Это принципиально возможно? Можно узнать значение первой переменной ещё до того, как в окне выбора переменных нажать "выполнить"?
Навскидку при помощи i_step разрулить не удалось... но буду ещё пытаться.


пытайтесь. да поможет вам нота 492504


Да, спасибо за наводку!
Только теперь столкунлся с проблемой, как считать то значение переменной, которое вводится руками, чтобы записать его в переменную...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 31 2006, 18:19 
Ассистент
Ассистент

Зарегистрирован:
Пн, дек 26 2005, 18:23
Сообщения: 42
HIman написал(а):
Всем привет!
Сталкнулся с той же проблемой, есть 3 переменные год, месяц и User-Exit-переменна.
В которую нужно записывать год+мес на конец периода.


И ничего это программа не делает :(
Подскажите как можно её отдебажить, я ставлю точку прерывания,
запускаю отчет в rsrt всё прожовывается без остановки.
Если в rsrt запустить с отладкой и выбрать все галочки то остановки есть но средни них моей нет :\
Подскажите что где не так, я только начал этим User-Exitom заниматься.


Поставь прямо в своём коде следующую инструкцию:
Code:
break-point.

и будет тебе останавливаться именно в этом месте


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Bex-переменные и User-Exit
СообщениеДобавлено: Вт, янв 31 2006, 19:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 09:59
Сообщения: 1097
Откуда: Moscow
Пол: Мужской
stiker написал(а):
Только теперь столкунлся с проблемой, как считать то значение переменной, которое вводится руками, чтобы записать его в переменную...


поищите документ в сапнете How to Derive a Variable value from another variable - там все ответы на ваши вопросы

_________________
In SAP we trust !


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Bex-переменные и User-Exit
СообщениеДобавлено: Ср, фев 01 2006, 13:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 15:04
Сообщения: 215
Откуда: Москва (Старый Оскол)
stiker написал(а):
Только теперь столкунлся с проблемой, как считать то значение переменной, которое вводится руками, чтобы записать его в переменную...


Смотри текст программы уже рабочей:
Code:
DATA: L_S_RANGE LIKE RRRANGESID.
DATA: LOC_VAR_RANGE1 LIKE RRRANGEEXIT.
DATA: LOC_VAR_RANGE2 LIKE RRRANGEEXIT.

CASE I_VNAM.
WHEN 'Z_M'. " заполняемая переменная
    IF I_STEP = 2. " срабатывает после ввода переменных
      loop at i_t_var_range into LOC_VAR_RANGE2 where vnam = 'ZYEAR'.
      endloop.
      loop at i_t_var_range into LOC_VAR_RANGE1 where vnam = 'ZMOHTN_1'.
      endloop.
*break-point.
* если мес<12 то мес+1
      if LOC_VAR_RANGE1-LOW < '12'.
        LOC_VAR_RANGE1-LOW = LOC_VAR_RANGE1-LOW + 1.
      endif.
* если введенный месяц=12 то мес 01
      if LOC_VAR_RANGE1-LOW = '12'.
        LOC_VAR_RANGE1-LOW = '01'.
      endif.
* записываем в переменную.
      shift LOC_VAR_RANGE1-LOW LEFT  DELETING LEADING space.
      CLEAR L_S_RANGE.
      L_S_RANGE-LOW = LOC_VAR_RANGE1-LOW.
      L_S_RANGE-SIGN = 'I'.
      L_S_RANGE-OPT = 'EQ'.
      APPEND L_S_RANGE TO E_T_RANGE.
    ENDIF.

WHEN 'Z_Y'. " заполняемая переменная
      IF I_STEP = 2. " срабатывает после ввода переменных
      loop at i_t_var_range into LOC_VAR_RANGE2 where vnam = 'ZYEAR'.
      endloop.
      loop at i_t_var_range into LOC_VAR_RANGE1 where vnam = 'ZMOHTN_1'.
      endloop.
*break-point.
* если введенный месяц=12 то год+1 и мес 01
      if LOC_VAR_RANGE1-LOW = '12'.
        LOC_VAR_RANGE2-LOW = LOC_VAR_RANGE2-LOW + 1.
      endif.
      shift LOC_VAR_RANGE2-LOW LEFT  DELETING LEADING space.
      CLEAR L_S_RANGE.
      L_S_RANGE-LOW = LOC_VAR_RANGE2-LOW.
      L_S_RANGE-SIGN = 'I'.
      L_S_RANGE-OPT = 'EQ'.
      APPEND L_S_RANGE TO E_T_RANGE.
      endif.
ENDCASE.

Напоминаю что хотел добиться.
В Bex-очете руками вводим две переменные год, месяц ZYEAR, ZMOHTN_1
Там же стоят два User-Exit переменные Z_Y, Z_M которые
нужно заполнить следующим образом:
Если
ZMOHTN_1=11 ZYEAR=2004
То Z_M= 12 Z_Y=2004
или
Если ZMOHTN_1=12 ZYEAR= 2004
То Z_M= 01 Z_Y=2005


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

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


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

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


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

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