Age: 170 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Wed Aug 27, 2008 4:49 pm Post subject:
Общая идея использования апдейтных модулей такая, что они выполняются не сразу, а встают в очередь и начинают последовательно выполняться сразу после commit work.
Вам нужно создать подпограмму или ФМ, внутри которого будет содержаться команда update rbkp для обновления поля zztest. Номер документа вам известен в BADI INVOICE_UPDATE.
Поскольку эта badi вызывается до того, как фактура создана, то нужно, что бы ваш апдейтный модуль отработал после создания документа. Поэтому если создание фактуры запущено как V1 процесс, ваш модуль нужно запустить как V2 процесс.
Почитайте хелп по ключевым словам
CALL FUNCTION ... IN UPDATE TASK или
PERFORM ... ON COMMIT
Age: 170 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Thu Aug 28, 2008 12:19 pm Post subject:
Хочу дополнить, даже в случае варианта с использованием пользовательской таблицы для хранения дополнительных полей, вам бы пришлось использовать апдейтные модули из-за необходимости соблюдать целостность данных, потому что в момент вызова BADI INVOICE_UPDATE документ еще не создан. Если в процессе его создания произойдет ошибка, то вашей пользовательской таблице тоже не должно быть записи.
Странно сейчас посмотрю, может я в конце дня напутал чего. Только у меня нет просто s_rbkp есть s_rbkp_new и s_rbkp_old
PS: Нет все верно все поля заполнены кроме belnr
PPS: Всеже нашёл в чем я не прав я использую CHANGE_AT_SAVE там номера ещё нет а в CHANGE_BEFORE_UPDATE уже заполнен
Появилось время решил описать в кратце как сделал вдруг кому нибудь пригодится.
1. Расширил доп структурой таблицу RBKP
2. Расширил доп структурой INVFO
3. Создал группу функций с экраном где разместил доп поля
4. В BADI BADI_FDCB_SUBBAS04 сделал настройку, своего экрана с MIRO импорт и экспорт полей, также в ней делаю экспорт в ячейку памяти, своих полей.
5. Создал функцию обновления
6. в BADI INVOICE_UPDATE делаю импорт из памяти своих полей, и передаю их в функцию.
Огромное спасибо за информацию по BADI.
Не могли бы вы поподробнее объяснить как организовать интерфейс с MIRO. В своем экране у меня поле называется INVFO-ZHKONT но на методе GET_DATA_FROM_SCREEN_OBJECT поле me->if_ex_badi_fdcb_subbas04~invfo-ZHKONT пустое. Заранее благодарю
Появилось время решил описать в кратце как сделал вдруг кому нибудь пригодится.
1. Расширил доп структурой таблицу RBKP
2. Расширил доп структурой INVFO
3. Создал группу функций с экраном где разместил доп поля
4. В BADI BADI_FDCB_SUBBAS04 сделал настройку, своего экрана с MIRO импорт и экспорт полей, также в ней делаю экспорт в ячейку памяти, своих полей.
5. Создал функцию обновления
6. в BADI INVOICE_UPDATE делаю импорт из памяти своих полей, и передаю их в функцию.
Пробовал сделать так же. пункт 6 не работает
В ST13 смотрел там пусто после вызова ФM IN UPDATE TASK.
Что может быть?
Подозреваю что нужно запускать в виде PERFORM <UPDATE> ON COMMIT.
Не понял где FORM <UPDATE> создать чтобы его в методе видно было.
All times are GMT + 4 Hours Goto page Previous1, 2, 3Next
Page 2 of 3
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.