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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Запуск второй транзакции в Batch Input при успешном выполнении первой
СообщениеДобавлено: Чт, фев 07 2008, 14:51 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 06 2007, 13:52
Сообщения: 71
ДД всем.
Подскажите как это можно реализовать.
Задача состоит в том, чтобы последовательно запустить две транзакции. Т.е. сначала запускается первая. В случае её успешного выполнения и создания её некоего документа в системе - запускается вторая.
Как программно проверить результат выполнения транзакции, запускаемой Batch Input?


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
http://sapboard.ru/forum/viewtopic.php?t=33877


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 08 2008, 10:31 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
я делаяю так
Code:
CALL TRANSACTION 'xx1' USING bdc MODE in_mode UPDATE 'L'
                        MESSAGES INTO msgtab.             
  LOOP AT MSGTAB WHERE MSGTYP CA 'EAX'
                     OR ( MSGID = '00'
                      AND ( MSGNR = '343'
                         OR MSGNR = '344'
                         OR MSGNR = '349') ).
    ERR = 'X'.
  endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 08 2008, 13:15 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 06 2007, 13:52
Сообщения: 71
DKiyanov написал:
я делаяю так
Code:
CALL TRANSACTION 'xx1' USING bdc MODE in_mode UPDATE 'L'
                        MESSAGES INTO msgtab.             
  LOOP AT MSGTAB WHERE MSGTYP CA 'EAX'
                     OR ( MSGID = '00'
                      AND ( MSGNR = '343'
                         OR MSGNR = '344'
                         OR MSGNR = '349') ).
    ERR = 'X'.
  endloop.


Насколько я понял этот код позволяет узнать были ли ошибки при выполнении транзакции. Ок. Но задача несколько иная.

Например, я запускаю первую транзакцию. Она отработала без ошибок и создала в базе какой-то документ.
Далее я запускаю ещё одну транзакцию. В результате её выполнения произошла ошибка и документ не был создан. Тогда мне нужно откатить изменения, сделанные в базе первой транзакцией.


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Если вы создали документ пакетным вводом, то его уже нельзя "откатить", можно только отменить (иногда удалить) обратной транзакцией.

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

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, фев 08 2008, 18:30 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 06 2007, 13:52
Сообщения: 71
Сергей Королев написал:
Если вы создали документ пакетным вводом, то его уже нельзя "откатить", можно только отменить (иногда удалить) обратной транзакцией.

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


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

P.S. Если вдруг кто знает: BAPI_GOODSMVT_CREATE возвращает ошибку Материал ХХХХХХХХХна заводе ХХХХ не определен.
Транзакцией движение материала создается. Обзор запасов показывает наличие партий этого материала на Заводе.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 12 2008, 17:20 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 06 2007, 13:52
Сообщения: 71
Сергей Королев написал:
Если вы создали документ пакетным вводом, то его уже нельзя "откатить", можно только отменить (иногда удалить) обратной транзакцией.

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


Создаю два документа материала посредством BAPI_GOODSMVT_CREATE.
В одном LUW оба вызова этого ФМ дают ошибку (необходимо сделать COMMIT или ROLLBACK после каждого вызова). Я сначала прогоняю оба вызова с паратемтро testrun = 'X'.
После чего создаю первый документ.
COMMIT WORK.
WAIT UP TO 3 SECONDS. (если не делать паузу, второй документ не создаётся, но никакой ошибки уже не выдается)
Второй документ.
COMMIT WORK.

Можно ли как-то избавить от WAIT UP TO 3 SECONDS?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 12 2008, 17:41 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4871
Откуда: Москва
Пол: Мужской
с "commit work and wait" несколько документов материала очень даже создавались без всяких wait up

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 12 2008, 18:27 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 06 2007, 13:52
Сообщения: 71
LKU написал:
с "commit work and wait" несколько документов материала очень даже создавались без всяких wait up


Точно, заработало.
Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

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


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

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