Posted: Sat Nov 13, 2010 5:30 pm Post subject: commit work - не работает? (4,6)
Добрый день! Помогите разобраться...
есть задание из заказа удалить позицию и на её место(с тем же номером) создать другую позицию.
Дошёл до такой последовательности
1) удаляю позицию ('BAPI_CUSTOMERINQUIRY_CHANGE')
2) запоминаю изменения ('BAPI_TRANSACTION_COMMIT' / wait = 'X' )
3) запоминаю изменения (commit work and wait.)
4) жду ( WAIT UP TO 100 SECONDS.)
5) добавляю новую строку ('BAPI_CUSTOMERINQUIRY_CHANGE')
5.1) проверяю "return[]" на наличие ошибок("E")
6) запоминаю изменения ('BAPI_TRANSACTION_COMMIT' / wait = 'X' )
6.1) выдаёт ошибку "E S& 150 Успешное выполнение обновления не удалось."
При том, если указать в п.6 указать другой номер позиции то сохраняет без проблем(удаляет всегда на ура!).
От номера позиции не зависит(тоесть не то что не разрешат сохранять, например 10 позицию, а просто любую).
Например делаю по 020 позиции(ошибка - 020 удалена) если второй раз работать по 010 позиции:
и изменить номер на 020(например) то 010 удалит, а 020 создаст
не менять номер(оставить 010) удалит 010 и выдаст ошибку...
Age: 170 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Sat Nov 13, 2010 5:52 pm Post subject:
Напишите свой FM, внутри которого будете вызывать
1) удаляю позицию ('BAPI_CUSTOMERINQUIRY_CHANGE')
2) запоминаю изменения ('BAPI_TRANSACTION_COMMIT' / wait = 'X' )
и запускайте его как:
CALL FUNCTION func STARTING NEW TASK taskname.
3) не нужен.
Насчет синхронизации (пункт. 4 ) вам нужно подумать.
Решения есть более красивые _________________ Молитва - это запрос разработчику на изменение кода программы.
Posted: Mon Nov 15, 2010 3:05 pm Post subject: Разобрался
*внутри комитта стоит "CALL FUNCTION 'RV_MESSAGE_UPDATE' IN UPDATE TASK"
Извиняюсь...
просто не мог подумать, что bapi принимает без проверки данные....
дамп был на строке
"INSERT (OBJECT) FROM TABLE DA_XVBPAI."
а я, по ошибке, передавал записи с одинаковым ключом
если нужна именно замена позиции, одной бапишкой нельзя... можно одним комментом делать.
1) читаю данные документа
2) мапинг считанных данных - данных бапи
3) удалить позицию
4) добавить, при этом (inquiry_item_inx-updateflag = ''.)
4.1) у меня почему-то слетает склад. и отдельной строкой дописываю его
потом коммит
код в 1,500 строк... большой что бы тут выкладывать
а можно тогда на [email protected] выслать?
я так же пробую делать
первый раз срабатывает (нам надо менять VGBEL/VGPOS)
а на второй раз ругается на VBFA почему-то
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.