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

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


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

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


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

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