Текущее время: Вс, июл 20 2025, 23:30

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


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

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


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

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