Кастомные свойства
Параметры каждого элемента Primo RPA Studio отображаются в панели «Свойства». Чтобы определить кастомные свойства элемента, выполните следующие действия:
1. Создайте свойство.
Пример:
private string prop1;
[LTools.Common.Model.Serialization.StoringProperty]
[LTools.Common.Model.Studio.ValidateReturnScript(DataType = typeof(string))]
[System.ComponentModel.Category("SDK"), System.ComponentModel.DisplayName("My Prop 1")]
public string Prop1
{
get { return this.prop1; }
set { this.prop1 = value; this.InvokePropertyChanged(this, "Prop1"); }
}
В данном примере мы создаем свойство Prop1 с атрибутами:
- StoringProperty - устанавливает, что значение свойства будет сохранено в файле процесса.
- ValidateReturnScript - необязательный атрибут, служит для проверки синтаксиса скрипта свойства. В качестве значения выступает тип данных, который может быть присвоен данному свойству. В примере это строка. Если при создании сценария пользователь введет значение с типом, отличным от строки, Студия отобразит ему ошибку. Если этот атрибут отсутствует, то Студия не будет проверять тип данных свойства.
- Category - имя группы, в которую нужно поместить наше свойство в панели свойств Студии.
- DisplayName - имя свойства, отображаемое в панели свойств Студии.
2. Добавьте созданные свойства в панель свойств.
Добавление производится в конструкторе до вызова метода InitClass.
Пример:
sdkProperties = new List<LTools.Common.Helpers.WFHelper.PropertiesItem>()
{
new LTools.Common.Helpers.WFHelper.PropertiesItem()
{
PropName = "Prop1",
PropertyType = LTools.Common.Helpers.WFHelper.PropertiesItem.PropertyTypes.SCRIPT,
EditorType = ScriptEditorTypes.NONE,
DataType = typeof(string), ToolTip = "SDK Tooltip1", IsReadOnly = false
}
};
Свойство имеет следующие параметры:
- PropName – имя свойства.
- PropertyType – тип редактора свойства. Доступны варианты SCRIPT – редактор скрипта, VARIABLE – выбор переменной, OBJECT – автоматический (например для перечислений), CUSTOM – пользовательский (на данный момент не реализован в рамках SDK).
- DataType – тип данных свойства.
- ToolTip – текст всплывающей подсказки.
- IsReadOnly – признак только для чтения
3. Задайте свойствам значения по умолчанию (не обязательно).
Пример:
this.Prop1 = this.IsNoCode("Prop1") ? "test text" : "\"test text\"";
В данном примере свойству будет присвоено значение test text
, если включен режим No-code, либо значение “test text”
при выключенном No-code.
Значение по умолчанию задается после вызова метода InitClass.
Пример:
public PrimoElementBack(IWFContainer container) : base(container)
{
sdkComponentName = "My sync element";
sdkComponentHelp = "This is my first sync element";
sdkComponentIcon = "pack://application:,,/Primo.SDKSample;component/Images/sample.png";
sdkProperties = new List<LTools.Common.Helpers.WFHelper.PropertiesItem>()
{
new LTools.Common.Helpers.WFHelper.PropertiesItem()
{
PropName = "Prop1",
PropertyType = LTools.Common.Helpers.WFHelper.PropertiesItem.PropertyTypes.SCRIPT,
EditorType = ScriptEditorTypes.NONE,
DataType = typeof(string), ToolTip = "SDK Tooltip1", IsReadOnly = false
}
};
InitClass(container);
this.Prop1 = this.IsNoCode("Prop1") ? "test text" : "\"test text\"";
}
Получение значения кастомного свойства
При выполнении бизнес-логики безусловно необходимо получить значение, содержащееся в свойстве. Для этой цели служит синтаксис:
string p1 = GetPropertyValue<string>(this.Prop1, "Prop1", sd);
Где первый параметр – это само свойство, а второй – имя свойства.
Например, элемент, выводящий в окно сообщение с заданным текстом, будет иметь следующий синтаксис:
public override ExecutionResult SimpleAction(ScriptingData sd)
{
try
{
string p1 = GetPropertyValue<string>(this.Prop1, "Prop1", sd);
System.Windows.MessageBox.Show(p1);
return new ExecutionResult() { SuccessMessage = "Done" };
}
catch (Exception ex)
{
return new ExecutionResult() { IsSuccess = false, ErrorMessage = ex?.Message };
}
}