Текущее время: Чт, мар 28 2024, 16:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: MB_RESERVATION_BADI
СообщениеДобавлено: Ср, апр 06 2011, 08:50 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Добрый день!

Прочитал все найденные обсуждения по поводу данного BADI.
Но, к сожалению, так и не нашел конкретного ответа как же все-таки изменять данные заголовка в резервировании программным путем в момент создания резервирования.
Использую MB_RESERVATION_BADI метод DATA_MODIFY. В структуре CS_RKPF (типа Changing) изменяю значение поля, ну например, "Получатель материала" простым присвоением и все.
Данные не сохраняются. Как же все-таки добиться нужного результат?
Расширения тоже не помогают.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Ср, апр 06 2011, 10:33 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
В IT_CHANGEABLE это поле есть?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Ср, апр 06 2011, 14:12 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Пономарев Артем написал:
В IT_CHANGEABLE это поле есть?


В IT_CHANGEABLE этого поля нет. Там только поля для позиций документа резервирования - RESB.
Как тогда вообще менять поля в заголовке (RKPF)?
Но я попробовал проэкспериментировать с теми полями, которые там есть, например, текст позиции SGTXT.
Это поле меняется в процессе обработки резервирования на то, значение, которое я подставляю,
но оно все равно не сохраняется при сохранении резервирования.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Ср, апр 06 2011, 14:22 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Экзит MBCF0007 не подойдет?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Ср, апр 06 2011, 22:18 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Besa написал:
Экзит MBCF0007 не подойдет?
Он после COMMIT WORK (Include MM07RFB0 FORM BELEG_BUCHEN).
Т.к. CS_RKPF в методе DATA_MODIFY
Documentation написал(а):
The structure is only here for information.
, то если позволяет версия - можно сделать Enhancement в MB_CREATE_RESERVATION или FORM BELEG_BUCHEN.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Чт, апр 07 2011, 06:27 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Alex80 написал:
Он после COMMIT WORK (Include MM07RFB0 FORM BELEG_BUCHEN).

Точно, смотрел ведь, проглядел...
Alex80 написал:
если позволяет версия - можно сделать Enhancement в MB_CREATE_RESERVATION или FORM BELEG_BUCHEN.

или/если нет, можно попробовать через assign в методе DATA_MODIFY при сохранении
Code:
data: ss(20).
FIELD-SYMBOLS <fs> TYPE ANY.
ss = '(SAPMM07R)rkpf-aufnr'.
ASSIGN (ss) to <fs>.
<fs> = '111'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Чт, апр 07 2011, 13:15 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Alex80 написал:
Т.к. CS_RKPF в методе DATA_MODIFY
Documentation написал(а):
The structure is only here for information.
, то если позволяет версия - можно сделать Enhancement в MB_CREATE_RESERVATION или FORM BELEG_BUCHEN.


А какая версия должна быть для этого? У нас ERP 2005, компоненты базируются на 6 версии.
Enhancement - это точка расширения? Если да, то для чего она нужна? Поясните, пожалуйста.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Пт, апр 08 2011, 06:52 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
У Вас поддерживается Enhancements... Как использовать и для чего это, в поиск, информации много. В кратце, есть возможность в определенных местах стандартного кода, вставлять свой код.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Чт, апр 14 2011, 12:49 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, май 31 2005, 20:23
Сообщения: 362
Besa написал:
можно попробовать через assign в методе DATA_MODIFY при сохранении
Code:
data: ss(20).
FIELD-SYMBOLS <fs> TYPE ANY.
ss = '(SAPMM07R)rkpf-aufnr'.
ASSIGN (ss) to <fs>.
<fs> = '111'.


Спасибо. Воспользовался этим кодом и все получилось.
Но возникла еще одна проблема. Это все отлично работает при ручномм вводе резервирования (тр. MB21), но при загрузке IDOC'а нет.
При загрузке IDOC отрабатывает EXIT_SAPLMEWB_001. Но этот EXIT не позволяет менять данные заголовка резервирования.
Чтобы сделать то же самое как и при ручном вводе (ss = '(SAPMM07R)rkpf-aufnr') не могу найти нужную программу, где происходит сохранение данных.
Подскажите, что можно сделать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Чт, апр 14 2011, 20:44 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
При загрузке айдока скорее всего используется BAPI BAPI_RESERVATION_CREATE1.
В этой бапи используется бади MB_RES_BAPI_CREATE1, ее можно использовать для изменения заголовка.
Правда есть нюанс - бади эта у вас может быть кривая :) см. ноту 1334736

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Чт, мар 05 2015, 06:06 
Специалист
Специалист

