SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Проблема с bapi_incominginvoice_post



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Wed Mar 27, 2013 2:58 pm    Post subject: Проблема с bapi_incominginvoice_post Reply with quote

Добрый день, уважаемые эксперты.

Столкнулся с проблемой при использовании данного BAPI. Мне нужно изменить некоторые данные предварительных счетов,а затем создавать счета-фактуры на их основании. Для изменения использую bapi_incominginvoice_change, для создания bapi_incominginvoice_post.

Проблема: после выполнения изменений bapi_incominginvoice_post не отрабатывает, т.е. не возвращает ошибки(return пустой),если таковые были.
Если ошибок нет, то все ок - документ проводиться.
Так же, при повторном вызове bapi_incominginvoice_post все корректно(возвращает все ошибки).

Подскажите, пожалуйста, с чем это может быть связано?

Заранее благодарен.

Кусок тестового кода:
Code:

set update task local.
CALL FUNCTION 'BAPI_INCOMINGINVOICE_CHANGE'
  EXPORTING
    invoicedocnumber         = belnr
    fiscalyear                   = gjahr
    headerdata_change     = header_data
    headerdata_changex   = header_datax
  TABLES
    return                           = return.
 

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.

set update task local.

CALL FUNCTION 'BAPI_INCOMINGINVOICE_POST'
  EXPORTING
    invoicedocnumber       = belnr
    fiscalyear                    = gjahr
  TABLES
    return                    = return.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.

Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 175
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Mar 27, 2013 4:07 pm    Post subject: Reply with quote

Возможно не успевается сняться блокировка, даже не смотря на указание локального апдейта.
Для проверки это после первого
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.

Поставьте задержку на 1 мин, посмотрите, исчезнет ли ошибка.
Если не исчезнет, отпиши, подумаем дальше.

_________________
Молитва - это запрос разработчику на изменение кода программы.
Back to top
View user's profile Send private message Blog Visit poster's website
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Wed Mar 27, 2013 4:44 pm    Post subject: Reply with quote

Попробывал, ничего не поменялось. До этого насильно пробывал снимать блокировку с помощью ФМ.

Заметил в отладчике, что в ФМ 'MRM_INVOICE_POST' (который вызвается bapi) при вызове ФМ 'CKMV_AC_DOCUMENT_CREATE' ошибка была возвращена(sy-subrc eq 1), но потом, в последующем ФМ 'MESSAGES_STOP' (переменная MESSAGES_COLLECT = 'X') ошибки только типа 'W'.
Это в случае запуска после bapi_incominginvoice_change.

При отдельном запуске bapi_incominginvoice_post , ошибка так же возвращается, но в ФМ 'MESSAGES_STOP' переменная MESSAGES_COLLECT = ' ', соответственно этот ФМ не отрабатывает.
Confused
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 175
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Mar 27, 2013 4:58 pm    Post subject: Reply with quote

Fami4 wrote:
Попробывал, ничего не поменялось. До этого насильно пробывал снимать блокировку с помощью ФМ.


Так так, где, зачем насильно блокировки снимать? Все должно само сняться после завершения Commit.

Уберите set update task local.
и так же подождите до 1 мин. Посмотрите, после этого блокирокуи сняты? (sm12)

_________________
Молитва - это запрос разработчику на изменение кода программы.
Back to top
View user's profile Send private message Blog Visit poster's website
Fami4
Специалист
Специалист


Age: 43
Joined: 04 Aug 2009
Posts: 62
Location: UA

PostPosted: Wed Mar 27, 2013 5:33 pm    Post subject: Reply with quote

Блокировку насильно снимал для перестраховки Smile

Выполнил все действия, о которых Вы говорили. Блокировка снялась после commit, как и должна.
Результат не изменился...
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 175
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Mar 27, 2013 5:46 pm    Post subject: Reply with quote

Хорошо.
Вероятней всего где-то в функциональной группе оставлись не очищенные данные.

Вам надо после первого commit вставить какую-то функцию, которая бы очищала эти данные.
Вы заметили, что есть разница в выполнении 'CKMV_AC_DOCUMENT_CREATE'. под дебагом, попробуйте понять, из-за чего возникает ошибка и найдите какой-нибудь fm или напрямую через глобальный assign, очистите внутренние данные.
На вскидку посмотрел, может поможет
CALL FUNCTION 'CKMCD_BUFFER_REFRESH'.

Другой вариант, запускать вторую bapi c параметром
... AS SEPARATE UNIT,
но насколько помню, будут проблемы с commit, поэтому нужно писать обертку над bapi, которая одновременно вызовет bapi и сделает commit.

_________________
Молитва - это запрос разработчику на изменение кода программы.
Back to top
View user's profile Send private message Blog Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.