Настройка стратегии деблокирования заказа с классификацией

Автор Uukrul, Квітень 05, 2011, 01:51:18 ДП

Попередня тема - Наступна тема

0 Користувачі і 2 Гостей дивляться цю тему.

Uukrul

Настройка стратегии деблокирования заказа с классификацией. В принципе сложного ничего в процессе нет,хотя по справке с help.sap.com конечно без поллитры вряд ли настроишь. А так, для начала идем в транзакцию SPRO, рисунок 1: STRG-1,png. Ветка "Определение процедуры деблокирования для заказов на поставку". Получаем окно с пунктами, которые обрабатываем по порядку, рисунок 2: STRG-2,png.

Группы деблокирования Как видим тут есть только процедуры деблокирования использующие систему классов. В системе могут быть или процедуры деблокирования без классификации или с классификаций, причем если есть хотя бы одна определенная процедура деблокирования с классификаций, то она отменяет все процедуры без классификации. Скорее всего, у вас в системе тоже используются процедуры с классификацией, так что, будем настраивать процесс деблокирования с классификацией, ну и по справке SAP тоже рекомендует использовать процедуры деблокирования с классификацией, рисунок 3: STRG-3,png.

Стандартно в IDES уже есть класс  FRG_EKKO, в нем определены 4 признака, рисунок 4: STRG-4.png. Как видим это признаки: вид документа, закупочная организация, группа закупки и цена, суть класса в том, что деблокирование, например, запускать для документов определенного вида, созданных в определенной закупочной организации и группой закупки и только, если сумма договора больше 100 евро. Можно использовать свои классы, но для примера деблокирования можно использовать и стандартный. Вид класса обязательно должен быть выбран 032 – Стратегия выдачи.

Примечание:  В качестве признаков класса можно использовать любые поля, которые перечислены в структуре CEKKO. Просмотреть структуру можно в транзакции SE11. Когда создаете признак, вы должны сослаться на поля структуры, пример на рисунке 5: STRG-5.png, например вид документа.

Как создавать классы и признаки надеюсь, найдете в справке, ничего сложного в этом процессе нет. В общем создаем новую группу, например ZZ со стандартным классом деблокирования.

И так теперь есть новая группа ZZ, и класс FRG_EKKO, рисунок 6: STRG-6,png. Цифра 2 рядом с кодом группы указывает что это стратегия деблокирования к заказу на поставку.

Коды деблокирования Потоки операции использовать не будем, это другая тема и тут мы ее пропускаем. И так создаем 2 кода, рисунок 7: STRG-7,png. Выбираем новые записи и создаем коды.  Создадим два кода деблокирования. При создании заказ будет без кодов, первый код дадим полномочия автору документа, т.е. если он считает, что документ правильный, то пусть выполнит деблокирование. А далее уже второе деблокирование делает котроллер, после чего документ не подлежит изменению автором.

Индикатор деблокирования Индикаторы я свои не создавал, хватит и стандартных, обращаем внимание на колонку изменяем, где записано определяется код того что можно делать с заказом. Цены нас не интересуют, а коды будут 1 и R, первый индикатор 1 присвоен при коде деблокирования 00, пока присвоен такой индикатор, заказ можно изменять, когда заказ деблокируется, ему будет присвоен шаг стратегии 99 и индикатор R – т.е. изменять заказ больше нельзя, рисунок 8: STRG-8.png.

Стратегии деблокирования Выбираем создание новой стратегии, рисунок 9: STRG-9,png. Т.е. группа наша ZZ, стратегия в группе пусть будет 00, ну и два наших последовательных кода деблокирования, которые можно внести выбрав из справочника. Далее выбираем кнопку «Порядок деблокирования». Ставим галку как на рисунке 10: STRG-10.png. После чего жмем кнопку «Дальше». Суть расстановленных галок будет объяснена ниже. Потом выбираем кнопку «Статусы деблокирования». Система построит экран в зависимости от галок, выставленных на предыдущем экране, порядка деблокирования. Суть такая если ни один индикатор не присвоен, то индикатор выдачи будет 1 -  т.е. заказ можно изменять, если присвоен код 00, то индикатор тоже остается такой же, т.е. изменения документа возможны. И когда установлены коды 00 и 99,то присваивается код R, т.е. заказ деблокирован и не может быть изменяем. Опять же, если вам нужно оставить изменение документа, то оставьте индикатор выдачи тоже 1. После чего жмем кнопку «Дальше». Рисунок 11: STRG-11.png.

