bg

Создание и планирование массовых прогонов данных в SAP Cloud Application Studio

В этой статье мы продолжим говорить о фоновых прогонах в SAP Sales/Service Cloud. Это краткая пошаговая инструкция по созданию и планированию фоновых прогонов. Технические аспекты были рассмотрены в предыдущей статье.

Задача: создать мультифункциональный фоновый прогон из прошлой статьи.

Примечание: в данной статье все пути в вебе и студии будут указаны на английском. Перевод созданных экранов осуществляется посредствам PDI и не является ключевым моментов в рассматриваемой теме.

Шаг 1. Создать бизнес объект для фонового прогона.

Примечание: этот шаг не является обязательным если в системе есть удовлетворяющий требованиям бизнес-объект. Я бы советовал создавать отдельную папку для фоновых прогонов (рисунок 1)

11.png

Рисунок 1 – Структура проекта

 

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

12.png

 

Рисунок 2 – Кодлист для бизнес-объекта

 

Бизнес-объект будет выглядеть следующим образом:

 

import AP.Common.GDT as apCommonGDT;

 

businessobject MultifunctionalBO raises MsgInfo_EN {

 

    message MsgInfo_EN text "Message: &1": LANGUAGEINDEPENDENT_EXTENDED_Text;

 

    [Label("Type")] element Action : MDRActionCode;

      

       action Run;

       action ActionOne; // The name is an example

       action ActionTwo; // The name is an example

      

}

 

Шаг 2. Создайте действие(action) и выборку(query).

Созданная выборка изображена на рисунке 3. Выборка используется для выборки записей из БД, когда фоновый прогон начинает работу. Для пользовательского бизнес-объекта нельзя использовать стандартную выборку.

 

13.png

 

Рисунок 3 – Выборка (query) 

 

Действие (action), которое будет вызываться фоновым прогоном будет иметь следующий вид:

 

import ABSL;

 

// Actions

var ACTION_ONE = "001";

var ACTION_TWO = "002";

 

// Start action for MDR

switch(this.Action){

       case ACTION_ONE {

              this.ActionOne();

       }

       case ACTION_TWO {

              this.ActionTwo();

       }

}

Действие вызывается после выборки строк из БД на отобранных данных.

 

Шаг 3. Создайте фоновый прогон.

Это можно сделать следующими способами:

-         Нажать правой клавишей мыши на созданный бизнес-объект ® Create Mass Data Run. Фоновый прогон будет создан в текущей папке с бизнес-объектом;

-         Нажать правой клавишей мыши на необходимую папку ® Add ® New Item ® SAP – Mass Data Run ® выбрать созданный бизнес-объект. Фоновый прогон будет создан в выбранной папке.

Остальные шаги идентичны и представлены на рисунках 4 – 6.

14.png

Рисунок 4 – Настройки фонового прогона (шаг 1)


15.png

Рисунок 5 – Настройки фонового прогона (шаг 2)

 

Исходя из рисунка 5, существуют следующие ограничения для параметра выборки (restrictions):

-         None;

-         User Selection – значение задается в вебе пользователем;

-         Fixed value – значение задается разработчиком в студии.

Как минимум один параметр должен быть выбран (не «None»).

 16.png

Рисунок 6 – Настройки фонового прогона (шаг 3)


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

Параметр «Retention Time» задает время хранения логов, параметр «Detail Level» задает уровень сообщений, который будут отображены в логах.

Шаг 4. Создаем экраны для фонового прогона

Экраны, создаваемые на данном шаге, используются для создания конкретных прогонов и их планирования. Экраны создаются следующим образом: нажать правую клавишу мыши на созданный объект фонового прогона (MDR) ® Create Screens. Будет создан пакет экранов (рисунок 7).

 

17.png

 

Рисунок 7 – Экраны MDR

 

Экраны:

-         OWL – для отображения созданных прогонов в вебе и выполнения действий над ними;

-         QA – создать новый прогон;

-         WCVIEW – для присвоения экранов фонового прогона (MDR) к существующему воркцентру (WCF).

В данном примере прикрепим WCVIEW экран фонового прогона к WCF экрану бизнес-объекта (шаг 5, MultifunctionalBO_WCF). Вы можете прикрепить к необходимому вам WCF экрану.

 

Шаг 5.Создадим экраны для бизнес-объекта.

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

Для создания экранов: нажмите правой клавишей на созданный бизнес-объект ® Create Screens. Экраны лучше создавать также пачкой, вы можете выбрать любой из видов навигации (Thing-Based или Object-Based) в зависимости от проекта требований. В данном примере выбрана Thing-Based навигация. Экраны представлены на рисунке 8. 

 

18.png

 

Рисунок 8 – Экраны бизнес-объекта

 

Примечания: для Thing-Based навигации необходимо добавить кнопку «Создать» на экране OWL. Кратко: https://youtu.be/ygnXwUZpBWY?t=476

В примере также был изменен экран OWL: добавлена кнопка удаления и изменен столбец с уникальным идентификатором (дополнительно, не обязательно).

 

Шаг 6. Выдать права на экраны фонового прогона и объекта.

Зайти в систему SAP Sales/Service Cloud ® Administrator ® General settings ® Добавить права (бизнес-роли или конкретному пользователю для тестирования). Выдача прав бизнес-роли представлена на рисунке 9.


19.png

Рисунок 9 - Выдать права на экраны бизнес-роли


Шаг 7.Создать и запланировать прогон.

Примечание: для запуска прогона данные в бизнес-объекте должны существовать. Данные созданы вручную в вебе (рисунок 10).


110.png  

Рисунок 10 – Данные в бизнес-объекте

 

Создадим прогон, выполняющий ActionOne (рисунок 11).

111.png

Рисунок 11 –Настройки прогона

 

Прогон должен быть активным, чтобы его можно было запланировать. Для активации необходимо нажать на кнопку «Set to Active”. После этого прогон может быть запланирован (рисунки 12 и 13).

112.png

Рисунок 12 – Общий список прогонов

 

Для того, чтобы запланировать конкретный прогон, необходимо выделить соответствующий прогон и нажать кнопку «Schedule», в появившемся списке выбрать пункт «Schedule». Появится следующие окно (рисунок 13).

113.png


Рисунок 13 – Запланировать прогон

 

Типы планирования:

-         Start Immediately –прогон будет запущен в текущий момент времени один раз;

-         Run After Job – прогон будет выполняться каждый раз после выполнения некоторого другого прогонаcurrent;

-         Single Run – прогон будет выполнен в некоторый указанный момент времени один раз;

-         Recurrence – прогон будет выполняться с указанной периодичностью (Daily, Weekly, Monthly, None). При выборе «None» поведение будет аналогично «Single Run».

Чтобы запланировать прогон «Hourly» просто запланируйте прогон 24 раза «Daily» на каждый час:)

 

После выполнения прогона доступны логи (рисунок 14).

114.png

Рисунок 14 – Лог выполненного прогона

 

На рисунке 14 отмечено количество записей, который были выбраны из базы данных и количество записей, которые были изменены.

Для лучшего понимания как происходит выборка данных для прогона, советую дописать в действии (action) вызываемом фоновым прогоном (например, Run), код, которые будет изменять данные в текущей строке (например, this.Action = "002";), запланировать созданный на текущем шаге прогон дважды и просмотреть логи.

Подытожим:

1.     Создать бизнес-объект (или использовать существующий);

2.     Добавить действие (action) и выборку (query) (или использовать существующие);

3.     Создать фоновый прогон (MDR) и экраны;

4.     Выдать права, создать прогон и запланировать его.

 

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