Текущее время: Вт, июл 22 2025, 23:53

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 14 2008, 14:38 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 09:18
Сообщения: 21
Откуда: Санкт-Петербург
BAdI для изменения собственных полей клиента
Use

This Business Add-In is used in the component MM-IV.

You can use it to change customers' own fields in vendor invoices.

You can use the Business Add-In (BAdI) MRM_ITEM_CUSTFIELDS to integrate a subscreen of your own at item level to process customers' own data. The Customer Include CI_DRSEG_CUST is available for customers' own fields. The structure DRSEG_CI contains the fields C_RBLGP (document item in invoice document), C_KOART (account type), and Customer Include CI_DRSEG_CUST. The structure DRSEG_CI is already contained in the structures DRSEG (invoice item (dialog processing)), MMCR_FRSEG and MMCR_RBMA. If you wish to save customers' own fields to the database, you must attach these fields in an APPEND structure to the corresponding database table (RSEG, RBDRSEG, RBMA). For G/L account lines, add an APPEND structure with the customer's own fields to the structure COBL_MRM. The customer's own fields then also exist in the database table RBCO.

The customer's own fields can be processed on a separate subscreen during online invoice verification with the aid of the Business Add-In MRM_ITEM_CUSTFIELDS. The following data is available for this purpose:

Transaction type (Create, Change...)
Invoice document header
Invoice document items (items with PO reference, items with G/L account posting, items with material posting)
Note:
In the case of automatic transactions, the customer's own fields cannot be populated.

Requirements

To implement this BAdI, you need ABAP knowledge to create the subscreen and for the flow logic.

Standard settings

The Business Add-In cannot be used multiple times.

The Business Add-In is not filter-dependent.

There is no default implementation.

Example:
WKA_ITEM_CUSTFIELDS is available as an example of an implementation.

Further information:

Documentation of BAdI method:
TABPAGE_LABEL_SET

Documentation of BAdI method:
CUSTOMDATA_MODIFY

Documentation of BAdI method:
INVOICE_DATA_TRANSFER

Documentation of BAdI method:
CUSTOM_DATA_TRANSFER

Documentation of BAdI method:
CUSTOM_DATA_GET

Documentation of BAdI method:
INVOICE_DATA_GET

Activities

After you call the IMG activity, the system displays a dialog box where you enter a name for the implementation.

If implementations of this Business Add-In have already been created, the system displays them in a dialog box. You then choose one of them by choosing Create, and continue as follows:

1. In the dialog box, enter a name for the implementation of the Add-In and choose Create.
The system displays the initial screen for creating Business Add-In implementations.
2. On this screen, enter a short description for your implementation in the Implementation Short Text field.
3. If you choose the Interface tab, you will notice that the system has populated the Name of the Implementing Class field automatically, by assigning a class name based on the name of your implementation.
4. Save your entries and assign the Add-In to a package.
5. To edit a method, double-click its name.
6. Enter your implementation code between the method <Interface Name>~<Name of Method>. and endmethod. statements.
7. Save and activate your code. Navigate back to the Change Implementation screen.
Note: You can also create an implementation for an Add-In and not activate it until later. If you want to do this, do not perform the following step:
8. Choose Activate.
When the application program is executed, the code you created is run through.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 06:37 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Можно попробовать, если в ERP 2005 еще не отменили, создать field-exit на поле заказа. В экзите и провести заполнение нужных полей, доступ - через гл.адресацию. Как создавать см.
http://sapboard.ru/forum/viewtopic.php?t=20682
Недостаток - будет срабатывать при каждом заходе в PAI.


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

Зарегистрирован:
Чт, май 11 2006, 12:07
Сообщения: 271
Откуда: Chelyabinsk
Пол: Женский
Aval написал:
Можно попробовать, если в ERP 2005 еще не отменили, создать field-exit на поле заказа. В экзите и провести заполнение нужных полей, доступ - через гл.адресацию. Как создавать см.
http://sapboard.ru/forum/viewtopic.php?t=20682
Недостаток - будет срабатывать при каждом заходе в PAI.


