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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: В отладчике - ok, в прогоне - пусто
СообщениеДобавлено: Пн, апр 02 2007, 12:20 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
Уважаемые коллеги!
Столкнулась с ситуацией:
в моей проге - запись в пользовательскую таблицу логов через insert (инфа по текущим результаттам работы программы). Между этими двумя записями - небольшая кучка операторов типа SORT, READ, loop - endloop. Ничего сложного, элементарнейшие действия, все линейно (то есть переходов в другие области проги между этими двумя "контрольными" строками нет)!
Но если я иду отладчиком от первой записи лога ко второй - все отрабатывает замечательно. Если даже просто - точку прерывания ставлю на второй записи - то все ok! Если же я пускаю "самотеком", то после первой записи вторая не появляется (и вместе с ней вылетает из выполнения еще кусок программы!). Данные, конечно, одни и те же...
SET UPDATE TASK LOCAL после первой записи не помог!
Что еще можно сделать в такой ситуации? НЕ ставить же запись в логи после каждого оператора... :( :( :(
Пожалуйста, подскажите!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 02 2007, 12:54 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Наташа,
COMMIT WORK AND WAIT
после INSERT не спасет отца русской демократии?


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

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
к сожалению, результат тот же... :(


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

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
я его вообще убрала - поставила COMMIT WORK AND WAIT, как Вы сказали..... После первой записи, и после второй то же (ну, на всякий пожарный)...
но нифигаськи... :cry:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: В отладчике - ok, в прогоне - пусто
СообщениеДобавлено: Пн, апр 02 2007, 13:11 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Наташа написала:
SET UPDATE TASK LOCAL после первой записи не помог!


SET UPDATE TASK LOCAL страбатывает, если <я не знать русский языка> ни одного INSERT (UPDATE, DELETE). То есть проверьте, что выше нет опереторов обновления базы.


SET UPDATE TASK LOCAL.
INSERT ...
COMMIT WORK AND WAIT.


Последний раз редактировалось vga Пн, апр 02 2007, 13:15, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: В отладчике - ok, в прогоне - пусто
СообщениеДобавлено: Пн, апр 02 2007, 13:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
vga написал(а):
SET UPDATE TASK LOCAL страбатывает, если <я не знать русский языка> ни одного INSERT.

Коллеги, SET UPDATE TASK LOCAL тут вообще ни при чем - он действует в рамках одного LUW и управляет тем, как будут выполняться фукнции, вызванные вот так: CALL FUNCTION ... IN UPDATE TASK, к простым INSERTам это никак не относится...
Может программку в студию?

_________________
С уважением, Сергей Королев


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

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
вот оно... только прошу не кидать несвежими овощами - функциональщик я... :oops:
Вся прога очень длинная, привожу только кусок с прилагающимися DATA xmkpf TYPE mkpf.
PERFORM <запись в пользовательскую таблицу, таблицу, insert >
COMMIT WORK AND WAIT.
• цель нижеследующего – отобрать самую последнюю запись (по времени выполнения)
• по нужной дате

SORT xmkpf BY cpudt DESCENDING.
READ TABLE xmkpf INDEX 1.
xdat = xmkpf-cpudt.
LOOP AT xmkpf.
IF xmkpf-cpudt NE xdat.
DELETE xmkpf.
CLEAR xmkpf.
ENDIF.
ENDLOOP.
CLEAR wa_mkpf.
READ TABLE xmkpf INDEX 1 INTO wa_mkpf.
xsysubrc = sy-subrc.
PERFORM <вторая запись в пользовательскую таблицу, таблицу, insert >
COMMIT WORK AND WAIT.


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Так а внутри PERFORMа что?

_________________
С уважением, Сергей Королев


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

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
Вот такое:
FORM add_log_data USING value(type) value(id) value(no) "TYPE symsgno
value(v1) value(v2) value(v3) value(v4) .
DATA: msg TYPE bal_s_msg.
TABLES zsdmess_st.

msg-msgty = zsdmess_st-msgty = type.
msg-msgid = zsdmess_st-msgid = id.
msg-msgno = zsdmess_st-msgno = no.
msg-msgv1 = zsdmess_st-msgv1 = v1.
msg-msgv2 = zsdmess_st-msgv2 = v2.
msg-msgv3 = zsdmess_st-msgv3 = v3.
msg-msgv4 = zsdmess_st-msgv4 = v4.

msg-msgty = zsdmess_st-msgty = type.
msg-msgid = zsdmess_st-msgid = id.
msg-msgno = zsdmess_st-msgno = no.
msg-msgv1 = zsdmess_st-msgv1 = v1.
msg-msgv2 = zsdmess_st-msgv2 = v2.
msg-msgv3 = zsdmess_st-msgv3 = v3.
msg-msgv4 = zsdmess_st-msgv4 = v4.

zsdmess_st-sydatum = sy-datum.
zsdmess_st-syuzeit = sy-uzeit.
zsdmess_st-uname = sy-uname.

SELECT SINGLE text FROM t100 INTO zsdmess_st-text
WHERE sprsl = 'R' AND arbgb = zsdmess_st-msgid AND msgnr = zsdmess_st-msgno.
INSERT zsdmess_st.
ENDFORM. " add_log_data


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

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Таблица Z* мандантозависимая?

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


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Похоже дело в дублировании ключа.
zsdmess_st-sydatum = sy-datum.
zsdmess_st-syuzeit = sy-uzeit.

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

Добавьте к ключу еще поле счетчика и приращайте на 1.
Или вставьте задержку на 1 сек. между Insert


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

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
эээ... ну, содержимое - нет, а сама она - во всех мандантах одной системы... то есть - как обычно!


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

Зарегистрирован:
Пт, сен 17 2004, 14:40
Сообщения: 953
Откуда: город металлургов
Пол: Женский
упс! а задержка - это какой оператор?
Просто Do <офигеть сколько> times?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 02 2007, 14:07 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
WAIT UP TO 1 SECONDS.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 02 2007, 14:09 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Наташа, если INSERT много, подумайте насчет введения нового поля ID. Зачем Вам терять N сек на выполнении.


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

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


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

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


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

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