RoadRunner написал:
...Считывание временных документов происходит во время запуска транзакции, тогда как экзиты вызываются при проводке/проверке документа, т.е., гораздо позже. У нас была подобная задача - снабженцы делают временный приход, а кладовщики его проводят. Пришлось выйти из положения подменой имени пользователя в этих самых неудобных таблицах.
Скажите, пожалуйста, а как именно Вам удалось подменить имя пользователя? Ведь его значение тоже "вшито" в методах класса LCL_MIGO_PREDOCUMENT. Вот, например, при выборе документов:
METHOD predoc_select.
.....
* Read the available data from the database org table
SELECT * FROM mmim_predoc_org
INTO CORRESPONDING FIELDS OF TABLE pt_doclist
WHERE
uname = sy-uname
AND repid = c_repid.
....
ENDMETHOD.
Или при сохранении:
METHOD predoc_save.
......
* Create the organizational entry in the database
* Use 'SAPLMIGO' because MBPM uses this key (will change
* if more applications use the mechanism).
ls_org-guid = l_guid.
ls_org-refid = l_refid.
ls_org-repid = c_repid.
ls_org-uname = sy-uname.
ls_org-datlo = sy-datlo.
ls_org-timlo = sy-timlo.
ls_org-saprl = sy-saprl.
ls_org-lines = lcl_migo_globals=>kernel->s_status-lines.
ls_org-action = lcl_migo_globals=>kernel->s_control-action.
ls_org-refdoc = lcl_migo_globals=>kernel->s_control-refdoc.
INSERT mmim_predoc_org FROM ls_org.
ENDMETHOD.
Задача та же, что была у Вас. Поделитсь опытом, пожалуйста. Поменить имя пользователя - гениально. Но как?
Если создавать внешний отчёт, который меняет значение этого поля в строках таблицы MMIM_PREDOC_ORG на текущего пользователя - то могут "пострадать" другие программы, использующие эту таблицу.
Кроме того, правка записей, если идёт речь о крупной организации с большим количеством заказов, может занять уйму времени, за которое кто-то ещё из пользователй захочет временно сохранить документ.