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

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

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" } – информирует робота об ошибке.

Last updated