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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вызов транзакций из кода.
СообщениеДобавлено: Вт, авг 02 2005, 13:42 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
Задача: нужно выполнить какую-либо типовую операцию по работе с базой данных (например, получить остаток материала на дату), есть стандартная транзакция САП (например, MB5B), которая это делает. Но:
1) Транзакция имеет экран с параметрами выбора.
2) Транзакция после выполнения выводит листинг (например с остатками по материалу).

Вопрос: можно ли грамотно передать в нее вариант при вызове (желательно не рукам его делать, а подгрузить один из уже сохраненных) и как? Можно ли "избавиться" от листинга, не копируя код, чтоб просто использовать сформированные таблицы с данными? И как это сделать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 02 2005, 14:13 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
SUBMIT report USING SELECTION-SET variant EXPORTING LIST TO MEMORY AND RETURN.

далее ФМ 'LIST_FROM_MEMORY'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 02 2005, 14:57 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
Краткость - сестра таланта ! :)))


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 02 2005, 16:57 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
T написал:
SUBMIT report USING SELECTION-SET variant EXPORTING LIST TO MEMORY AND RETURN.

далее ФМ 'LIST_FROM_MEMORY'

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 02 2005, 17:13 
Директор
Директор

Зарегистрирован:
Чт, май 12 2005, 11:10
Сообщения: 1038
Пол: Мужской
rush7ka написал(а):
T написал:
SUBMIT report USING SELECTION-SET variant EXPORTING LIST TO MEMORY AND RETURN.

далее ФМ 'LIST_FROM_MEMORY'

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


зачем? :shock:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 02 2005, 17:20 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
Egal написал:
зачем?

Потому что :
1) мне нужно получить данные вызываемой программы (желательно в виде таблицы, а не в виде текстовых строк, которые парсить потом надо).
2) Можно конечно просто скопировать код, но хотелось бы чтоб при смене комплекта сборки SAP (upgrade версии) все это осталось работоспособным.


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

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
data: str(30) type c value '(prog)var'.
field-symbols:
<fs> type var.
assign str to <fs>.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 03 2005, 07:22 
Гость
Snegurenok написал(а):
assign str to <fs>.


только assign (str) to <fs>.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 03 2005, 08:50 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
ASSIGN в случае SUBMIT, CALL TRANSACTION и CALL DIALOG не поможет.
Поможет если самому звать ту же последовательность подпрограмм из нужного отчёта. Но это уже отдельная песня..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 03 2005, 09:07 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
И при этом надо иметь в виду, что доступны будут только глобальные переменные главной программы вызываемых форм.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 03 2005, 09:35 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
T написал:
ASSIGN в случае SUBMIT, CALL TRANSACTION и CALL DIALOG не поможет.
Поможет если самому звать ту же последовательность подпрограмм из нужного отчёта. Но это уже отдельная песня..

EGF написал(а):
И при этом надо иметь в виду, что доступны будут только глобальные переменные главной программы вызываемых форм.

То есть получается опять копировать код? Конечно вызов подпрограмм чуть более удобно, чем просто скопировать отчет в свое простарнство имен и сделать в нем EXPORT TO MEMORY, но вопрос правильной работы с таблицами при SAP-upgrade версии системы остается открытым (будет ли и дальше все храниться в тех же полях). Сам отчет свои таблицы не удаляет, это видимо делается системой ... может можно как-то внутренние таблицы достать из памяти?


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

Зарегистрирован:
Вс, сен 05 2004, 12:11
Сообщения: 420
Откуда: SAP ERP 2005
Как вариант - посмотреть user-exit's, возможно они есть в нужном тебе отчете - в экзите делать export to memory.

_________________
Чтоб у нас все было, и нам за это ничего не было ! :-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 03 2005, 09:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
rush7ka написал(а):
...вопрос правильной работы с таблицами при SAP-upgrade версии системы остается открытым (будет ли и дальше все храниться в тех же полях). ... может можно как-то внутренние таблицы достать из памяти?

Если изменятся поля, то внутренние таблицы тоже изменятся :) Так что когда хочешь достать что-то из кишок программы (будь то поля или таблицы), то нельзя на 100% предохраниться от проблем с апгрейдом.

Это же самое касается и "обычного" обращения к чужим переменным через ASSIGN. Каким бы безобидным оно не казалось..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 03 2005, 10:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Более предпочтительный вариант (по сравнению с ASSIGN) - системная модификация. Что-нибудь вроде
Code:
if sy-tcode = ...
  export ... to memory ...
  leave program.
endif.

модификация минимальна и легко отслеживается, однако, как крайний вариант подойдет.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, авг 03 2005, 10:55 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, май 27 2005, 14:20
Сообщения: 310
Пол: Мужской
rush7ka написал(а):
вопрос правильной работы с таблицами при SAP-upgrade версии системы остается открытым (будет ли и дальше все храниться в тех же полях). Сам отчет свои таблицы не удаляет, это видимо делается системой ... может можно как-то внутренние таблицы достать из памяти?

Коллеги предложили оптимальные варианты. А от изменений исходного кода при upgrade (или соотв. изменений вн.таблиц) никто не застрахован. Но особо страшного здесь ничего и нет.
Берем какой-нибудь exit типа EXIT_SAPLMBMB_001, получаем там данные, загоняем в память и вызываем транзакцию из пользовательской программы. Если будет страшный upgrade - немного поменяем в exit'е и все. Работы по изменению - на пару часов максимум.


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

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


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

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


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

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