Теперь самое интересное, кнопка «Классификация». Класс будет показан с признаками, которые указаны в нем при создании. Поля при первом заходе будут пустыми, поэтому начинаем заполнять их. Вид документа ну я указал NB, закупочная 1000, группа 000. Стоимость указал как > 100, рисунок 12: STRG-12.png

На этом создание стратегии можно считать законченным. Можно идти проверять как оно работает, т.е.создать заказ вида NB для закупочной 1000, группа закупки 000 и стоимость должна быть больше 100.

Как только будет создан заказ, и мы перейдет в просмотр/изменение документа то в заголовке будет закладка «Стратегия деблокирования». Как видим для нашего заказа была использована наша стратегия ZZ, рисунок 13: STRG-13.png.

Затем в транзакцию ME29N в данной транзакции можем выполнять деблокирование документа путем клика мышью в колонке «Способы деблокирования». Все, если есть полномочия на код, то вы можете последовательно выполнить деблокирование кода 00 и кода 99, рисунок 14: STRG-14.png.

После применения кода 99, документа переходит в режим защиты от редактирования, рисунок 15: STRG-15.png

Uukrul

Описание процедуры деблокирования заказа с классификацией одним файлом.

nastya_m

Настроила все по инструкции. Класс и признаки деблокированы. Присвоения тоже.
Проверка стратегии срабатывает без ошибок, но все равно выдается ошибка, что деблокирование документа закупки невозможно. Подскажите что может быть не так?

Uukrul

Цитата: nastya_m від Вересень 22, 2011, 07:44:40 ДП
но все равно выдается ошибка, что деблокирование документа закупки невозможно. Подскажите что может быть не так?
Ну как видите у меня не выдается... значит что-то сделали не правильно или есть другие блокирующие параметры настройки. К сожалению, по вашему сообщению что-либо подсказать не представляется возможным, начиная с того что вы не сообщили ни класса ни номера ошибочного сообщения.

Паганель

Столкнулся с такой же ошибкой.
Решение: в целевом мандате, CL20N присвоить класс стратегии деблокирования

Паганель

Дополнительно у меня вопрос: каким образом можно включить заказы в деблокирование, созданые до настройки деблокирования?

Паганель

Сам и отвечаю.
У меня настроена стратегия деблокирования на 2 вида заказов, что бы задействовать деблокирование для заказов созданных до настройки деблокирования, поступил следующим образом:
- зашел в заказ, поменял вид заказа на тот для которого не активна стратегия, сохранил
- повторно зашел в заказ, поменял вид заказа на тот для которого  активна стратегия, сохранил

Uukrul

В который раз, правда в этот раз для заявки на закупку, потерял час, чтобы найти, что при активации стратегии деблокирования с классификацией, нельзя ставить галку "Общее разблокирование заявок на закупку", т.е. для классификации возможно только позиционное деблокирование заявок. В принципе конечно логично, так как каждая позиция может иметь разные стратегии и соответственно разные шаги деблокирования.



PS: Кстати, если все настроили но стратегия не выбирается, то для заявки процесс выбора стратегии находится в функциональном модуле: FUNCTION me_rel_strategie_eban. - Выбор стратегии деблокирования для заявки, так что в отладчике достаточно пары минут, чтобы понять почему стратегия не выбирается и что надо докрутить, для ее выбора.

Uukrul

Так сказать в очередной раз тогда не записал, снова пришлось вспоминать, когда надо было по быстрому прикрутить стратегию деблокирования для заявок ММ:

При определении кодов разблокирования для стратегии заявки на закупку последний код который завершает процесс деблокирования  обязательно должен содержать статусы: Разблокировано для предложения и Разблокировано для PO-заказа, иначе при сохранении стратегии система предлагает проверять код индикаторов разблокирования. Что проверять и что не так в кодах, система не говорит, поэтому понять ее не реально., но в модуле ФМ: ME_REL_FULL_BLOCK в самом начале есть подпрограмма perform rel_complete. которая вот таким вот селектом выбирает, какие коды могут завершать стратегию деблокирования:

      select * from t161s where frbst eq 'X'
                            and frang eq 'X'.
        r_frgkz-low = t161s-frgkz.
        append r_frgkz.
      endselect.

Т.е. если ваша стратегия заканчивается не одним из кодов которые будут выбраны по данному запросу, то на выходе будет сообщение об ошибке созданной стратегии.


midasvenis32

Цитата: Uukrul від Квітень 05, 2011, 01:54:44 ДП
Описание процедуры деблокирования заказа с классификацией одним файлом.

