Текущее время: Пт, июн 27 2025, 00:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: BAPI_PR_CHANGE возвращает ошибки
СообщениеДобавлено: Чт, окт 11 2012, 17:10 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
Здравствуйте!
Использую BAPI_PR_CHANGE для обновления заявки.
Были созданы структуры CI_EBANDB, CI_EBANDBX с пользовательскими(Z) полями. Поля в CI_EBANDBX имеют тип BAPIUPDATE.
Была создана реализация BADI BAPI_PR_CUST (пока что с пустыми методами)

BAPI_PR_CHANGE возвращает следующие ошибки:
1) MEPO 082 Purchase requisition still contains items with errors
2) BAPI 003 Instance 1000000045 of object type PurchaseRequisition could not be changed
3,4,5,6) Поле Z*** на закладке Данные клиента обязательно для заполнения
Ошибка возникла после заполнения структуры CI_EBANDBX
7) ME 083 Enter Document Type
Хотя поле ls_prheader-pr_type = 'NB'
8 ) ME 887 Error transferring ExtensionIn data for enhancement CI_EBANDB
9) MEPO 080 Processing status invalid

Основное беспокойство вызывают ошибки 7,8,9

Смотрел ноту 1490525 (помогает от ошибок 8,9), но эта нота исправлена во втором пакете поддержки SAP_APPL 605, а в системе стоит 8. Т.е. нота нерелевантна.

Мой код:
Code:

  DATA: lt_pritemx TYPE TABLE OF BAPIMEREQITEMX.
  DATA: ls_pritemx TYPE BAPIMEREQITEMX.
  DATA: lt_pritem TYPE TABLE OF BAPIMEREQITEMIMP.
  DATA: ls_pritem TYPE BAPIMEREQITEMIMP.
  DATA: lt_extensionin TYPE TABLE OF BAPIPAREX.
  DATA: ls_extensionin TYPE BAPIPAREX.
  DATA: lt_return TYPE TABLE OF BAPIRET2.
  data: im_value type bapi_te_mereqitem.
  DATA: im_valuex type bapi_te_mereqitemx.
  DATA: wa_bapi_te_item    TYPE bapi_te_mereqitem.
  DATA: ls_prheader TYPE BAPIMEREQHEADER.
  DATA: ls_prheaderx TYPE BAPIMEREQHEADERX.

  DATA: ls_pritem_save TYPE BAPIMEREQITEM .
  DATA: lt_pritem_save TYPE TABLE OF BAPIMEREQITEM .

        CALL FUNCTION 'BAPI_PR_GETDETAIL'
            EXPORTING
              number                      = gs_alv-banfn
           IMPORTING
             PRHEADER                    = ls_prheader
           TABLES
             PRITEM                      = lt_pritem_save
                   .

         READ TABLE lt_pritem_save INTO ls_pritem_save
         WITH KEY preq_item = gs_alv-bnfpo.

         CLEAR ls_pritem.
         MOVE-CORRESPONDING ls_pritem_save TO ls_pritem.
         APPEND  ls_pritem TO lt_pritem.


         CLEAR ls_pritemx.
         ls_pritemx-PREQ_ITEM = gs_alv-bnfpo.
         ls_pritemx-PREQ_ITEMX = 'X'.
         APPEND ls_pritemx TO lt_pritemx.


        CLEAR im_valuex.
        im_valuex-preq_item = gs_alv-bnfpo.
        im_valuex-ZZSEISM = 'X'.
        im_valuex-ZZSAFCLASS = 'X'.
        im_valuex-ZZDKPP = 'X'.
        im_valuex-ZZPRIORITY_DELIV = 'X'.
        im_valuex-ZZOBJECT_FI = 'X'.
        im_valuex-ZZDIR_USE = 'X'.
        im_valuex-ZZCERTIF = 'X'.
        im_valuex-ZZLOTNUMB = 'X'.
        im_valuex-ZZDUALPURP = 'X'.
        im_valuex-ZZRCOMP_YEAR = 'X'.
        im_valuex-ZZSAFCLASS_PURP = 'X'.
        im_valuex-ZZSUM = 'X'.
        im_valuex-ZZDATE = 'X'.
        im_valuex-ZZPRIOR = 'X'.
        im_valuex-ZZPRCPUR = 'X'.
        im_valuex-ZZSTART = 'X'.

        CLEAR ls_extensionin.
        MOVE 'BAPI_TE_MEREQITEMX' TO ls_extensionin-structure.
        MOVE im_valuex TO ls_extensionin-valuepart1.
        APPEND ls_extensionin TO lt_extensionin.


        CLEAR ls_extensionin.
        MOVE 'BAPI_TE_MEREQITEM' TO ls_extensionin-structure.
        CLEAR im_value.
        MOVE-CORRESPONDING eban TO im_value.
        im_value-ZZPRCPUR = gs_alv-ZZPRCPUR .
        im_value-ZZSTART = gs_alv-ZZSTART.
        CALL METHOD cl_abap_container_utilities=>fill_container_c
        EXPORTING
          im_value               = im_value
        IMPORTING
          ex_container           = ls_extensionin-valuepart1
        EXCEPTIONS
          illegal_parameter_type = 0
          OTHERS                 = 0.

        APPEND ls_extensionin TO lt_extensionin.

        CLEAR ls_prheader.
        ls_prheader-preq_no = eban-banfn.
        ls_prheader-pr_type = eban-bsart.

        CLEAR ls_prheaderx.
        ls_prheaderx-preq_no = 'X'.
        ls_prheaderx-pr_type = 'X'.
        ls_prheaderx-GENERAL_RELEASE = 'X'.
        ls_prheaderx-CREATE_IND = 'X'.
        ls_prheaderx-ITEM_INTVL = 'X'.
        ls_prheaderx-LAST_ITEM = 'X'.


        CALL FUNCTION 'BAPI_PR_CHANGE'
          EXPORTING
            number         = gs_alv-banfn
            prheader       = ls_prheader
            prheaderx      = ls_prheaderx
          TABLES
             RETURN        = lt_return
             PRITEM        = lt_pritem
             PRITEMX       = lt_pritemx
             EXTENSIONIN   = lt_extensionin
         .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_PR_CHANGE возвращает ошибки