Зарегистрирован:
Вт, апр 17 2007, 14:59
Сообщения: 141
Пономарев Артем написал:
В IT_CHANGEABLE это поле есть?


Как в IT_CHANGEABLE добавить свои Z-поля?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Чт, мар 05 2015, 09:22 
Специалист
Специалист

Зарегистрирован:
Ср, дек 22 2010, 19:49
Сообщения: 114
ArtDevil написал(а):
Как в IT_CHANGEABLE добавить свои Z-поля?

Поставить в экране - флаг доступно для ввода, они добавятся автоматически (include MM07RFD2_DATA_PRESET_EXTERNAL)

_________________
Человек готов работать 24 часа в сутки, лишь бы ничего не делать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Чт, мар 05 2015, 14:23 
Специалист
Специалист

Зарегистрирован:
Вт, апр 17 2007, 14:59
Сообщения: 141
NeMurometz написал(а):
Поставить в экране - флаг доступно для ввода, они добавятся автоматически (include MM07RFD2_DATA_PRESET_EXTERNAL)

Спасибо за ответ.
Экран SAPовский проверяется, там нет Z-полей, следовательно не получится туда добавить мои значения :(
Придется пробовать тогда gt_changed_field заполнить в конце form data_preset_external через ENHANCEMENT и подсовывать свои значения.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Пт, мар 06 2015, 06:55 
Специалист
Специалист

Зарегистрирован:
Вт, апр 17 2007, 14:59
Сообщения: 141
в Include MM07RFD2_DATA_PRESET_EXTERNAL (в самом конце) вставил ENHANCEMENT
там объявил таблицу data t_changeable TYPE tdtab_c132 и заполнил своими Z-полями.
дальше:

LOOP AT t_changeable INTO changeable_field.
CLEAR: l_struct, l_field, changed_field.
l_struct = changeable_field(4).
CHECK l_struct = 'RESB' OR l_struct = 'RKPF'.
field_length = strlen( changeable_field ) - 5.
l_field = changeable_field+5(field_length).
IF l_struct = 'RESB'.
CONCATENATE 'LS_RESB-' l_field INTO changed_field.
ELSEIF l_struct = 'RKPF'.
CONCATENATE 'LS_RKPF-' l_field INTO changed_field.
ENDIF.
ASSIGN (changed_field) TO <changed_field>.
ASSIGN (changeable_field) TO <original_field>.
IF <original_field> <> <changed_field>.
APPEND changeable_field TO gt_changed_field.
ENDIF.
<original_field> = <changed_field>.
ENDLOOP.
SORT gt_changed_field.

Сами данные заполняю в BAdi MB_RESERVATION_BADI. для CS_RKPF-z* и CS_RESB-z*

РАБОТАЕТ при создании через MB21


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MB_RESERVATION_BADI
СообщениеДобавлено: Пт, апр 28 2017, 08:24 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, май 07 2007, 09:44
Сообщения: 408
Подниму тему.

А получилось добиться, чтобы поля не только записывались при создании MB21, но и при изменении в MB22?

У меня на 521 экран выведено поле ZZZZ (модификация).
В таблицу RKPF это поле также добавлено.

При создании резервирования значение с экрана записываются в RKPF-ZZZZ, причем без дополнительной обработки.
Ни в MB_RESERVATION_BADI, ни в Exit-ах MB* ничего не дописывал. (Видимо, где-то Move-corresponding в стандарте отрабатывает)

Но, при изменении в mb22 значение ZZZZ остается старым.

Все экзиты по резервированию вызываются после Commit work. Ставлю там точку, в MM07RFB0 form Beleg_buchen.
И здесь во внутренней таблице XRKPF значение моего поля ZZZZ новое. НО в итоге после сохранения значение в таблице RKPF старое.
Подскажите, как добиться изменения через MB22?

PS. При изменении заголовка резервирования ни BADI, ни Exit-ы вообще не отрабатывают.
Версия системы 604.


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

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


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

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


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

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