Текущее время: Пн, авг 04 2025, 16:33

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Репорт только в диалоге
СообщениеДобавлено: Ср, июл 16 2008, 12:28 
Начинающий
Начинающий

Зарегистрирован:
Чт, сен 06 2007, 17:03
Сообщения: 15
Добрый день.
Помогите решить такую проблемку. Есть репорт, который можно стартовать только в диалоге, при попытке страртовать его в фоновом режиме должно появляться сообщение, что дескать это только диалоговый репорт. Помогите реализовать это или хотя бы намекните в какую сторону думать ;-)
спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 12:33 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
Привет.

проверяй переменные

SY-BATCH
SY-BINPT


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 13:14 
Начинающий
Начинающий

Зарегистрирован:
Чт, сен 06 2007, 17:03
Сообщения: 15
Как я понял мне нужна только sy-batch Покрутил - не работает.
Я попробую конретизировать ситуацию. Есть прога которая нормально работает как в диалоге так и в качестве джоба. То есть, если запустить ее через SA38 в дилоге она выводит определенный набор данных в качестве листа, например, распечатывает список кредиторов. Если же в sa38 выполнить ту же прогу, но уже через фоновое задание, получим опять список кредиторов только в спуле(SM37). Требование заказчика, чтобы при попытке выполнить программу в фоне появлялось информ. сообщение "Данный репорт может быть выполнен только в далоговом режиме"(например) и после этого не закладывалось никаких фоновых заданий. У меня же они закладываются всегда и окошка с сообщением не появляется. Я прописал в инициализации

IF NOT sy-batch IS INITIAL.
MESSAGE i001(cj) WITH text-310. // сообщение
endif.

После этого, если прогу запустить в фоновом задании, в спуле будет это сообщение и не будет списка кредитров. Но это не совсем то, что мне надо.
Не знаю, может быть здесь дело не совсем в ABAP'е, а в правах пользователя. Может стоит обратиться к Базису.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 13:25 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
ну на сколько я понимаю

MESSAGE i001(cj) WITH text-310. // сообщение

не остановит программу ни как и тем более вывод результата :)))

я бы уж писал

MESSAGE e001(cj) WITH text-310. // сообщение


и в START-OF-SELECTION. делал exit./return.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 13:40 
Начинающий
Начинающий

Зарегистрирован:
Чт, сен 06 2007, 17:03
Сообщения: 15
Соргласен EXIT должен быть, и он был ;-)
Но на главную проблему это никак не повлияло. Мне нужно окошко!!! HELP!!!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 13:43 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
LehaM написал(а):
Как я понял мне нужна только sy-batch Покрутил - не работает.
Я попробую конретизировать ситуацию. Есть прога которая нормально работает как в диалоге так и в качестве джоба. То есть, если запустить ее через SA38 в дилоге она выводит определенный набор данных в качестве листа, например, распечатывает список кредиторов. Если же в sa38 выполнить ту же прогу, но уже через фоновое задание, получим опять список кредиторов только в спуле(SM37). Требование заказчика, чтобы при попытке выполнить программу в фоне появлялось информ. сообщение "Данный репорт может быть выполнен только в далоговом режиме"(например) и после этого не закладывалось никаких фоновых заданий.

В таком случае Вам следует модифицировать стандартную функциональность, осуществляющую формирование фонового задания - что-бы она проверяла что за репорт, выдавала сообщение и т.п.
Сам репорт за такие действия не отвечает.
Цитата:
У меня же они закладываются всегда и окошка с сообщением не появляется. Я прописал в инициализации

IF NOT sy-batch IS INITIAL.
MESSAGE i001(cj) WITH text-310. // сообщение
endif.

После этого, если прогу запустить в фоновом задании, в спуле будет это сообщение и не будет списка кредитров. Но это не совсем то, что мне надо.
Не знаю, может быть здесь дело не совсем в ABAP'е, а в правах пользователя. Может стоит обратиться к Базису.
Возможно. Вы хотите запретить пользователям планировать фоновые задания?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 13:50 
Начинающий
Начинающий

Зарегистрирован:
Чт, сен 06 2007, 17:03
Сообщения: 15
sy-uname написал(а):
Вы хотите запретить пользователям планировать фоновые задания?

Да, но только для одного репорта


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 13:51 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
LehaM написал(а):
Соргласен EXIT должен быть, и он был ;-)
Но на главную проблему это никак не повлияло. Мне нужно окошко!!! HELP!!!


и куда вы собираетес выдовать окошко ?? в бэгграунд ??;)
результат работы бэграунда может быть только спул. (либо логи и т.д.)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 13:55 
Начинающий
Начинающий

