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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Как получить содержимое внутренней таблицы программы?
СообщениеДобавлено: Пн, сен 04 2006, 17:31 
Гуру-модератор
Гуру-модератор

Зарегистрирован:
Ср, окт 05 2005, 12:13
Сообщения: 2032
Откуда: Москва
Пол: Мужской
Вобщем ситуация такая:
Есть отчет который я пишу - ZR1. Есть отчет ZR2, который можно запустить. Отчет ZR2 заполняет свою внутренную таблицу T2. Нужно получить содержимое этой таблицы в отчете ZR1.

Условия:
1) Отчет ZR2 править нельзя
2) В настоящий момент выполняется отчет ZR1.
3) Отчет ZR2 в настоящий момент не выполняется, но его можно вызвать из основной программы используя submit, call transaction...
4) Содержимое таблицы T2 необходимо получить и сохранить во внутренней таблице Т1 отчета ZR1.

_________________
Наверное, Боги сошли с ума.


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

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
1. Скопировать отчет ZR2 в другой отчет (например ZR3) и подправить.
2. Посмотреть, может нужная табличка формируется в каком нить form .. endform. - и вызвать эту подпрограмму из ZR1.

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 04 2006, 18:58 
Специалист
Специалист

Зарегистрирован:
Чт, июн 23 2005, 18:05
Сообщения: 119
При использовании SUBMIT - никак (если там не прописан экспорт в память).
Можно попробовать вызвать из прги ZR1 подпрограмму формирования таблицы T2 (если она там есть):
perform fill_t2(ZR2) Using ... Предварительно создав входные переменные.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 04 2006, 21:24 
Гуру-модератор
Гуру-модератор

Зарегистрирован:
Ср, окт 05 2005, 12:13
Сообщения: 2032
Откуда: Москва
Пол: Мужской
Дело в том, что на месте ZR2 может быть много различных отчетов, и хотелось бы иметь некое универсальное средство вне зависимсти от их конструктивных особенностей.
Нужно это для тестирования корректности работы отчетов.

_________________
Наверное, Боги сошли с ума.


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

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Используй assign через глобальную адресацию. Самый универсальный способ. Еще и стандартный :)


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

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
:) Я бы реализовал во всех отчетах паттерн ПабликМорозоф, который бы сливал значения переменных, таблиц и т.д. из выполняемого отчета по заранее определенному протоколу в память или БД. (раз стоит задача "ваааще тестировать отчеты")

Или воспользоваться "вульгарным" отладчиком :).

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 05 2006, 07:47 
Специалист
Специалист

Зарегистрирован:
Пт, июн 16 2006, 11:39
Сообщения: 178
Откуда: Москва
Воспользуйтесь советом
Виктор(Минск) написал:
2. Посмотреть, может нужная табличка формируется в каком нить form .. endform. - и вызвать эту подпрограмму из ZR1.


Затем

DATA fsname(32).
FIELD-SYMBOLS: <fs> TYPE STANDARD TABLE .

perform zr1_form_name IN PROGRAM ZR1.

fsname = '(ZR1)T2'.
ASSIGN (fname) TO <fs>.

loop at <fs>... endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 05 2006, 07:49 
Гуру-модератор
Гуру-модератор

Зарегистрирован:
Ср, окт 05 2005, 12:13
Сообщения: 2032
Откуда: Москва
Пол: Мужской
Пономарев Артем написал:
Используй assign через глобальную адресацию. Самый универсальный способ. Еще и стандартный :)


Можно поподробнее? На сколько мне известно, assign работает только в процессе выполнения программы к которой происходит assign, а как сделать это в данном случае - непонятно.

Второй вариан если идет вызов ФМ, и ассигниться к переменной топа Гр.Ф., но это не тот случай...

_________________
Наверное, Боги сошли с ума.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 05 2006, 07:52 
Гуру-модератор
Гуру-модератор

Зарегистрирован:
Ср, окт 05 2005, 12:13
Сообщения: 2032
Откуда: Москва
Пол: Мужской
Виктор(Минск) написал:
:) Я бы реализовал во всех отчетах паттерн ПабликМорозоф, который бы сливал значения переменных, таблиц и т.д. из выполняемого отчета по заранее определенному протоколу в память или БД. (раз стоит задача "ваааще тестировать отчеты")

Или воспользоваться "вульгарным" отладчиком :).


А что такое "вульгарный" отладчик?

"Сливать" значения можно, но для этого надо править код многочисленных существующих программ - неохота, хотя это конечно выход!

_________________
Наверное, Боги сошли с ума.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 05 2006, 07:53 
Гуру-модератор
Гуру-модератор

Зарегистрирован:
Ср, окт 05 2005, 12:13
Сообщения: 2032
Откуда: Москва
Пол: Мужской
<Yuri> написал(а):
Воспользуйтесь советом
Виктор(Минск) написал:
2. Посмотреть, может нужная табличка формируется в каком нить form .. endform. - и вызвать эту подпрограмму из ZR1.


Затем
...


см. ответ выше. Есть отчеты ZR1, для которых таких п/п нет.

_________________
Наверное, Боги сошли с ума.


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

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Для того чтоб подгрузить программу можно вызвать например PERFORM %_init-move IN PROGRAM (prog) он есть во всех программах. а потом assign-ом добраться до всех глобально обьявленых пременых.

Вопрос как выполнить подгруженый отчет.


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

Зарегистрирован:
Вс, окт 17 2004, 14:20
Сообщения: 326
Откуда: Москва
Вообще, в ABAP Classes есть встроенный механизм unit test'ов.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

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


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

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


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

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