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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Расширение CS01, CS02.
СообщениеДобавлено: Пн, авг 23 2010, 14:51 
Ассистент
Ассистент

Зарегистрирован:
Вт, май 11 2010, 14:34
Сообщения: 44
Здравствуйте! Требуется контролировать сумму количества материалов на экране 0152. Решил при сохранении суммировать позиции RC29P и выводить ошибку, при необходимости. Почитал sdn.sap там пишут, что нужно использовать EXIT_SAPLCSDI_006, модуль ZXCSAU10. Модуль создал, написал там простой код:
Code:
MESSAGE 'TEST' TYPE 'E'

В smod активировал PCSD0005.
Но при сохранении в cs01 и cs02 сообщения не появляется. И, я не знаю как работать с "REFERENCE(I_RC29P) TYPE RC29P", это получается ссылка на объект..? Как прочесть саму структуру? Вопросы глупые, но прошу извинить, с расширением столкнулся впервые.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Пн, авг 23 2010, 15:02 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
ilya написал(а):
Здравствуйте! Требуется контролировать сумму количества материалов на экране 0152. Решил при сохранении суммировать позиции RC29P и выводить ошибку, при необходимости. Почитал sdn.sap там пишут, что нужно использовать EXIT_SAPLCSDI_006, модуль ZXCSAU10. Модуль создал, написал там простой код:
Code:
MESSAGE 'TEST' TYPE 'E'

В smod активировал PCSD0005.
Но при сохранении в cs01 и cs02 сообщения не появляется.
Попробуйте заполнить MSG_DATA и/или T_MSG_DATA типом, классом и номером сообщения или
Code:
MESSAGE 'TEST' TYPE 'E' RAISING ERROR

ilya написал(а):
И, я не знаю как работать с "REFERENCE(I_RC29P) TYPE RC29P", это получается ссылка на объект..?
Нет, ссылка на объект была бы если REFERENCE(I_RC29P) TYPE REF TO.

_________________
"I have a dream"(c)Martin Luther King, Jr.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Пн, авг 23 2010, 15:35 
Ассистент
Ассистент

Зарегистрирован:
Вт, май 11 2010, 14:34
Сообщения: 44
Alex80 написал:
]Попробуйте заполнить MSG_DATA и/или T_MSG_DATA типом, классом и номером сообщения или ...

Спасибо, но не помогло. Может быть я не выполняю еще каких либо действий при создании расширения?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Пн, авг 23 2010, 15:56 
Специалист
Специалист

Зарегистрирован:
Пт, сен 05 2008, 08:08
Сообщения: 134
Пол: Женский
ilya написал(а):
Модуль создал, написал там простой код:
В smod активировал PCSD0005.

Нужно транзакцией CMOD создать свой проект с этим расширением и активировать его.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Пн, авг 23 2010, 15:57 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
ilya написал(а):
Alex80 написал:
]Попробуйте заполнить MSG_DATA и/или T_MSG_DATA типом, классом и номером сообщения или ...

Спасибо, но не помогло. Может быть я не выполняю еще каких либо действий при создании расширения?
Обрабатывается ли вообще код в ФМ? Если да то что просиходит в иклюде LCSDIFAU в стр.92 после выхода из exit-а? Может все ваши сообщения пишутся в лог?

_________________
"I have a dream"(c)Martin Luther King, Jr.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Пн, авг 23 2010, 16:06 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Yellow Raven написала:
ilya написал(а):
Модуль создал, написал там простой код:
В smod активировал PCSD0005.

Нужно транзакцией CMOD создать свой проект с этим расширением и активировать его.

Это не обязательно на этапе тестирования экзита...
2ilya, сделал все как Вы написали, работает... Посмотрите еще раз внимательно, все ли активно.

Добавил: Пройдите по отладке, точки на перформах modx_function_active_check и material_pruefen, станет ясно где у Вас ошибка.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Пн, авг 23 2010, 16:33 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
И еще, ilya, зачем Вам ссылка на I_RC29P, я так понимаю у Вас не стоит нота Note 611155 - Enhancement EXIT_SAPLCSDI_006
Проверьте код - инклюд LCSDIFAU строка 76, должно быть так, если нет то ставьте ноту, из-за нее может экзит и не отрабатывает.
Code:
*  CALL FUNCTION 'EXIT_SAPLCSDI_006'
   call customer-function '006'
