Workflow. Использование функциональных методов в потоках операций.

Что такое функциональный метод?

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

См. ABAP Classes in Workflow

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

Применение функциональных методов может быть оправдано при возникновении потребности в оперативном получении какой-либо информации. Например, для поиска электронной почты работника, его даты рождения или для определения количества записей в какой-то пользовательской таблице и т.д. и т.п. Оперативность достигается путем добавления в поток операций определенного типа задачи, и вызова нужного метода класса. Речь об этом пойдет ниже.

См. Expressions: Functional Methods

Use
You can use a functional method within an expression on the source side of a binding row. You can use a functional method for the following purposes:

-Performing calculations

-Performing data conversions, for example, currency conversions

-Calling a GET method to read a private attribute of the business object (BOR)

Пример 1. Поиск электронной почты работника

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

Создание utility-класса

В транзакции SE24 создайте utility-класс, который будет использоваться в вашем потоке операций

Рисунок 1.

Создание функционального метода в классе

Определите новый метод и его параметры. Вендор рекомендует использовать следующее правило наименования функциональных методов: GET_наименование_метода

Рисунок 2.

Допустим, что код метода будет следующим

Применение функционального метода в потоке операций

На следующем видеофрагменте я:

  1. Создам новую модель потока операций (транзакция SWDD)
  2. Добавлю шаг типа Container operation
  3. Создам новый элемент контейнера потока операций с наименованием EMAIL
  4. Вызову функциональный метод класса и присвою результат его работы новому элементу контейнера EMAIL.
     

N.B. Обратите внимание на то, что вызов метода класса осуществляется посредством конструкции вида %utility_class.functional_method(parameters)%

Пример 2. Вычисление срока выполнения задачи потока операций

Рассмотрим еще один, если можно так сказать, хрестоматийный пример использования функциональных методов в потоках операций: вычисление срока (даты) обработки задачи потока операций. Стоит обратить внимание на то, что дата, от которой будет отсчитываться срок исполнения задачи эквивалентна 18.07.2018. Создание самого потока представлено все в том же урезанном исполнении.

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

Создание метода для вычисления срока выполнения задачи

Создайте новый метод и определите его параметры

Рисунок 3.

Исходный код метода:

Применение функционального метода в потоке операций

Далее я выполню следующее "упражнение":

  1. Создам новую модель потока операций (транзакция SWDD)
  2. Добавлю новую фоновую задачу типа Activity
  3. Осуществлю вызов функционального метода класса для определения срока исполнения задачи. В качестве параметра в функциональный метод передам сначала значение 3, затем 5
  4. Выполню последовательный запуск потока операций с разными значениями для вычисления даты обработки задачи