Добавление мобильного приложения

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

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

План

Этап 1. Подготовка бинарников и форм

  1. В папке с развернутой серверной частью создать папку \MobileBin\Template, в которой будут храниться бинарники для мобильного приложения Template. Например, D:\WorkflowEngine\Template\MobileBin\Template

  2. Скопировать бинарники из папки MobileBin архива в созданную папку \MobileBin\Template.

  3. В папке \Template\Projects\1. Template разархивированного учебного проекта создать папку \MobileForms, в которой будут храниться xml-файлы форм мобильного приложения. Например, D:\WT\Projects\Template\Projects\1. Template\MobileForms

  4. Скопировать содержимое папки MobileForms из архива в созданную папку MobileForms.

Этап 2. Настройка конфига

  1. В файл конфигурации D:\WorkflowEngine\Template\appsettings.json внести правки:

    • В поле MobileFormsFolder проверить, совпадает ли указанный путь до папки Projects с тем, по которому располагается папка с xml-файлами форм мобильного приложения. По умолчанию это папка \1. Template\MobileForms. При несовпадении указать верный путь.

    • В поле MobileBinaryPath проверить, совпадает ли указанный путь до папки MobileBin с тем, по которому располагается папка с бинарниками. При несовпадении указать верный путь.

  2. В файле D:\WorkflowEngine\Template\hosting.json для server.urls необходимо указать локальный IP-адрес сервера, а не localhost. В конфиге клиентской части для desktop тоже нужно изменить адрес сервера с localhost на локальный IP-адрес.

Этап 3. Подготовка базы данных

  1. В таблицу public.mobile_app внести правки:

    • В столбце forms_path проверить, совпадает ли указанный относительный путь до папки, в которой хранятся xml-файлы форм для мобильного приложения. Путь указывается относительно папки, заданной в поле MobileFormsFolder в файле конфигурации. При несовпадении указать верный путь.

    • В столбце bin_path проверить, совпадает ли указанный относительный путь до папки, в которой хранятся бинарники. Путь указывается относительно папки, заданной в поле MobileBinaryPath в файле конфигурации. При несовпадении указать верный путь.

  2. В таблице public.user для пользователя WS_GUEST проверить хэш пароля. Мобильное приложение по умолчанию подключается под пользователем WS_GUEST с паролем wsGuestPwd123. Поэтому установите для пользователя WS_GUEST этот пароль.

Если в таблице public.user для пользователя WS_GUEST пришлось сменить пароль, то необходимо в файле WorkflowForms.dll.config (конфиг клиентской десктопной части) в поле AnonymousPassword указать пароль wsGuestPwd123, чтобы десктопный клиент продолжал работать с серверной частью.

Далее подробнее рассмотрим каждый пункт плана.

При возникновении ошибки в процессе разворачивания проекта вернитесь к этому плану и проверьте каждый его пункт.

Архив

Скачайте архив с бинарниками и xml-файлами форм:

Архив содержит две папки:

  • MobileBin - папка с бинарниками для мобильных приложений;

  • MobileForms - папка с xml-файлами стартовой формы и формы настроек.

Подготовка бинарников и форм

В папке, в которую развернули серверную часть, например, D:\WorkflowEngine\Template, создадим папку MobileBin\Template для бинарников мобильного приложения. В новую папку D:\WorkflowEngine\Template\MobileBin\Template скопируем файлы из папки MobileBin архива.

В папке \Template\Projects\1. Template разархивированного учебного проекта создадим папку \MobileForms, в которой будут храниться xml-файлы форм мобильного приложения. Например, D:\WT\Projects\Template\Projects\1. Template\MobileForms. Скопируем содержимое папки MobileForms из архива в созданную папку MobileForms.

Настройка конфига

Чтобы мобильное приложение могло взаимодействовать с серверной частью WorkflowEngine, нужно показать серверу, в каких папках лежат бинарники и xml-файлы форм. Зная пути до папок, сервер сможет отдавать файлы мобильным приложениям для скачивания на устройство.

Первым делом в файле конфигурации D:\WorkflowEngine\Template\appsettings.json добавим строки:

