Текущее время: Чт, авг 21 2025, 18:06

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


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

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


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

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