Текущее время: Вт, июн 24 2025, 14:18

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


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

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


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

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