Текущее время: Пт, июл 28 2017, 08:55

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


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


ВНИМАНИЕ!

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



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

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

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


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

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


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

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


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


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

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


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

Зарегистрирован:
Чт, июн 21 2007, 10:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Besa писал(а):
Экзит MBCF0007 не подойдет?
Он после COMMIT WORK (Include MM07RFB0 FORM BELEG_BUCHEN).
Т.к. CS_RKPF в методе DATA_MODIFY
Неизвестный автор писал(а):
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, 07:27 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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

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


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

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


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


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

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


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

Зарегистрирован:
Вт, май 31 2005, 21:23
Сообщения: 361
Besa писал(а):
можно попробовать через assign в методе DATA_MODIFY при сохранении
Код:
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, 21:44 
Гуру-модератор
Гуру-модератор
Аватара пользователя

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

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


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

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


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


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

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

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

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


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

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

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


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

Зарегистрирован:
Вт, апр 17 2007, 15:59
Сообщения: 137
в 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, 09:24 
Старший специалист
Старший специалист

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

А получилось добиться, чтобы поля не только записывались при создании 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 + 4 часа


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

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


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

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