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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Вызов модуля диалоговой программы (в диалоге) из фоновой программы
СообщениеДобавлено: Ср, сен 18 2013, 20:16 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Добрый день.

Не подскажет ли уважаемый all возможен ли subj?
Суть задачи в следующем - из диалоговой программы вызываются фоновые, через
Code:
JOB_OPEN
SUBMIT ... VIA JOB jobname NUMBER jobcount
AND RETURN.
JOB_CLOSE

После старта первой фоновой задачи (submit VIA JOB) в диалоге надо повесить на dynpro или control кнопку c текстом не желает ли юзер прервать выполнения цепочки фоновых задач? Пока висит запрос для пользователя, хотелось бы чтобы по событию (или иному приёму) на экране где-нибудь под кнопкой проскакивали сообщения о завершении (или ошибке) в фоновой задаче.
Т.е. из фона находить эту диалоговую инстанцию (с головной программой) и вызывать в ней либо Perform либо Call Method и передвать туда статус успех/неуспех.

Пока решаю задачу в цикле с задержкой и анализирую статус Finished, но мне не нравится. :?
Есть ли другой способ именно в Фоне, например call back.
Про метод STARTING NEW TASK PERFORMING ... ON END OF TASK знаю, но это не совсем (или совсем не) то.

Т.е. стоит задача:
1. Как-то определить ID диалоговой инстанции с головной программой.
2. Ищется техника вызва метода (подпрограммы) диалоговой программы из фоной программы.

Что скажете уважаемые?
Возможно такое в принципе?

_________________
Никого не трогаю, примусы починяю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов модуля диалоговой программы (в диалоге) из фоновой программы
СообщениеДобавлено: Ср, сен 18 2013, 23:32 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 22 2013, 01:09
Сообщения: 108
Откуда: г. Жлобин, Республика Беларусь
Пол: Мужской
hoar написал:
Добрый день.

Не подскажет ли уважаемый all возможен ли subj?
Суть задачи в следующем - из диалоговой программы вызываются фоновые, через
Code:
JOB_OPEN
SUBMIT ... VIA JOB jobname NUMBER jobcount
AND RETURN.
JOB_CLOSE

После старта первой фоновой задачи (submit VIA JOB) в диалоге надо повесить на dynpro или control кнопку c текстом не желает ли юзер прервать выполнения цепочки фоновых задач? Пока висит запрос для пользователя, хотелось бы чтобы по событию (или иному приёму) на экране где-нибудь под кнопкой проскакивали сообщения о завершении (или ошибке) в фоновой задаче.
Т.е. из фона находить эту диалоговую инстанцию (с головной программой) и вызывать в ней либо Perform либо Call Method и передвать туда статус успех/неуспех.

Пока решаю задачу в цикле с задержкой и анализирую статус Finished, но мне не нравится. :?
Есть ли другой способ именно в Фоне, например call back.
Про метод STARTING NEW TASK PERFORMING ... ON END OF TASK знаю, но это не совсем (или совсем не) то.

Т.е. стоит задача:
1. Как-то определить ID диалоговой инстанции с головной программой.
2. Ищется техника вызва метода (подпрограммы) диалоговой программы из фоной программы.

Что скажете уважаемые?
Возможно такое в принципе?


Как вариант такое решение - в диалоговой перед вызовом фоновой закидываем в память имя юзера, который будет запускать фоновую задачу (или передаем как входной параметр в фоновую задачу). А в фоновой задаче в случае возникновения ошибки или завершения отправлять сообщение процесса (модуль PP/PI) этому юзеру. В сообщении указать реквизиты фоновой задачи, которая это сообщение послала и почему. Плюс какой: не нужно искать прогу ,которая запустила фон, достаточно знать юзера.

_________________
Когда другие слепо следуют за истиной, помни - ничто не истина.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов модуля диалоговой программы (в диалоге) из фоновой программы
СообщениеДобавлено: Чт, сен 19 2013, 07:40 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
hoar написал:
Пока решаю задачу в цикле с задержкой и анализирую статус Finished, но мне не нравится. :?

Как вариант - вместо цикла с задержкой можно использовать таймер.
Как еще один вариант - внутри submit'a устанавливать блокировку, и в программе вместо статуса Finished анализировать наличие этой блокировки

hoar написал:
Возможно такое в принципе?

В версии 7.40 появилась фича ABAP Messaging Channels - как раз для межпроцессного взаимодействия. Для более ранних облом, по моему только варианты выше

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов модуля диалоговой программы (в диалоге) из фоновой программы
СообщениеДобавлено: Чт, окт 10 2013, 19:26 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Решил таки задачу через Persistent класс и RFC in New task :D

_________________
Никого не трогаю, примусы починяю.


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

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


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

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


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

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