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

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


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

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


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

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