Зарегистрирован:
Чт, сен 06 2007, 17:03
Сообщения: 15
Pokusannoe_Zubilo написал:
и куда вы собираетес выдовать окошко ?? в бэгграунд ??;)

Да нет, при планировании фонового задания для этого репорта в sa38 должно появляться информмеседж либо окошко, либо просто надпись внизу что этот репорт не может быть выполнен как фоновое задание!


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

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
LehaM написал(а):
Pokusannoe_Zubilo написал:
и куда вы собираетес выдовать окошко ?? в бэгграунд ??;)

Да нет, при планировании фонового задания для этого репорта в sa38 должно появляться информмеседж либо окошко, либо просто надпись внизу что этот репорт не может быть выполнен как фоновое задание!


ну тогда изменять стандартную функциональность как писал sy-uname

на счет базисных приемов в виде объектов авторизации я честно говоря не уверен.

P.s. кстати планировать фоновое задание можно далеко не только через SA38 :)) это я так. вдруг вы запамятовали :))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 14:54 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 11 2008, 14:23
Сообщения: 24
Просто как вариант могу посоветовать: раз сообщение об ошибке в фоновой обработке не выводится, так и не надо! Просто программу не выполним, спул засорять не будем, а пользователя по почте предупредим!!! )))))) Выглядит эффектно....

Code:
  IF NOT sy-batch IS INITIAL.
    PERFORM send_document.
    EXIT.
  ENDIF.


Code:
FORM send_document .
  DATA: objcont LIKE solisti1 OCCURS 5 WITH HEADER LINE.
  DATA: reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE.
  DATA: doc_chng LIKE sodocchgi1.
  DATA: entries LIKE sy-tabix.
  DATA: name(15).
* Fill the document
  doc_chng-obj_name = 'URGENT'.
  doc_chng-obj_descr = text-310.
  doc_chng-sensitivty = 'P'.
  objcont = 'Не надо так больше делать! ok?
  APPEND objcont.
  DESCRIBE TABLE objcont LINES entries.
  READ TABLE objcont INDEX entries.
  doc_chng-doc_size = ( entries - 1 ) * 255 + STRLEN( objcont ).
* Fill the receiver list
  CLEAR reclist.
  reclist-receiver = sy-uname.  " replace with <login name>
  reclist-rec_type = 'B'.
  reclist-express = 'X'.
  APPEND reclist.
* Send the document
  CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
    EXPORTING
      document_type              = 'RAW'
      document_data              = doc_chng
      put_in_outbox              = 'X'
    TABLES
      object_content             = objcont
      receivers                  = reclist
    EXCEPTIONS
      too_many_receivers         = 1
      document_not_sent          = 2
      operation_no_authorization = 4
      OTHERS                     = 99.
ENDFORM.                    " SEND_DOCU


Сообщение будет получено с небольшой задержкой....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 15:00 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
ДенисК написал(а):
Просто как вариант могу посоветовать: раз сообщение об ошибке в фоновой обработке не выводится, так и не надо! Просто программу не выполним, спул засорять не будем, а пользователя по почте предупредим!!! )))))) Выглядит эффектно....



я так понимаю что ему нужно предупредить именно на этапе планирования задания (кое может выполняется в разных местах). а по почте и проч. придет только когда задание начнет выполнятся.


ну тогда уж лучше через FM

TH_POPUP

совсем напугать пользоватля мгновенно ;))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 15:09 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Pokusannoe_Zubilo написал:
...
ну тогда уж лучше через FM

TH_POPUP

совсем напугать пользоватля мгновенно ;))

Не всегда. TH_POPUP отработает только если процесс идёт на том же сервере приложений что и диалоговый пользователь. А в случае продуктива это далеко не факт.

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Насколько я понимаю, нужно закрыть 2 "дырки":
1. Когда пользователь запускает SM36 и планирует задание.
Эту тему уже обсудили, хотя для анализа можно выдавать MESSAGE типа X, чтобы админы увидели ;)
2.Когда из программы пользователь выбирает пункт меню "Программа-Фоновое выполнение".
В этом случае в AT SELECTION-SCREEN делается анализ на sy-ucomm = 'SJOB':
Code:
AT SELECTION-SCREEN.

  CHECK sy-ucomm = 'SJOB'.
  MESSAGE i208(00) WITH 'Нельзя!'.
  LEAVE PROGRAM.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 16 2008, 19:45 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Не понятно только одно - а что вообще такого криминального в фоновом запуске? :? Зачем его запрещать-то?

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


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

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


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

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


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

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