Как настроить workflow sap

Содержание
  1. SAPPER работа с SAP Workflow
  2. Содержание
  3. Введение
  4. Как это работает
  5. Пример
  6. Создать WF
  7. Основные контейнеры
  8. Вызываемое событие
  9. Событие проверки дубликатов
  10. Событие получения PDF
  11. Согласование
  12. Событие Утвердить\Отклонить
  13. Реализация BAdI
  14. Состав пакета /SBIS/WORKFLOW
  15. SAP Workflow. Запуск по событию
  16. Workflow. Отладка фоновых задач
  17. Sergey Ignatov
  18. 1. Подготовка
  19. 2. Запуск отладки
  20. Update
  21. Sign up for more like this.
  22. ABAP CDS. Коротко о главном (2)
  23. Small SAP Talk. Поиск PFCG роли по включенному в нее каталогу плиток
  24. ABAP CDS. Коротко о главном
  25. Workflow. Управление сроками обработки задач потоков операций
  26. Sergey Ignatov
  27. Вступление
  28. А нужен ли мне этот Deadline Management в потоках операций?
  29. Пример применения срока обработки задач потоков операций типа «Latest End»
  30. Мониторинг просроченных задач
  31. Изменение параметров deadline для задачи потока операций «на лету»
  32. Программа мониторинга задач потоков операция с активированным Deadline Management
  33. Sign up for more like this.
  34. ABAP CDS. Коротко о главном (2)
  35. Small SAP Talk. Поиск PFCG роли по включенному в нее каталогу плиток
  36. ABAP CDS. Коротко о главном

SAPPER работа с SAP Workflow

Содержание

Введение

Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) — WI.

SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.

Как это работает

В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. Состав пакета /SBIS/WORKFLOW).

Пример

Рассмотрим на примере процедуру создания WF для согласования входящего документа.

Сценарий: Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку «Обновить статусы» или робот запускает соответствующий метод). При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.

  1. При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)
  2. По событию EVENT запускается экземпляр WF
  3. Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).
  4. Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.
  5. Вызываем блок согласования пакета
  6. В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.
  1. Создать WF
  2. Реализовать BAdI
  3. Включить реализацию BAdI

Создать WF

Основные контейнеры

  • is_api2_packet — импорт, тип данных /SBIS/S_API2_PACKET
  • cl_cont — контейнер класса /SBIS/CL_WF_SBIS

Вызываемое событие

Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS

Схема потока данных:

  • &_EVT_OBJECT& -> &CL_CONT&
  • &EVENT_API2_PACKET& -> &IS_API2_PACKET&
  • &_EVT_CREATOR& -> &_WF_INITIATOR&

Событие проверки дубликатов

Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS

Схема потока данных:

  • &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&
  • &IS_API2_PACKET& -> &IS_API2_PACKET&

Событие получения PDF

Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS

Схема потока данных:

  • &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&
  • &IS_API2_PACKET& -> &IS_API2_PACKET&

Согласование

Стандартный этап согласования с двумя возможностями:

Событие Утвердить\Отклонить

Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS

Схема потока данных:

  • &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&
  • &IS_API2_PACKET& -> &IS_API2_PACKET&

Реализация BAdI

пример реализации метода BAdI /SBIS/IF_SAPPER_BADI

Состав пакета /SBIS/WORKFLOW

  • Класс /SBIS/CL_WF_SBIS
  • Таблица /SBIS/STATUS_WF — связь UUID пакета с номером WF

Основные методы класса /SBIS/CL_WF_SBIS:

  • EVENT_API2_PACKET — метод события EVENT, инициализирующего запуск экземпляра WF
  • CHECK_DUPLICATES — метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.
  • GET_PDF_PACKET — метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне.
  • GET_PDF_ATTACHMENTS — метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.
  • APPROVE — метод Утверждения пакета. Данный метод не может выполнятся в фоне.
  • REJECT — метод Отклонения пакета. Данный метод не может выполнятся в фоне.
  • EXECUTE_ACTION — метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.
Читайте также:  Как можно отремонтировать доводчик двери

События класса /SBIS/CL_WF_SBIS:

  • EVENT — используется для инициализации WF
  • GO — продолжение обработки
  • EXIT — завершение обработки

Источник

SAP Workflow. Запуск по событию

WorkFlow позволяет делать последовательность операций и представлять это в графическом виде. Особенно удобно, когда бизнесс процессы растянуты во времени. К сожалению, или к счастью)) В своей практике приходилось сталкиваться с ними не так уж и часто. Поэтому хочу оставить небольшую напоминалку для себя на будущее. Если кому-то интересна базовая информация о WF прошу под кат. Если вы профи, то нового ничего не найдете.

WF позволяет решать довольно сложные задачи, мы же обойдемся очередным хэллоувордом, чтобы отработать основные моменты.
Попробуем создать поток который будет запускаться при помощи класса, принимать на вход список ФИО, и пробрасывать себе эти данные в контекст. В следующей части мы немного расширим функционал потока некоторыми базовыми операциями.
Обращаю внимание, что способов работы с потоками и задачами довольно много. Здесь будет представлен только один из них, у вас может быть все сделано абсолютно иначе. Однако, кое какая информация все-равно будет полезной.

