2013-08-13 1 views
1

Я хочу удалить из резервирования в db-таблицу RKPF.Объекты ABAP: Функция «DEQUEUE_EMRKPF» не работает

Почему это?

На самом деле я хочу изменить запрос на покупку, и поэтому мне нужно выполнить «BAPI_PR_CHANGE». Я выполняю его дважды, чтобы избежать сбоев. Сначала как тестовый прогон, а во-вторых, как обычно, без флага testrun.

Моя проблема заключается в следующем: во время первого запуска (тестовый прогон) он завершает мою броню, а листья bapi без переоформления меня оставляют за собой, поэтому я хотел сам удалить его. но я потерпел неудачу

Кто-нибудь знает решение моей проблемы?

Вот мой код из очереди бронирование:

CALL FUNCTION 'DEQUEUE_EMRKPF' 
EXPORTING 
    MODE_RKPF  = 'E' 
    MANDT   = SY-MANDT 
    RSNUM   = mv_rsnum 
    _SCOPE   = '3' 
    _SYNCHRON  = 'X' 
    _COLLECT  = ' ' 
      . 

Прежде чем дать мне ответ проверить эти вещи я проверил перед:

  • Я назвал сделку SM12 и проверяется, если мой mv_rsnum является то же, что и в таблице
  • Я не нашёл ни одного sy-subrc в bapi
  • Я освободил banf, у которого есть этот номер бронирования ..
+1

Исходное поведение BAPI звучит как ошибка. Никогда не должно быть необходимости удалять замки вручную - на самом деле это может быть очень опасно. Вы пытались сообщить об этом, используя http://service.sap.com/message? – vwegert

+0

Я так не считаю! Это довольно сложно. Я снова искал и отлаживал около часа. Я обнаружил что-то: когда я делаю эту блокировку случайного резервирования (с se37 -> 'enqueue_emrkpf', 'dequeue_emrkpf') вручную, он работает. Единственные различия между enqueue bapi и enqueue, которые я сделал, это то, что Workflow-Number - это не то же самое. У меня есть постоянная «промывка мозгов»: S –

+0

Чтобы повторить, вам НИКОГДА не придется возиться с enqueuing логикой BAPI для себя. Тратить часы на попытку сделать это в любом случае обычно является хорошим признаком того, что вы ищете проблему не в том месте. – vwegert

ответ

0

Извините, ребята. Проект должен продолжаться, поэтому я удалил код, где я называю testrun из «BAPI_PR_CHANGE».

Этот BAPI заблокировал стол RKPF, и в конце он не разблокирует таблицу RKPF.

Но СПАСИБО ВСЕХ, которые хотели мне помочь!