All checks were successful
Deploy Static Site / deploy (push) Successful in 6m6s
248 lines
36 KiB
HTML
248 lines
36 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
|
||
<head>
|
||
<title>Introduction to solution development</title>
|
||
<meta name="generator" content="Help+Manual" />
|
||
<meta name="keywords" content="" />
|
||
<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="Opportunities for flexible solution development Our system has a lot of quick and easy ways to implement the functionality you need using Low-code tools. We guarantee that..." />
|
||
<meta name="picture" content="" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:title" content="Full documentation for BRIX365 platform. Low-code developer guide. User guide. Admin guide. Developer guide." />
|
||
<meta property="og:url" content="https://brix365.com/en/help" />
|
||
<meta property="og:image" content="" />
|
||
<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>!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://brix365.com/en/help">
|
||
<img src="./logo-en.svg" alt="header logo">
|
||
</a>
|
||
<!-- <div class="hero__search-form" id="search-panel">
|
||
<form class="search-form" onsubmit="ym(83180416,'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://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a class="project-link" href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://brix365.com/en/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li><li><a class="project-link" href="https://brix365.com/en/help/business_solutions/-elma365-store.html">Business Solutions</a></li></ul></span></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li><li><a href="https://tssdk.brix365.com/" target="_blank">SDK</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://brix365.com/en/help">
|
||
<img src="./logo-light-en.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">Build solutions in BRIX</a> / Introduction to solution development</p>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Introduction to solution development</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">Opportunities for flexible solution development</span></h2>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">Our system has a lot of quick and easy ways to implement the functionality you need using Low-code tools. We guarantee that solutions created with these tools can be supported in the future and will be compatible with newer versions of the platform. However, such tools will always have their limitations.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">At the same time, some solutions require complex and deep technical expertise and simply cannot be created with the platform’s limited development tools. We understand this fact and make it possible for you to integrate anything you develop with our platform.</span></p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Developer’s first steps</span></h2>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;"><a href="https://brix365.com/en/" target="_blank" class="weblink">Register</a> a cloud version of BRIX and explore the system’s capabilities.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Read articles in the <a href="solutions-building.html" class="topiclink">Help Center</a> for a quick start and find answers to all frequently asked questions.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Understand the <a href="architecture.html" class="topiclink">system architecture</a>.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Learn about using scripts to add flexibility the system’s functionality in <a href="https://tssdk.brix365.com/en/index.html" target="_blank" class="weblink">BRIX TS SDK</a>.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Learn about using REST for integrations in <a href="https://api.brix365.com/en/public-api/guides/IntroWebAPI/" target="_blank" class="weblink">BRIX Public API</a>.</span></li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Things you should be familiar with</span></h2>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Understanding how <a href="form_low_code.html" class="topiclink">Low-code</a> development works.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Knowledge of the <a href="https://www.typescriptlang.org/" target="_blank" class="weblink">TypeScript</a> programming language for writing scripts.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Ability to code in <a href="https://developer.mozilla.org/en-US/docs/Web/HTML" target="_blank" class="weblink">HTML</a> + <a href="https://developer.mozilla.org/en-US/docs/Web/CSS" target="_blank" class="weblink">CSS</a> and use third-party <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript" target="_blank" class="weblink">JavaScript</a> libraries.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Understanding the basics of communication between different services with <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP" target="_blank" class="weblink">HTTP requests</a>.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Understanding of <a href="https://learn.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/service-oriented-architecture" target="_blank" class="weblink">service-oriented</a> (microservice) architecture and its features.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Understanding of <a href="https://learn.microsoft.com/en-us/dotnet/architecture/microservices/container-docker-introduction/" target="_blank" class="weblink">containerization</a> with the use of <a href="https://docs.docker.com/" target="_blank" class="weblink">Docker</a> and basic skills of working with <a href="https://kubernetes.io/docs/home/" target="_blank" class="weblink">Kubernetes</a> to develop custom services.</span></li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Typical cases of solution development</span></h2>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Telephony integration</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">If no ready-made solution is available for your telephony provider, you can set up your own integration fairly quickly.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">You can do it by using a custom module and scripts written in </span><span style="font-family: Inter; font-weight: bold;">TypeScript</span><span style="font-family: Inter;">. As the platform has an established approach to working with telephony, you need to create only a few methods. After that you will be able to set up telephony and use it in the standard interface of the platform.</span></p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Integration with an external system</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">You can integrate the platform with any accounting software your company is using.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">There are several ways you can use an integration like this:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">One-way synchronization with the external system as a data source.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">One-way synchronization with BRIX as a data source.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Two-way synchronization.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Occasional synchronization within business processes.</span></li></ul>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">To set up synchronization like this, you need to create a custom module that would include:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;"><a href="https://tssdk.brix365.com/en/latest/" target="_blank" class="weblink">Scripts</a> that access the external system’s HTTP methods using fetch to retrieve data and save it to the platform.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;"><a href="extention-processes.html" class="topiclink">Processes in the module</a> to run the script on schedule and process large amounts of data in a loop. </span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;"><a href="events_processing.html" class="topiclink">Event handlers</a> to send updated information to the external system when a user creates or edits an item on the platform.</span></li></ul>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Operator’s working space</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 7px 0;"><span style="font-family: Inter;">For example, you can set up a form the bank operator fills out when issuing a loan. A form like this usually has a lot of fields where values are calculated dynamically, and sends requests to external systems for additional checks. You can make such forms using <a href="user_widgets.html" class="topiclink">custom widgets</a>:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Use standard <a href="interface_designer.html" class="topiclink">interface designer</a> elements and add <a href="client_server_scripts.html" class="topiclink">client scripts</a> to make the form dynamic.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Use the <a href="code_widget.html" class="topiclink">Code widget</a> to create a markup not available in the standard widgets.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Set up communication with external systems using <a href="https://tssdk.brix365.com/en/latest/" target="_blank" class="weblink">server scripts</a>.</span></li></ul>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Reports</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">If you need to create a quick and simple report for a user, the easiest way to do it is to use a custom widget. This case is initially the same as the previous one, but here it is not the entry of data that is important, but data display. To achieve the view you need, you can add your own styles in the </span><span style="font-family: Inter; font-weight: bold;">Code</span><span style="font-family: Inter;"> widget and use </span><span style="font-family: Inter; font-weight: bold;">JavaScript</span><span style="font-family: Inter;">.</span></p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">BRIX as the source of data for external systems</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">You may need to use data accumulated in BRIX in an external system for report generation. For example, it can be a BI system or a report server. Such systems usually can work with data accessible at an HTTP address. To add a new address with the desired behavior, you just need to create your own <a href="extention-api.html" class="topiclink">API method</a> in a custom module. In this method, you will be able to return any data in any format the report server requires.</span></p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Work with binary and proprietary file formats</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">If you need to read or create a file of a non-standard binary (or proprietary) format, you can do it using a <a href="custom_services.html" class="topiclink">custom microservice</a>. In your service, you need to create an HTTP method with the following functionality:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Get the whole file’s body (or only the file’s ID in the system).</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Perform the desired operations with the file.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Return the whole file’s body in the response (or save the file using the standard API for working with files).</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">This service should be called from a module’s scripts, where you can wrap the requests in the convenient form of <a href="extention-activities.html" class="topiclink">business process actions</a> and <a href="extention-widegets.html" class="topiclink">widgets</a>.</span></li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Integration with other protocols (without HTTP)</span></h2>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">As in the previous case, you can set up integration with other protocols by creating a separate adapter service. This service needs to be able to translate HTTP method calls to the communications protocol you need. For example, you can configure:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Sending or reading data in a corporate data bus (MSMQ, RabbitMQ, ActiveMQ, and others).</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Interaction with a data storage and processing system (Oracle, MS SQL, and others).</span></li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Components used to build solutions</span></h2>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">There are three important components in the system that can help you solve tasks of any complexity:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;"><a href="code_widget.html" class="topiclink">Code widget</a>.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;"><a href="extentions.html" class="topiclink">Module</a>.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;"><a href="custom_services.html" class="topiclink">Dedicated service</a>.</span></li></ul>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Code widget</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">This widget allows you to create self-sufficient <a href="interface_settings.html" class="topiclink">user interfaces</a> with dynamic fields and any interface design. The logic of the widget is set using JavaScript and HTML with the <a href="https://lodash.com/" target="_blank" class="weblink">Lodash utility library</a>. By combining this with client- and server-side scripts written in TypeScript inside the widget, you can create complex and flexible solutions.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 7px 0;"><span style="font-family: Inter; font-weight: bold;">Examples:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Dynamic forms and integration with external sources.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Complex charts based on app data created using D3.js and other web libraries. </span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Complex templates for displaying app items in the browser and working with them. You can make a panel for planning, a compound Kanban board, or a specific array of app items.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">Opportunity to create a full-fledged web application using any web technologies (an interface to work with the platform’s data) and add it into a custom widget as a ready-to-use JS file.</span></li></ul>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">As a rule, when you want to use the </span><span style="font-family: Inter; font-weight: bold;">Code</span><span style="font-family: Inter;"> widget, you create a <a href="user_widgets.html" class="topiclink">custom widget</a> in an app, workspace, or module. In this widget, you define the context (properties) that will affect the </span><span style="font-family: Inter; font-weight: bold;">Code</span><span style="font-family: Inter;"> widget you place inside the custom widget. This allows you to reuse the widget in different interfaces and modify its behavior by changing its settings.</span></p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Module</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">To extend the system’s functionality and set integration logic, we have implemented a special container called a <a href="360024498352.html" class="topiclink">module</a>. A module is designed to create ready-to-use configuration elements (widgets, business process activities). That’s why a module, unlike a workspace, cannot be installed into the system more than once, but it can later be updated to a newer version.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">You can use a module to:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Expand the functionality of standard interfaces using extension zones.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Create ready-to-use <a href="extention-widegets.html" class="topiclink">custom widgets</a>.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Create ready-to-use <a href="extention-activities.html" class="topiclink">custom activities</a> for business processes.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Process <a href="events_processing.html" class="topiclink">system events</a> using scripts or processes.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 16px;"><span style="font-family: Inter;">Process <a href="extention-api.html" class="topiclink">arbitrary web requests</a> (add custom Web API methods).</span></li></ul>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">A module can be developed and installed to BRIX On-Premises without any restrictions. You can also publish a module in the <a href="https://store.brix365.com/" target="_blank" class="weblink">BRIX Store</a> cloud catalog after moderation.</span></p>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Dedicated service</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">For some integrations with external systems, TypeScript may not be sufficient, and the system may not have a ready-to-use HTTP API.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">We recommend developing a special <a href="custom_services.html" class="topiclink">service</a> for that. Connection between BRIX and this service will use the platform’s public <a href="https://api.brix365.com/en/public-api/guides/IntroWebAPI/" target="_blank" class="weblink">Web API</a> and HTTP methods created in the service itself.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">A solution like this has no limitations at all, apart from the complexity of the task you are solving and the capabilities of the developers who work on the service. <a href="custom_services.html#support" class="topiclink">Deployment and support</a> of such services are not provided by the platform’s tech support.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 7px 0;"><span style="font-family: Inter; font-weight: bold;">Examples:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">A service for working with a legacy system using a low-level driver or a closed protocol.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">A service containing a pre-trained machine learning model for making decisions.</span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">A service for complex analysis and transformation of big data. </span></li><li style="line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-family: Inter;">A service that an external system uses to pass data to the platform (for example, in a DMZ).</span></li></ul>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-family: Inter;">It is important to understand that communication between this service and the platform may be restricted, as the Web API has its limitations. However, you can create a module with custom <a href="extention-api.html" class="topiclink">API methods</a> and use them in the service.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">We are convinced that this approach to service integrations needs to become the industry standard and be clear to everyone who takes part in the development of solutions.</span></p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-family: Inter;">Here is an exemplary diagram of how the functionality of BRIX can be extended and how communication with external systems can be set up:</span></p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><img alt="illustration" width="980" height="563" style="margin:0;width:980px;height:563px;border:none" src="illustration.png"/></p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Solutions development process</span></h2>
|
||
<h3 class="p_Heading3"><span class="f_Heading3">Pack and transfer a solution</span></h3>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">The BRIX configuration includes such container as a <a href="solution.html" class="topiclink">solution</a>. It allows you to unite several workspaces and modules into one package for exporting and importing it in different companies.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">This approach allows you to solve large-scale enterprise tasks, create practical business solutions, and quickly transfer them between development, testing, and production environments.</span></p>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">Useful solution packages can also be added to <a href="https://store.brix365.com/" target="_blank" class="weblink">BRIX Store</a> after moderation by BRIX staff.</span></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="type-script.html">
|
||
<span class="bottom-nav__link">type-script.html</span> <span
|
||
class="bottom-nav__arrow bottom-nav__arrow--next"></span>
|
||
</a>
|
||
|
||
</div>
|
||
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
|
||
<div class="feedback" id="feedback"><div class="feedback-help"><span><b>Was this helpful?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx" style="display: none;">Thanks for your feedback!</div><div class="feedback__popup" id="feedback__popup_why" style="display: none;"><div class="feedback__popup-header">Please specify why:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Recommendations did not help me</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Article is hard to understand</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Didn`t answer my question</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Content does not match the topic</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Other</label></div><div class="feedback__popup" id="feedback__popup-other" style="display: none;"><div class="feedback__popup-header">How we can improve it?</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Submit"></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" class="small-img" alt="like"><spanclass="feedback-form__btn-group_yes-btn">Yes</spanclass="feedback-form__btn-group_yes-btn"></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg" class="small-img" alt="dislike"><spanclass="feedback-form__btn-group_no-btn">No</spanclass="feedback-form__btn-group_no-btn"></label></div><select name="category"><option disabled="">Please specify why</option><option value="bad_recommendation" selected="">Recommendations did not help me</option><option value="difficult_text">Article is hard to understand</option><option value="no_answer">Didn`t answer my question</option><option value="bad_header">Content does not match the topic</option><option value="other_reason">Other</option></select><input type="submit"></form></div><div class="found_typo"><p style="margin: 0px; margin-top: 16px !important;"><span><b>Found a typo?</b></span> Select it and press <i>Ctrl+Enter</i> to send us feedback</p></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">In this topic</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://brix365.com/en/" target="_blank">BRIX</a></li><li><a href="https://tssdk.brix365.com/en/latest/" target="_blank">SDK</a></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li></ul><ul class="footer-mobile__list"><li><a href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li></ul>
|
||
|
||
|
||
</div>
|
||
<div class="footer-wrap">
|
||
|
||
<div><span class="mobile-question-popup">Send feedback</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Ask a question</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Send"></div></form><div class="hidden fade-in question-success-xs">Sent</div></div>
|
||
|
||
<div class="footer-flex-b">
|
||
<span class="footer-copy">© 2025 BRIX</span>
|
||
<ul class="footer-list">
|
||
|
||
<li class="footer-item">
|
||
<a href="#" class="arrow-top" style="display: block;"></a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</footer>
|
||
<iframe name="hmnavigation" style="display:none!important"></iframe>
|
||
<script src="./jquery-ui.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>
|