Заполнение поля ZUONR будет проходить в екзите? Если да, то в каком? Не совсем поняла...
В экзите на поле заказа можно будет поменять поле ZUONR?
У нас параметр системы abap/fieldexit = NO. С перезапуском системы возникнут сложности, местные админы не охотно идут на лишнюю работу. А решить вопрос надо быстро :(

_________________
Абапер...
Продолжаю удивляться SAPу!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 07:44 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Field-exit это ФМ, который отрабатывает при попадании в PAI экрана/подэкрана, на котором данное поле расположено. В данном ФМ можно расположить следующую конструкцию:
(SAPLMR1M)rbkp-zuonr = (SAPLMR1M)ekko-<поле-источник>
Воспользуйтесь программой RSMODPRF для создания ФМ, она не сложная, но как обычно в САПЕ, правильная последовательность дейтсвий не лежит на поверхности. Созданный ФМ желатльно делать в своей группе функций.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 08:55 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Хотел бы исправиться. В данном ФМ структура EKKO будет скорее всего пустая еще, так что делать нужно так:

select single <поле источник> into <ваша переменная>
from <заголовок/детали заказа> where ebeln = INPUT. - номер заказа

(SAPLMR1M)rbkp-zuonr = <ваша переменная>

В случае позиции, select конечно же немного другой.


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

Зарегистрирован:
Чт, май 11 2006, 12:07
Сообщения: 271
Откуда: Chelyabinsk
Пол: Женский
Вроде понятно, спасибо, сейчас попробую.
Только надо добиться перезагрузки системы

_________________
Абапер...
Продолжаю удивляться SAPу!


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

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
assign ('(SAPLMR1M)rbkp-zuonr') to <tmp>.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


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

Зарегистрирован:
Чт, май 11 2006, 12:07
Сообщения: 271
Откуда: Chelyabinsk
Пол: Женский
Lars написал:
assign (с) assign ('(SAPLMR1M)rbkp-zuonr') to <tmp>.


Спасибо, до меня это уже дошло :D

Пробовала по другому:
tmp = '(SAPLMR1M)rbkp-zuonr'.
assign (tmp) to <fs>.
Такой вариант не срабатывает вообще.

_________________
Абапер...
Продолжаю удивляться SAPу!


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

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Цитата:
assign ('(SAPLMR1M)rbkp-zuonr') to <tmp>.

Ну да, надо еще филд-символ создать. Так что вторая строка меняется на
Цитата:
assign ('(SAPLMR1M)rbkp-zuonr') to <tmp>.
<tmp> = <ваша переменная>.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 15 2008, 11:23 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Цитата:
assign (tmp) to <fs>.

Филд-символ сам объявили выше?


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

Зарегистрирован:
Чт, май 11 2006, 12:07
Сообщения: 271
Откуда: Chelyabinsk
Пол: Женский
Aval написал:
Цитата:
assign (tmp) to <fs>.

Филд-символ сам объявили выше?


конечно :)

_________________
Абапер...
Продолжаю удивляться SAPу!


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

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Anutka написала:
Lars написал:
assign (с) assign ('(SAPLMR1M)rbkp-zuonr') to <tmp>.


Спасибо, до меня это уже дошло :D

Пробовала по другому:
tmp = '(SAPLMR1M)rbkp-zuonr'.
assign (tmp) to <fs>.
Такой вариант не срабатывает вообще.


А что не срабатывает то ?
<fs> не ассайнится, не верится что-то.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


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

Зарегистрирован:
Чт, май 11 2006, 12:07
Сообщения: 271
Откуда: Chelyabinsk
Пол: Женский
В ожидании перезапуска системы для запуска работы филд екзита, написала в ФМ EXIT_SAPLFDCB_001 расширения LFDCB001 следующее:

field-symbol: <EBELN>,
<fs>.
assign ('(SAPLMR1M)RM08M-EBELN') to <EBELN>.
select single * from ekko
where ebeln = <EBELN>.
assign ('(SAPLFDCB)INVFO-ZUONR') to <fs>.
<fs> = ekko-verkf.

Работает! Ура! :D
А расширение LMR1M001 для MIRO у меня так и не работает. Интересно почему...

_________________
Абапер...
Продолжаю удивляться SAPу!


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

Зарегистрирован:
Чт, май 11 2006, 12:07
Сообщения: 271
Откуда: Chelyabinsk
Пол: Женский
Lars написал:
Anutka написала:
Lars написал:
assign (с) assign ('(SAPLMR1M)rbkp-zuonr') to <tmp>.


Спасибо, до меня это уже дошло :D

Пробовала по другому:
tmp = '(SAPLMR1M)rbkp-zuonr'.
assign (tmp) to <fs>.
Такой вариант не срабатывает вообще.


А что не срабатывает то ?
<fs> не ассайнится, не верится что-то.


ага, работа assign возвращает sy-subrc = 4

_________________
Абапер...
Продолжаю удивляться SAPу!


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

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
хм .. а tmp при этом какой длины ?

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3  След.

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


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

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


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

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