+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средстваТема:
|- Select в фоновом задании.




Автор Тема: Select в фоновом задании.  (Прочитано 11818 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sonicby

  • Newbie
  • *
  • Сообщений: 13
  • Reputation Power: 0
  • sonicby has no influence.
  • Пол: Мужской
  • YearsYearsYearsYearsYears
Select в фоновом задании.
« : Август 23, 2013, 12:53:44 pm »
Запускаю  программу как в теме.
You are not allowed to view links. Register or Login
есть код
Код: You are not allowed to view links. Register or Login

  gv_matdoc = '4900000214'.
  gv_matyear = '2013'.
 SELECT SINGLE * FROM mkpf  INTO is_mkpf
    WHERE mblnr EQ gv_matdoc
    AND mjahr EQ gv_matyear     .

Так вот селект дает ошибку в чем может быть проблема ? Если запустить  в диалоговом режиме то все ок.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 684
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Select в фоновом задании.
« Ответ #1 : Август 23, 2013, 12:59:57 pm »
You are not allowed to view links. Register or Login
Так вот селект дает ошибку в чем может быть проблема ? Если запустить  в диалоговом режиме то все ок.
Какую ошибку? Что ничего не найдено?

Оффлайн sonicby

  • Newbie
  • *
  • Сообщений: 13
  • Reputation Power: 0
  • sonicby has no influence.
  • Пол: Мужской
  • YearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #2 : Август 23, 2013, 01:03:40 pm »
Да, ничего не найдено.  sy-subr = 4.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 684
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Select в фоновом задании.
« Ответ #3 : Август 23, 2013, 01:06:43 pm »
You are not allowed to view links. Register or Login
Да, ничего не найдено.  sy-subr = 4.
Это вы константы для примера забили, а в реальной работе там правильные номера документов стоят правильно? Ну если так, тогда читаем документацию про задержки обновления данных и как с этим бороться, точнее правильно анализировать. Ну например тема про оптимизацию абапа.. там есть вот такая вот темка: You are not allowed to view links. Register or Login

Оффлайн sonicby

  • Newbie
  • *
  • Сообщений: 13
  • Reputation Power: 0
  • sonicby has no influence.
  • Пол: Мужской
  • YearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #4 : Август 23, 2013, 01:33:54 pm »
Проблема в том , я взял для проверки старый документ. Если тестовая программа вызывается в диалоге или фоновое выполнение - немедленно в SE38.
 ВСЕ ОК.
Если программа вызывается в фоне через событие тогда  дает ошибку.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 684
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Select в фоновом задании.
« Ответ #5 : Август 23, 2013, 01:37:31 pm »
You are not allowed to view links. Register or Login
Если программа вызывается в фоне через событие тогда  дает ошибку.
Не вЭрю... я в потусторонние силы и барабашек.

Оффлайн sonicby

  • Newbie
  • *
  • Сообщений: 13
  • Reputation Power: 0
  • sonicby has no influence.
  • Пол: Мужской
  • YearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #6 : Август 23, 2013, 01:47:55 pm »
вот я тоже не понимаю, чувствую себя оленем.  :(

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 684
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Select в фоновом задании.
« Ответ #7 : Август 23, 2013, 02:09:43 pm »
You are not allowed to view links. Register or Login
вот я тоже не понимаю, чувствую себя оленем.  :(
Ну поставь там бесконечный цикл перед запросом.. вызови событие.. перейди в SM51 и там по найди в списке твой процесс и по меню программа - перейти к отладке. Попадешь в отладку вызова и узнаешь что не так.

Оффлайн sonicby

  • Newbie
  • *
  • Сообщений: 13
  • Reputation Power: 0
  • sonicby has no influence.
  • Пол: Мужской
  • YearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #8 : Август 23, 2013, 04:29:49 pm »
не в тот раздел тему поставил, можешь перенести. По самой проблеме пока ничего нашел.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #9 : Август 23, 2013, 06:10:42 pm »
You are not allowed to view links. Register or Login
Ну поставь там бесконечный цикл перед запросом.. вызови событие.. перейди в SM51 и там по найди в списке твой процесс и по меню программа - перейти к отладке. Попадешь в отладку вызова и узнаешь что не так.
Я тоже в барабашек не верю, но они есть, это совершенно реальные сущности, мешающие продуктивному труду абап-разработчиков. Иногда сам абапер превращается в оное. :)
Что показывает отладка фона? Не может быть, чтобы "старый документ" не выбирался, иначе это открытие СУБД достойно гораздо большего, нежели одного лишь присутствия здесь. Полный код можно? Критерии выбора правильно заполнены? Нули там ведущие нигде не пропущены? А то что-то странное у вас...

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 684
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Select в фоновом задании.
« Ответ #10 : Август 23, 2013, 09:18:15 pm »
You are not allowed to view links. Register or Login
не в тот раздел тему поставил, можешь перенести. По самой проблеме пока ничего нашел.
Еще раз.. выполните отладку фонового процесса... до этого по проблеме искать как бы это мягко сказать - НЕЧЕГО!

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #11 : Август 23, 2013, 09:54:32 pm »
You are not allowed to view links. Register or Login
Еще раз.. выполните отладку фонового процесса... до этого по проблеме искать как бы это мягко сказать - НЕЧЕГО!
Судя по всему, пацан не знает как это сделать...

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 684
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Select в фоновом задании.
« Ответ #12 : Август 23, 2013, 09:59:56 pm »
You are not allowed to view links. Register or Login
Судя по всему, пацан не знает как это сделать...
Да вроде как я выше написал как?  :o

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #13 : Август 23, 2013, 10:23:33 pm »
You are not allowed to view links. Register or Login
Да вроде как я выше написал как?  :o
Ты много всего писал, все ли слышат и умеют быть на Светлой стороне Силы? 8)
У меня сложилось такое впечатление, что какой-то глюк в коде, либо неправильно считывается sy-subrc, иначе нечто выдающееся. Как так: в диалоге е, а в фоне нема, зная, что документ давно есть? Что-то не так делает, сам понимаешь... ;)

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #14 : Август 23, 2013, 10:45:07 pm »
Практика показывает: любое ЧУДО в жизни, как и в системе SAP - есть непознанное нами явление природы. В данном, конкретном, случае - это действо абапера, неправильно интерпретирующего законы природы. Будем надеяться, что все у него получится. ;)

