Поддерживаемые типы данных и действия с выражениями в Workflow Manager 1.0
Диспетчер рабочих процессов 1.0 включает действия, которые делятся на две категории: действия для работы с выражениями и типами данных, а также действия для обмена сообщениями, связи и формирования логики приложений, использующих рабочие процессы.Первая категория чаще всего используется скрытно, так как выражения преобразуются в деревья действий, состоящие из действий из надежной контактной зоны.В этой статье приведен обзор этих действий.
Действия со строками
Действия с датами
Действия с DateTime
Действия с TimeSpan
Действия с числами
Действия с логическими значениями
Действия с GUID
Действия с коллекциями
ICollection
IDictionary
Действия с исключениями
Действия с URI
Действия со строками
Следующие действия поддерживают работу со строками.
Действия |
Описание |
Аргументы |
---|---|---|
CompareString |
Сравнивает две строки аналогично IComparable.Поддерживает регулярные выражения и может не учитывать регистр. Не поддерживает явную передачу языка и региональных параметров (все сравнения используют инвариантные значения) |
InArgument<string> Left InArgument<string> Right InArgument<bool> IgnoreCase OutArgument<int> Result |
ConcatString |
Соединяет набор строк. Все входные данные должны относиться к строковым, а не объектным типам. |
Collection<InArgument<string> Inputs OutArgument<bool> Result |
ContainsString |
Возвращает true, если строка входит в другую строку. При этом всегда учитывается регистр символов. |
InArgument<string> Input InArgument<string> SearchValue OutArgument<bool> Result |
EndsWithString |
Возвращает true, если строка заканчивается другой строкой.Поддерживается проверка без учета регистра. Не поддерживает явную передачу языка и региональных параметров (все сравнения используют инвариантные значения) |
InArgument<string> Left InArgument<string> Right InArgument<bool> IgnoreCase OutArgument<bool> Result |
FormatString |
Форматирует строку согласно набору аргументов.Аргументы могут относиться к любому типу (так как коллекция аргументов имеет тип InArgument). Не поддерживает явную передачу языка и региональных параметров (все сравнения используют инвариантные значения) Настраиваемые IFormatProvider не поддерживаются. |
InArgument<string> Format Collection<InArgument> Arguments |
IndexOfString |
Возвращает индекс вхождения строки в другую строку. Не поддерживает явную передачу языка и региональных параметров (все сравнения используют инвариантные значения) Флаг IgnoreCase для отмены учета регистра не поддерживается. |
InArgument<string> Input InArgument<string> SearchValue InArgument<int> StartIndex InArgument<int> Count OutArgument<int> Index |
IsEmptyString |
Возвращает true, если строка пуста или содержит только пробелы. |
InArgument<string> Input InArgument<bool> CheckForWhiteSpace OutArgument<bool> Result |
IsEqualString |
Возвращает true, если строки равны.Также поддерживает сравнение по регулярным выражениям и позволяет не учитывать регистр. Не поддерживает явную передачу языка и региональных параметров (все сравнения используют инвариантные значения) |
InArgument<string> Input InArgument<string> Pattern InArgument<string> Text InArgument<bool> IgnoreCase OutArgument<bool> Result |
ReplaceString |
Заменяет одну строку другой.Поддерживает регулярные выражения. |
InArgument<string> Input InArgument<string> Pattern InArgument<string> ExistingValue InArgument<string> Replacement OutArgument<string> Result |
SplitString |
Возвращает массив строк, созданный на основе переданной строки. |
InArgument<string> Input InArgument<string> Separator InArgument<StringSplitOptions> StringSplitOptions OutArgument<string[]> Result |
StartsWithString |
Возвращает true, если строка начинается с другой строки.Поддерживается проверка без учета регистра. Не поддерживает явную передачу языка и региональных параметров (все сравнения используют инвариантные значения). |
InArgument<string> Left InArgument<string> Right bool IgnoreCase OutArgument<bool> Result |
StringLength |
Возвращает длину строки. |
InArgument<string> Input OutArgument<int> Result |
Substring |
Возвращает подстроку переданной строки.Пользователь может задать начальный индекс и длину. |
InArgument<string> Input InArgument<int> StartIndex InArgument<int> Length OutArgument<string> Result |
ToLowerCase |
Преобразует переданную строку в нижний регистр. Не поддерживает явную передачу языка и региональных параметров (все сравнения используют инвариантные значения). |
InArgument<string> Input OutArgument<string> Result |
ToString |
Преобразует переданное значение в строку.Поддерживает передачу допустимой строки формата .NET и имя языка и региональных параметров для преобразования. Не поддерживает передачу IFormatProvider (можно использовать только имя языка и региональных параметров). |
InArgument Object InArgument<string> Format InArgument<string> CultureName OutArgument<string> Result |
ToUpperCase |
Преобразует переданную строку в верхний регистр. Не поддерживает явную передачу языка и региональных параметров (все сравнения используют инвариантные значения). |
InArgument<string> Input OutArgument<string> Result |
Trim |
Укорачивает строку. Не поддерживает передачу набора удаляемых символов. |
InArgument<string> Input OutArgument<string> Result |
Действия с датами
Следующие действия используются для работы с типами DateTime и TimeSpan.
Действия с DateTime
Действия с TimeSpan
Действия с DateTime
Действия |
Описание |
Аргументы |
---|---|---|
AddToDate |
Увеличивает переданную дату.Пользователь может добавить один фрагмент даты или несколько (например, день, минуту, месяц и так далее)либо timeSpan. |
InArgument<DateTime> Input InArgument<int> Days InArgument<int> Months InArgument<int> Hours InArgument<int> Minutes InArgument<int> Milliseconds InArgument<TimeSpan> TimeSpan OutArgument<DateTime> Result |
CompareDate |
Сравнивает две даты аналогично IComparable. |
InArgument<DateTime> Left InArgument<DateTime> Right OutArgument<int> Result |
ConvertTimeZone |
Преобразует дату из одного часового пояса в другой. |
InArgument<DateTime> Input InArgument<DateTime> SourceTimeZone InArgument<DateTime> DestinationTimeZone OutArgument<DateTime> Result |
CreateDate |
Создает новый экземпляр DateTime по переданным компонентам даты.Даты могут задаваться по местному времени или в формате UTC. Не поддерживает создание даты по числу тактов. |
InArgument<int> Day InArgument<int> Month InArgument<int> Year InArgument<int> Hour InArgument<int> Minute InArgument<int> Second InArgument<DateTimeKind> Kind OutArgument<DateTime> Result |
CurrentDate |
Возвращает текущую дату с сервера в формате UTC. |
OutArgument<Result> DateTime |
DateInRange |
Возвращает true, если дата находится между двумя другими датами. |
InArgument<DateTime> Input InArgument<DateTime> Start InArgument<DateTime> End OutArgument<bool> Result |
DelayUntil |
Ждет до указанной даты. |
InArgument<DateTime> Date |
GetDateField |
Возвращает поля экземпляра DateTime. |
InArgument<DateTime> Input DateField DateField OutArgument<int> Result |
GetDateFields |
Возвращает поле экземпляра DateTime. |
InArgument<DateTime> Input OutArgument<int> Year OutArgument<int> Month OutArgument<int> Day OutArgument<int> Hour OutArgument<int> Minute OutArgument<int> Second |
GetElapsedDays |
Возвращает число дней между двумя датами.Пользователь может исключить выходные и праздники. |
InArgument<DateTime> Start InArgument<DateTime> End InArgument<bool> ExcludeWeekends InArgument<IEnumerable<DateTime>> ExcludedDates OutArgument<int> Result |
GetElapsedTime |
Возвращает время между двумя датами. |
InArgument<DateTime> Start InArgument<DateTime> End OutArgument<TimeSpan> Result |
SubtractFromDate |
Вычитает временной период из даты.Пользователь может передать фрагмент даты (например, часы или дни) либо TimeSpan. |
InArgument<DateTime> Input InArgument<int> Days InArgument<int> Hours InArgument<int> Minutes InArgument<int> Seconds InArgument<TimeSpan> TimeSpan OutArgument<DateTime> Result |
ParseDate |
Анализирует строку как DateTime.Поддерживает передачу CultureName (язык и региональные параметры создаются внутри действия) и DateTimeStyle. |
InArgument<string> Value InArgument<DateTimeStyles> DateTimeStyles InArgument<string> CultureName |
Действия с TimeSpan
Действия |
Описание |
Подпись |
---|---|---|
CreateTimeSpan |
Создает экземпляр класса TimeSpan. |
InArgument<int> Days InArgument<int> Minutes InArgument<int> Hours InArgument<int> Seconds OutArgument<TimeSpan> Result |
Delay |
Ждет в течение указанного TimeSpan. |
InArgument<TimeSpan> Duration |
GetTimeSpanFields |
Возвращает разные поля TimeSpan. |
InArgument<TimeSpan> Input OutArgument<int> Days OutArgument<int> Hours OutArgument<int> Minutes OutArgument<int> Seconds OutArgument<int> TotalDays OutArgument<int> TotalHours OutArgument<int> TotalMinutes OutArgument<int> TotalSeconds |
Действия с числами
Следующие действия поддерживают работу с типами данных Int32 и Double.
Действия |
Описание |
Аргументы |
---|---|---|
Add<T> |
Складывает два числа. |
InArgument<T> Left InArgument<T> Right OutArgument<T> Result |
Divide<T> |
Делит одно число на другое. |
InArgument<T> Left InArgument<T> Right OutArgument<T> Result |
IsEqualNumber<T> |
Возвращает true, если числа равны. |
InArgument<T> Left InArgument<T> Right OutArgument<bool> Result |
IsGreaterThan<T> |
Возвращает true, если одно число больше другого. |
InArgument<T> Left InArgument<T> Right OutArgument<bool> Result |
IsGreaterThanOrEqual<T> |
Возвращает true, если одно число больше другого или равно ему. |
InArgument<T> Left InArgument<T> Right OutArgument<bool> Result |
IsLessThan<T> |
Возвращает true, если одно число меньше другого. |
InArgument<T> Left InArgument<T> Right OutArgument<bool> Result |
IsLessThanOrEqual<T> |
Возвращает true, если одно число меньше другого или равно ему. |
InArgument<T> Left InArgument<T> Right OutArgument<bool> Result |
Mod<T> |
Остаток от деления. |
InArgument<T> Left InArgument<T> Right OutArgument<bool> Result |
Multiply<T> |
Умножает два числа. |
InArgument<T> Left InArgument<T> Right OutArgument<bool> Result |
ParseNumber<T> |
Анализирует число. |
InArgument<string> Value InArgument<string> CultureName InArgument<NumberStyles> NumberStyles OutArgument<bool> Result |
Subtract<T> |
Вычитает одно число из другого. |
InArgument<T> Left InArgument<T> Right OutArgument<bool> Result |
Действия с логическими значениями
Следующие действия поддерживают работу с логическими значениями.
Действия |
Описание |
Аргументы |
---|---|---|
и |
Логическое "и". |
InArgument<bool> Left InArgument<bool> Right InArgument<bool> Result |
IsEqualBoolean |
Логическое сравнение двух значений на равенство. |
InArgument<bool> Left InArgument<bool> Right InArgument<bool> Result |
IsFalse |
Возвращает true, если значение ложно. |
InArgument<bool> Input InArgument<bool> Result |
IsTrue |
Возвращает true, если значение истинно. |
InArgument<bool> Input InArgument<bool> Result |
Не |
Отрицание. |
InArgument<bool> Input InArgument<bool> Result |
— или — |
Логическое "или". |
InArgument<bool> Left InArgument<bool> Right InArgument<bool> Result |
ParseBoolean |
Анализирует логическое значение. |
InArgument<string> Input InArgument<bool> Result |
Действия с GUID
Следующие действия поддерживают работу с GUID.
Действия |
Описание |
Аргументы |
---|---|---|
IsEmptyGuid |
Возвращает true, если GUID пуст. |
InArgument<Guid> Value OutArgument<bool> Result |
IsEqualGuid |
Возвращает true, если GUID равны. |
InArgument<Guid> Left InArgument<Guid> Right OutArgument<bool> Result |
NewGuid |
Создает и возвращает новый GUID. |
OutArgument<Guid> Result |
ParseGuid |
Анализирует строку как GUID |
InArgument<string> Value OutArgument<Guid> Result |
Действия с коллекциями
Следующие действия поддерживают работу с коллекциями.Действия с ICollection полезны для работы с коллекциями элементов, поддерживающих индексацию, а действия с IDictionary полезны для работы с коллекциями из пар "ключ-значение".
ICollection
IDictionary
ICollection
Действия |
Описание |
Аргументы |
---|---|---|
AddToCollection<T> |
Добавляет элемент в коллекцию (из System.Activities). |
InArgument<ICollection<T>> Collection InArgument<T> Item |
RemoveFromCollection<T> |
Удаляет элемент из коллекции (из System.Activities). |
InArgument<ICollection<T>> Collection InArgument<T> Item OutArgument<bool> Result |
ExistsInCollection<T> |
Возвращает true, если элемент есть в коллекции (из System.Activities). |
InArgument<ICollection<T>> Collection InArgument<T> Item OutArgument<bool> Result |
ClearCollection<T> |
Очищает коллекцию (из System.Activities). |
InArgument<ICollection<T>> Collection |
BuildCollection<T> |
Создает и инициализирует коллекцию. |
InArgument<IEnumerable<T>> Collection ICollection<InArgument<T>> ValuesOutArgument<Collection<T>> Result |
CountCollection<T> |
Считает элементы в коллекции. |
InArgument<ICollection<T>> Collection OutArgument<int> Result |
GetItemFromCollection<T> |
Получает элемент из коллекции. |
InArgument<ICollection<T>> Collection InArgument<int> Index OutArgument<T> Result |
IDictionary
Действия |
Описание |
Аргументы |
---|---|---|
AddToDictionary<K,V> |
Добавляет элемент в коллекцию (из System.Activities). |
InArgument<IDictionary<K,V>> Dictionary InArgument<K> Key InArgument<V> Value |
RemoveFromDictionary<T> |
Удаляет элемент из словаря (из System.Activities). |
InArgument<IDictionary<K,V>> Dictionary InArgument<K> Key |
DictionaryContains<K,V> |
Возвращает true, если элемент есть в словаре (из System.Activities). |
InArgument<IDictionary<K,V>> Dictionary InArgument<K> Key InArgument<V> Value OutArgument<bool> Result |
ClearDictionary<K,V> |
Очищает коллекцию (из System.Activities). |
InArgument<IDictionary<K,V>> Dictionary |
BuildDictionary<K,V> |
Создает и инициализирует коллекцию. |
InArgument<IDictionary<K,V>> Dictionary IDictionary<TKey, InArgument<TValue>> Values OutArgument<IDictionary<K,V>> Result |
CountDictionary<K,V> |
Считает элементы в коллекции. |
InArgument<IDictionary<K,V>> Dictionary OutArgument<int> Result |
SplitKeyValuePair<K,V> |
Делит KeyValuePair на ключ и значение. |
InArgument<KeyValuePair<K,V>> Dictionary OutArgument<K> Key OutArgument<V> Value |
GetDictionaryValue<K,V> |
Получает значение из словаря. |
InArgument<IDictionary<K,V>> Dictionary InArgument<K> Key OutArgument<V> Result |
Действия с исключениями
Следующие действия поддерживают обработку исключений.
Действия |
Описание |
Аргументы |
---|---|---|
TryCatch |
Обработка исключений в рабочих процессах. Это действие из WF4. |
|
Throw |
Порождает исключение. Это действие из WF4. |
InArgument<Exception> Exception |
Rethrow |
Повторно порождает исключение (аналог throw без аргументов в C#). Это действие из WF4. |
|
CreateException<T> |
Создает экземпляр исключения. |
InArgument<string> Message InArgument<Exception> InnerException |
Действия с URI
Тип данных Uri поддерживается надежным списком и может использоваться в других действиях, принимающих Uri как параметр.Его можно создать с помощью действия New<Uri> или CreateUriFromDynamicValue.