Интеграция с Nextcloud
Loginom обрабатывает данные, загруженные из внешних источников. Создать же таблицу с данными непосредственно в Loginom нельзя. Но иногда пользователю необходима такая возможность. Используя облачную платформу для хранения, синхронизации и обмена файлами и др. данными Nextcloud + Onlyoffice можно создавать таблицы и редактировать их привычным образом, а Loginom получит эти данные путем скачивания файла по ссылке. При таком подходе в серверных редакциях Loginom не потребуется загружать Excel-файл в Файловое хранилище после каждого изменения данных в нем.
Примечание: Демопример имеет ограничение демонстрации всех возможностей при запуске на демостенде (Запустить демо). Рекомендуем установить пример локально.
Предварительная подготовка
Чтобы Loginom смог получить доступ к Nextcloud необходим токен авторизации.
Для получение токена Nextcloud потребуется аккаунт Nextcloud, далее необходимо:
- Перейти в настройки профиля
- Выбрать раздел Безопасность
- Создать приложение
После создания приложения отобразится токен, который далее используется для настройки узлов сценария Loginom.
Описание алгоритма
1. Получение ссылки для импорта
В подмодели с помощью REST запроса происходит получение ссылки на файл, из которого необходимо получить данные.
Во входном порту подмодели созданы 3 переменные:
Имя | Метка | Описание |
---|---|---|
domain | Домен | Имя домена, на котором развернут сервер Nextcloud |
token | Токен | Токен приложения Nextcloud |
path | Путь до файла | Путь в облачном хранилище Nextcloud до требуемого файла |
Эти переменные имеют предустановленные значения, которые необходимо заменить на собственные.
В узле Формирование URL подготавливается URL для отправки REST запроса методом POST. В калькуляторе переменных расcчитывается следующее выражение:
Concat("https://", domain ,"/ocs/v2.php/apps/files_sharing/api/v1/shares")
Параллельно в узле Тело запроса (компонент JavaScript) формируется тело запроса. При формировании запроса используется переменная Путь до файла из входного порта узла.
import { InputTable, InputTables, InputVariables, OutputTable, DataType, DataKind, UsageType } from "builtIn/Data";
// Подготовка структуры JSON объекта
const body = {
"path" : "",
"shareType": 3,
"permissions": 1
};
// Присвоение свойству path объекта body значение переменной path
body.path = InputVariables.Items.path.Value;
// Вывод объекта в выходной набор данных
OutputTable.Append();
OutputTable.Set(0, JSON.stringify( body));\
Для отправки запроса на странице Подключения настроено подключение REST-сервис:
- Переключатель URL сервиса в режиме получения URL через входную переменную
- Метод: POST
- Переключатель Токен OAuth в режиме получения токена через входную переменную
Узел REST запрос получает через табличный порт тело запроса и данные для подключения через специальный порт Подключение, отправляет POST запрос и возвращает XML ответ, в котором содержится ссылка к файлу. Настройки узла:
- Поле с телом сообщения: Тело запроса
- Остальные настройки по умолчанию
С помощью узла Ссылка на скачивание извлекается ссылка для получения доступа к файлу. К извлеченной ссылке добавляется /download
, чтобы получить ссылку на скачивание:
Concat(SubStr(Response, Find("<url>", Response) +5, Find("</url>", Response) - Find("<url>", Response) - 5), "/download")
При помощи узла Таблица в переменные происходит преобразование для удобного дальнейшего использования.
2. Использование ссылки для импорта файла
Полученная на предыдущем шаге ссылка для скачивания файла передается во входной порт переменных узла Импорт файла. В настройках узла переключатель Имя файла/URL установлен в режим получения данных из входной переменной. Остальные настройки оставлены по умолчанию. Подробнее о настройке импорта из Excel файла.
Скачайте и откройте файл в Loginom. При необходимости Loginom CE можно скачать бесплатно
Минимальные требования к системе:
- Операционная система: Windows 10 и выше
- CPU x64: 2 core 1
- Оперативная память: 4 GB
- Жесткий диск: 10 GB
1 Поддерживается работа на x64 процессорах Intel Core, AMD FX и более новых, содержащих инструкции SSE4.2 (POPCNT, LZCNT).