312 lines
50 KiB
HTML
312 lines
50 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
|
||
<head>
|
||
<title>2024.9</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="Here is the list of changes that you can explore right now by activating the BRIX trial version." />
|
||
<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>New releases > BRIX SaaS / 2024.9</p>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">2024.9</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. -->
|
||
<p class="p_Normal"><span style="background-color: #ffffff;">Here is the list of changes that you can explore right now by activating the BRIX trial version.</span></p>
|
||
<p class="p_Normal"><span style="background-color: #ffffff;">After October 14, 2024, all changes will become available to our clients in their active companies. Please note, the list may be expanded after the release.</span></p>
|
||
<p class="p_Normal">To enhance the update process and increase your awareness about significant changes, we are introducing the new <span style="font-weight: bold; color: #800000;">#BreakingChangeAlert</span> tag. This tag will be used to mark critical changes that could impact the operation of your system. Please pay special attention to any updates marked with this tag, as they may require additional actions on your part to adapt or adjust your current configuration.</p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">API and SDK</span></h2>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal">TEAM-18222 Implemented a new <code><b>__item</b></code> search parameter to search for instances of processes and tasks associated with an app item. This parameter allows you to quickly retrieve all running or pending workflows and tasks associated with a specific app item without having to manually track process IDs. <span style="font-weight: bold; color: #800000;">#BreakingChangeAlert</span></li></ol>
|
||
<p style="line-height: 1.0; white-space: nowrap; page-break-inside: avoid;">Example:</p>
|
||
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample" style="font-style: italic;">// instances search</span><br />
|
||
<span class="f_CodeExample" style="font-weight: bold;">const</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">instances</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">await</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">System.processes._searchInstances()</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">.where(i</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=></span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">i.__item.eq(Context.data.app)).all();</span><br />
|
||
<span class="f_CodeExample" style="font-style: italic;">// tasks search</span><br />
|
||
<span class="f_CodeExample" style="font-weight: bold;">const</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">tasks</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">await</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">System.processes._searchTasks()</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">.where(i</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=></span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">i.__item.eq(Context.data.app)).all();</span></p>
|
||
<ol style="list-style-type:decimal" start="2">
|
||
<li value="2" class="p_Normal"><span style="background-color: #ffffff;">TEAM-29961 It is now possible to return multiple cookies in a single response in API methods.</span></li></ol>
|
||
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">let</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">resp</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample" style="font-weight: bold;">new</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">HttpResponse(200);</span><br />
|
||
<span class="f_CodeExample">resp</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">resp.cookie("userId",</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">userId).cookie("userLang",</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">"en");</span><br />
|
||
<span class="f_CodeExample" style="font-weight: bold;">return</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">resp;</span></p>
|
||
<ol style="list-style-type:decimal" start="3">
|
||
<li value="3" class="p_Normal">TEAM-30189 Added a description of the ability to use EQL (BRIX Query Language) to filter data to the Web API Help. The article about filtering <a href="https://api.brix365.com/en/public-api/guides/Filter/" target="_blank" class="weblink">https://api.brix365.com/en/public-api/guides/Filter/</a> also provides an example of using EQL to perform data sampling in the Web API.</li><li value="4" class="p_Normal">TEAM-29212 A new filter operation <code><b>like_format</b></code> has been added to PublicAPI to allow searching by partial string matches using templates. Unlike the <code><b>like</b></code> operation, <code><b>like_format</b></code> uses the % and _ control characters to specify search rules:</li></ol>
|
||
<ul style="list-style-type:disc">
|
||
<li style="text-align: justify; line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;">% means any number of any character.</li></ul>
|
||
<ul style="list-style-type:disc">
|
||
<li style="text-align: justify; line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;">_ means one character of any kind.</li></ul>
|
||
<p style="text-align: justify; line-height: 1.20; margin: 7px 0 7px 0;">The search condition is case insensitive, which allows you to filter case-insensitive characters.</p>
|
||
<p style="line-height: 1.20;">Example of search by word occurrence in the title:</p>
|
||
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">{</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">"filter":</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">"like_format":</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">[</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{"field":</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">"__name,</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{"const":</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">"%city%"}</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">]</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">}</span><br />
|
||
<span class="f_CodeExample">}</span></p>
|
||
<p class="p_Normal">Example of registration number search by filling template:</p>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">{</span><br />
|
||
<span class="f_CodeExample"> "filter": {</span><br />
|
||
<span class="f_CodeExample"> "like_format": [</span><br />
|
||
<span class="f_CodeExample"> {"field": "regNumber,</span><br />
|
||
<span class="f_CodeExample"> {"const": "М86_А_ 777"}</span><br />
|
||
<span class="f_CodeExample"> ]</span><br />
|
||
<span class="f_CodeExample"> }</span><br />
|
||
<span class="f_CodeExample">}</span></p>
|
||
<p class="p_Normal"> </p>
|
||
<ol style="list-style-type:decimal" start="5">
|
||
<li value="5" class="p_Normal">TEAM-15832 Added <code><b>getReserved()</b></code> method to the TS SDK to retrieve the reserved document number.</li></ol>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Report type app</span></h2>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal">TEAM-27926 Added the ability to copy a report through the settings menu. Copying retains the report structure, including data sources, added columns (except deleted columns), and linked document templates. This feature allows you to quickly create similar reports with minimal changes. <span style="font-weight: bold; color: #800000;">#BreakingChangeAlert</span></li><li value="2" class="p_Normal"><span style="background-color: #ffffff;">TEAM-29244 Added functions to delete and restore a report. </span><span style="font-weight: bold; color: #800000;">#BreakingChangeAlert</span></li><li value="3" class="p_Normal">TEAM-30231 The widget and form context implements subtype mapping for reports, similar to how app subtypes are mapped. This simplifies working with reports and improves the understanding of the context structure.</li></ol>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Portable services</span></h2>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal">TEAM-29170 Implemented port forwarding for portable services inside Kubernetes, which allows to organize communication between services. Now you can set up to 10 ports for port forwarding in the settings of portable services. This feature is closed with the <code><b>allowBabysitterOptionalPorts</b></code> feature flag and is disabled by default.</li><li value="2" class="p_Normal">TEAM-29447 Added ability to use secrets in portable services that are set via templates from module settings. Now instead of openly sending secrets, you can use variables from the settings, which increases security.</li></ol>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Mobile app</span></h2>
|
||
<p class="p_Normal">TEAM-18156 On the <span style="font-weight: bold;">Administration > Company Settings</span> page, the <span style="font-weight: bold;">Disable app installation notification</span><span style="font-size: 13px; font-family: Calibri,Vectora,'Droid Sans','Open Sans',Frutiger,sans-serif;"> </span>setting has been added. When this option is activated, users will not see notifications offering to download the BRIX mobile or desktop app, including banners in their profile and at login. This solution is relevant for companies that don't plan to use the mobile app for security reasons or have their own app build.</p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Widgets</span></h2>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal">TEAM-25759 The <span style="font-weight: bold;">Destroy</span> function has been added to the <span style="font-weight: bold;">Settings > System Functions</span> tab in the widget builder. It is activated when a widget is removed and is useful when it is necessary to free resources created during widget operation. For example, clearing of taken intervals and timeouts:</li></ol>
|
||
<p class="p_CodeExample" style="white-space: normal; page-break-inside: avoid;"><span class="f_CodeExample">declare</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample" style="font-weight: bold;">const</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">window:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">setInterval:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">(fn:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">()</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=></span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample" style="font-weight: bold;">void</span><span class="f_CodeExample">,</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">interval:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">number)</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=></span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">number;</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">clearInterval:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">(clearInterval:</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">number)</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=></span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample" style="font-weight: bold;">void</span><span class="f_CodeExample">;</span><br />
|
||
<span class="f_CodeExample">};</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">async</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">function</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">onInit():</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Promise<</span><span class="f_CodeExample" style="font-weight: bold;">void</span><span class="f_CodeExample">></span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.counter</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">0;</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">intervalID</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">window.setInterval(()</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">=></span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Context.data.counter!++;</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">},</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">1000);</span><br />
|
||
<span class="f_CodeExample">}</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">async</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">function</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">destroy():</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">Promise<</span><span class="f_CodeExample" style="font-weight: bold;">void</span><span class="f_CodeExample">></span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">{</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">window.clearInterval(intervalID);</span><br />
|
||
<span class="f_CodeExample">}</span></p>
|
||
<p class="p_Normal">In this case, <code><b>destroy</b></code> must be bound to the <span style="font-weight: bold;">Destroy</span> function.</p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Performance report widget</span></h2>
|
||
<p style="line-height: 1.20; margin: 7px 0 16px 0;"><span style="font-family: Inter;">The </span><span style="font-family: Inter; font-weight: bold;">Widgets</span><span style="font-family: Inter;"> tab has been added to the </span><span style="font-family: Inter; font-weight: bold;">Administration > Developer Tools > Performance Report</span><span style="font-family: Inter;"> workspace. It displays summary statistics on widget usage in the system. It can be useful to understand the most problematic points in the configuration (for example, if a widget is frequently displayed, but the display speed is slow). After identifying such widgets, you can go to the builder and optimize them.</span></p>
|
||
<p style="line-height: 1.28; margin: 0 0 11px 0;"><span style="font-family: Inter;">To enable the collection of statistics on widgets, you should go to </span><span style="font-family: Inter; font-weight: bold;">Administration > Developer Tools</span><span style="font-family: Inter;"> and fill in the </span><span style="font-family: Inter; font-weight: bold;">From whom to collect information about widget performance </span><span style="font-family: Inter;">setting: you can specify users, groups, elements of the organizational structure.</span></p>
|
||
<p class="p_Normal">The following columns are displayed in the report:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">Service</span>. The value is always widget.</li><li class="p_Normal"><span style="font-weight: bold;">Entry point</span>. Workspace and code of the widget.</li><li class="p_Normal"><span style="font-weight: bold;">Quantity</span>. How many times the widget was displayed during the period of statistics collection.</li><li class="p_Normal"><span style="font-weight: bold;">Rendering time (average, minimum, maximum)</span>. Time from the beginning of displaying (including OnInit execution time) to the end of rendering of the widget template.</li><li class="p_Normal"><span style="font-weight: bold;">OnInit execution time (average, minimum, maximum)</span>. Time of execution of the widget initialization function. It is often this indicator that affects the overall rendering time, and is the place to optimize.</li><li class="p_Normal"><span style="font-weight: bold;">Script scheme preparation time (average, minimum, maximum)</span>. The field is a system field, i.e. it cannot be influenced, but the results may be required for performance analysis by BRIX system developers.</li><li class="p_Normal"><span style="font-weight: bold;">Number of elements for the scripts scheme (average)</span>. This field is a system field.</li></ul>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">EQL</span></h2>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal">TEAM-29214 A new <code><b>LIKEF</b></code> operation (short for <code><b>LIKE FORMAT</b></code>) has been added to the EQL query language to allow more flexible searching for property values using templates.</li></ol>
|
||
<p class="p_Normal"><span style="font-weight: bold;">Differences from the LIKE operation:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">LIKE</span> searches for a partial occurrence of a substring anywhere in the property value. For example, a query <code><b>[__name] like 'app'</b></code> will find items named <code><b>app1</b></code>, <code><b>some_app</b></code>, <code><b>app_some</b></code>.</li><li class="p_Normal"><span style="font-weight: bold;">LIKEF </span>allows you to specify precise search rules using the % and _ special characters, providing more controllable search.</li></ul>
|
||
<p class="p_Normal"><span style="font-weight: bold;">Rules of using LIKEF:</span></p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">Full Match: </span>If no special characters % or _ are specified in the pattern, a full match search will be performed (similar to EQ operation).</li><li class="p_Normal"><span style="font-weight: bold;">% character: </span>Indicates any number of characters (including zero). Can be used an unlimited number of times anywhere in the template.</li></ul>
|
||
<ul style="list-style-type:disc"><ul style="list-style-type:circle">
|
||
<li style="text-align: justify; line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-weight: bold;">Example:</span> <code><b>[__name] likef 'app%'</b></code> will find items whose names start with app, e.g. app, app1, appsome. It will not find 1app, someapp.</li></ul></li></ul>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">_:</span> Indicates a single character of any kind. Can be used an unlimited number of times.</li></ul>
|
||
<ul style="list-style-type:disc"><ul style="list-style-type:circle">
|
||
<li style="text-align: justify; line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-weight: bold;">Example: </span><code><b>[__name] likef 'app_'</b></code> will find items named app1, app2, but not app, app11, 1app.</li></ul></li></ul>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">Character combination: </span>The % and _ characters can be combined to create complex patterns.</li></ul>
|
||
<ul style="list-style-type:disc"><ul style="list-style-type:circle">
|
||
<li style="text-align: justify; line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-weight: bold;">Example: </span><code><b>[__name] likef 'app%some%45'</b></code> will allow you to find specific name options.</li></ul></li></ul>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">Special character escaping: </span>To search for % or _ characters as part of a value, they must be escaped with a backslash \.</li></ul>
|
||
<ul style="list-style-type:disc"><ul style="list-style-type:circle">
|
||
<li style="text-align: justify; line-height: 1.20; margin-top: 7px; margin-right: 0; margin-bottom: 7px;"><span style="font-weight: bold;">Example: </span><code><b>[__name] likef '%app\%'</b></code> will find items whose names end in app%.</li></ul></li></ul>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><span style="font-weight: bold;">Equivalence with LIKE: </span>The <code><b>[__name] likef '%app\%'</b></code> query is equivalent to <code><b>[__name] like 'app'</b></code>.</li></ul>
|
||
<p class="p_Normal">The <code><b>LIKEF</b></code> operation can be used for the following data types:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal">Line, text.</li><li class="p_Normal">Link.</li><li class="p_Normal">Category.</li><li class="p_Normal">Email.</li><li class="p_Normal">Phone number.</li><li class="p_Normal">Full name.</li><li class="p_Normal">Account.</li></ul>
|
||
<ol style="list-style-type:decimal" start="2">
|
||
<li value="2" class="p_Normal">TEAM-29801 Added <span style="font-weight: bold;">EQL search</span> widget. It allows you to display an EQL expression input component in the widget for further use of this expression in the app item filtering function.</li><li value="3" class="p_Normal">TEAM-29887 Added the ability to search by Arbitrary App type fields in EQL. For example: <code><b>[workLogObject] IN (FROM [_clients._leads] SELECT [__id] WHERE [__name]='My Company')</b></code></li></ol>
|
||
<p class="p_Normal">Where workLogObject is an <span style="font-weight: bold;">Arbitrary app</span> type field.</p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Document management</span></h2>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal">TEAM-4865 In the standard <span style="font-weight: bold;">Document categorization</span> workspace, the names for the search fields have been improved:</li></ol>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal">The file name is now correctly displayed as <span style="font-weight: bold;">Document Name</span>, since the search is performed by document name and not by file.</li><li class="p_Normal"><span style="font-weight: bold;">Start Date</span> has been replaced with <span style="font-weight: bold;">Registration Date</span>, since the search is based on the date of document registration.</li><li class="p_Normal">Added the ability to search by the <span style="font-weight: bold;">Document Flow</span> field to simplify filtering of documents by this criteria.</li></ul>
|
||
<ol style="list-style-type:decimal" start="2">
|
||
<li value="2" class="p_Normal">TEAM-19294 Added the <span style="font-weight: bold;">+File</span> button when sending a file and package for approval or information. Now users can attach files for both approval and information. Attached files are saved in the <span style="font-weight: bold;">system/docflow/files</span> folder with correct access rights.</li><li value="3" class="p_Normal">TEAM-21532 Now when you change the document template in the <span style="font-weight: bold;">Generate by Template</span> workspace, the fields mapped on the <span style="font-weight: bold;">Field Values</span> tab are preserved. Also, when the <span style="font-weight: bold;">Convert to PDF</span> option is enabled, the platform automatically adds the <span style="font-weight: bold;">.docx</span> prefix to the file name, which simplifies document generation.</li><li value="4" class="p_Normal">TEAM-29702 In the connector settings in business process activities, there is a new option for <span style="font-weight: bold;">Sign</span>. Now the user can sign the app item directly on the task execution form by clicking the transition button. There is no need to add a separate box for signing. In addition, the comment left when signing is saved in the business process context variable.</li><li value="5" class="p_Normal">TEAM-30179 Fixed operation of access rights for folder hierarchies. Now, when the <span style="font-weight: bold;">All users have access to the App and all its items</span> option is enabled, full access to all directory folders is automatically granted. Previously, permissions were granted manually, and users could only see the <span style="font-weight: bold;">All items</span> folder.</li></ol>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Projects</span></h2>
|
||
<p class="p_Normal">TEAM-29751 Implemented registration and display of actual dates of start and completion of project tasks with the <span style="font-weight: bold;">Process</span> type. Actual dates are set according to when a business process actually started and ended. They are displayed on the form of viewing the process task and affect the display of the calendar plan in the <span style="font-weight: bold;">Actual</span> mode.</p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Activity stream, channels, chats</span></h2>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal">TEAM-3600 The ability to upload multiple files has been implemented in the Activity stream, Object activity stream, the <span style="font-weight: bold;">Object activity stream</span> widget, channels, private and group chats.</li><li value="2" class="p_Normal">TEAM-26440 It is now possible to add chats to <span style="font-weight: bold;">Favorites</span> via the chat context menu. Added chats are displayed in the <span style="font-weight: bold;">Favorites</span> tab for quick access. Channel messages and feeds previously added to favorites have been moved to <span style="font-weight: bold;">Favorites > Messages</span>.</li><li value="3" class="p_Normal">TEAM-28094 Users can now add the activity stream objects to <span style="font-weight: bold;">Favorites</span> using the object's context menu. Added objects are displayed in the<span style="font-weight: bold;"> Favorites</span> tab below favorite chats, providing quick access to important items.</li><li value="4" class="p_Normal">TEAM-28244 Users can now customize the list of objects in the activity stream by excluding items from certain apps or processes that they do not work with.</li></ol>
|
||
<p class="p_Normal">Suppose a user receives messages in the <span style="font-weight: bold;">Payment Requests</span> app activity stream, but does not work with items from that app directly and does not want to see them in their object list. Then:</p>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">The user finds the <span style="font-weight: bold;">Payment Requests</span> app item in the list of objects in the activity stream.</li><li value="2" class="p_Normal" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">Right-clicks on that item.</li><li value="3" class="p_Normal" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">Selects the <span style="font-weight: bold;">Do not show the app in the list anymore</span> option.</li><li value="4" class="p_Normal" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">All items from the App for Payment app will be hidden from the list of activity stream objects.</li><li value="5" class="p_Normal" style="margin-top: 0; margin-right: 0; margin-bottom: 0;">Messages from the feeds of these items will still be available in the <span style="font-weight: bold;">#Activity stream</span> workspace.</li></ol>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Import and export structures</span></h2>
|
||
<p class="p_Normal">TEAM-15864 Implemented the ability to import data from Excel/CSV files for <span style="font-weight: bold;">Table</span> type fields in apps. Now exported data can be correctly imported back into the system. This simplifies the transfer of large amounts of information and eliminates data entry errors.</p>
|
||
<p class="p_Normal">When exporting data with system information enabled, the format that supports the reverse import is preserved. When system information is disabled, the number of elements is displayed in the <span style="font-weight: bold;">Elements: number</span> format.</p>
|
||
<h2 class="p_Heading2"><span class="f_Heading2">Bugs fixed</span></h2>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal">TEAM-26639 The <span style="font-weight: bold;">Execute on behalf</span> setting is implemented for the <span style="font-weight: bold;">Business Process</span> <span style="font-weight: bold;">activity</span> and <span style="font-weight: bold;">Process Start</span> elements, similar to the <span style="font-weight: bold;">Task</span> field. <span style="font-weight: bold; color: #800000;">#BreakingChangeAlert</span></li><li value="2" class="p_Normal">TEAM-29726 On the exported business process diagram, the names of connectors from tasks and gateways are now displayed correctly.</li><li value="3" class="p_Normal">TEAM-28785 To optimize the selection of portal user profiles, the <code><b>__user</b></code> field from the <code><b>_system_catalogs:_user_profiles</b></code> table has a search feature.</li><li value="4" class="p_Normal">TEAM-29772 Fixed the operation of event-based search.</li><li value="5" class="p_Normal">TEAM-30246 Fixed an issue where worker would send an acknowledgment of receipt of messages from RabbitMQ immediately after receiving them, without waiting for the corresponding script to complete. This could lead to the script not being executed or executed incorrectly.</li><li value="6" class="p_Normal">TEAM-30895 Fixed an issue where a user could not view an app item even if added to a group configured for access via a nested property.</li><li value="7" class="p_Normal">TEAM-30993 Fixed an issue where a <code><b>Namespace</b></code> object could not be accessed in scripts, causing execution to fail. Also, the ability to add <code><b>Namespace</b></code> in available items in widget settings was missing.</li><li value="8" class="p_Normal">TEAM-3821 Fixed an issue where a deleted file continued to appear in search results in the <span style="font-weight: bold;">Files</span> workspace.</li><li value="9" class="p_Normal">TEAM-15124 Fixed an issue where unnecessary <span style="font-weight: bold;">File Signature</span> settings appeared in the standard app, even if the file itself is not provided.</li><li value="10" class="p_Normal">TEAM-28459 Fixed an issue where contract sources were detached and marked red. The issue occurred when binding sources, especially if previously bound apps were deleted. In some cases, sources that should be bound remained in the Creating state and were not saved.</li><li value="11" class="p_Normal">TEAM-28925 Fixed an issue related to <code><b>PasteImage()</b></code> with customizable dimensions not working correctly. Previously, the image was not inserted into the document when dimensions were specified, and only the function without parameters worked correctly. Now the image is inserted with customized dimensions as specified in the template.</li><li value="12" class="p_Normal">TEAM-29431 Fixed an issue of incorrect operation of the <code><b>validFrom</b></code> method. Previously, this method returned the signature date instead of the certificate issue date. The method now correctly returns the certificate issue date as expected.</li><li value="13" class="p_Normal">TEAM-29438 Fixed an issue that caused the template designer to display the collection path instead of the name of the custom e-signature provider. Now the template designer correctly displays the name or code of the custom provider when outputting information in the template.</li><li value="14" class="p_Normal">TEAM-29879 Fixed an issue that caused project plan generation by template not to work. Now project plan generation works correctly for new companies and newly created project types. For old customers who still have this problem, you need to check the setting of the link to the <span style="font-weight: bold;">Project</span> field in the <span style="font-weight: bold;">Save</span> button on the project creation form.</li><li value="15" class="p_Normal">TEAM-29919 Fixed an issue that caused project participants to be granted all permissions to project folders and files, except for the <span style="font-weight: bold;">Assign permissions</span> right. Now project participants (except for the curator and supervisor) are assigned only the View, Upload, Create, and Edit permissions, according to the documentation.</li><li value="16" class="p_Normal">TEAM-30203 Fixed an issue where the <code><b>getDraft()</b></code> and <code><b>createDraft()</b></code> methods in the project object did not work for added project types. When trying to use them, the script crashed with the “is not a function” error. Now these methods work correctly when working with project types.</li><li value="17" class="p_Normal">TEAM-30283 Fixed an issue where the system allowed projects to be created without a plan through scripts, which caused scripts to fail in further operation.</li><li value="18" class="p_Normal">TEAM-30322 Fixed an issue where signing tasks in business processes were not closed after execution when using the Kontur module. As a result, the business process did not continue despite successful confirmation of signing. The problem occurred in bulk for different users and was fixed only after several attempts. Signing via CryptoPro worked correctly.</li><li value="19" class="p_Normal">TEAM-30414 Fixed an issue where contract sources with unmatched fields behaved illogically. Previously, the system allowed such sources to be saved, but this caused items to be displayed incorrectly. Now items will not be added to the contract until all source fields are correctly configured.</li><li value="20" class="p_Normal">TEAM-12689 Fixed an issue in the company structure display where the same user assigned to multiple positions was only displayed under one of the positions.</li><li value="21" class="p_Normal">TEAM-24113 Fixed an issue where the<span style="font-weight: bold;"> Item Name</span> field in the app settings was not updated when the solution was updated.</li><li value="22" class="p_Normal">TEAM-25286 Fixed an issue where when updating a workspace, the order of the left menu content did not change.</li><li value="23" class="p_Normal">TEAM-26478 Fixed an issue when the solution was updated, but the field display settings in the table view of items were not applied.</li><li value="24" class="p_Normal">TEAM-28616 Fixed and issue where when setting permissions in an app, it was not possible to select user groups from another app in the same workspace. Now when assigning permissions, the full group tree is loaded in the selection window, including groups within workspaces and apps.</li><li value="25" class="p_Normal">TEAM-29429 Fixed an issue that caused the mobile app to display workspaces related to solutions for which licenses are not activated.</li><li value="26" class="p_Normal">TEAM-29474 Fixed an issue where authorization via a QR code in the mobile app did not always work correctly. When scanning a QR code, users could face the situation when after displaying the authorization form with login and password they were either redirected back to the page of choosing authorization methods or the app crashed.</li></ol>
|
||
<ol style="list-style-type:decimal" start="27">
|
||
<li value="27" class="p_Normal">TEAM-30321 Fixed an issue that caused role or group settings to not be saved if a previously assigned user was deleted.</li></ol>
|
||
|
||
<div class="bottom-nav">
|
||
|
||
<a id="prev-link" class="topic__navi_prev" href="2024_10.html">
|
||
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
|
||
class="bottom-nav__link">2024_10.html</span>
|
||
</a>
|
||
|
||
|
||
<a id="next-link" class="topic__navi_next" href="2024_8.html">
|
||
<span class="bottom-nav__link">2024_8.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>
|