Саша Бизиков

IBM Process Designer 8.5: чтение и запись данных в Coach View

В Coach View среды IBM Process Designer 8.5 взаимодействие с переменными происходит через JavaScript, который разделён на блоки.

Есть основной блок и блоки, код в которых выполняется по соответствующему действию:

Интерфейс IBM Process Designer 8.5

В данной заметке опишу работу с входящим бизнес объектом (далее БО) и входящими параметрами. Подключение происходит во вкладке «Переменные», в которых можно указать только один БО и сколько угодно параметров. В БО должны передаваться данные, которые в дальнейшем будем отображать в Coach View, а в параметры передаются данные, которые влияют на отображение информации из БО.

Работаем с чтением и записью данных в IBM Process Designer 8.5

Чтение данных из БО и параметров

Для чтения данных необходимо использовать метод .get ('value'). Если в интерфейсе, в котором используется ваш Coach View не привязана переменная, которую вы собираетесь прочитать через этот метод, то произойдет ошибка, поэтому читать данные из переменных необходимо следующим образом:

// Чтение БО
var data = this.context.binding ? this.context.binding.get("value") : null;
if (data) {
 // ваш код
}
// Чтение параметра
var title = this.context.options.title ? this.context.options.title.get("value") : null;
 if (title) {
// ваш код
}

Если вы делаете интерактивный элемент, например таблицу, в которой можно менять значения, то может понадобиться сохранять измененные данные в БО или параметры. С записью данных в IBM Process Desinger всё немного хитрее.

В БО помимо самих данных содержатся свойства о выделенном элементе. Это может пригодиться, если данные отображаются в таблице, в которой можно выбрать строку. БО содержит для этого следующие свойства:

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

Обновить значение можно следующим образом:

var data = this.context.binding ? this.context.binding.get("value") : null;
if (data) {
 var index = 0; // Номер выделенной строки
 data.set("listAllSelectedIndices" , [index]);
 // Обновляем БО
 this.context.binding.set("value", data);
}

Запись и обновление данных в БО

Например, необходимо изменить поле в БО. Для обновления данных в IBM Process Designer у сложных БО нужно использовать следующий способ:

var data = this.context.binding ? this.context.binding.get("value").items : null;

Обратите внимание, что при считывании переменной мы сразу обращаемся к массиву items, который содержит объекты с данными (если обратиться к массиву с данными после чтения через .get ('value'), перезаписать его и обновить БО, то данные не обновятся). Теперь можем изменить значение в БО и сохранить значение:

data[0].name = 'Новое имя';
 this.context.binding.set("value", data);

Подробнее о работе с переменными можно прочитать в статье на IBM Knowledge Center: Binding data and configuration options.

P.S.: За время работы на проекте с IBM Process Designer у меня накопился опыт использования этой системы с не совсем очевидным её поведением. О чём и собираюсь писать в ближайших заметках.

Надеюсь информация была полезна для вас, если возникнут вопросы  по среде IBM Process Designer 8.5 или 7.5 — пишите в комментарии, постараюсь подробно на них ответить. До скорых встреч!

Ещё заметки

С чего начать изучение вёрстки

Отвечаю на вопрос читателя о том, с чего начать изучение вёрстки.

Правильный перенос сайта Вордпрес на новый домен

Рассказываю как правильно перенести сайт на WordPress на новый домен с помощью Search Replace DB.

Перенос записей в WordPress

В заметке рассмотрим как перенести большое количество записей в формате CSV на WordPress. Решение подойдёт даже для случая больше 100 000 записей.

Неделя @cssunderhood

На прошлой неделе мне довелось побывать ведущим последнего и самого молодого коллективного твиттера — @cssunderhood.

Двухфакторная аутентификация в WordPress

Если у вас есть сайт или блог на WordPress, то его можно обезопасить от взлома. Один из таких способов повышения безопасности сайта — настройка двухфакторной аутентификации.

Что выбрать: Jekyll или WordPress?

Целый год мой блог работал на Jekyll и размещался на GitHub. Месяц назад вернулся обратно к WordPress и в заметке расскажу почему.

Как перевести тему WordPress на русский язык

В большинстве тем для WordPress присутствует папка languages, которая позволяет перевести на необходимый язык весь её интерфейс. Перевод заключается в редактировании .po-файла. В заметке рассказываю как перевести тему WordPress на русский язык.

Оптимизация сайта: включаем gzip-сжатие

У Google есть хороший сервис: PageSpeed Insights, который подскажет, что необходимо оптимизировать у вас на сайте. Одним из советов является включение gzip сжатия на хостинге (или сервере), где размещается ваш сайт.

Меняем фон верхней панели браузера

С выходом Android 5.0 мобильный браузер Chrome начал поддерживать метатег theme-color. Для примера сделаем верхнюю панель красной.

Страница в Sharepoint 2013 c областями для веб-частей

Мне тут по работе довелось верстать под Sharepoint 2013. Многие вещи оказались для меня далеко не тривиальными. Поэтому свой опыт хочу задокументировать в виде статьи, где опишу процесс создания .aspx-страницы с зонами для вставки веб-частей.

Эффективное использование mixin в LESS

Я люблю LESS. Правда. Это очень клевая штука, которая позволяет упростить написание CSS. В этой записи пойдет речь о Mixin.

Система сеток с использованием LESS

В этой заметке пойдет речь о примере использования LESS с целью упрощения верстки проектов.

Полезные ресурсы по Sharepoint

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

Как сделать сайт WordPress мультиязычным

Данное решение подойдет только для тех, кто использует WordPress, в качестве основы сайта. Весь необходимый функционал предоставляет плагин qTranslate. Русский файл перевода уже включён в последние версии плагина qTranslate, но по неизвестным причинам, его нет в списке.

Работаем с куками через JavaScript

Рассказываю как записывать и считывать значения из куки.

Что такое LESS и как его использовать

Коротко рассказываю о том, что такое LESS и как его использовать.

Бесплатный хостинг на Гитхаб

Рассказываю как использовать GitHub Pages в качестве хостинга сайта.

Перенос Вордпрес на новый домен

Описываю как правильно выполнить перенос сайта на WordPress.

Установка и настройка Git

Описываю по шагам как установить Git к себе на компьютер.

Отключить топик-ссылки и фотосеты в LiveStreet

При создании сайта на CMS LiveStreet часто приходится производить много настроек. Например, иногда полезно отключить некоторые виды постов. В заметке привожу пример кода, отключающий некоторые виды постов.

Настройка виртуального сервера для работы с LiveStreet

Мне необходимо было перейти на выделенный сервер, где будет работать сайт на LiveStreet. Настраивал сервер впервые, узнал много нового. В заметке опишу основные этапы настройки.

Настройка файла .htaccess после установки LiveStreet

Решение ошибки когда главная страница работает, а при переходе на любую другую — получаю 404 ошибку.