[b]        exporting                                          "note 611155
             i_rc29p  = rc29p                              "note 611155[/b]
        importing
             msg_data = msg_tmp
        tables
             mat_bom_allocation = mastb_tmp
        changing
             component          = rc29p-idnrk
        exceptions
             error              = 1
             others             = 2.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Вт, авг 24 2010, 09:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
ilya написал(а):
В smod активировал PCSD0005.

Почитайте про пользовательские расширения и курс BC425, если есть.

И это...Для появления ошибки используйте конструкцию MESSAGE ... RAISING error.

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Вт, авг 24 2010, 12:59 
Ассистент
Ассистент

Зарегистрирован:
Вт, май 11 2010, 14:34
Сообщения: 44
Удав С этим я разобрался.
Спасибо за советы всем.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Вт, авг 24 2010, 15:10 
Ассистент
Ассистент

Зарегистрирован:
Вт, май 11 2010, 14:34
Сообщения: 44
Но как оказалось, я не правильно выбрал расширение. PCSD0005 срабатывает на редактирование позиции, а мне нужно на сохранение спецификации (общий обзор позиций)

Прошелся по списку:
Цитата:
PCSD0001 Разработка приложений: R/3 - спецификации
PCSD0002 Спецификации: поля клиента в позиции
PCSD0003 Спецификации: поля клиента в заголовке
PCSD0004 Сравнение спецификаций
PCSD0005 Спецификации: проверка компонентов для позиций материала
PCSD0006 Программа пользователя: массовые изменения
PCSD0007 Проверка, STKO-изменения
PCSD0008 СпецифПроекта: спец. для клиента разузлование при создании
PCSD0009 Определение спецификации заказа/проекта, URL-страница
PCSD0010 Определение спецификации проекта/заказа, даты разузлования
PCSD0011 СпецифЗаказа на основе базы знаний, параллельное обновление
PCSD0012 Клиенты - номер материала/вид материала при замене материала
PCSD0013 Специфич/клиента обработка разузлования для браузера специф.


На сохранение реагирует только EXIT_SAPLCSDI_002 из PCSD0002. Он имеет только такой интерфейс.

Code:
*"       IMPORTING
*"             VALUE(USERDATA) LIKE  CSCI_STPO STRUCTURE  CSCI_STPO
*"             VALUE(ITEMDATA) LIKE  STPOB STRUCTURE  STPOB
*"             VALUE(CTRLDATA) LIKE  CSTSD01 STRUCTURE  CSTSD01


В "ITEMDATA" содержится только одна позиция, как получить остальные? (Мне нужно контролировать сумму позиций). Я правильно понимаю, что в этой функции ни как?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.  Тема решена
СообщениеДобавлено: Вт, авг 24 2010, 15:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Попробуйте BAdI BOM_UPDATE, метод CHANGE_AT_SAVE.

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Расширение CS01, CS02.
СообщениеДобавлено: Ср, авг 25 2010, 16:11 
Ассистент
Ассистент

Зарегистрирован:
Вт, май 11 2010, 14:34
Сообщения: 44
В общем все получилось, спасибо!

Для таких же как я, поделюсь ссылкой http://sapforum.biz/index.php?topic=635.0. На мой взгляд такие вещи не помешали бы в факе.

Касательно моего случая есть один нюанс: структура, которая содержит данные по материалам DELTA_STPOB, может содержать также данные предыдущих позиций, т.е. к примеру вы исправили количество материала, в структуре запись не изменилась, а добавилась. Я их ловил по полю STPOZ. Как я понял, что если позиция новая, то значение больше 90000, а если старая то начинается с 0. Но если изменений не было по позиции, то остается только старая запись. Решил простым копированием в свою структуру с условием, что если есть запись с STPOZ>90000 то копировать ее, если нет, то старую, а уже потом считал сумму.

Еще раз всем спасибо!


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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