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

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


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

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


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

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