Первое что необходимо, это сделать класс, методы которого будем использовать в блоках нашего процесса, а также событие инициализирующее поток.
Зайдем в SE24 и создадим класс с интерфейсами BI_OBJECT, BI_PERSISTENT, IF_WORKFLOW

Укажем следующие интерфейсы

Ключ может быть разных типов в зависимости от потребностей. Мне что-то ничего не придумывалось и решил использовать тип PLANS. Допустим, что список людей, мы передаем с должности.

Далее нам понадобится создать событие старта потока и в нем же заведем параметр в котором будем передавать список ФИО в поток

Источник

Workflow. Отладка фоновых задач

SAP Workflow. Отладка фоновых задач

Sergey Ignatov

На сегодняшнее число, у нас-таки имеется небольшой запас знаний по теме Workflow. Ну как запас, небольшой такой сусек, который можно раскрыть в случае необходимости. Тем не менее, продолжим пополнять этот самый сусек знаниями, основанными на реальных задачах, возникающих в проектном опыте. А куда, скажите, пожалуйста, в этом самом проектном опыте без ABAP? Правильно, никуда. Пригодится он везде, и потоки операций не стали здесь исключением.

Приведу несколько примеров, где консультанту требуется настроить поток операций, в котором:

  • нужно определить согласующих лиц по организационно-штатной структуре (с использованием Z* соединений между объектами). Сделать это необходимо в момент старта потока операций;
  • нужно считать табельные номера сотрудников, участвующих в потоке операций, для последующего определениях адресов их электронной почты.
    Запустить такие потоки операций с использование только настроек, к сожалению, невозможно, и поэтому только хардкор ABAP может помочь.

Поток операций состоит из так называемых шагов. Каждый, или почти каждый шаг, управляется с помощью задачи. Задача представляет собой объект системы, в свойствах которого определен либо бизнес-объект и его метод, либо класс и какой-нибудь его метод

Любая «дополнительная» логика, используемая в потоках операций, определяется с помощью utility-классов (более подробно см. здесь). Соответственно, чтобы «дополнительная» логика заработала в потоке операций, необходимо добавить в свойства задачи класс и необходимый метод. С первого раза, как известно, редко, когда получается запустить поток операций, да еще и с «вкраплениями» ABAP. Возникает вопрос: **как можно выполнить отладку задачи? **Сделать это, поверьте, невероятно просто. Только необходимо условиться на том, что далее речь пойдет о задачах, обработка которых происходит в фоновом режиме.

1. Подготовка

Откройте таблицу T811FLAGS в транзакции SE16, и создайте запись, по аналогии с тем, что указано на ниже представленном рисунке

Читайте также:  Как настроить регистратор хайвотч

Затем измените исходный код метода класса, для которого необходимо запустить фоновую отладку, добавив в него вызов ФМ K_PLAN_WAIT_FOR_DEBUGGING со значениями параметров id_debug_id и id_debug_level из только что созданной записи таблицы T811FLAGS

Не забудьте активировать метод. Также проверьте, чтобы данный метод класса был определен в потоке операций

2. Запуск отладки

Запустите поток операции. Он (поток) должен остановиться на том шаге, в задачу которого мы вносили изменения (см. п. №1 — Подготовка). Проверить это возможно, например, с помощью транзакции SWIA

Статус поток операций должен иметь значение STARTED.

Откройте транзакцию SM50, и убедитесь, что в списке процессов присутствует один процесс, запущенный под пользователем WF-BATCH

Выберите в меню Администрирование -> Программа -> Отладка, предварительно выделив строчку с этим процессом

В появившемся окне выберите ДА

В открывшемся окне отладчика, перейдите на строчку с условием

и измените значение переменной LB_EXIT на X

и нажимайте на клавишу F6 до тех пор, пока не дойдете до Z* класса, в котором был определен вызов ФМ K_PLAN_WAIT_FOR_DEBUGGING

Вот мы и добрались до метода, который необходимо отлаживать. Ну а что делать дальше, думаю, пояснять не нужно.

N.B. (1) После того, как вы закончили отладку, не забудьте закомментировать вызов ФМ K_PLAN_WAIT_FOR_DEBUGGING, а также удалить запись из таблицы T811FLAGS.

N.B. (2) Если для системы, в которой вы работаете, настроено несколько серверов, после запуска потока операций (см. пункт № 2 Запуск отладки) запустите транзакцию SM51, кликните по одному из серверов, для того, чтобы найти процесс, запущенный под пользователем WF-BATCH.

Update

Sign up for more like this.

ABAP CDS. Коротко о главном (2)

Обзор процесса создания CDS View с входным параметром и последующее его использование в ABAP программе

Small SAP Talk. Поиск PFCG роли по включенному в нее каталогу плиток

