Workflow. Отладка фоновых задач. Вредный совет
Workflow. Отладка фоновых задач. Вредный совет.
А насколько совет вредный? Да и вредный ли он?
Я опять возвращаюсь к уже пройденному материалу. Речь пойдет о шагах, представленных в заметке Workflow. Отладка фоновых задач. Нет смысла повторять уже изложенный материал, поэтому перехожу к сути.
В рамках этой заметки, я хочу остановиться на моменте добавления в метод класса, для которого требуется выполнить отладку, функционального модуля K_PLAN_WAIT_FOR_DEBUGGING. А точнее, на его входных параметрах, которые также необходимо не забывать сохранить в таблице T811FLAGS перед запуском отладки. В первой своей заметке по этой теме я использовал «обезличенные» константы вида ZWF
Что, безусловно, является не очень хорошим подходом, и, если угодно, моветоном (не хардкод, конечно, но тем не менее). Судить о том, насколько совет, представленный ниже, будет вредным, конечно же, не мне, а тем, кто будет после вас работать с тем, что было настроено/сделано вами. Допускаем, хотя бы в рамках данной заметки, что вредность - не значит плохо, а посему воспользуемся моментом для того, чтобы оставить после себя хорошее впечатление.
Вредный совет в действии
В utility классе, который используется в вашем потоке операций, создайте несколько атрибутов, наименования которых будут однозначно (или близко по смыслу) соответствовать методам, в которых может быть вызван ФМ K_PLAN_WAIT_FOR_DEBUGGING.
Например, у меня есть utility класс ZCL_UTILITY_DEMO
У него есть метод DEMO_GET_APPROVER, который используется для определения обработчика задачи потока операций. Этот метод мне, скорее всего, нужно будет дебажить в обозримом будущем. Для этого, я создаю два атрибута
Затем использую их в методе DEMO_GET_APPROVER для вызова отладки
Для каждого нового метода, в котором потребуется воспользоваться фоновой отладкой, вы можете задействовать уже существующий атрибут (в моем случае это ZWF_DEBUG_ID), добавив новый параметр с наименованием, близким к наименованию нового метода (этот параметр будет передаваться на вход в ID_DEBUG_LEVEL функционального модуля K_PLAN_WAIT_FOR_DEBUGGING). Например,
Ну а дальше, чтобы "поймать" отладку, вам необходимо добавить придуманные значения атрибутов в таблицу T811FLAGS. Техника последующих шагов остается неизменной. Спасибо за внимание!
Update
См. заметку Workflow. Отладка фоновых задач. Транзакция SWW_BREAKPOINT