MIGO_DIALOG - Просмотр документа материала

Автор Uukrul, Лютий 03, 2010, 03:21:56 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Uukrul

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 (http://sapforum.biz/index.php/topic,262.0.html)?! Не ясно.
  • 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 - Позиция которая будет показана детально, если пусто тогда это будет первая позиция документа.

    Типа так!

SMF spam blocked by CleanTalk