Синхронный элемент
Базовый вид синхронного элемента:
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" }– информирует робота об ошибке.