Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: jacknk88 от Октябрь 09, 2012, 07:49:50 am

Название: вызов шаблон метода
Отправлено: jacknk88 от Октябрь 09, 2012, 07:49:50 am
можно ли как-нибудь вызвать шаблон метода: например, есть класс cl_abap_random_int - генератор случайных чисел и у него есть два метода: CREATE и GET_NEXT...для вызова метода GET_NEXT:
Код: You are not allowed to view links. Register or Login
CALL METHOD cl_abap_random_int=>create
    EXPORTING
        seed = CO_SEED
        min = lv_min
        max = lv_max
    RECEIVING
        prng = lo_prng.

CO_SEED - начальное значение;
lv_min - Нижний предел диапазона значений (минимум: -2147483648 - это мин. знач. типа i);
lv_max - верхний предел диапазона значений (макс.: 2147483647 - это макс. знач. типа i);
lo_prng - ???
но как прописать метод GET_NEXT ???
например, чтобы вызвать функцию нажимаем кнопку "Модель" и в пункте "CALL FUNCTION" пишем имя функции...появляется шаблон..как сделать тоже самое с методом?


кстати, я нашел еще вот это
Код: You are not allowed to view links. Register or Login
CALL FUNCTION 'SXMS_CREATE_RANDOM_NUMBER'
* EXPORTING
*   MESSAGEGUID         =
* IMPORTING
*   RANDOM_NUMBER       =
          .
[code]
что лучше? и как он работает (мин и макс значения здесь вроде не пропишешь(()?
Название: Re: вызов шаблон метода
Отправлено: Uukrul от Октябрь 09, 2012, 08:17:47 am
Да точно так же, под шаблоном функции, есть кнопка шаблон абап объекта, выбираете ее и нажимаете Ок, после этого откроется окно шаблона ввола данных объекта. Кстати, вполне возможно ваш объект в конечном итоге вызывает этот же функциональный модуль.
Название: Re: вызов шаблон метода
Отправлено: jacknk88 от Октябрь 09, 2012, 08:36:14 am
Код: You are not allowed to view links. Register or Login
CALL METHOD me->GET_NEXT
  RECEIVING
    VALUE  =
    .

что такое me ?
в чем разница вызова каторый я написал выше и
Код: You are not allowed to view links. Register or Login
data: lo_prng type ref to cl_abap_random_int,
        lv_i   type i.
       
lo_prng = cl_abap_random_int=>create( min = 5 max = 25 seed = 5).

do 20 times.
lv_i = lo_ran->get_next( ). 
write / lv_i.
enddo.

что возвращает метод CREATE
prng = lo_prng - это что?
и поле seed = CO_SEED - это вроде как начальное значение но не понятно зачем оно если метод не выдает его первым???