Small SAP Talk. Поиск PFCG роли по включенному в нее каталогу плиток

ABAP CDS. Коротко о главном

Беглый обзор ABAP CDS, как инструмента для создания моделей данных, и их последующем применении в ABAP конструкциях

Источник

Workflow. Управление сроками обработки задач потоков операций

Sergey Ignatov

Workflow. Управление сроками обработки задач потоков операций.

Вступление

Тема потоков операций в системе SAP сочна и нескончаема. Говорить о потоках можно много, об их применении еще больше, а о всевозможных хитростях и возможностях — нескончаемо долго. Прекращаю словесный блуд, и перехожу к сути данной заметки.

Кроме банального управления количеством обработчиков в потоке операций и их уведомления по электронной почте, инструментарий workflow позволяет функциональному консультанту определять сроки выполнения/завершения для определенных задач принятия решения (т.е. задач, по которым требуется реакция принятия решения от пользователя).

Use
You can define all the deadlines for this step with the specifications you make on these tab pages. All these entries are optional.

Features
You can set the following deadlines on the corresponding tab pages:

Latest End
You can define reactions to a missed deadline for the last three deadline types. The system offers the following possible reactions:

Всему этому также есть соответствующий емкий английский эквивалент — SAP Workflow Deadline Management.

А нужен ли мне этот Deadline Management в потоках операций?

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

SAP предоставляет несколько опций отслеживания сроков задач в потоках операций для которых требуется реакция пользователя:

  • Requested start
  • Latest start
  • Requested end
  • Latest end
    Requested start — если элемент потока операций был сформирован до указанного для срока Requested start значения, этой задаче присваивается статус «Waiting». После того, как срок наступил, статус задачи меняется на «Ready».
Читайте также:  Не работает прибор печки

Requested start

If the work item is created before the requested start, it is assigned the status waiting . When the requested start is reached, the system sets the work item to status ready . If the work item is created after the requested start, it is assigned the status ready immediately.

Latest start/Requested end/Latest end — если в потоке операций применяется один из этих сроков, вы можете направить соответствующее уведомление пользователю, либо настроить обработку «просроченной» ситуации непосредственно в потоке операций: например, завершить весь поток операций, или «направить» его выполнение по другому «кругу согласования».

Latest end, latest start, requested end

You can either notify someone or model a reaction in the workflow definition for when the deadline is reached

  • Display text (standard escalation) If you want to notify someone, you must specify a recipient on the tab page Display text . The message text is displayed in the display area. From here you can go directly to the task definition, where you can change the text.
  • Modeled If you want to model your own reaction, enter a name for the new outcome on the tab page Modeled . A reaction branch is added to the workflow definition, which is processed if the deadline is missed. If a deadline is missed, the original step is not yet completed. The steps following this «missed deadline outcome» do not end the original activity.
    См. Modeled Deadline Monitoring or Standard Escalation

Пример применения срока обработки задач потоков операций типа «Latest End»

Управление сроками задачи потока операций находится на одноименной вкладке в самой задаче для которой требуется получение реакции от пользователя. Доступ к ним можно получить через транзакции SWDD или PFTC:

Определите основные настройки, которые вы хотите использовать для срока Latest End

В моем примере, задача будет считаться «просроченной» с момента, когда она создана и присвоена обработчику. Тестирую

Ожидаю 1 минуту до наступления нужного мне срока, и проверяю что произошло в транзакции SBWP

Обратите внимание на то, что система также формирует электронное сообщение с предопределенным текстом

В письме фигурирует текст, который настраивается в самой задаче на вкладке Description. Вендор предоставляет возможность хранения разных текстов в соответствии с типом deadline, который применяется в вашей задаче.

Мониторинг просроченных задач

Мониторинг просроченных задач вам поможет осуществить отчет RSWINTRO. Запустить его также можно через транзакцию SWI2_DEAD

Изменение параметров deadline для задачи потока операций «на лету»

На следующем видеофрагменте представлена последовательность действий, которую необходимо выполнить, чтобы скорректировать значение deadline для задачи потока операций «на лету».

Программа мониторинга задач потоков операция с активированным Deadline Management

Чтобы инструментарий отслеживания сроков выполнения задач потоков операций функционировал, и все просроченные задачи были найдены, необходимо запланировать программу RSWWDHIN для работы в фоновом режиме

Правильно выполнить эту процедуру можно посредством работы с транзакцией SWU3, раздел Schedule Background Job for Workflow Deadline Monitoring

Sign up for more like this.

ABAP CDS. Коротко о главном (2)

Обзор процесса создания CDS View с входным параметром и последующее его использование в ABAP программе

Small SAP Talk. Поиск PFCG роли по включенному в нее каталогу плиток

Small SAP Talk. Поиск PFCG роли по включенному в нее каталогу плиток

ABAP CDS. Коротко о главном

Беглый обзор ABAP CDS, как инструмента для создания моделей данных, и их последующем применении в ABAP конструкциях

Источник

Оцените статью