Текущее время: Ср, июл 23 2025, 01:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Удаление операций в заказе  Тема решена
СообщениеДобавлено: Ср, окт 10 2012, 13:05 
Специалист
Специалист

Зарегистрирован:
Вт, мар 07 2006, 15:56
Сообщения: 137
Пол: Мужской
Добрый день.
В расширении IWO10009 необходимо удалить операцию заказа. Как это можно сделать?
ФМ CO_BT_AFVG_DEL операцию удаляет, но заказ падает в дамп при сохранении.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удаление операций в заказе
СообщениеДобавлено: Ср, окт 10 2012, 15:17 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
BAPI_ALM_ORDER_MAINTAIN

А так вообще в гугле вбейте "SAP PM order status BAPI" и кликайте на первую ссылку.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Удаление операций в заказе
СообщениеДобавлено: Ср, окт 10 2012, 15:50 
Специалист
Специалист

Зарегистрирован:
Вт, мар 07 2006, 15:56
Сообщения: 137
Пол: Мужской
Shvetz написал(а):
BAPI_ALM_ORDER_MAINTAIN

:)
Так и думал, что так ответят.
Вызывать при обработке заказа BAPI для изменения этого же заказа, которое в свою очередь еще раз вызовет расширение IWO10009. Хороший пример рекурсии.
Суть в том что операцию нужно удалять из заказа находясь в нем же самом. Никакие BAPI тут не подойдут.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удаление операций в заказе
СообщениеДобавлено: Ср, окт 10 2012, 16:27 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Вы запускали внутри экзита ФМ, откуда я понял, что вы не внутри заказа, который изменяете. В таком случае BAPI ни ФМ использовать нельзя (между ними разницы нет - оба ведь - ФМ, имеющие доступ к заказу, который уже редактируется).
Во-вторых о понятии рекурсии надо забыть - в САПе используется распространенно механизм блокировок.

В данном случае надо править внутренние переменные заказа (таблицу с операциями, которая идет на сохранение). Если это нельзя сделать через BAdI или экзит, то тогда надо осторожно использовать ASSIGN , чтобы эту переменную изменить. И опять же надо быть увереным, что после этого экзита, таблица опять не поменяется.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Удаление операций в заказе
СообщениеДобавлено: Ср, окт 10 2012, 16:56 
Специалист
Специалист

Зарегистрирован:
Вт, мар 07 2006, 15:56
Сообщения: 137
Пол: Мужской
Тык в том и вопрос. Сам САП удаляет операции через ФМ CO_BT_AFVG_DEL. НО самостоятельный вызов этого ФМ вне окна ведения операций ведет к дампу при сохранении. Видимо, что то там еще "допиливается". Потому и прошу поделится опытом, если кто-то реализовывал подобное.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удаление операций в заказе
СообщениеДобавлено: Ср, окт 10 2012, 17:11 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
В вашем случае, если такой затык, то только в отладчике пошарить. И еще разок BAdI проверить. Поскольку просто в моем случае, когда не было возможности использовать экзиты и бади, кроме взлома, помогала отладка , а также поиск не именно ФМ , а таблицы с нужными данными, которые позже сохраняются. То есть таблицы с операциями. Получение ссылки на нее через ASSIGN и последующее исправление. Это общая методика часто помогает.

Стоит попробовать, пока не отписался человек с опытом по этой задачке


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Удаление операций в заказе
СообщениеДобавлено: Чт, окт 11 2012, 10:42 
Специалист
Специалист

Зарегистрирован:
Вт, мар 07 2006, 15:56
Сообщения: 137
Пол: Мужской
Для тех кому может быть это понадобится. Удаление операций из заказа при сохранении.
Code:
  CHECK i_aufnr IS NOT INITIAL AND
        i_aufpl IS NOT INITIAL AND
        i_aplzl IS NOT INITIAL.

  DATA: lt_afvg TYPE TABLE OF afvgd.
  CALL FUNCTION 'CO_BO_AFVGBT_GET'
   EXPORTING
      aufnr_imp        = i_aufnr
      del_chk          = ' '
*     PSP_REF          = ' '
*     STTAG            = '00000000'
*     FLG_INFO         = 'X'
    TABLES
      afvgbt_exp       = lt_afvg.

  DATA: lv_tabix LIKE sy-tabix.

  READ TABLE lt_afvg
  WITH KEY aufpl = i_aufpl
           aplzl = i_aplzl
  TRANSPORTING NO FIELDS.

  CHECK sy-subrc = 0.

  lv_tabix = sy-tabix.

    CALL FUNCTION 'CO_BT_AFVG_DEL'
      EXPORTING
        index              = lv_tabix
        vorgkont           = '2'
        del_physical       = ' '
        i_flg_log          = ' '
*    IMPORTING
*      FLG_LOG            =
              .
    FIELD-SYMBOLS: <ltf_itab> TYPE zpm_sfc_itab_t.
    ASSIGN ('(SAPLCOIT)ITAB[]') TO <ltf_itab>.
    IF sy-subrc = 0.
      DELETE <ltf_itab> WHERE index_plpo = lv_tabix.
    ENDIF.



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

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


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

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


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

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