Суть в следующем. После создания контракта (транз. ME31K, с типом Z_WK - контракт) поле поставщик - блокируется. Ни каких последующих документов еще нет, тем не менее поле не доступно для изменения (в отличии от SD контрактов, где его можно изменять пока нет ссылочных док-в).
Пробовал использовать BAPI:
1. BAPI_PO_CHANGE - не обратывает контракты
2. BAPI_CONTRACT_CREATEFROMDATA - та же история (вид контрактов Z_WK не предусмотрен)
3. BAPI_AGREEMENT_MAINTAIN - не изменяет поле поставщик (хотя даты сроков договора этой бапишкой править дает). Полез в отладку, понял что внутри бапишки обычный пакетник.
Пока архивирую и удаляю контракт руками, через транзакцию ME98.
Потом создаю заново контракт с тем же номером и другим поставщиком.
Почитал ветки:
http://sapboard.ru/forum/viewtopic.php?t=4652&highlight=rm06ew30
http://sapboard.ru/forum/viewtopic.php?t=14655&postdays=0&postorder=asc&&start=15
Советуют использовать программы:
RM06EW30 - архивация и
RM06ED30 - удаление.
Вопрос! Есть ли способ программно (в своей разработке) архивировать и удалять контракт используя функциональность этих программ.
Т.к. писать пакетники для этих программ не вижу возможности.
К примеру, при запуске программы RM06ED30 в списке архивированых документов доступных для удаления могут быть не только мои, но и другие документы. Как мне определить какой док-т в дереве списка выбирать и возможно ли вообще создать пакетник для такого диалога?
Короче запутался совсем. Цель задачи. Программно прибить контракт (необходимость именно из за смены поставщика).
Советы по поводу настройки схемы ролей партнеров не подходят.
...
Провел след.эксперименты.
1. Создал договор с поставщиком П1. Cохранил.
Поставил брекпоинт в PBO экрана 0201 программы SAPMMM06E. Захожу в контракт в режиме правка. В цикле LOOP AT SCREEN для поля LIFNR принудительно указываю SCREEN-INPUT = 1. Все ОК - поле поставщика открыто. Сохраняю все ОК.
Стало интересно, как поведет себя САП, если после создания заказа на поставку к договору, в договоре сменить поставщика.
2. Создал договор с постащиком П1. Создаю заказ на поставку к этому договору. После этого открываю контракт, в отладке открываю поле LIFNR. Изменяю поставщика на П2, сохраняю. САП не ругается. Открываю заказ, поставщик П1. В журнале ошибок тоже ничего нет.