MIGO_DIALOG - Просмотр документа материала. Ниже вроде как простенький пример вызова данного ФМ
REPORT ytst_test_migo_disp.
TABLES: mkpf, mseg.
PARAMETERS: p_mblnr LIKE mkpf-mblnr DEFAULT '4910000000',
p_mjahr LIKE mkpf-mjahr DEFAULT '2010',
p_zeile LIKE mseg-zeile DEFAULT '0001'.
CALL FUNCTION 'MIGO_DIALOG'
EXPORTING
i_action = 'A04'
i_refdoc = 'R02'
i_notree = 'X'
* I_NO_AUTH_CHECK =
i_skip_first_screen = 'X'
i_deadend = 'X'
i_okcode = 'OK_GO'
* I_LEAVE_AFTER_POST =
* I_NEW_ROLLAREA = 'X'
* I_SYTCODE =
* I_EBELN =
* I_EBELP =
i_mblnr = p_mblnr
i_mjahr = p_mjahr
i_zeile = p_zeile
EXCEPTIONS
illegal_combination = 1
OTHERS = 2.
По параметрам все достаточно просто, хотя кое какие интересные заковырки как обычно есть.
- I_ACTION - Тут все просто, вид операции, так как нас интересует просмотр то A04 и без вариантов, хотя нет можно еще например A01, тогда ссылочный надо ставить R01 и передавать в качестве данных номер заказа, хотя зачем так делать если для заказов есть свой ФМ ME_DISPLAY_PURCHASE_DOCUMENT (You are not allowed to view links.
Register or Login! Не ясно.
- I_REFDOC - Вид ссылочного документа, пока только R02 - Документ материала, но дальше возможно будут появляться еще какие-то виды и вообще будет это универсальная транзакция для всего ММ.
- I_NOTREE - Показывать или нет при просмотре дерево последних документов с которыми проводились операции
- I_NO_AUTH_CHECK - Типа отключить прверку полномочий, но вот на самом деле это немного не так, это отключается проверка полномочий на запуск транзакций просмотра, дело в том что при вызове ФМ идет проверка типа работающей системы через ФМ SYSTEM_SWITCH_GET, так вот для ритейл систем эта зараза возвращает код 01 что приводит к тому что просмотр документов идет через использование старых транзакций просмотра, типа из кода это видно будет вот
так:
case i_action.
when 'A01'. l_tcode = 'MB01'.
when 'A02'. l_tcode = 'MBRL'.
when 'A03'. l_tcode = 'MBST'.
when 'A04'. l_tcode = 'MB03'.
when 'A05'. l_tcode = 'MBSF'.
when 'A06'. l_tcode = 'MBNL'.
when 'A07'. l_tcode = 'MB0A'. " note 398723
* и чуток ниже для другой операции
l_tcode = 'MB01'.
А вот для других систем типа код 00, хотя нет точнее так там написано что 00 это просто системы, а вот 01 это отраслевые системы. Я так понимаю там какие-то ограничения на отраслевых системах и в целях совместимости разрабатываемых программ вызов просмотра документа, оформлен вот таким вот образом. Ну а дальше идет обычный CALL TRANSACTION, так вот авторизация выполянется для этих вот транзакций, для MIGO такой проверки не делается.
- I_SKIP_FIRST_SCREEN - Для MIGO похоже смысле не имеет, а вот если это отраслевые системы то очень даже правильный флажок.
- I_DEADEND - Отключает все элемены выпадающих списков и кнопок панели задач, они в статусе DISABLE так что типа у пользователя остается только кнопки выхода.
- I_OKCODE - По умолчанию код типа показать документ, поигрался с другими кодами которые есть в MIGO, но что то не вышло, хотя идея вроде как интересная должна быть т.е. передал туда напиример код MIGO_OK_FI_DOC, теоретически думал что сразу же перейдет к окну показа документов FI к заданному документу ММ, но оно так не работает похоже, так что из доступных 'OK_GO', а с остальным уже сами экспериментируйте. Потому как например попробовал MIGO_OK_HEADER_CLOSE, заголовок то закрылся но и документ не показался т.е. надо было еще раз нажать ввод. Короче это или в 4.6С не дописали или пока вообще не дописали.
- I_LEAVE_AFTER_POST - Типа выйти после проводки. Не понял как оно соотносится к просмотру, а ковырять код не хотелось.
- I_NEW_ROLLAREA - Типа, запускает просмотр в новом процессе. (Не путать с режимом)
- I_SYTCODE - Не знаю, но для просмотра оставляем не заполненным.
- I_EBELN - Номер документа заказа ММ (Если операция не A03/R02)
- I_EBELP - Номер позиции заказа ММ
- I_MBLNR - Номер документа материала, для операции A04/R02
- I_MJAHR - Год документа материала
- I_ZEILE - Позиция которая будет показана детально, если пусто тогда это будет первая позиция документа.
Типа так!