Skip to Content
SDKLTools.SDKСинхронный элемент

Синхронный элемент

Базовый вид синхронного элемента:

using LTools.Common.Model; using LTools.Common.UIElements; using LTools.SDK; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Primo.SDKSample { public class PrimoElementBack : PrimoComponentSimple<PrimoElement> { private const string CGroupName = "SDK Test"; public override string GroupName { get => CGroupName; protected set { } } public PrimoElementBack(IWFContainer container) : base(container) { InitClass(container); } public override ExecutionResult SimpleAction(ScriptingData sd) { return new ExecutionResult(); } } }

Рассмотрим детали данного класса подробнее:

Свойство GroupName отвечает за наименование группы, в которой будет содержаться ваш элемент в рамках палитры Элементы Primo Studio. Для создания вложенности ярусы дерева группы нужно разделять при помощи константы LTools.Common.UIElements. WFPublishedElementBase.TREE_SEPARATOR. Например, для формирования дерева:

Group1 ---- Group2 -------- Element1

Нужно создать имя группы вида “Group1” + WFPublishedElementBase.TREE_SEPARATOR + “Group2”.

Метод InitClass в теле конструктора обязателен и производит сервисные действия при создании компонента. Данный метод должен вызываться в конце, но перед инициализацией кастомных свойств элемента.

Метод SimpleAction является основным и вызывается роботом в качестве логики элемента. Таким образом, данный метод должен содержать основную бизнес-логику.

Класс ExecutionResult служит для оповещения робота об успешном либо неуспешном выполнении элемента, а также для формирования записи журнала. Например:

  • new ExecutionResult() { IsSuccess = true, SuccessMessage = "Completed successfully" } – оповещает об успешном завершении работы элемента и пишет в лог сообщение “Completed successfully”.

  • new ExecutionResult() { IsSuccess = false, ErrorMessage = "Execution error" } – информирует робота об ошибке.