Текущее время: Пн, июл 21 2025, 06:17

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 17:36 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вс, окт 08 2006, 22:57
Сообщения: 81
Пол: Мужской
@dump

создать копию объекта не всегда хорошо... а иногда очень плохо... может случиться что CONSTRUCTOR создаёт или уничтожает или пытается... реальные объекты из таблиц....

я думал что может есть чтото типа

ASSIGN FIELD ..... OF <FS> TO .... <XX>

только для классов.....

Юрий


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 17:38 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
dump написал(а):
FUNCTION zoopstackklasse1.

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

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 17:45 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
@SY-UNAME
да все работает - никаких дампов - даже в группе функций не надо объявлять класс AUTO

@Juri
Не совсем понял что там может что затереть - никогда не сталкивался - динамическое создание классов используется в системе сплошь и рядом - ничего не затирается - создавать копию конечно не совсем изящно - но и задача извините не совсем стандартая


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 17:49 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
dump написал(а):
@SY-UNAME
да все работает - никаких дампов - даже в группе функций не надо объявлять класс AUTO
Полный пример приведите

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 17:52 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
*&---------------------------------------------------------------------*
*& Report ZYX
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zyx.


*----------------------------------------------------------------------*
* CLASS auto DEFINITION
*----------------------------------------------------------------------*
CLASS auto DEFINITION.
PUBLIC SECTION.
METHODS: get_color EXPORTING ecolor TYPE char10.
METHODS: set_color IMPORTING icolor TYPE char10.
PRIVATE SECTION.
DATA: color TYPE char10.
ENDCLASS. "auto DEFINITION

*----------------------------------------------------------------------*
* CLASS auto IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS auto IMPLEMENTATION.
METHOD get_color.
ecolor = color.
ENDMETHOD. "get_color
METHOD set_color.
color = icolor.
ENDMETHOD. "set_color
ENDCLASS. "auto IMPLEMENTATION

*****************************************************
*****************************************************
*****************************************************

DATA: a TYPE REF TO auto.
DATA: c TYPE char10.

START-OF-SELECTION.

CREATE OBJECT a.
CALL METHOD a->set_color('red').
CLEAR: c.
CALL METHOD a->get_color
IMPORTING
ecolor = c.
WRITE:/ c.
* output will be 'red' and it's OK

*****************************************************
*****************************************************
*****************************************************
CALL FUNCTION 'ZOOPSTACKKLASSE1'.



FUNCTION zoopstackklasse1.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"----------------------------------------------------------------------

FIELD-SYMBOLS: <fs> TYPE ANY.
DATA: lr_auto TYPE REF TO object,
type_ref TYPE REF TO cl_abap_typedescr.
DATA: fsname(30).
fsname = '(ZYX)A'.
ASSIGN (fsname) TO <fs>.

BREAK-POINT.
CALL METHOD cl_abap_typedescr=>describe_by_object_ref
EXPORTING
p_object_ref = <fs>
RECEIVING
p_descr_ref = type_ref.

CREATE OBJECT lr_auto TYPE (type_ref->absolute_name).

DATA: c TYPE char10,
name TYPE char20 VALUE 'GET_COLOR'.

CALL METHOD lr_auto->(name) "get_color "ERROR
IMPORTING "ERROR
ecolor = c. "ERROR


ENDFUNCTION.


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

Зарегистрирован:
Вс, окт 08 2006, 22:57
Сообщения: 81
Пол: Мужской
@dump

может случиться что есть например класс ORDER в SD и когда Вы создаёте копию то будет использован следущий номер для SD-ORDER... даже если не произойдёт ничего плохого при создании копии то номер будет потерян.... и в VBAK будут стоять скажем только нечётные номера.... что не вызовет большого оптимизма в организации....)))))

Юрий


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 18:02 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вс, окт 08 2006, 22:57
Сообщения: 81
Пол: Мужской
@sy-uname

Полный пример из BW.... немного долго описывать... динамический поиск PFAD для INFOSPOKE....
я сделал по другому... всё работает....
но вопрос встал.... ))))

Юрий


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 20:29 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
sy-uname написал(а):
Konstantin Anikeev написал:
Цитата:
fsname = '(ZSTACKKLASSE2)A'.

А что это за "A" на конце?..
Это которое
Code:
DATA: a TYPE REF TO auto.

Понятно :) Как обычно, читаю через строчку :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 01 2008, 09:59 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
quote]
Code:
....

  CALL FUNCTION 'ZOOPSTACKKLASSE1'.



FUNCTION zoopstackklasse1.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"----------------------------------------------------------------------

  FIELD-SYMBOLS: <fs> TYPE ANY.
  DATA: lr_auto TYPE REF TO object,
  type_ref TYPE REF TO cl_abap_typedescr.
  DATA: fsname(30).
  fsname = '(ZYX)A'.
  ASSIGN (fsname) TO <fs>.

  BREAK-POINT.
  CALL METHOD cl_abap_typedescr=>describe_by_object_ref
    EXPORTING
      p_object_ref = <fs>
    RECEIVING
      p_descr_ref  = type_ref.

  CREATE OBJECT lr_auto TYPE (type_ref->absolute_name).

  DATA: c    TYPE char10,
        name TYPE char20 VALUE 'GET_COLOR'.

  CALL METHOD lr_auto->(name) "get_color "ERROR
    IMPORTING "ERROR
      ecolor = c. "ERROR


ENDFUNCTION.

[/quote]
Хммм, насколько я понимаю создается локальный класс, с динамически определенным типом. не получится ни считать данные из исходной программы, ни изменить их.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 01 2008, 11:18 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Boger написал(а):

Хммм, насколько я понимаю создается локальный класс, с динамически определенным типом. не получится ни считать данные из исходной программы, ни изменить их.

Что бы читать данные исходной программы нужно ещё выполнить
Code:
....

lr_auto = <fs>.


_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 04 2008, 13:05 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, мар 13 2006, 10:03
Сообщения: 58
как-то вы все усложняете, у меня вот так работает:
Code:
FUNCTION zoopstackklasse1.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"----------------------------------------------------------------------

  FIELD-SYMBOLS: <fs> TYPE ANY.
  DATA: lr_auto TYPE REF TO object,
  DATA: fsname(30).
  fsname = '(ZYX)A'.
  ASSIGN (fsname) TO <fs>.

  BREAK-POINT.

  lr_auto = <fs>

  DATA: c    TYPE char10,
        name TYPE char20 VALUE 'GET_COLOR'.

  CALL METHOD lr_auto->(name) "get_color "ERROR
    IMPORTING "ERROR
      ecolor = c. "ERROR


ENDFUNCTION.


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

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


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

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


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

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