Текущее время: Чт, июл 24 2025, 02:02

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 61 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 30 2007, 16:03 
Специалист
Специалист

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Да тоже самое получается)))


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Vadim написал(а):
Да тоже самое получается)))

Тоже - не тоже, но так хоть логика в поведении прослеживается ;-)
Думаем дальше...


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Спасибо за участие и сочувствие)))


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Один тут сказал, что обновление только после того, как первый процесс закончится


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
В измененном варианте добавьте COMMIT WORK после UPDATE.
UPDATE vbrk
SET zzbelnr_d = l_wa_vbrk-zzbelnr_d
WHERE vbeln = ip_vbeln.

COMMIT WORK.


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Когда делаете UPDATE vbrk, нужно обязательно проверять блокировки фактуры. У вас первый процесс, судя по всему, блокирует её, а вы в этот момент обновляете.

Если это так, то нужно номер созданного документа возвращать в первый процесс и обновление ZZBELNR_D проводить там.


Последний раз редактировалось sibrin Пн, июл 30 2007, 16:17, всего редактировалось 1 раз.

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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Тоже самое!!!! Блин.. что-то не так... Надо как-то обойти эту ситуацию.


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Фактура блокирована и в OPEN-FI она тоже блокирована. Поэтому и использую дополнение IN UPDATE TASK.
К тому же в OPEN-FI не могу делать COMMIT WORK.
Да и еще раз говорю, без WAIT UNTIL... все работает. Но надо знать результат выполнения BAPI


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Vadim написал(а):
Тоже самое!!!! Блин.. что-то не так... Надо как-то обойти эту ситуацию.


C последним COMMIT объяснимо, что он не повлиял. Вызывался неявный commit.

А вот после UPDATE проверьте код возврата? Возможно ситуация, как описал sibrin


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Если смотреть в Debug, то все нормально... На выходе из OPEN-FI в таблице VBRK (se11) все заполнено. Но потом все равно поле обнуляется


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
вот еще что может быть, что g_v_flag = 'X' выставляется раньше, чем закончен процесс IN UPDATE TASK. Потому что функция сигнализирует, что закончила свою работу, а на самом деле только начался UPDATE.


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Вряд ли... Этой функцией заканчивается вызываемая задача... UPDATE уже прошел.


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Vadim написал(а):
Вряд ли... Этой функцией заканчивается вызываемая задача... UPDATE уже прошел.


Точно? Я не уверен. ;-) В документации указано, что возвращается результат выполнения функции, а не завершение задачи.
Цитата:
Receives the results returned by a function module called asynchronously

Ведь указывая RECEIVE RESULTS FROM FUNCTION
Вы завершаете задачу. А если UPDATE не закончен, то отработает ROLLBACK.

Для проверки, поставьте
WAIT UP TO 10 SECONDS.
перед
RECEIVE RESULTS FROM FUNCTION 'ZSD_ACC_DOC_POST_BILLING_DOC'


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

Зарегистрирован:
Пн, дек 04 2006, 10:51
Сообщения: 173
Не помогает.. Будет завтра еще мучаться... А пока ночь длинная, можно подумать


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Ах, да, сорри, там WAIT и нельзя было использовать:

Цитата:
Receives the results returned by a function module called asynchronously ( CALL FUNCTION func STARTING NEW TASK taskname). This ABAP statement is used within a FORM routine. The form routine must have a place holder for passing the task name (for example, USING taskname - see example), and it can only be used to receive and execute simple ABAP statements. It cannot contain any statements that interrupt the program execution (such as CALL SCREEN, CALL DIALOG, CALL TRANSACTION, SUBMIT, COMMIT WORK, WAIT, Remote Function CAlls, CPIC calls), or any warning or information messages that use the MESSAGE statement.


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

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


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

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


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

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