Оффлайн sonicby

  • Newbie
  • *
  • Сообщений: 13
  • Reputation Power: 0
  • sonicby has no influence.
  • Пол: Мужской
  • YearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #15 : Август 24, 2013, 06:28:46 pm »
Я делал отладку. В чем ошибка не понятно.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #16 : Август 24, 2013, 06:50:29 pm »
You are not allowed to view links. Register or Login
Я делал отладку. В чем ошибка не понятно.
Не понятно, почему в отладке SELECT по старому документу проходит, а в фоне - нет. Бывает, что при создании новых документов они просто не успевают сохраниться в БД до выборки, однако это прерогатива быстроработающих программ, в фоновом, допустим, режиме, когда ресурсы серверов расходуются более эффективно. Странно, очень странно... Код можете более полный привести?

Оффлайн sonicby

  • Newbie
  • *
  • Сообщений: 13
  • Reputation Power: 0
  • sonicby has no influence.
  • Пол: Мужской
  • YearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #17 : Август 24, 2013, 08:17:37 pm »
Код: You are not allowed to view links. Register or Login
REPORT ZTEST_MVT4.

data: gv_matdoc type mblnr.
data: gv_matyear type mjahr.
data: is_mkpf type mkpf.
data: lv_msg(255) type c.
data: break type i.
  gv_matdoc = '4900000214'.
  gv_matyear = '2013'.


if sy-batch eq 'X'.
while break ne 1.
endwhile.
endif.


  SELECT SINGLE * FROM mkpf  INTO is_mkpf
    WHERE mblnr EQ gv_matdoc
    AND mjahr EQ gv_matyear     .

    if sy-subrc eq 0.
      concatenate 'Документ найден' gv_matdoc into lv_msg separated by space.
      write lv_msg.
    else.
      write 'Документ  не найден'.
    endif.

Причем когда я говорю не работает в фоне, я имею ввиду запуск в фоне по событию.

 CALL FUNCTION 'BP_EVENT_RAISE'

Запускается запланированное фоновое задание с прогой.

В принципе я уже пошел другим путем (прикрутил обработку документа забалансового вида к программе выходного документа), но все равно интересно.




« Последнее редактирование: Август 24, 2013, 08:23:34 pm от sonicby »

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Кухня
  • Newbie
  • *
  • Сообщений: 380
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #18 : Август 24, 2013, 08:29:44 pm »
You are not allowed to view links. Register or Login
но все равно интересно
Всем интересно))). Вы как sy-subrc читаете, все же более полный код можно? А то получается, что SAP вместе с БД глючит. :o На пару, так сказать...

Оффлайн sonicby

  • Newbie
  • *
  • Сообщений: 13
  • Reputation Power: 0
  • sonicby has no influence.
  • Пол: Мужской
  • YearsYearsYearsYearsYears
Re: Select в фоновом задании.
« Ответ #19 : Август 24, 2013, 08:42:37 pm »
Более полный в каком смысле ?
Вполне нормальный код, специально упрощенный для теста глюка. Читаю в SM50 через дебаг ,  в loop меняю  break  на 1   в дебаге дохожу до селекта и вижу  subrc = 4.
В диалоге subrc = 0

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 684
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Select в фоновом задании.
« Ответ #20 : Август 26, 2013, 03:15:55 pm »
You are not allowed to view links. Register or Login
Более полный в каком смысле ?
Вполне нормальный код, специально упрощенный для теста глюка. Читаю в SM50 через дебаг ,  в loop меняю  break  на 1   в дебаге дохожу до селекта и вижу  subrc = 4.
В диалоге subrc = 0
Ну давай тогда во-первых смотрим какой сервер приложений для задания и для диалога, далее картинки отладки показывай в диалоге и в фоне до выполнения запроса и сразу после, со значениями переменных, по которым идет выборка данных. А то какое-то шаманство уже получается.