Уважаемый Uukrul,
спасибо за файл. Но никак не могу понять, как расставить чекбоксы в порядке деблокирования.

Транзакция S_ALR_87002179 -> Стратегия деблокирования...


Подскажите, пожалуйста

Порядок следующий:

Z0 - Начальный уровень. Без деблокирования на этом уровне, заявка не будет доступной для уровней Z1, Z2 и Z3. На данном уровне может определяться признак ZP
Z1 - Возможность деблокирования заявок с суммой меньше 100 рублей;
Z2 - Возможность деблокирования заявок с суммой меньше 100 рублей или 100 рублей;
Z3 - Возможность деблокирования заявок с суммой свыше 100 рублей или 100 рублей.

Таким образом, например, заявка в 80 рублей должна быть разблокирована на уровнях Z0-> Z1 -> Z2 или Z3 поэтапно, то есть, уровни Z1 ->Z2 или Z3 могут разблокировать только, если заявка разблокирована на уровне Z0.
Если на уровне Z0 установлен признак ZP, то уровень Z3 является обязательным, то есть последовательность разблокировки будет следующей: Z0-> Z1 -> Z2 и обязательно Z3.

Спасибо всем!

Uukrul

Цитата: midasvenis32 від Листопад 27, 2015, 11:42:15 ПП
Таким образом, например, заявка в 80 рублей должна быть разблокирована на уровнях Z0-> Z1 -> Z2 или Z3 поэтапно, то есть, уровни Z1 ->Z2 или Z3 могут разблокировать только, если заявка разблокирована на уровне Z0.
Да никак вроде, примите за данность, что данный вариант стратегии, это упрощенное/линейное деблокирование документа. Для более сложных вариантов и условий используйте WF-деблокирование. Там можно накрутить любые схемы в зависимости от данных документа.

midasvenis32

Uukrul, спасибо большое за мысль!

Наведи на путь, где это находится?

Цитата: Uukrul від Грудень 01, 2015, 02:29:01 ПП
WF-деблокирование.

Спасибо заранее :)

Uukrul

Цитата: midasvenis32 від Грудень 03, 2015, 03:14:49 ПП
Наведи на путь, где это находится?
Это находится в настройке и работе с workflow, если не путаю раньше это были курсы BC600 и BC601

midasvenis32

Цитата: Uukrul від Грудень 04, 2015, 01:45:45 ПП
раньше это были курсы BC600 и BC601

К сожалению, таких курсов у  меня нет.

Uukrul, а можешь навести на путь в SPRO, где можно сделать обязательным для заполнения поле "Группа деблокирования" в транзакции ME55 (Групповое деблокирование) ?

Обшарил весь SPRO, таки не нашел. Там есть настройки для некоторых полей для транзакций: ME51, ME51N, ME52, ME53 и ME54, а вот для ME55 к сожалению нет.

Не уж то надо будет абапом проверять наличие данных в этом поле?

Спасибо.

Uukrul

Цитата: midasvenis32 від Грудень 10, 2015, 09:11:26 ПП
К сожалению, таких курсов у  меня нет.
Ну зато интернет у вас наверное есть, так что надеюсь можно поискать. Ну и во вторых на саппресс есть книжки по этому делу.

Цитата: midasvenis32 від Грудень 10, 2015, 09:11:26 ПП
Обшарил весь SPRO, таки не нашел. Там есть настройки для некоторых полей для транзакций: ME51, ME51N, ME52, ME53 и ME54, а вот для ME55 к сожалению нет.
Не уж то надо будет абапом проверять наличие данных в этом поле?
Ну скорее всего что без абапа никак,там в коде просто стоит, без всяких далее возможностей как-то влиять на заполнение поля:
select-options: s_frggr for eban-frggr.
но система управления этим полем построена, не много не так, что типа мы заставляем обязательно его заполнять, каким-то значением. Там все сделано через использование объекта полномочий:

      authority-check object 'M_EINK_FRG'
        id 'FRGGR' field t16fg-frggr
        id 'FRGCO' field p_frgab.
      if sy-subrc ne 0.
        newauth = 'Y'.
        continue.
      endif.

а это значит, что вы даете людям полномочия, каждому на свою группу и таким образом не заполняя группу человек сможет работать только с предустановленными для него группами, остальные группы даже если он заполнит данные, ему не будут показаны. Хотя если у вас там всем выдали SAP_ALL, то конечно вам это не поможет.