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

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


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

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


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

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