+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средства » SMOD/CMOD - Расширения (Модератор: Dmitriy)Тема:
|- ФМ EXIT_SAPMM06E_004




Автор Тема: ФМ EXIT_SAPMM06E_004  (Прочитано 19474 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
ФМ EXIT_SAPMM06E_004
« : Июнь 25, 2014, 07:56:40 am »
Всем доброго времени суток. Возникла необходимость добавления полей в транзакцию ME31K - Создание контракта. Для этих целей я воспользовался расширением MM06E005, добавил поле в CI_EKKODB, затем добавил в 201 экран поле. После этого в ФМ EXIT_SAPMM06E_006 в инклуд ZXM06U36 добавил строчку MOVE-CORRESPONDING i_ci_ekko TO ekko_ci. Затем в ФМ EXIT_SAPMM06E_008 в инклуд ZXM06U37 добавил строчку MOVE-CORRESPONDING ekko_ci TO E_CI_EKKO. Новое поле отображается и сохраняет введённые туда запииси. Теперь нужно чтобы это поле не отображалось если выбирается контракт определённого вида, т.е. необходимо условие. Большую части своего времени я функциональщик, но в последнее время приходить начинать абапить, поэтому прошу великодушно простить за возможно глупые вопросы. В общем для последней цели я пытаюсь использовать MM06E004 ФМ EXIT_SAPMM06E_004, но знаний по Абапу маловато, поэтому не совсем понимаю, что нужно сделать. Информации по этому поводу в Интернете много, но она вся разрозненная. Пытаюсь в Инклуд ZXM06U24 добавить
Код: You are not allowed to view links. Register or Login
LOOP AT SCREEN.
if  EKKO-EVART = 'NT'.

screen-name = 'EKKO_CI-Z_POLE1'.

        screen-input = 0.
        modify screen.
endif.
ENDLOOP.

но он не отрабатывает так как надо и как я думаю скорей всего даже это код не совсем то, что нужно в данной ситуации. Может кто подскажет куда рыть, может кто что почитать посоветует по этому поводу? Заранее признателен.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #1 : Июнь 25, 2014, 12:26:19 pm »
Вообще-то данный экзит для обновления полей экрана не очень подходит, так как он вызывается в PAI-логике, а обновление полей надо проводить в PBO-логике. Поэтому что бы вы тут не делали на экране оно не появится. Если кратко, то PBO-логики вызывается перед появлением/демонстрацией экрана пользователю, соответственно все что вы измените на экране, будет отображено. Соответственно PAI-логика, отрабатывает когда пользователь что-то нажал или выбрал на экране, т.е. вы можете программно обработать ввод, ну и само собой изменять что-то на экране уже поздно, так как экран уже был показан ранее.
Код: You are not allowed to view links. Register or Login
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(I_UCOMM) TYPE  SY-UCOMM
*"  EXPORTING
*"     VALUE(E_CI_UPDATE) LIKE  SY-CALLD
*"     VALUE(E_UCOMM) LIKE  SY-UCOMM
*"  CHANGING
*"     VALUE(E_CI_EKKO) LIKE  EKKO_CI STRUCTURE  EKKO_CI OPTIONAL
*"----------------------------------------------------------------------
Поэтому вам надо найти другую точку. Я обычно просто сам активирую подэкран пользовательских данных и там уже в его логике показываю или скрываю поля. В вашем случае я бы попробовал решить проблему в экзите:
Код: You are not allowed to view links. Register or Login
function exit_sapmm06e_006.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"       IMPORTING
*"             VALUE(I_EKKO) LIKE  EKKO STRUCTURE  EKKO
*"             VALUE(I_TRTYP)
*"             VALUE(I_CI_EKKO) LIKE  EKKO_CI STRUCTURE  EKKO_CI
*"             VALUE(I_BSTYP) LIKE  EKKO-BSTYP
*"             VALUE(I_NO_SCREEN)
*"             VALUE(I_LFA1) LIKE  LFA1 STRUCTURE  LFA1
*"             VALUE(I_LFM1) LIKE  LFM1 STRUCTURE  LFM1
*"             VALUE(I_KEKKO) LIKE  EKKO STRUCTURE  EKKO
*"             VALUE(I_AEKKO) LIKE  EKKO STRUCTURE  EKKO
*"             VALUE(I_REKKO) LIKE  EKKO STRUCTURE  EKKO
*"             VALUE(I_EKKO_OLD) LIKE  EKKO STRUCTURE  EKKO OPTIONAL
*"             VALUE(I_VORGA) LIKE  T160-VORGA
*"       TABLES
*"              TEKPO STRUCTURE  BEKPO OPTIONAL
*"              TEKET STRUCTURE  BEKET OPTIONAL
*"              TEKKN STRUCTURE  EKKNU OPTIONAL
*"              TKOMV STRUCTURE  KOMV OPTIONAL
*"----------------------------------------------------------------------


include zxm06u36 .


endfunction.
только когда будете писать код, в цикле по скрытию поля,напишет что-то типа такого:
Код: You are not allowed to view links. Register or Login
LOOP AT SCREEN.
if  EKKO-EVART = 'NT' and screen-name = 'EKKO_CI-Z_POLE1'.
        screen-input = 0.
        screen-output = 0.
        modify screen.
endif.
ENDLOOP.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #2 : Июнь 25, 2014, 02:27:12 pm »
Спасибо за совет. В общем я, как Вы и по рекомендовали, сделал это в PBO. Создал там модуль и затем
Код: You are not allowed to view links. Register or Login
MODULE STATUS OUTPUT.

LOOP AT SCREEN.
  CASE screen-name.
    when 'EKKO_CI-Z_POLE1' or
       'EKKO-Z_POLE1'.
if  zzzz = 'X'.
       screen-active = 0.
        modify screen.
endif.
ENDCASE.
ENDLOOP.
ENDMODULE.

Но перед этим объявил глобальную переменную zzzz,  затем в ФМ EXIT_SAPMM06E_006, с него и начинается обработка в дебаге создания контракта, в инклуде написал
Код: You are not allowed to view links. Register or Login
MOVE-CORRESPONDING i_ci_ekko TO ekko_ci.
Clear zzzz.
if i_ekko-bsart = 'NT'.
  zzzz = 'X'.
endif.
Так же в ФМ EXIT_SAPMM06E_008 тоже вставил
Код: You are not allowed to view links. Register or Login
MOVE-CORRESPONDING ekko_ci TO E_CI_EKKO.Вроде бы работает, спасибо за совет, далее буду пробывать добавлять вкладки в эту транзакцию, потому как полей много добавлять надо.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #3 : Июнь 25, 2014, 03:20:40 pm »
You are not allowed to view links. Register or Login
Вроде бы работает, спасибо за совет, далее буду пробывать добавлять вкладки в эту транзакцию, потому как полей много добавлять надо.
Закладки не получится, там вам дают подэкран и он узкий. Как совет, попробуйте добавить кнопку по нажатию на которую будет открываться диалоговое окно и там уже все ваши поля, вкладки и т.д.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #4 : Июнь 30, 2014, 05:44:29 am »
Подэкран действительно узкий получился, область данных весьма маловата, как вариант наверное попробую ваш совет с диалоговым окном, спасибо.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #5 : Июль 03, 2014, 12:03:19 pm »
В продолжении темы создания окна в транзакции ME31K. Добавил я кнопку в основной подэкран 0201 транзакции. Затем создал подэкран с тремя закладками. В PBO подэкрана 0201 создал модуль
Код: You are not allowed to view links. Register or Login
LOOP AT SCREEN.
  CASE screen-name.
    when  'BTCR'.
if  zzzz = 'X'.
       screen-active = 0.
        modify screen.
endif.
ENDCASE.
ENDLOOP.

Это условие должно срабатывать, если я выбираю создание контракта типа NT. Переменная zzzz объявлена в ZXM06TOP, а в функциональном модуле EXIT_SAPMM06E_006 инклюде ZXM06U36 прописано
Код: You are not allowed to view links. Register or Login
Clear zzzz.
if i_ekko-bsart = 'NT'.
  zzzz = 'X'.
endif.
Когда я пытался делать это с подэкраном 0201 на прямую добавляя туда поля, условие работало, а сейчас я видимо что то не там или не так делаю. Затем я в PBA модуле подэкрана 0201 пробую писать обработчик, который бы при нажатии на кнопку вызывал экран с вкладками.
Код: You are not allowed to view links. Register or Login
MODULE USER_COMMAND_0201 INPUT.

case ok_code.
  WHEN 'BTCR'.
   CALL SUBSCREEN 9005.

ENDCASE.

ENDMODULE.
BTCR это код функции кнопки на экране. Но активировать этот модуль я не могу, ругается что Field OK_CODE is unknown.
Я не пойму, мне эту кнопку тоже где то объявлять надо? В ZXM06TOP она объявлена, но в модуле MODULE USER_COMMAND_0201 INPUT её получается всё равно не видно. Может кто подскажет не опытному в Абапе консультанту что я не так делаю? Буду весьма признателен за помощь.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #6 : Июль 05, 2014, 12:53:47 am »
Ну в общем у меня это сделано так:

1. Создаем проект, куда включаем расширение: MM06E005 (You are not allowed to view links. Register or Login), должно быть что-то типа такое как на рисунке MM06E005.png

2. Активируем подэкраны, причем если я правильно помню, то надо зайти и создать все подэкраны, даже если вы используете только 201 подэкран, в заголовке контракта ММ.

3. Экран типа нарисован с кнопкой как на рисунке 201.png, ну тут вроде как стандартно все в дизайнере экранов делается.

4. Далее в логике PBO я ничего не реализовывал, так как кнопку мне надо было нажимать не зависимо от того, режим создания,редактирования или просмотра. Поэтому в логике экрана есть только PAI-модуль.
Код: You are not allowed to view links. Register or Login
process before output.
*  module status_0201.
*
process after input.
  module user_command_0201.

Код внутри следующий:
Код: You are not allowed to view links. Register or Login
module user_command_0201 input.
  case g_ucomm.
    when 'ZZ_PENALTY'.
      g_ucomm = 'KOPF'.
      call function 'Z_IMM_PENALTY_DIALOG'
        exporting
          pi_ebeln       = g_pen_ebeln
          pi_ebelp       = g_pen_ebelp
          pi_dialog      = g_aktyp
        importing
          ps_return      = gs_return
        changing
          pt_penalty     = gt_penalty[]
          pt_penalty_del = gt_penalty_del[].
      if gs_return-type <> space.
        message id gs_return-id type gs_return-type number gs_return-number
        with gs_return-message_v1 gs_return-message_v2 gs_return-message_v3 gs_return-message_v4.
      else.

      endif.
  endcase.
Если по шагам, то переменная G_UCOMM объявлена в модуле ZXM06TOP, как
Код: You are not allowed to view links. Register or Login
DATA: g_ucomm like sy-ucomm, т.е. глобальная переменная для группы функций экзита. Далее вот это вот присвоение:  g_ucomm = 'KOPF', нужно сделать обязательно, так как иначе при выходе из обработчика получите сообщение типа код "ZZ_PENALTY" не существует, ну это код который вызывается при нажатии нашей кнопки,рисунок 201.png справа код, команды. Так вот чтобы такого сообщения небыло, после того как зашли в обработчики, перед выходом переопределили код на стандартный. По факту вы просто останетесь в детальном просмотре заголовка контракта. Ну и дальше у меня функция, которая собственно внутри рисует и выводит диалоговое окно. Вызов там стандартно через CALL SCREEN, поэтому это не принципиально что вы там дальше в окне делаете. Теперь пойдем как g_ucomm получает значение 'ZZ_PENALTY' при нажатии на кнопку.

5. Идем в реализацию кода экзита  EXIT_SAPMM06E_007. Там вставляем что-то типа:
Код: You are not allowed to view links. Register or Login
g_ucomm = i_ucomm.так как вызов расширения в районе общей PAI-логики экрана. Т.е. по факту запомнили что там было нажато в целом на экране заголовка контракта.

6. Теперь идем в код экзита EXIT_SAPMM06E_008. Тут вставляем код который по большому счету вернет значение 'KOPF',  если была нажата наша кнопка. Чтобы небыло информационного сообщения. В общем виде к этому моменту по стеку вызова процесс идет такой. На экране заголовка пользователь нажал кнопку. В ходе работы логики основного экрана вызывается код EXIT_SAPMM06E_007, где мы запоминаем что было нажато. Далее система вызывает логику нашего подэкрана 201, где мы анализируем что же там было нажато, а это мы запомнили ранее в EXIT_SAPMM06E_007, поэтому тут если это была наша кнопка, с кодом ZZ_PENALTY, то мы вызываем наш подэкран, но перед этим или после этого переопределяем значение g_ucomm = 'KOPF', на стандартный код, чтобы в экзите EXIT_SAPMM06E_008 вернуть его назад системе, типа наша кнопка не нажималась, а была нажата стандартная кнопка просмотра заголовка контракта.

Все! Должно работать. А ну да проект не забудьте активировать.

PS: Кстати, если кнопка реализуется на подэкране позиций контракта, то тоже самое надо проделать для подэкран 211 и экзиты: EXIT_SAPMM06E_017 и EXIT_SAPMM06E_018. Единственное что код  в глобальную переменную после вызова своего диалогового экрана надо вернуть такой: g_ucomm = 'DETA', т.е. остаться после возврата на просмотре детальных данных выбранной позиции.

PSS: Так Nexus, что-то поломал и атачменты картинок к сообщениям прикрепить пока не выходит. Как только он исправит, прикреплю объявленные тут картинки. - О вроде подчинил...
« Последнее редактирование: Июль 05, 2014, 05:53:21 pm от Uukrul »

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #7 : Июль 08, 2014, 06:57:30 am »
Ваша  реализация очень интересна! У меня в общем то получилось сделать кнопочку с экраном, а не работало потому что я название полей экрана по ошибке назвал не одинаково с полями таблицы откуда должны были браться данные. Мелочная ошибка, а возни на дня три. Как говорится век живи век учись. Спасибо за помощь, Вашу реализацию тоже как нибудь попробую.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #8 : Июль 08, 2014, 11:56:45 am »
You are not allowed to view links. Register or Login
Ваша  реализация очень интересна!
Да как бы я считал что это стандартная реализация работы с подэкранами в заказах, контрактах и запросах кажется. А этот экзит EXIT_SAPMM06E_004 честно даже не знал.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #9 : Июль 15, 2014, 08:13:17 am »
В продолжении темы так сказать. До этого я делал экран для контракта на одном из тестовых серверов, теперь пытаюсь сделать это всё в системе разработки, добавил экраны, коды, кнопку, всё активировал, но возникла проблемка теперь. Создаю контракт, нажимаю на кнопку, которая бы вызывала экран, система ругается выдаёт сообщение Эта функция не предусмотрена.
№ сообщения 06006

Diagnosis
There is no entry for this function in Table 168F (system table). An error involving the screen control has probably occurred.

В интернете есть кое какая инфа, но она мне не совсем понятна. Насколько я понял мне надо что то добавить в эту табличку, я её открыл, а что и куда добавлять я так и не понял. Может кто сталкивался и объяснит мне?!

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #10 : Июль 15, 2014, 10:22:30 am »
You are not allowed to view links. Register or Login
There is no entry for this function in Table 168F (system table). An error involving the screen control has probably occurred.
Ну именно в вашем случае наверное переопределить глобальную переменную, то что я делал в своем примере (g_ucomm = i_ucomm) и все что связанно с этой переменной. Просто система не знает ваш код команды. Можно конечно его добавить в T168F но я просто возвращал стандартные системные коды.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #11 : Июль 15, 2014, 12:19:13 pm »
Я вот тут не совсем понимаю, что именно я должен добавить в таблицу Table 168F? Под переменной подразумевается сама кнопка ok_code? В табличке T168F есть поле операция, что туда вставлять мне не понятно, код функции то понятен - это скорей всего KOPF, а вот столбец Обрабатывающая подпрограмма, что ставить тоже не пойму?

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #12 : Июль 15, 2014, 12:33:45 pm »
You are not allowed to view links. Register or Login
Я вот тут не совсем понимаю, что именно я должен добавить в таблицу Table 168F? Под переменной подразумевается сама кнопка ok_code? В табличке T168F есть поле операция, что туда вставлять мне не понятно, код функции то понятен - это скорей всего KOPF, а вот столбец Обрабатывающая подпрограмма, что ставить тоже не пойму?
Да ничего не надо туда вставлять. Я бы просто в коде после вызова вашего экрана, сделал бы что-то типа ok_code =  'KOPF'. Вы же в заголовке экрана кнопку сделали? Вот и верните типа остаться на заголовке экрана.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #13 : Июль 15, 2014, 02:33:00 pm »
Ну я получается в 201 экране кнопку делаю, получается в заголовке экрана. Теперь мне надо в EXIT_SAPMM06E_007 и в EXIT_SAPMM06E_008 я должен написать код возврата или как?
« Последнее редактирование: Июль 15, 2014, 02:36:39 pm от themax »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #14 : Июль 15, 2014, 02:46:34 pm »
You are not allowed to view links. Register or Login
Ну я получается в 201 экране кнопку делаю, получается в заголовке экрана. Теперь мне надо в EXIT_SAPMM06E_007 и в EXIT_SAPMM06E_008 я должен написать код возврата или как?
Подожди, ты используешь другой екзит. Так вот у себя в коде:
Код: You are not allowed to view links. Register or Login
MODULE USER_COMMAND_0201 INPUT.

case ok_code.
  WHEN 'BTCR'.
   CALL SUBSCREEN 9005.

ENDCASE.

ENDMODULE.

Напиши так:
Код: You are not allowed to view links. Register or Login
MODULE USER_COMMAND_0201 INPUT.

case ok_code.
  WHEN 'BTCR'.
   CALL SUBSCREEN 9005.
   ok_code =  'KOPF'.                "Вот тут переопределили код возврата
ENDCASE.

ENDMODULE.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #15 : Июль 16, 2014, 05:54:41 am »
Ваш совет не помог. Видимо всё таки надо что то добавлять в табличку T168F, вот только пока не совсем понятно что именно туда добавлять.
« Последнее редактирование: Июль 16, 2014, 05:56:48 am от themax »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #16 : Июль 16, 2014, 01:41:53 pm »
You are not allowed to view links. Register or Login
Ваш совет не помог. Видимо всё таки надо что то добавлять в табличку T168F, вот только пока не совсем понятно что именно туда добавлять.
Ну тут как-то смесь получается,этот экзит EXIT_SAPMM06E_004 отдельный как-то болтается. По факту для работы с полями пользвателя на подкэкранах документов закупки существует экзит: MM06E005 который предоставляет следующие точки входа:
Код: You are not allowed to view links. Register or Login
MM06E005 - Клиентские поля в документах закупки

Модули:

EXIT_SAPMM06E_006
EXIT_SAPMM06E_007
EXIT_SAPMM06E_008
EXIT_SAPMM06E_009
EXIT_SAPMM06E_012
EXIT_SAPMM06E_013
EXIT_SAPMM06E_014
EXIT_SAPMM06E_016
EXIT_SAPMM06E_017
EXIT_SAPMM06E_018

Подэкраны:

SAPMM06E                       0101 CUSTSCR1 SAPLXM06                       0101
SAPMM06E                       0111 CUSTSCR1 SAPLXM06                       0111
SAPMM06E                       0201 CUSTSCR1 SAPLXM06                       0201
SAPMM06E                       0211 CUSTSCR1 SAPLXM06                       0211
SAPMM06E                       0301 CUSTSCR1 SAPLXM06                       0301
SAPMM06E                       0311 CUSTSCR1 SAPLXM06                       0311

Структуры расширений:

CI_EKKODB
CI_EKPODB
Используйте это расширение как я описал выше в посте: You are not allowed to view links. Register or Login и проблем с рихтовкой системной таблицы T168F у вас не будет.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #17 : Июль 16, 2014, 02:49:58 pm »
Хорошо уважаемый Uukrul,если не смогу что либо сделать с этой системной табличкой, то обязательно применю ваш метод, спасибо за содействие.
« Последнее редактирование: Июль 16, 2014, 02:58:51 pm от themax »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #18 : Июль 16, 2014, 09:03:53 pm »
You are not allowed to view links. Register or Login
Хорошо уважаемый Uukrul,если не смогу что либо сделать с этой системной табличкой, то обязательно применю ваш метод, спасибо за содействие.
Что добавлять оно вроде как не сложно. Находите вот такую вот запись, T168F.png копируете в свою и меняете KOPF на свою BTCR и должно все типа попустить. Единственное вопрос по полю ROUTN. Как вариант сначала его оставить таким же.

« Последнее редактирование: Июль 16, 2014, 09:34:19 pm от Uukrul »

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #19 : Июль 17, 2014, 05:48:35 am »
 В общем сделал всё как Вы и советовали с табличкой, вставлял свой код функции BTCR, на данный момент при нажатии на кнопку появляется уже другая ошибка, Эта функция здесь недопустима.
№ сообщения 06007

Diagnosis
There is no entry for the chosen function in table T168. This problem is probably due to a program error.
 
Видимо надо что то добавить ещё и в в табличку T168. Сейчас буду пробывать добавлять.
« Последнее редактирование: Июль 17, 2014, 05:55:33 am от themax »

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #20 : Июль 17, 2014, 06:48:03 am »
В общем добавил я в табличку коды функций, заработало. Ещё раз спасибо за помощь.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #21 : Июль 17, 2014, 08:04:17 am »
В общем добавил я в табличку коды функций, заработало. Теперь ещё такой вопросик маленький, если можно?!В PBO модуле основного экрана пытаюсь вызвать Интерфейс пользователя в диалоговое окно. Создать там свой GUi статус, на сколько я понял не возможно. Пытаюсь подгрузить его кодом таким
Код: You are not allowed to view links. Register or Login
module STATUS_9005 output.
  APPEND 'AB' to fcode.
  APPEND 'KOPF' to fcode.
  set PF-STATUS 'AV' of PROGRAM 'SAPMM06E' EXCLUDING fcode.

endmodule.                 "

Предварительно объявив fcode в ZXM06TOP как TYPE TABLE OF sy-ucomm.
Затем в PAI этого же экрана пытаюсь добавить
Код: You are not allowed to view links. Register or Login
module USER_COMMAND_9005 input.
  CASE ok_code.
    WHEN 'BACK'.
      LEAVE screen  .
  ENDCASE.

endmodule.

Код кнопки BACK такой же как в названии кнопки самого интерфейса. Не пашут кнопки, т.е. Интерфейс подгружается, а кнопка Назад не пашет, ни как не могу понять в чём дело.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #22 : Июль 17, 2014, 10:13:40 am »
You are not allowed to view links. Register or Login
В общем добавил я в табличку коды функций, заработало. Ещё раз спасибо за помощь.
Ага т.е. вы еще в T168 добавили свои коды и после этого перестало ругаться как я понял.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 636
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: ФМ EXIT_SAPMM06E_004
« Ответ #23 : Июль 17, 2014, 10:30:42 am »
You are not allowed to view links. Register or Login
В общем добавил я в табличку коды функций, заработало. Теперь ещё такой вопросик маленький, если можно?!В PBO модуле основного экрана пытаюсь вызвать Интерфейс пользователя в диалоговое окно. Создать там свой GUi статус, на сколько я понял не возможно.
Не понял почему невозможно? Понятно что экран 201 это подэкран, там статусов быть не может. Но ваш то экран 9005 он где находится? Это же ваш экран с вашей логикой в вашей группе функций например может быть. Делайте там статусы какие хотите и сколько хотите. Вот у меня например в контрактах. Как видите на моем диалоговом экране 9001 (в данном случае) куча всяких статусов с кнопками.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 210
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: ФМ EXIT_SAPMM06E_004
« Ответ #24 : Июль 17, 2014, 11:03:21 am »
Видимо я по ошибке пытался в 201 подэкран статус создать, Вы правы статус создавать можно, но я  вызвал его из уже существующей программы, в принципе вроде пашет, хотя можно и свой создать.