288 lines
44 KiB
HTML
288 lines
44 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
|
||
<head>
|
||
<title>Введение в разработку решений</title>
|
||
<meta name="generator" content="Help+Manual" />
|
||
<meta name="keywords" content="«ELMA365 Публичное API»" />
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="description" content="Возможности для гибкой разработки решений В нашей системе есть множество быстрых и удобных способов реализовать нужную вам задачу с использованием Low Code инструментов. При..." />
|
||
<meta name="picture" content="" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:title" content="Cправка по Low-code платформе ELMA365" />
|
||
<meta property="og:url" content="https://elma365.com/ru/help" />
|
||
<meta property="og:image" content="" />
|
||
<meta property="og:site_name" content="ELMA365" />
|
||
<link rel="icon" href="favicon.png" type="image/png" />
|
||
|
||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
||
<link rel="stylesheet" href="./jquery-ui.min.css" />
|
||
<link rel="stylesheet" href="default.css" />
|
||
<link rel="stylesheet" href="./search-yandex.css" />
|
||
<link rel="stylesheet" href="./article.css" />
|
||
<link rel="stylesheet" href="./glossary.css" />
|
||
<link rel="stylesheet" href="./theme.css" />
|
||
|
||
<script type="text/javascript" src="jquery.js"></script>
|
||
<script type="text/javascript" src="helpman_settings.js"></script>
|
||
<script type="text/javascript" src="helpman_topicinit.js"></script>
|
||
|
||
<script type="text/javascript" src="highlight.js"></script>
|
||
<script type="text/javascript">
|
||
$(document).ready(function(){highlight();});
|
||
</script>
|
||
</head>
|
||
|
||
<body>
|
||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-M6ETBEC1R9"></script><script>window.dataLayer=window.dataLayer || []; function gtag(){dataLayer.push(arguments);}gtag('js', new Date()); gtag('config', 'G-M6ETBEC1R9');</script>
|
||
<script>!function(e,t,c,n,r,a,m){e.ym=e.ym||function(){(e.ym.a=e.ym.a||[]).push(arguments)},e.ym.l=1*new Date;for(var s=0;s<document.scripts.length;s++)if(document.scripts[s].src===n)return;a=t.createElement(c),m=t.getElementsByTagName(c)[0],a.async=1,a.src=n,m.parentNode.insertBefore(a,m)}(window,document,"script","https://mc.yandex.ru/metrika/tag.js"),ym(83179930,"init",{clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,webvisor:!0})</script><noscript><div><img alt=""src=https://mc.yandex.ru/watch/83179930 style=position:absolute;left:-9999px></div></noscript>
|
||
|
||
<header class="header elma-365">
|
||
<div class="container">
|
||
<a class="header__logo" href="https://elma365.com/ru/help">
|
||
<img src="./logo.svg" alt="header logo">
|
||
</a>
|
||
<!-- <div class="hero__search-form" id="search-panel">
|
||
<form class="search-form" onsubmit="ym(83179930,'reachGoal','poisk')">
|
||
<label class="search-form__label">
|
||
<span id="reset-search" class="search__icon"></span>
|
||
<input class="search-form__input" type="text">
|
||
</label>
|
||
<input class="search-form__submit" type="submit" value="Submit">
|
||
</form>
|
||
</div> -->
|
||
|
||
<div class="hero__search-form" id="search-panel"> <form class="search-form"> <label class="search-form__label"> <span id="reset-search" class="search__icon"></span> <input class="search-form__input" type="text"> </label> <input class="search-form__submit" type="submit" value="Submit"> </form> </div>
|
||
<div class="hero__search">
|
||
<a href="#" id="search-icon" class="hero__search-icon">
|
||
<img src="search-icon-white.svg" alt="search string">
|
||
</a>
|
||
<a href="#" id="side-menu-icon" class="hero__side-icon">
|
||
<img src="side_menu.svg" alt="side menu">
|
||
</a>
|
||
</div>
|
||
<div class="header__navi">
|
||
|
||
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a class="project-link" href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://elma365.com/ru/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li><li><a class="project-link" href="https://elma365.com/ru/help/business_solutions/-elma365-store.html">Бизнес-решения</a></li></ul></span></li><li><a href="https://api.elma365.com/ru/"target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/"target="_blank">SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/" target="_blank">Академия</a></li><li><a href="https://elma365.com/ru/" target="_blank">Сайт ELMA365</a></li></ul>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</header>
|
||
|
||
|
||
|
||
|
||
<main class="main container">
|
||
|
||
<aside class="sidebar" id="sidebar">
|
||
<div class="sidebar__header">
|
||
<a class="header__logo" href="https://elma365.com/ru/help">
|
||
<img src="./logo-light.svg">
|
||
</a>
|
||
<span class="sidebar__close elma-365-close" id="close"></span>
|
||
</div>
|
||
<div class="sidebar__wrapper" id="side-menu">
|
||
|
||
</div>
|
||
</aside>
|
||
|
||
<article class="article" id="article">
|
||
<div class="article-inner">
|
||
<div class="content">
|
||
<header class="article__header">
|
||
<div class="article__bread" style="display:flex; gap:10px;">
|
||
<span id="subcategory" class="search-res__item-category search-res__item-category_subcategory subcategory article__badge"></span>
|
||
|
||
<div class="topic__breadcrumbs">
|
||
<p><a href="solutions-building.html">Разработка решений на платформе ELMA365</a> / Введение в разработку решений</p>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Введение в разработку решений</span></h1>
|
||
</div>
|
||
|
||
</header>
|
||
<section class="article__content">
|
||
<div class="scroll-top-inner">
|
||
<a href="#h1-article" class="scroll-top"></a>
|
||
</div>
|
||
<!-- Placeholder for topic body. -->
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Возможности для гибкой разработки решений</span></h2>
|
||
<p class="p_Normal" style="line-height: 1.38;">В нашей системе есть множество быстрых и удобных способов реализовать нужную вам задачу с использованием Low Code инструментов. При этом мы гарантируем поддерживаемость и совместимость таких решений в будущих версиях платформы, но такие инструменты всегда будут иметь ограничения.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">Вместе с этим, всегда есть решения, требующие сложной и глубокой технической экспертизы, которые просто невозможно реализовать ограниченными средствами разработки в платформе. Мы понимаем это и даем интегрировать любые ваши технические разработки с платформой.</p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">С чего начать разработчику</span></h2>
|
||
<p class="p_Normal" style="line-height: 1.38;"><a href="https://elma365.com/ru/" target="_blank" class="weblink">Зарегистрируйтесь</a> в облаке и изучите возможности системы самостоятельно, а также:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">обратитесь в <a href="solutions-building.html" class="topiclink">справку</a> за быстрым стартом и ответами на частые вопросы;</li><li class="p_Normal" style="line-height: 1.38;">проанализирйте <a href="architecture.html" class="topiclink">архитектуру системы</a>;</li><li class="p_Normal" style="line-height: 1.38;">ознакомьтесь с гибкими функциональными возможностями скриптов в <a href="https://tssdk.elma365.com/ru/latest/index.html" target="_blank" class="weblink">справке ELMA365 TS SDK</a>;</li><li class="p_Normal" style="line-height: 1.38;">изучите возможности интеграции с использованием REST в <a href="https://api.elma365.com/ru/public-api/guides/IntroWebAPI/" target="_blank" class="weblink">справке по публичному API ELMA365</a>;</li><li class="p_Normal" style="line-height: 1.38;">обратитесь на форум <a href="https://exchange.elma365.com/" class="weblink">ELMA365 Community</a> для поиска готовых рецептов или ответов у сообщества, просмотрите <a href="https://community.elma365.com/ru/forums/LC-book-platform/" target="_blank" class="weblink">«Краткое руководство по созданию Low-code решений»</a>;</li><li class="p_Normal" style="line-height: 1.38;">изучите процедуры импорта, экспорта и обновления <a href="https://elma365.com/ru/help/platform/solution.html" target="_blank" class="weblink">решения</a>.</li></ul>
|
||
<p class="p_Normal">Полезные знания и умения для разработки решений:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">понимание возможностей <a href="form_low_code.html" class="topiclink">Low-code</a> платформы;</li><li class="p_Normal" style="line-height: 1.38;">знание языка <a href="https://www.typescriptlang.org/" class="weblink">TypeScript</a> для написания скриптов;</li><li class="p_Normal" style="line-height: 1.38;">умение верстать разметку <a href="https://developer.mozilla.org/ru/docs/Web/HTML" class="weblink">HTML</a> + <a href="https://developer.mozilla.org/ru/docs/Web/CSS" class="weblink">CSS</a> и использовать сторонние библиотеки на <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript" class="weblink">JavaScript</a>;</li><li class="p_Normal" style="line-height: 1.38;">понимание основы взаимодействия разных сервисов через <a href="https://developer.mozilla.org/ru/docs/Web/HTTP" class="weblink">HTTP-запросы</a>;</li><li class="p_Normal" style="line-height: 1.38;">понимание <a href="https://docs.microsoft.com/ru-ru/dotnet/architecture/microservices/architect-microservice-container-applications/service-oriented-architecture" class="weblink">сервисноориентированной</a> (микросервисной) архитектуры и её особенностей;</li><li class="p_Normal" style="line-height: 1.38;">понимание <a href="https://docs.microsoft.com/ru-ru/dotnet/architecture/microservices/container-docker-introduction/" class="weblink">контейнеризации</a> с использованием <a href="https://docs.docker.com/" class="weblink">Docker</a> и базовые навыки работы с <a href="https://kubernetes.io/ru/docs/home/" class="weblink">Kubernetes</a> для разработки собственных сервисов.</li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Типовые скрипты создания решений</span></h2>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Интеграция с телефонией</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Если для вашего провайдера телефонии еще нет готового решения, то вы можете достаточно быстро реализовать свою интеграцию.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">Сделать это можно при помощи <a href="ip-tel-integration.html" class="topiclink">пользовательского модуля и скриптов</a> на TypeScript. В силу стандартного подхода к работе с телефонией в платформе в модуле достаточно реализовать всего несколько методов. После этого можно будет настраивать телефонию и использовать её через стандартный интерфейс в платформе.</p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Интеграция с внешней системой</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Например, с 1С или любой другой учетной системой предприятия.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">Тут могут быть разные сценарии применения:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">синхронизация в одну сторону (внешняя система — источник данных);</li><li class="p_Normal" style="line-height: 1.38;">синхронизация в одну сторону (ELMA365 — источник данных);</li><li class="p_Normal" style="line-height: 1.38;">синхронизация в обе стороны;</li><li class="p_Normal" style="line-height: 1.38;">разовые синхронизации в рамках выполнения процессов.</li></ul>
|
||
<p class="p_Normal" style="line-height: 1.38;">Для реализации такой синхронизации следует создать пользовательский модуль с функциями:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;"><a href="https://tssdk.elma365.com/ru/latest/index.html" class="weblink">скрипты</a> с обращением к HTTP-методам внешней системы через <code><b>fetch</b></code> для выборки данных и сохранения этих данных в платформу;</li><li class="p_Normal" style="line-height: 1.38;"><a href="extention-processes.html" class="topiclink">процессы в модуле</a> для запуска скрипта по расписанию и обработки больших массивов данных в цикле;</li><li class="p_Normal" style="line-height: 1.38;"><a href="events_processing.html" class="topiclink">обработчики событий</a> для перехвата создания и изменения элементов в платформе и отправки актуальной информации во внешний сервис.</li></ul>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Единая форма оператора (рабочее место)</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Например, форма операциониста банка для оформления кредита. На такой форме обычно много полей ввода с динамическим расчетом данных и обращения к внешним системам для дополнительной проверки. Такую форму можно реализовать при помощи <a href="user_widgets.html" class="topiclink">пользовательского виджета</a>:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">использовать стандартные элементы <a href="interface_designer.html" class="topiclink">дизайнера интерфейсов</a> и <a href="client_server_scripts.html" class="topiclink">скрипты на клиенте</a> для динамики;</li><li class="p_Normal" style="line-height: 1.38;">использовать <a href="code_widget.html" class="topiclink">виджет Код</a> для формирования разметки, которая не укладывается в стандартные виджеты;</li><li class="p_Normal" style="line-height: 1.38;">добавить обмен данными с внешними системами через <a href="https://tssdk.elma365.com/ru/latest/index.html" class="weblink">скрипты</a> на сервере.</li></ul>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Отчёты</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Если нужно сформировать быстрый и простой отчёт для пользователя, то проще всего это сделать пользовательским виджетом. По сути этот скрипт похож на предыдущий, но тут больше внимания уделяется не вводу данных, а их отображению. Для достижения нужного вида можно подключить в виджете <span style="font-weight: bold;">Код</span> свои собственные стили и использовать язык JavaScript.</p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Платформа как источник данных для внешних систем</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Может стоять задача использования данных накопленных в ELMA365 для внешней системы формирования отчётности. Например, это может быть умный BI или готовый сервер отчётов. Такие системы часто умеют работать с данными доступными по HTTP‑адресу. Чтобы добавить новый адрес с нужным поведением, достаточно реализовать свой <a href="extention-api.html" class="topiclink">метод API</a> в пользовательском модуле. В таком методе вы можете вернуть любые данные в любом удобном для сервера отчётов формате.</p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Работа с файлами бинарных или закрытых форматов</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Если вам нужно прочитать или создать файл нестандартного бинарного (или закрытого) формата, то сделать это можно при помощи <a href="custom_services.html" class="topiclink">своего микросервиса</a>. В таком сервисе следует реализовать HTTP‑метод, в котором:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">получить всё тело файла (или только идентификатор файла в системе);</li><li class="p_Normal" style="line-height: 1.38;">выполнить нужные манипуляции с файлом;</li><li class="p_Normal" style="line-height: 1.38;">вернуть тело файла в ответе (или сохранить файл через стандартный API работы с файлами);</li><li class="p_Normal" style="line-height: 1.38;">вызвать такой сервис лучше из скриптов модуля, и можно обернуть вызовы в удобные блоки <a href="extention-activities.html" class="topiclink">действий в бизнес‑процессах</a> или в <a href="extention-widegets.html" class="topiclink">виджеты</a>.</li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Интеграция с другими протоколами (когда нет HTTP)</span></h2>
|
||
<p class="p_Normal" style="line-height: 1.38;">По аналогии с предыдущей задачей — эта решается созданием отдельного сервиса адаптера. Такой сервис должен уметь транслировать вызовы HTTP‑методов в требуемые протоколы взаимодействия. Например:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">отправка или чтение данных в корпоративной шине данных (MSMQ, RabbitMQ, ActiveMQ и другие);</li><li class="p_Normal" style="line-height: 1.38;">взаимодействие с отдельной системой хранения и обработки данных (Oracle, MS SQL и другие).</li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Составные компоненты для решения задач</span></h2>
|
||
<p class="p_Normal" style="line-height: 1.38;">В платформе есть три важных компонента для реализации решений любой сложности:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;"><a href="code_widget.html" class="topiclink">виджет «Код»</a>;</li><li class="p_Normal" style="line-height: 1.38;"><a href="extentions.html" class="topiclink">модуль</a>;</li><li class="p_Normal" style="line-height: 1.38;"><a href="custom_services.html" class="topiclink">выделенный сервис</a>.</li></ul>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Виджет «Код»</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Этот виджет позволяет создавать полностью самостоятельные <a href="interface_settings.html" class="topiclink">пользовательские интерфейсы</a> с динамикой и любыми интерфейсными решениями. В виджете создаётся логика при помощи языка JavaScript и разметки HTML с применением языка шаблонов <a href="https://learn.javascript.ru/template-lodash" class="weblink">Lodash template</a>. В комбинации с клиентскими и серверными скриптами на TypeScript внутри виджета это даёт большие возможности для создания сложных и гибких решений. </p>
|
||
<h4 class="p_Heading4"><span class="f_Heading4">Примеры:</span></h4>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">динамика на форме и интеграция с внешними источниками — например, <a href="dadata_integration.html" class="topiclink">интеграция с сервисом DaData</a>.</li><li class="p_Normal" style="line-height: 1.38;">сложные графики на основе данных приложения через D3.js или другие веб библиотеки.</li><li class="p_Normal" style="line-height: 1.38;">сложные шаблоны отображения и работы с элементами приложений в браузере. Доска для планирования, сложный канбан или особая матрица расположения элементов приложений.</li><li class="p_Normal" style="line-height: 1.38;">возможность создать полноценное веб‑приложение с использованием любых веб технологий (рабочее место для работы с данными платформы) и положить его как готовый файл <span style="font-weight: bold;">.js</span> в пользовательский виджет.</li></ul>
|
||
<p class="p_Normal" style="line-height: 1.38;">Типовой сценарий использования виджета <span style="font-weight: bold;">Код</span> — это создание <a href="user_widgets.html" class="topiclink">пользовательского виджета</a> в приложении, разделе или модуле. В этом виджете вы определяете пользовательский контекст (свойства), который будет влиять на поведение вложенного внутрь него виджета <span style="font-weight: bold;">Код</span>. Таким образом, вы сможете повторно использовать виджет в разных интерфейсах и менять его поведение настройками.</p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Модуль</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Для решения задач, связанных с расширениями функциональных возможностей системы или реализацией интеграционной логики на сервере мы ввели специальный контейнер — <a href="360024498352.html" class="topiclink">модуль</a>. Модуль предназначен для создания готовых к использованию элементов конфигурации (виджетов, действий бизнес‑процесса). Поэтому модуль, в отличие от раздела, может быть установлен в систему только один раз. В дальнейшем он может обновляться на более новую версию.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">С помощью модуля в системе можно:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">расширять стандартные интерфейсы через зоны расширения;</li><li class="p_Normal" style="line-height: 1.38;">создавать готовые <a href="https://elma365.com/ru/help/extention-widegets.html" class="weblink">пользовательские виджеты</a>;</li><li class="p_Normal" style="line-height: 1.38;">создавать готовые <a href="https://elma365.com/ru/help/extention-activities.html" class="weblink">пользовательские блоки</a> действий для процессов;</li><li class="p_Normal" style="line-height: 1.38;">обрабатывать <a href="https://elma365.com/ru/help/events_processing.html" class="weblink">системные события</a> скриптами или процессами;</li><li class="p_Normal" style="line-height: 1.38;">обрабатывать <a href="https://elma365.com/ru/help/extention-api.html" class="weblink">произвольный веб запрос</a> (добавляет свои методы Web API).</li></ul>
|
||
<p class="p_Normal" style="line-height: 1.38;">Модуль может быть разработан и установлен в редакцию On‑Premises без каких‑либо ограничений. Также модуль можно опубликовать в облачный каталог <a href="https://store.elma365.ru/" class="weblink">ELMA365 Store</a> после прохождения процедуры модерации.</p>
|
||
<h4 class="p_Heading4"><span class="f_Heading4">Примеры:</span></h4>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;"><a href="diadoc_main.html" class="topiclink">интеграция с Диадок</a> — комплексный пакет интеграции с внешней системой;</li><li class="p_Normal" style="line-height: 1.38;">реализация провайдера <a href="ip-tel-integration.html" class="topiclink">Телефонии</a>;</li><li class="p_Normal" style="line-height: 1.38;">реализация провайдера для <a href="electronic-signature.html" class="topiclink">ЭЦП</a>;</li><li class="p_Normal" style="line-height: 1.38;">модуль <a href="audit_extension.html" class="topiclink">Аудит безопасности</a>.</li></ul>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Выделенный сервис</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">Бывают случаи, когда требуется провести интеграцию с внешней системой, при этом возможностей TypeScript недостаточно, и у внешней системы может не быть готового HTTP API.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">В этом случае мы рекомендуем разрабатывать <a href="custom_services.html" class="topiclink">отдельный самостоятельный сервис</a>. Между платформой ELMA365 и этим сервисом связь должна идти через публичное <a href="https://api.elma365.com/ru/public-api/guides/IntroWebAPI/" target="_blank" class="weblink">Web API</a> платформы и HTTP-методы, созданные в самом сервисе.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">Рамки такого решения уже ничем не ограничены, только сложностью решаемой задачи и возможностями разработчиков сервиса. <a href="custom_services.html#support" class="topiclink">Размещение и поддержка</a> такого сервиса не входит в область поддержки платформы.</p>
|
||
<h4 class="p_Heading4"><span class="f_Heading4">Примеры:</span></h4>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal" style="line-height: 1.38;">сервис, который обеспечивает работу с legacy системой через низкоуровневый драйвер или закрытый протокол;</li><li class="p_Normal" style="line-height: 1.38;">сервис, который содержит внутри подготовленную ML модель для принятия решений;</li><li class="p_Normal" style="line-height: 1.38;">сервис, который выполняет сложный анализ и преобразование больших данных;</li><li class="p_Normal" style="line-height: 1.38;">сервис, через который внешняя система передает данные в платформу (например в условиях DMZ).</li></ul>
|
||
<p class="p_Normal" style="line-height: 1.38;">Очень важно понимать, что возможности взаимодействия такого сервиса с платформой ограничены строгостью Web API. Но при этом, можно создать модуль, в котором реализовать собственные <a href="extention-api.html" class="topiclink">методы API</a> и использовать их в сервисе.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">Мы считаем, что подход «Задача — Сервис» должен стать традиционным и понятным для всех участников разработки решений.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">Так выглядит примерная схема возможностей расширения функциональных возможностей платформы и взаимодействия с ней из внешнего мира:</p>
|
||
<p class="p_Normal" style="line-height: 1.38;"><img alt="illustration" width="980" height="563" style="margin:0;width:980px;height:563px;border:none" src="illustration.png"/></p>
|
||
<p class="p_Normal" style="line-height: 1.38;"> </p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Процесс разработки решений</span></h2>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Решение для упаковки и переноса</span></h3>
|
||
<p class="p_Normal" style="line-height: 1.38;">В конфигурации ELMA365 есть такой контейнер, как <a href="solution.html" class="topiclink">решение</a>. Он позволяет объединять несколько разделов и модулей в единый пакет для экспорта‑импорта между компаниями.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">Этот подход позволяет решать крупные промышленные задачи, создавать реальные бизнес-решения и быстро переносить их между окружениями разработки / тестирования / эксплуатации.</p>
|
||
<p class="p_Normal" style="line-height: 1.38;">Также полезные пакеты решений могут быть выгружены в <a href="https://store.elma365.ru/" class="weblink">ELMA365 Store</a> после модерации вендором.</p>
|
||
|
||
<div class="bottom-nav">
|
||
|
||
<a id="prev-link" class="topic__navi_prev" href="solutions-building.html">
|
||
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
|
||
class="bottom-nav__link">solutions-building.html</span>
|
||
</a>
|
||
|
||
|
||
<a id="next-link" class="topic__navi_next" href="developer-course-elma365.html">
|
||
<span class="bottom-nav__link">developer-course-elma365.html</span> <span
|
||
class="bottom-nav__arrow bottom-nav__arrow--next"></span>
|
||
</a>
|
||
|
||
</div>
|
||
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
|
||
<div class="feedback-wrap"><div class="feedback" id="feedback"><span><b>Была ли статья полезной?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx">Спасибо за ваш отзыв!</div><div id="feedback-success-popup"><div class="wrap"><button type="button" class="feedback-popup-close">×</button><svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_212_2187)"><path d="M22 0.6875C10.2294 0.6875 0.6875 10.2294 0.6875 22C0.6875 33.7706 10.2294 43.3125 22 43.3125C33.7706 43.3125 43.3125 33.7706 43.3125 22C43.3125 10.2294 33.7706 0.6875 22 0.6875ZM22 40.5625C11.8023 40.5625 3.4375 32.3078 3.4375 22C3.4375 11.8024 11.6922 3.4375 22 3.4375C32.1977 3.4375 40.5625 11.6922 40.5625 22C40.5625 32.1976 32.3078 40.5625 22 40.5625ZM34.1713 16.933L18.6613 32.3186C18.257 32.7197 17.604 32.7171 17.203 32.3128L9.82283 24.873C9.42176 24.4686 9.42434 23.8157 9.82867 23.4146L10.5609 22.6884C10.9652 22.2873 11.6181 22.2899 12.0192 22.6942L17.9468 28.6697L31.9926 14.7366C32.3969 14.3356 33.0498 14.3382 33.4509 14.7425L34.1772 15.4747C34.5783 15.879 34.5757 16.532 34.1713 16.933Z" fill="#27AE60"></path></g><defs><clipPath id="clip0_212_2187"><rect width="44" height="44" fill="white"></rect></clipPath></defs></svg><p>Ваш отзыв успешно отправлен!</p><span>Спасибо за обратную связь.</span></div></div><div class="feedback__popup" id="feedback__popup_why"><button type="button" class="feedback-popup-close">×</button><div class="feedback__popup-header">Уточните, почему:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Рекомендации не помогли</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Текст трудно понять</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Нет ответа на мой вопрос</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Содержание статьи не соответствует заголовку</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Другая причина</label></div><div class="feedback__popup" id="feedback__popup-other"><button type="button" class="feedback-popup-close">×</button> <div class="feedback__popup-header">Расскажите, что вам не понравилось в статье:</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Отправить"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg"/><span class="feedback-form__btn-group_yes-btn">Да</span></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg"/><span class="feedback-form__btn-group_no-btn">Нет</span></label></div><select name="category"><option disabled>Выберите вариант</option><option value="bad_recommendation" selected>Рекомендации не помогли</option><option value="difficult_text">Текст трудно понять</option><option value="no_answer">Нет ответа на мой вопрос</option><option value="bad_header">Содержание статьи не соответствует заголовку</option><option value="other_reason">Другая причина</option></select><input type="submit"></form></div></div>
|
||
|
||
</section>
|
||
</div>
|
||
<aside class="article__sidebar" style="display:none">
|
||
<input type="checkbox" />
|
||
<div class="article__arrow"></div>
|
||
<div class="table-of-contents elma365-right" id="toc2Content">
|
||
<h3 class="h3-toc">В этой статье</h3>
|
||
<nav id="toc2"></nav>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</article>
|
||
</main>
|
||
<footer class="footer">
|
||
<div class="footer-container">
|
||
<div class="footer-mobile">
|
||
|
||
<ul class="footer-mobile__list"><li><a href="https://api.elma365.com/ru/" target="_blank">API</a></li><li><a href="https://tssdk.elma365.com/" target="_blank">TS SDK</a></li><li><a href="https://community.elma365.com/" target="_blank">Community</a></li><li><a href="https://elma-academy.com/ru/elma365" target="_blank">Академия</a></li></ul><ul class="footer-mobile__list"><li><a href="https://elma365.com/ru/help/platform/get-trial.html">Платформа</a></li><li><a href="https://elma365.com/ru/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://elma365.com/ru/help/service/service-functions.html">Service</a></li><li><a href="https://elma365.com/ru/help/projects/projects-functions.html">Проекты</a></li></ul>
|
||
|
||
|
||
</div>
|
||
<div class="container">
|
||
<div class="footer-wrap">
|
||
|
||
<div><span class="mobile-question-popup">Отправить фидбэк</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Задать вопрос</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Отправить"></div></form><div class="hidden fade-in question-success-xs">Ваш фидбэк отправлен.</div></div>
|
||
|
||
<div class="footer-flex-b">
|
||
<div class="footer-top">
|
||
<span class="footer-copy">© 2025
|
||
ELMA365
|
||
|
||
|
||
</span>
|
||
|
||
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
|
||
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
|
||
</a>
|
||
|
||
</div>
|
||
<div class="footer-line">
|
||
|
||
<div class="footer-line-copy">
|
||
<span class="footer-copy">© 2025
|
||
ELMA365
|
||
|
||
|
||
</span>
|
||
</div>
|
||
|
||
<ul class="footer-list">
|
||
|
||
<li class="footer-item"><a href="https://elma365.com/ru/" target="_blank" class="footer-link" style="color: #0D4A75;"><img src="browse.svg" alt="browse icon" class="footer-img">elma365.com</a></li><li class="footer-item"><a href="https://www.youtube.com/user/ELMABPM" target="_blank" class="footer-link"><img src="yt.svg" alt="youtube icon" class="footer-img"></a></li><li class="footer-item"><a href="https://vk.com/elma_bpm" target="_blank" class="footer-link"><img src="vk.svg" alt="vk icon" class="footer-img"></a></li><li class="footer-item"><a href="https://t.me/elmaday" target="_blank" class="footer-link"><img src="tg.svg" alt="telegram icon" class="footer-img"></a></li><li class="footer-item"><a href="https://dzen.ru/elma" target="_blank" class="footer-link"><img src="dzen.svg" alt="dzen icon" class="footer-img"></a></li>
|
||
|
||
|
||
<li class="footer-item">
|
||
<a href="https://navigator.sk.ru/orn/1122971" target="_blank">
|
||
<img src="sk-resident.svg" alt="sk icon" class="footer-img" width="117" height="34">
|
||
</a>
|
||
</li>
|
||
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<a href="#" class="arrow-top"></a>
|
||
</div>
|
||
|
||
</footer>
|
||
<!-- <script type="text/javascript" src="jquery1.min.js"></script>-->
|
||
<iframe name="hmnavigation" style="display:none!important"></iframe>
|
||
<!--<script src="./jquery-ui.js"></script> -->
|
||
<script src="./jquery-ui.min.js"></script>
|
||
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
|
||
<script src="./jquery.tocify.min.js"></script>
|
||
<script src="./TypoReporter.min.js"></script>
|
||
<script src="./google-search.js"></script>
|
||
<script src="./main.js"></script>
|
||
</body>
|
||
|
||
</html>
|