Текущее время: Пн, июн 23 2025, 03:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Обновление Z полей в SD контракте
СообщениеДобавлено: Пн, май 18 2015, 12:12 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 06 2014, 21:38
Сообщения: 14
Добрый день! Пытаюсь обновить Z-поля с помощью 'BAPI_CUSTOMERCONTRACT_CHANGE'. При этом хочу обновить только Z-поля.

Bapi запускается 2 раза : сначала обновляется заголовок и при необходимости обновляются позиции. Вроде ж все заполняю , а все равно ошибки и при обновлении заголовка и при обновлении позиции.


data: lt_bapiparex type bapiparex_t,
ls_bapiparex type bapiparex.

data: ls_bape_vbak type bape_vbak,
ls_bape_vbakx type bape_vbakx.

data: ls_bape_vbap type bape_vbap,
ls_bape_vbapx type bape_vbapx.

data: lt_return type standard table of bapiret2.

data: ls_header_in type bapisdh1,
ls_header_inx type bapisdh1x.

data: lt_contract_iteam type standard table of bapisditm,
ls_contract_iteam type bapisditm,
lt_contract_iteamx type standard table of bapisditmx,
ls_contract_iteamx type bapisditmx.

check im_vbeln is not initial .

* Данные Заголовка
if im_value_1 is not initial and im_value_2 is not initial.
clear : ls_bape_vbak, ls_bapiparex.

ls_bapiparex-structure = 'BAPE_VBAK'.
ls_bape_vbak-vbeln = im_vbeln.
ls_bape_vbak-zzfield1 = im_value_1.
ls_bape_vbak-zzfield2 = im_value_2.
ls_bapiparex-valuepart1 = ls_bape_vbak.

append ls_bapiparex to lt_bapiparex.

clear : ls_bapiparex, ls_bape_vbak.

ls_bapiparex-structure = 'BAPE_VBAKX'.
ls_bape_vbakx-vbeln = im_vbeln.
ls_bape_vbakx-zzfield_1 = 'X'.
ls_bape_vbakx-zzfield_2 = 'X'.
ls_bapiparex-valuepart1 = ls_bape_vbakx.

append ls_bapiparex to lt_bapiparex.

ls_header_inx-updateflag = 'U'.

endif.
* Данные Позиции


if im_value_3 is not initial and im_posnr is not initial.

clear : ls_bapiparex,ls_bape_vbap.

ls_bapiparex-structure = 'BAPE_VBAP'.
ls_bape_vbap-vbeln = im_vbeln.
ls_bape_vbap-posnr = im_posnr.
ls_bape_vbap-zz_filed3 = im_value_3.
ls_bapiparex-valuepart1 = ls_bape_vbap.

append ls_bapiparex to lt_bapiparex.

clear : ls_bapiparex, ls_bape_vbapx.

ls_bapiparex-structure = 'BAPE_VBAPX'.
ls_bape_vbapx-vbeln = im_vbeln.
ls_bape_vbapx-posnr = im_posnr.
ls_bape_vbapx-zzbanfn = 'X'.
ls_bapiparex-valuepart1 = ls_bape_vbapx.

append ls_bapiparex to lt_bapiparex.

clear ls_contract_iteam.
ls_contract_iteam-itm_number = im_posnr.
append ls_contract_iteam to lt_contract_iteam.

clear ls_contract_iteamx.
ls_contract_iteamx-itm_number = im_posnr.
ls_contract_iteamx-updateflag = 'U'.
append ls_contract_iteamx to lt_contract_iteamx.

endif.



call function 'BAPI_CUSTOMERCONTRACT_CHANGE'
exporting
salesdocument = im_vbeln
contract_header_in = ls_header_in
contract_header_inx = ls_header_inx
tables
return = lt_return
contract_item_in = lt_contract_iteam
contract_item_inx = lt_contract_iteamx
extensionin = lt_bapiparex.


read table lt_return transporting no fields with key type = 'E'.

if sy-subrc ne 0.
call function 'BAPI_TRANSACTION_COMMIT'.
else.
call function 'BAPI_TRANSACTION_ROLLBACK'.
endif.


endmethod.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление Z полей в SD контракте
СообщениеДобавлено: Пт, май 22 2015, 12:46 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
1. Что за ошибки?
2. Для этого документа стандартные поля (типа KTEXT) нормально обновляются?
3. Попробуйте вместе с Z, поменять также и какое-то стандартное поле, посмотреть что получится.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление Z полей в SD контракте
СообщениеДобавлено: Пт, май 29 2015, 08:37 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 07:19
Сообщения: 129
Пол: Мужской
Привет..попробуй так,
ls_bape_vbak-cardno = ....
ls_bape_vbak-dover_date = ...
ls_bape_vbak-ndove = ...
ls_bape_vbak-card_scheme = ...
ls_bape_vbak-dogovor_t = ...
ls_bape_vbak-vbeln = l_docnum.
ls_bape_vbak-card_type = ...

ls_bape_vbakx-vbeln = l_docnum.
ls_bape_vbakx-cardno = 'X'.
ls_bape_vbakx-ndove = 'X'.
ls_bape_vbakx-dover_date = 'X'.
ls_bape_vbakx-dover_text = 'X'.
ls_bape_vbakx-card_scheme = 'X'.
ls_bape_vbakx-dogovor_t = 'X'.
ls_bape_vbakx-card_status = 'X'.
ls_bape_vbakx-pincode = 'X'.
ls_bape_vbakx-card_type = 'X'.


MOVE 'BAPE_VBAK' TO ls_extensionin-structure.

CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = ls_bape_vbak
IMPORTING
ex_container = ls_extensionin-valuepart1.

APPEND ls_extensionin TO lt_extensionin.

CLEAR ls_extensionin.
CLEAR lt_extensionin.

MOVE 'BAPE_VBAKX' TO ls_extensionin-structure.
MOVE ls_bape_vbakx TO ls_extensionin-valuepart1.
APPEND ls_extensionin TO lt_extensionin.
CLEAR lt_extensionin.


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

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


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

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


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

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