СообщениеДобавлено: Пт, окт 12 2012, 09:58 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 01 2005, 07:11
Сообщения: 223
Откуда: Нижневартовск->Москва
Пол: Женский
по пунктам
7:
Вы уверенны, что в ранее созданной заявке можно менять тип и тем более номер? Вот это уберите:
Code:
ls_prheaderx-preq_no = 'X'.
ls_prheaderx-pr_type = 'X'.

8:
среди полей расширения есть non-char? Система юникодная? Не знаю как на Вашей версии, но раньше не рекомендовалось расширять структуры non-char полями в юникодных системах как раз во избежание проблем с BAPI, см ноту 637345, там про PS , но в закупках местами та же фигня

остальное наверняка следствие этих двух ошибок

з.ы. в старых версиях 'BAPI_PR_CHANGE' вообще не отрабатывал корректно при многократных вызовах (что-то не очищалось в памяти), приходилось делать через submit. Ели совсем ничегог не поможет, попробуйте так

_________________
Всегда открыта новым авантюрам!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PR_CHANGE возвращает ошибки
СообщениеДобавлено: Пт, окт 12 2012, 15:24 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
superbizon, спасибо за ответ.
Последовал Вашим советам. Пока что все те же ошибки.

Это убрал:
Code:
ls_prheaderx-preq_no = 'X'.
ls_prheaderx-pr_type = 'X'.


Пользовательские поля имеют тип CHAR,NUMC,DATS.

Насчет sabmit, к сожалению, не понял, что Вы имеете ввиду, какую программу вызывать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_PR_CHANGE возвращает ошибки
СообщениеДобавлено: Пт, окт 12 2012, 16:13 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 01 2005, 07:11
Сообщения: 223
Откуда: Нижневартовск->Москва
Пол: Женский
вот с этим
8 ) ME 887 Error transferring ExtensionIn data for enhancement CI_EBANDB
разберитесь под дебагом.
Может в расширениях что-то не то написано?

_________________
Всегда открыта новым авантюрам!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: BAPI_PR_CHANGE не вносит изменения в z-поля
СообщениеДобавлено: Пн, ноя 18 2013, 13:11 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Добрый день!
Не могу найти причину, почему не изменяются z-поля
сделала вызов бапи аналогично http://www.sapnet.ru/viewtopic.php?t=3636&highlight=bapiprchange
бапи возвращает сообщение, что заявка изменена, но поля остаются неизмененными.
BAPI_TRANSACTION_COMMIT вызываю

пересмотрела посты на тему этого бапи и возможных ошибок.
ноты 1705810 и 1748182 установлены. реализации бади ME_BAPI_PR_CUST нет.
версия системы EHP6 FOR SAP ERP 6.0

UPD
попробовала запустить бапи аналогично примеру из этого топика, с изменением стандартного поля в позиции. Заявка вообще пропадает из eban! где-то я видела тему - как удалить заявку, пойду пожалуй научу :)

а вот как корректно сделать изменения? :cry:

_________________
Silence v.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PR_CHANGE возвращает ошибки
СообщениеДобавлено: Вт, ноя 19 2013, 09:09 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
вопрос снят, все работает :)

_________________
Silence v.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PR_CHANGE возвращает ошибки
СообщениеДобавлено: Вт, ноя 19 2013, 15:18 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, июн 13 2007, 16:36
Сообщения: 585
Откуда: Belarus
Пол: Мужской
Так, интереса ради: а где собака порылась ? :wink:

ЗЫ: сам пользую штуку, описанную здесь: viewtopic.php?f=13&t=68304


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PR_CHANGE возвращает ошибки
СообщениеДобавлено: Вт, ноя 19 2013, 15:36 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Dzed Maroz написал:
Так, интереса ради: а где собака порылась ? :wink:


в EHP6 не удалось изменить только extensionin, пришлось считывать данные заявки и передавать обратно PRITEM, указав PRITEMX-preq_itemx = 'X'
из EBAN ничего не удалялось, это я вчера просто записи "потеряла" :D

Dzed Maroz написал:
ЗЫ: сам пользую штуку, описанную здесь: viewtopic.php?f=13&t=68304

это мне не подошло, мне нужен был общий commit

_________________
Silence v.2.0


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

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


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

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


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

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