Текущее время: Сб, июл 19 2025, 10:51

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


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

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


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

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