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

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


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

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


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

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