Workflow. Отладка фоновых задач. Вредный совет.

А насколько совет вредный? Да и вредный ли он?

Я опять возвращаюсь к уже пройденному материалу. Речь пойдет о шагах, представленных в заметке Workflow. Отладка фоновых задач. Нет смысла повторять уже изложенный материал, поэтому перехожу к сути.

В рамках этой заметки, я хочу остановиться на моменте добавления в метод класса, для которого требуется выполнить отладку, функционального модуля K_PLAN_WAIT_FOR_DEBUGGING. А точнее, на его входных параметрах, которые также необходимо не забывать сохранить в таблице T811FLAGS перед запуском отладки. В первой своей заметке по этой теме я использовал «обезличенные» константы вида ZWF

Рисунок 1.

Что, безусловно, является не очень хорошим подходом, и, если угодно, моветоном (не хардкод, конечно, но тем не менее). Судить о том, насколько совет, представленный ниже, будет вредным, конечно же, не мне, а тем, кто будет после вас работать с тем, что было настроено/сделано вами. Допускаем, хотя бы в рамках данной заметки, что вредность - не значит плохо, а посему воспользуемся моментом для того, чтобы оставить после себя хорошее впечатление.

Вредный совет в действии

В utility классе, который используется в вашем потоке операций, создайте несколько атрибутов, наименования которых будут однозначно (или близко по смыслу) соответствовать методам, в которых может быть вызван ФМ K_PLAN_WAIT_FOR_DEBUGGING.

Например, у меня есть utility класс ZCL_UTILITY_DEMO

Рисунок 2.

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

Рисунок 3.

Затем использую их в методе DEMO_GET_APPROVER для вызова отладки

Рисунок 4.

Для каждого нового метода, в котором потребуется воспользоваться фоновой отладкой, вы можете задействовать уже существующий атрибут (в моем случае это ZWF_DEBUG_ID), добавив новый параметр с наименованием, близким к наименованию нового метода (этот параметр будет передаваться на вход в ID_DEBUG_LEVEL функционального модуля K_PLAN_WAIT_FOR_DEBUGGING). Например,

Рисунок 5.

Ну а дальше, чтобы "поймать" отладку, вам необходимо добавить придуманные значения атрибутов в таблицу T811FLAGS. Техника последующих шагов остается неизменной. Спасибо за внимание!

Update

См. заметку Workflow. Отладка фоновых задач. Транзакция SWW_BREAKPOINT