Я хочу удалить из резервирования в 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, у которого есть этот номер бронирования ..
Исходное поведение BAPI звучит как ошибка. Никогда не должно быть необходимости удалять замки вручную - на самом деле это может быть очень опасно. Вы пытались сообщить об этом, используя http://service.sap.com/message? – vwegert
Я так не считаю! Это довольно сложно. Я снова искал и отлаживал около часа. Я обнаружил что-то: когда я делаю эту блокировку случайного резервирования (с se37 -> 'enqueue_emrkpf', 'dequeue_emrkpf') вручную, он работает. Единственные различия между enqueue bapi и enqueue, которые я сделал, это то, что Workflow-Number - это не то же самое. У меня есть постоянная «промывка мозгов»: S –
Чтобы повторить, вам НИКОГДА не придется возиться с enqueuing логикой BAPI для себя. Тратить часы на попытку сделать это в любом случае обычно является хорошим признаком того, что вы ищете проблему не в том месте. – vwegert