Текущее время: Пн, июл 28 2025, 22:24

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Изменение данных заказа на поставку ч/з User-exit
СообщениеДобавлено: Чт, май 29 2008, 08:37 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, ноя 09 2004, 08:26
Сообщения: 97
Пол: Мужской
Добрый день! Необходимо изменить в каждой позиции заказа на поставку значение поля "Дата поставки", я думаю, что с использованием user-exit. Можно было бы воспользоваться функцией "Быстрое изменение", но в случае, если позиция состоит из партий поставок, поле "Дата поставки" становиться недоступным и "Быстрое изменение" не работает. Попытался в некоторых user-exit (из расширения MM06E005) редактировать данные во внутренней таблице teket (поле eindt), но это ни к чему не привело. Может кто подскажет как решить такую проблему?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 29 2008, 16:47 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, мар 02 2005, 20:19
Сообщения: 133
Откуда: Moscow
ФМ "BAPI_PO_CHANGE"

_________________
Монарх - это серъезно (с) "Классик"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 06:27 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
В какой момент нужно делать замену - при обработке заказа (ME21N, ME22N)? или изменения нужно делать массово, для уже созданных заказов?

- если первое, то БАДИ ME_PROCESS_PO_CUST
- если второе, то например через соответствующий BAPI


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 11:06 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, ноя 09 2004, 08:26
Сообщения: 97
Пол: Мужской
Изменения нужно делать в тр. ME21N и ME22N. Но делать их нужно не для всех заказов, а по усмотрению пользователя. С помощью расширения MM06E005 в заголовке заказа я создал кнопку. При нажатии на эту кнопку и хотелось бы инициировать изменения в позициях. Но как связать это с Badi я не знаю. Подскажите как этот Badi запустить (хотя бы без кнопки) и можно ли завязать его с "кнопкой"?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 11:15 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, мар 02 2005, 20:19
Сообщения: 133
Откуда: Moscow
SE18 - BADI-builder (определение BADI)
SE19 - Ведение внедрений.

К BADI 'ME_PROCESS_PO_CUST' Вам нужно сделать свое внедрение,
где соотв. методы можно наполнить кодом. На англ. языке в SE18 есть документация.

_________________
Монарх - это серъезно (с) "Классик"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 11:39 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, ноя 09 2004, 08:26
Сообщения: 97
Пол: Мужской
Внедрение я сделал. Использовал методы PROCESS_HEADER и PROCESS_ITEM. Однако по нажатия "кнопки" я в эти методы не попадаю. А нет ли у кого документации по Badi на русском языке?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 12:15 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Кнопка на экране Данные клиента в заголовке заказа?
Может имеет смысл вместо кнопки вынести туда чекбокс (что-то типа Дата поставки по-умолчанию). После нажатия Enter ты уже точно попадешь в нужный тебе метод, там проанализируешь этот чекбокс, и заменишь дату пставки (кстати для партии поставки тебе скорее всего понадобиться метод PROCESS_SCHEDULE)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 14:00 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, ноя 09 2004, 08:26
Сообщения: 97
Пол: Мужской
Поставил checkbox. Но в попадаю в модуль обработки экрана

process after input.
module user_command_0101.

который указан в exite.
Как из него попасть в соответствующий метод, или может его как-то можно запустить?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 14:22 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
а ты внедрение то активировал?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 14:48 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, ноя 09 2004, 08:26
Сообщения: 97
Пол: Мужской
Да, оно активно. Кстати при изменении какого-либо стандартного поля заголовка я проваливаюсь в метод IF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER
и при этом отрабатыватся мои условия. Только они касаются другой задачи (изменение стандартных полей заголовка IHREZ,VERKF).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 02 2008, 12:46 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, ноя 09 2004, 08:26
Сообщения: 97
Пол: Мужской
Проваливаюсь в метод через "свою кнопку" в заголовке:
IF SY-UCOMM EQ 'ZBUTTONDATE'.
call method CL_EXITHANDLER=>get_instance
changing instance = exit_ref.
call method exit_ref->PROCESS_HEADER
exporting
IM_HEADER = IM_HEADER.
endif.


В самом методе выполняю:

LS_MEPOHEADER = IM_HEADER->GET_DATA( ).

или

CALL METHOD im_header->get_data
RECEIVING
re_data = LS_MEPOHEADER.


В этот момент выскакивае дамп:
Анализ ошибки

An exception occurred. This exception is dealt with in more detail below
. The exception, which is assigned to the class 'CX_SY_REF_IS_INITIAL', was
neither
caught nor passed along using a RAISING clause, in the procedure
"IF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER" "(METHOD)"
.
Since the caller of the procedure could not have expected this exception
to occur, the running program was terminated.

Указания по устранению ошибки

The exception must either be prevented, caught within the procedure
"IF_EX_ME_PROCESS_PO_CUST~PROCESS_HEADER"
"(METHOD)", or declared in the procedure's RAISING clause.
To prevent the exception, note the following:


Ткните носом неопытного, что сделать чтобы заработало!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 02 2008, 21:33 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Сдается, что в exit_ref у вас пусто или что-то не то. :? И не мешало бы TRY ... CATCH добавить по-любому.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB