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

Часовой пояс: 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 часа


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

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


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

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