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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Авансовый платеж & BAPI
СообщениеДобавлено: Пт, мар 28 2008, 11:44 
Ассистент
Ассистент

Зарегистрирован:
Пт, июл 14 2006, 04:29
Сообщения: 26
Здравствуйте!

Есть нужда создавать документ авансового платежа через BAPI.
При диалоговом создании аванса(тр-ия F-48) , система генерит связи между закупочным заказом и бух. документом, т.е. в истории позиции закупочного заказа светится запись с номером бух. документа, равно как и в самом бух. документе аванса есть ссылка на номер закупочного заказа в браузере отношений (в тр-ии FB03 кликаем в меню: Среда -> Среда документа -> Браузер отношений).

Я использую 'BAPI_ACC_DOCUMENT_POST' для создания авансового платежа:
data: ls_documentheader type BAPIACHE09,
ls_accountgl type BAPIACGL09,
ls_currencyamount type BAPIACCR09,
ls_kreditor type BAPIACAP09,
l_type type BAPIACHE09-OBJ_TYPE,
l_key type BAPIACHE09-OBJ_KEY,
l_sys type BAPIACHE09-OBJ_SYS,
ls_return type BAPIRET2,
ls_EXTENSION1 type BAPIACEXTC,
LS_EXTENSION2 type BAPIPAREX,
ls_zavans type zavans,
LS_criteria LIKE BAPIACKEC9.

data: lt_accountgl type BAPIACGL09 occurs 0 with header line,
lt_currencyamount type BAPIACCR09 occurs 0 with header line,
lt_kreditor type BAPIACAP09 occurs 0 with header line,
lt_return type BAPIRET2 occurs 0 with header line,
lt_EXTENSION1 type BAPIACEXTC occurs 0 with header line,
lt_EXTENSION2 type BAPIPAREX occurs 0 with header line,
LT_criteria LIKE BAPIACKEC9 OCCURS 0 WITH HEADER LINE.


clear ls_documentheader.

ls_documentheader-username = sy-uname.
ls_documentheader-header_txt = 'Аванс на кредитора'.
ls_documentheader-comp_code = '2000'.
ls_documentheader-fisc_year = '2008'.
ls_documentheader-doc_date = sy-datum.
ls_documentheader-pstng_date = sy-datum.
ls_documentheader-doc_type = 'KZ'.

clear ls_accountgl.
ls_accountgl-itemno_acc = 1.
ls_accountgl-gl_account = '0051101011'.
ls_accountgl-item_text = 'Аванс на кредитора'.
ls_accountgl-COMP_CODE = '2000'.
append ls_accountgl to lt_accountgl.

clear ls_kreditor.
ls_kreditor-itemno_acc = 2.
ls_kreditor-VENDOR_NO = '0004022409'.
ls_kreditor-SP_GL_IND = 'A'.
ls_kreditor-PMNT_BLOCK = 'A'.
ls_kreditor-COMP_CODE = '2000'.
append ls_kreditor to lt_kreditor.

clear ls_currencyamount.
ls_currencyamount-itemno_acc = 1.
ls_currencyamount-curr_type = '00'.
ls_currencyamount-currency = 'RUB'.
ls_currencyamount-amt_doccur = -6000.
append ls_currencyamount to lt_currencyamount.

clear ls_currencyamount.
ls_currencyamount-itemno_acc = 2.
ls_currencyamount-curr_type = '00'.
ls_currencyamount-currency = 'RUB'.
ls_currencyamount-amt_doccur = 6000.
append ls_currencyamount to lt_currencyamount.
refresh LT_criteria.
******************************* РАСШИРЕНИЕ ***********************
clear ls_zavans.
ls_zavans-POSNR = 2.
ls_zavans-vorgn = 'AZBU'.
ls_zavans-EBELN = '4500000144'.
ls_zavans-EBELP = '00030'.
ls_zavans-REBZG = ''.

clear ls_EXTENSION2.
ls_EXTENSION2-STRUCTURE = 'zavans'.
ls_EXTENSION2-VALUEPART1+0(10) = ls_zavans-POSNR.
ls_EXTENSION2-VALUEPART1+10(4) = ls_zavans-vorgn.
ls_EXTENSION2-VALUEPART1+14(10) = ls_zavans-EBELN.
ls_EXTENSION2-VALUEPART1+24(5) = ls_zavans-EBELP.
ls_EXTENSION2-VALUEPART1+29(10) = ls_zavans-REBZG.
append ls_EXTENSION2 to lt_EXTENSION2.
**************************************************************************
break-point.
call function 'BAPI_ACC_DOCUMENT_POST'
exporting
documentheader = ls_documentheader
importing
obj_type = l_type
obj_key = l_key
obj_sys = l_sys
tables
accountgl = lt_accountgl
accountpayable = lt_kreditor
currencyamount = lt_currencyamount
criteria = LT_criteria
* EXTENSION1 = lt_EXTENSION1
EXTENSION2 = lt_EXTENSION2
return = lt_return.
loop at lt_return.
write: lt_return-MESSAGE.
endloop.
commit work.

В результате получаю на вид нормальный документ авансового платежа, но линков на закупочный заказ не создалось, т.е. нет записи с номером бух документа в истории позиции закупочного заказа, и отсутствует ссылка на закупочный заказ в браузере отношений бух. документа.

Можно создать полноценный документ авансового платежа со всеми ссылками, что есть при диалоговой работе тр-ии F-48? Что мне для этого надо сделать?


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

Зарегистрирован:
Вт, сен 26 2006, 12:20
Сообщения: 360
добрый день. а вы заполняете EBELN и EBELP на позиции кредитора в документе авансового платежа?


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

Зарегистрирован:
Пт, июл 14 2006, 04:29
Сообщения: 26
Дмитрий О. написал(а):
добрый день. а вы заполняете EBELN и EBELP на позиции кредитора в документе авансового платежа?


Да в том то и дело, что заполняю. В BAPI нет стандартных полей для этих данных, по этому я заполняю их в EXTENTION2. В итоге получается на вид нормальный документ, где в позиции кредитора проставлен номер закупочного заказа, но история документов в ММ заказе не обновляется, так как это делается при диалоговом создании аванса.


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

Зарегистрирован:
Пт, ноя 25 2005, 15:06
Сообщения: 143
Посмотри FIBF.
Меню Параметры настройки / модули процесса / SAP-приложения

Какой функциональный модуль присвоен процессу RWBAPI01.
Если стандарт /SAPPCE/DPC_PROCESS_EXTENSION, то он не расчитан на то, чтобы ложить ссылку на заказ.

Скопируй станадарт в свой Z ФМ и добавь что-то такое:
Code:
insert EBELN - номер заказа на поставку
      when 'EBELN'.
        read table it_accit into ls_accit
             with key posnr = ld_posnr.
        check sy-subrc eq 0.
        ld_tabix = sy-tabix.
        ls_accit-ebeln = ls_bapi_extension-field3.
* modify document item
        modify it_accit from ls_accit index ld_tabix.

* insert EBELP - позиция заказа на поставку
      when 'EBELP'.
        read table it_accit into ls_accit
             with key posnr = ld_posnr.
        check sy-subrc eq 0.
        ld_tabix = sy-tabix.
        ls_accit-ebelp = ls_bapi_extension-field3.
* modify document item
        modify it_accit from ls_accit index ld_tabix.


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

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


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

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


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

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