"MobileFormsFolder": "D:\\WT\\Projects\\Template\\Projects",
"MobileBinaryPath": "D:\\WorkflowEngine\\Template\\MobileBin",
  • В поле MobileFormsFolder указывается путь до папки Projects, в которой будет происходить поиск папки с xml-файлами форм.

  • В поле MobileBinaryPath указывается путь до папки MobileBin, в которой будут располагаться подпапки с бинарниками.

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

Подготовка базы данных

Регистрация приложения

Затем необходимо зарегистрировать мобильное приложение в базе данных, для этого создадим таблицу public.mobile_app и добавим в нее запись:

SQL-запросы на создание таблицы public.mobile_app и добавление записи

Создание таблицы:

CREATE SEQUENCE mobile_app_id_seq;
CREATE TABLE public.mobile_app
(
  mobile_app_id smallint NOT NULL DEFAULT nextval('mobile_app_id_seq'::regclass),
  name character varying NOT NULL,
  title character varying NOT NULL,
  bin_path character varying NOT NULL,
  forms_path character varying NOT NULL,
  start_form_path character varying NOT NULL,
  by_default boolean NOT NULL,
  CONSTRAINT pk_mobile_app_id PRIMARY KEY (mobile_app_id),
  CONSTRAINT un_mobile_app_name UNIQUE (name),
  CONSTRAINT un_mobile_app_bin_path UNIQUE (bin_path),
  CONSTRAINT un_mobile_app_forms_path UNIQUE (forms_path)
);

Добавление записи:

INSERT INTO public.mobile_app(
  name,
  title,
  bin_path,
  forms_path,
  start_form_path,
  by_default
)
VALUES (
  'Template',
  'Template',
  'Template',
  '1. Template\MobileForms',
  'TemplateEmptyStart.xml',
  false
);

Колонка name содержит ключ, который совпадает с настройкой MobileAppName в конфиге мобильного приложения. Когда в проекте есть несколько мобильных приложений, то этот ключ помогает серверной части определять, какое приложение запрашивает файлы, и по каким путям их можно найти, чтобы отдать приложению.

Колонка title хранит имя проекта, которое будет отображаться в списке выбора типа мобильного приложения. Если в проекте используется несколько приложений, и в настройке MobileAppName в конфиге приложения не указан тип, то при первом запуске приложения пользователь сможет сам выбрать тип из доступных.

Колонка bin_path содержит относительный путь до папки, в которой находятся бинарные файлы мобильного приложения. Путь указывается относительно папки, заданной в поле MobileBinaryPath в файле конфигурации appsettings.json. Например, при указанных значениях, сервер будет искать бинарные файлы мобильного приложения в папке D:\WorkflowEngine\Template\MobileBin\Template.

Колонка forms_path содержит относительный путь до папки, в которой хранятся xml-файлы форм для мобильного приложения. Путь указывается относительно папки, заданной в поле MobileFormsFolder в файле конфигурации appsettings.json. Например, при указанных значениях, сервер будет искать xml-файлы форм мобильного приложения в папке D:\WT\Projects\Template\Projects\1. Template\MobileForms.

Колонка start_form_path хранит название файла стартовой формы, который должен находиться в папке из колонки forms_path.

Колонка by_default определяет приложение по умолчанию. Может быть не больше одного приложения по умолчанию.

Гостевая учетка

Мобильное приложение по умолчанию подключается под пользователем WS_GUEST с паролем wsGuestPwd123. Поэтому установите для пользователя WS_GUEST этот пароль, выполнив запрос:

CREATE EXTENSION pgcrypto;

UPDATE public.user
SET user_password = encode(digest('wsGuestPwd123', 'sha512'), 'hex') 
WHERE user_name = 'WS_GUEST';

DROP EXTENSION pgcrypto;

Если в таблице public.user для пользователя WS_GUEST пришлось сменить пароль, то необходимо в файле WorkflowForms.dll.config (конфиг клиентской десктопной части) в поле AnonymousPassword указать пароль wsGuestPwd123, чтобы десктопный клиент продолжал работать с серверной частью.

Last updated