Текущее время: Сб, июл 19 2025, 17:51

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по апдейту custom-полей таблицы MARA c помощью BAPI
СообщениеДобавлено: Чт, ноя 07 2013, 00:55 
Ассистент
Ассистент

Зарегистрирован:
Вс, дек 09 2012, 16:41
Сообщения: 37
Добрый день!
Возникла задача проапдейтить стандартную саповскую таблицу MARA,
в которую было добавлено поле ZZF1 ( с помощью append-структуры ).
Поле ZZF1 ( тип char1 ).

Для апдейта использую BAPI -- BAPI_MATERIAL_SAVEDATA.
Шаги, которые предпринял для решения проблемы:

1) добавляю в структуру BAPI_TE_MARA поле ZZF1 (аппендом), тоже самое делаю для структуры BAPI_TE_MARAX ( поле ZZF1 ссылается на компонент BAPIUPDATE )

дальше представляю код:

" суть учебной программы: выбирая какой-либо материал (matnr) и нажимая на кнопочку выполнить, в сustom-поле устанавливаем значение 'X'.

DATA :
lwa_extensionin TYPE bapiparex,
lwa_extensioninx TYPE bapiparexx,
lt_extensionin TYPE STANDARD TABLE OF bapiparex,
lt_extensioninx TYPE STANDARD TABLE OF bapiparexx.

DATA: lt_bapi_te_mara type table of bapi_te_mara,
lwa_bapi_te_mara type bapi_te_mara,
lt_bapi_te_marax type table of bapi_te_marax,
lwa_bapi_te_marax type bapi_te_marax.

DATA: wa_headdata TYPE bapimathead.

PARAMETERS: p_matnr TYPE matnr. " материал

START-OF-SELECTION.

" populate BAPI-structure
lwa_bapi_te_mara-material = p_matnr.
lwa_bapi_te_mara-zzf1 = 'X'.

MOVE 'BAPI_TE_MARA' TO lwa_extensionin-structure. "Extension structure name
lwa_extensionin-valuepart1+0(10) = lwa_bapi_te_mara-material. " pass value of material
lwa_extensionin-valuepart1+12(1) = lwa_bapi_te_mara-zzf1. " pass value of custom-field

APPEND lwa_extensionin TO lt_extensionin.

****************************************************
lwa_bapi_te_marax-material = p_matnr.
lwa_bapi_te_marax-zzf1 = 'X'.

MOVE 'BAPI_TE_MARAX' TO lwa_extensioninx-structure. "Extension structure name
lwa_extensioninx-valuepart1+0(10) = lwa_bapi_te_marax-material. " pass value of material
lwa_extensioninx-valuepart1+12(1) = lwa_bapi_te_marax-zzf1. " pass value of custom-field
APPEND lwa_extensioninx TO lt_extensioninx.

wa_headdata-material = p_matnr.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = wa_headdata
TABLES
extensionin = lt_extensionin
extensioninx = lt_extensioninx
.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.



В общем, набрасал вот такой вот код. Программа отрабатывает, но поле не обновляется. Не знаю, почему
( в том числе и потому,наверное, что опыта - кот наплакал).


Вопрос: что не так и какие шаги необходимо предпринять, чтобы добиться цели.

Активно пользовался материалами из следующих ссылок:

http://wiki.scn.sap.com/wiki/display/AB ... stomfields

http://scn.sap.com/thread/164617

http://scn.sap.com/community/erp/logist ... alsavedata

Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос по апдейту custom-полей таблицы MARA c помощью BAPI
СообщениеДобавлено: Чт, ноя 07 2013, 05:27 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Code:
lwa_extensionin-valuepart1+12(1) = lwa_bapi_te_mara-zzf1. " pass value of custom-field

Почему сдвиг 12? 10 же!

Я бы сделал:
[s]
Code:
lwa_extensionin-valuepart1+0(10) = lwa_bapi_te_mara-material. " pass value of material
lwa_extensionin-valuepart1+12(1) = lwa_bapi_te_mara-zzf1. " pass value of custom-field
[/s]
Code:
lwa_extensionin-valuepart1 = lwa_bapi_te_mara.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по апдейту custom-полей таблицы MARA c помощью BAPI
СообщениеДобавлено: Чт, ноя 07 2013, 08:49 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 01 2005, 07:11
Сообщения: 223
Откуда: Нижневартовск->Москва
Пол: Женский
Rokhay написал:
Code:
lwa_extensionin-valuepart1+12(1) = lwa_bapi_te_mara-zzf1. " pass value of custom-field

Почему сдвиг 12? 10 же!

matnr 18 символов, где вы берете 10 и 12?

еще нашла в своих заначках вот такое:
Цитата:
Для обеспечения корректной передачи z*-полей ОЗМ с помощью BAPI необходимо сде-лать настройку в MDM:
тр. OMSR, либо ветка в SPRO Общая логистика-> Основные записи материалов-> Выбор полей-> Присвоение полей группам выбора полей
Далее в список необходимо добавить новое поле MARA-ZZ*, на которое были расширены структуры. При пополнении списка необходимо обязательно заполнить «Статус ведения» значе-нием «ABCDEFGKLPQSVXZ» (что это означает, можно узнать, нажав F1 на поле). Сохраняем и ав-томатически переходим обратно к списку полей, где во вновь появившейся строке нужно запол-нить группу выбора полей (напр. 111).
После этого, расширение будет корректно обрабатываться в BAPI

_________________
Всегда открыта новым авантюрам!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по апдейту custom-полей таблицы MARA c помощью BAPI
СообщениеДобавлено: Чт, ноя 07 2013, 08:56 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
superbizon написала:
matnr 18 символов, где вы берете 10 и 12?

Ну конечно! Именно поэтому предлагаю присваивать целиком структуру, а не заморачиваться со сдвигом вручную.


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

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


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

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


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

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