Activities define what tasks are executed in a Process. Activities are always part of a Process. Activities cover a wide range of possible tasks which can be split into two groups:
- Tasks requiring interaction with a human operator like scanning a bar code or filling out a form. These task are commonly done by Form Activities.
- Task that are done by the Novunex Platform like generating reports or sending sending emails. These tasks are done by all Non-Form Activities.
Entry Points and Outcomes
Each Activity has Entry Points and Outcomes to connect it with other Activities. Connections create a directed link from Outcomes to Entry Points. Entry Points are indicated by filled circles and Outcomes by rings. Entry Points have no configurations and simply provide a target for Connections. While it is possible that an any Activity can have multiple incoming Connections, this is only encouraged for Wait Activities, since Wait Activities ensure the proper synchronization of multiple incoming Connections. All other Activities should only have one incoming Connection.
Activities can have multiple Outcomes but each Outcome can only be the origin of one Connection. Hence, one Outcome per outgoing connection must be created. Using multiple Outcomes is the intended way to parallel or to branch a Process. The Outcomes are identified by their name. How Outcomes with different names are handled depends on the Activities and is described in their descriptions below.
Each Outcome has a script that determines if the Connection origination at the Outcome should be followed or not. When you create a new Outcome, a default script is created, ensuring the that the attached connection is always followed. This script can be edited for each Outcome individually and needs to be written as a valid JavaScript function. When a script is entered, the color of the Outcome changes to a darker tone indicating that a script is active for a specific Output. The script must return true
when the Connection attached to the Outcome should be followed and false
otherwise.
- At least one script must return
true
so that the Instance can continue. - Multiple scripts can return
true
, then the Instance will continue in parallel. - If all scripts return
false
, then the Instance will be ended by entering theclosed
-state. This is not influenced by the Continue on error setting of the Activity, since the Outcomes are evaluated separately after the Activity has already finished.
The script of an Outcome can access Variables, Start Parameters, Subscript Settings and Configurations available in the Process Context. The script is evaluated after the Activity is finished, but before the Connections are followed. This means, if the Activity modified the Variables, the script will see the modified versions and not the originals.
While the script of Outcomes are powerful and can be used to implement branches, it is preferred to use a dedicated Condition Action for branches. Using a Condition Action makes the branch easier to spot and therefore helps with the understanding of how a Process is organized.
Access Process Context Information
Variables, Start Parameters and Subscription Settings can be read but not changed:
context.Entities["MyEntity"]
- Access the Entity Variable with the nameMyEntity
context.Entities["MyEntity"].MyAttributeName
- Access the AttributeMyAttributeName
of the Entity VariableMyEntity
contextParameters["MyContext"].MyContext
- Access the Context Variable with the nameMyContext
contextParameters["MyContext"].MyContext.MyAttributeName
- Access the AttributeMyAttributeName
of the Context VariableMyEntity
context.GlobalSettings.SettingList["SubscriptionSettingName"]
- Access the Subscription Settings with the nameSubscriptionSettingName
contextParameters["StartParameterName"].StartParameterName
- Access the Start Parameter with the nameStartParameterName
context.Activity
- Access the properties of the current Activity:context.Activity.Id
- ID of the Activitycontext.Activity.Name
- Name of the Activitycontext.Activity.TimeoutSeconds
- Once this time is elapsed, the Activity will be closed and the Process continued. The timeout is deactivated by setting it to zero seconds.context.Activity.ContinueOnError
- If set totrue
, the Instance will continue even if this Activity failed. If set tofalse
, this Instance will fail if the Activity fails.
context.ProcessInstance
- Access the property of the current Instance:context.ProcessInstance.Id
- ID of the Instancecontext.ProcessInstance.Name
- Name of the Instancecontext.ProcessInstance.TaskDisplayInformation
- Holds the task description for the current Activity. The task description is configured in the Additional text for task list property of the Activity.context.ProcessInstance.ParentProcessInstanceId
- ID of the Instance that started this Instance, ornull
if this Instance has no parent Instance and was started by a User.context.ProcessInstance.FromParentActivityId
- ID of the Activity that started this Instance, ornull
if this Instance has no parent Activity.context.ProcessInstance.LastOutcome
- Name of the last Outcome this Instance passed thoughcontext.ProcessInstance.Status
- Current state encoded as an Integer value:- 1 -
Started
- 2 -
In Progress
- 3 -
Closed
- 4 -
Canceled
- 5 -
Faulted
- 1 -
context.ProcessInstance.IsDebugMode
- Indicates if this Instance is a debug Instance (true
) or not (false
)
Process Context Expressions
Process Context Expressions allow Activities to access data in Variables, Start Parameters and Subscription Settings. Furthermore, Process Context Expressions can calculate new values from existing values in Variables, Start Parameters and Subscription Settings. The Process Context Expressions are executed on the Novunex Platform. The execution is done for each Instance separately, meaning that the result can be different for each Instance depending on the values of the Variables, Start Parameters and Subscription Settings of that particular Instance.
Process Context Expressions are used in the Activity config of various Activities. Every field in the Activity config that can be set by a Process Context Expressions is marked by three dots on the right end. By clicking on these three dots, you open an Expression Editor.
Syntax and Functions
The syntax describes how to start Process Context Expressions with an equal sing, how to do basic math and logical operations and how to access data data in Variables, Start Parameters and Subscription Settings.
Start Process Context Expressions with an equal sign
=
. This equal sign can be omitted if, and only if, the expression contains only one variable. The omission is optional, meaning that you can just start all Process Context Expression with an equal sign and it works in any case.Literals
- Boolean -
true
andfalse
- Numerical:
12
- Integer numbers9.87
,.87
,9.87e4
,9e4
,9e+4
,9e-4
,.9e-4
- Decimal numbers
- String - String literals are enclosed in apostrophes, e.g.,
'Hello String'
- Time and Dates - The time and dates have to be entered as a String in the format
'yyyy-MM-dd hh:mm:ss'
following the Microsoft date and time format strings. If you want to enter values for a different time zone, you have to use theConvertToTimeZone(dateTime, newTimeZoneName )
to convert it. - JSON has to be entered as a String like
'{"Name": "MyName", "Value": 4}'
when the Process Context Expression starts with an equal sign. Hence, the full text in this example is='{"Name": "MyName", "Value": 4}'
. If you omit the equal sign at the start, also the apostrophes have to be omitted and the full text in this example becomes{"Name": "MyName", "Value": 4}
.
Arithmetic and Logical Operators
Operators allow you to do basic calculations and evaluate logical expressions:
- Logical Operators:
==
- Compares for equality!=
,<>
- Compares for inequality!
,not
- Logical NOT&&
,and
- Logical AND||
,or
- Logical OR<
- Smaller<=
- Smaller or equal>
- Greater>=
- Grater or equal
- Mathematical Operators:
+
- Addition-
- Subtraction*
- Multiplication/
- Division%
- Modulo, i.e., remainder of a division
- Bitwise Operators:
~
- bitwise NOT&
- Bitwise AND|
- Bitwise OR^
- Bitwise XOR<<
- Left shift>>
- Right shift
The round brackets (
and )
can be used to groups and thus prioritize of expressions. The operators have the following priority, ordered by highest to lowest:
- Primary, i.e., grouping by brackets
(
and)
- Unary -
!
,not
,~
, and the minus-
as sign in front of a number - Multiplicative -
*
,/
,%
- Additive -
-
,+
- Relational -
-
,=
,==
,!=
,<>
,<
,<=
,>
,>=
- Bitwise -
&
,|
,^
,<<
,>>
- logical -
and
,&&
,or
,||
If two operators of the same priority are used, then the priority is of the left one is higher than the right one.
Entity Variables and Context Variables
The values of Entity and Context Variables and their attributes are accessed by a pound sign #
and their name enclosed in square brackets []
:
Start Parameters
The values of Start Parameters can be read by entering a single pound sign #
followed by their name in square brackets []
.
#[MyStartParam]
- Example to access the value of theMyStartParam
Start Parameter.
Subscription Settings
The values of Subscription Settings can be read by entering two pound signs ##
followed by their name in square brackets []
. All Subscription Settings need to be managed via the Subscription Settings menu.
##[MySubscSetting]
- Access the value of theMySubscSetting
Subscription Setting.
Global Variables
The values of Global Variables can be read by entering two pound signs ##
followed by their name in square brackets []
. The Global Variables are read only and cannot be written. The following Global Variables can be accessed:
##[Context]
- Properties of the current Context:##[Context.Process]
- The Process itself##[Context.Process.Id]
- ID of the Process##[Context.Process.Name]
- Name of the Process##[Context.Process.Description]
- Descriptive text##[Context.Process.Guid]
- Globally unique identifier##[Context.Process.Category]
- Name of the category this Process is assigned to##[Context.Process.Version]
- Version number##[Context.Process.CanStartManually]
- Indicates if this Process can be started by a User (true
) or not (false
)##[Context.Process.IsSingelton]
- Indicates if only one Instance can be in stateRunning
(true
) or if multiple Instances can be in stateRunning
(false
)##[Context.Process.DeleteInstanceAfterClosing]
- Indicates if the Instance is deleted once its finished its execution (true
) or not (false
). This corresponds to the Disable process history property of the Process.##[Context.Process.RunAsync]
- Indicates if the Process starts in an asynchronous, non-blocking way (true
) or in an synchronous and blocking way (false
)##[Context.Process.IsProcessStep]
- Deprecated - do not use##[Context.Process.Icon]
- Font Awesome name of the icon assigned to this Process
##[Context.ProcessInstance]
- Current Instance##[Context.ProcessInstance.Id]
- ID of the Instance##[Context.ProcessInstance.Name]
- Name of the Instance##[Context.ProcessInstance.TaskDisplayInformation]
- Hold the task description for the current Activity. The task description is configured in the Additional text for task list property of the Activity.##[Context.ProcessInstance.ParentProcessInstanceId]
- ID of the Instance that started this Instance, ornull
if this Instance has no parent Instance and was started by a User.##[Context.ProcessInstance.FromParentActivityId]
- ID of the Activity that started this Instance, ornull
if this Instance has no parent Activity.##[Context.ProcessInstance.LastOutcome]
- Name of the last Outcome this Instance passed though##[Context.ProcessInstance.Status]
- Current state encoded as an Integer value:- 1 -
Started
- 2 -
In Progress
- 3 -
Closed
- 4 -
Canceled
- 5 -
Faulted
- 1 -
##[Context.ProcessInstance.IsDebugMode]
- Indicates if this Instance is a debug Instance (true
) or not (false
)
##[Context.Activity]
- Current Activity##[Context.Activity.Id]
- ID of the Activity##[Context.Activity.Name]
- Name of the Activity##[Context.Activity.TimeoutSeconds]
- Once this time is elapsed, the Activity will be closed and the Process continued. The timeout is deactivated by setting it to zero seconds.##[Context.Activity.ContinueOnError]
- If set totrue
, the Instance will continue even if this Activity failed. If set tofalse
, this Instance will fail if the Activity fails.
##[Context.FromActivity]
- Previous Activity in the Process. If the current Activity has more than one Outcomes, the Activity connected to the first Outcome is delivered.##[Context.FromActivity.Id]
- ID of the Activity##[Context.FromActivity.Name]
- Name of the Activity##[Context.FromActivity.TimeoutSeconds]
- Once this time is elapsed, the Activity will be closed and the Process continued. The timeout is deactivated by setting it to zero seconds.##[Context.FromActivity.ContinueOnError]
- If set totrue
, the Instance will continue even if this Activity failed. If set tofalse
, this Instance will fail if the Activity fails.
##[Context.ToActivity]
- Next Activity in the Process. If there are multiple Activities, than this expression delivers the first Activity.##[Context.ToActivity.Id]
- ID of the Activity##[Context.ToActivity.Name]
- Name of the Activity##[Context.ToActivity.TimeoutSeconds]
- Once this time is elapsed, the Activity will be closed and the Process continued. The timeout is deactivated by setting it to zero seconds.##[Context.ToActivity.ContinueOnError]
- If set totrue
, the Instance will continue even if this Activity failed. If set tofalse
, this Instance will fail if the Activity fails.
##[Context.NextTaskUrl]
- The URL of the next task as HTML tag, i.e., the URL encapsulated in an<a href="...">
tag.##[Context.NextTaskUrl.Url]
delivers the URL directly without the HTML tag.##[Context.PreviousTaskUrl]
- The URL of the previous task as HTML tag, i.e., the URL encapsulated in an<a href="...">
tag.##[Context.PreviousTaskUrl.Url]
delivers the URL directly without the HTML tag.
##[CurrentUser]
- The currently active User can be a User interacting with the Activities or the Novunex Platform Engine user as described here.##[CurrentUser.Id]
- Unique ID of the User##[CurrentUser.UserName]
- Email address representing the user name##[CurrentUser.FirstName]
- First name of the User##[CurrentUser.LastName]
- Last name of the User##[CurrentUser.JobTitle]
- Job title of the User##[CurrentUser.Department]
- Name of the department the User belongs to##[CurrentUser.Location]
- The location information of the User##[CurrentUser.Division]
- Deprecated - do not use##[CurrentUser.ProfileImage]
- URL of the User’s profile image##[CurrentUser.IsoLanguageCode]
- Language information of the User##[CurrentUser.TimeZone]
- Time zone the Users works in. The time zone is specified as a TZ database name##[CurrentUser.UserGroups]
- Array of all User Groups this User belongs to##[CurrentUser.UserGroups.Id]
- Array of IDs identifying the User Groups this User belongs to##[CurrentUser.UserGroups.Name]
- Array of names identifying the User Groups this User belongs to
##[CurrentSubscription.Id]
- ID of the current Subscription##[Now]
- Current date and time##[Today]
- Current date
Special characters
When working with Strings, you might need to escape characters or use special control characters:
\\
- Escape character\n
- Line feed\r
- Carriage return\t
- Tab
Functions
Here you find a list of all functions that you can use in Process Context Expressions.
Mathematical
Functions for arithmetical operations with Integers and Decimals:
Abs(number)
- Absolute value ofnumber
Acos(number)
- Returns the angle in radiant whose cosine isnumber
Asin(number)
- Returns the angle in radiant whose sine isnumber
Atan(number)
- Returns the angle in radiant whose tangent isnumer
Ceiling(number)
- Smallest integer greater than or equal tonumber
Cos(number)
- Cosine ofnumber
,number
is expected in radiant.Exp(number)
- Raisee
to the power ofnumber
Floor(number)
- Largest integer less than or equal tonumber
IEEERemainder(numberA, numberB)
- Remainder ofnumberA
overnumberB
Log(number, base)
- Logarithm in basebase
ofnumber
Log10(number)
- Base 10 logarithm ofnumber
Max(numberA, numberB)
- Get the larger ofnumberA
andnumberB
Min(numberA, numberB)
- Get the smaller ofnumberA
andnumberB
Pow(number, power)
- Raisenumber
topower
Round(number, decimal)
- Roundnumber
todecimal
placesSign(number)
- Return-1
, ifnumber
is negative and1
, ifnumber
is positiveSin(number)
- Sine ofnumber
,number
is expected in radiant.Sqrt(number)
- Square root ofnumber
Tan(number)
- Tangent ofnumber
,number
is expected in radiant.Trunc(number)
- Remove any fractional digits fromdecimal
Date and Time
Functions for working with date and time values:
AddSeconds(datetime, number)
- Addseconds
todatetime
. You can use a negative value inseconds
to make a subtraction.AddMinutes(datetime, number)
- Addminutes
todatetime
. You can use a negative value inminutes
to make a subtraction.AddHours(datetime, number)
- Addhours
todatetime
. You can use a negative value inhours
to make a subtraction.AddDays(datetime, number)
- Adddays
todatetime
. You can use a negative value indays
to make a subtraction.AddBusinessDays(datetime, number)
- Add thenumber
of business days todatetime
. You can use a negative value innumber
to make a subtraction.AddMonths(datetime, number)
- Add thenumber
of months todatetime
. You can use a negative value innumber
to make a subtraction.ConvertToTimeZone(dateTime, newTimeZoneName )
- ConvertsdateTime
from its current timezone into the timezone given asnewTimeZoneName
. ThenewTimeZoneName
has to be specified as a TZ database name likeAmerica/New_York
,Europe/Vienna
orAsia/Tokyo
.GetBusinessDays(datetimeA, datetimeB)
- Get the number of business days between the datesdatetimeA
anddatetimeB
GetBusinessDaysOfMonth(year, month)
- Get the number business days formonth
inyear
Year(datetime)
- Get the year ofdatetime
Month(datetime)
- Get the month ofdatetime
Day(datetime)
- Get the day ofdatetime
Type Conversion
Functions to convert between various data types:
Bool(string)
,ToBool(string)
- Caststring
to booleanDate(string)
,ToDate(string)
- Caststring
to dateDateTime(string)
- Caststring
to date and timeDecimal(string)
,ToDecimal(string)
- Caststring
to decimal numberInt(string)
,ToInt(string)
- Caststring
to integer numberString(value)
,ToString(string)
- Castvalue
to string
String functions
Functions to manipulate and work with strings:
Format(template, string)
- Insertstring
intotemplate
on all positions where{0}
is found intemplate
.IsNullOrEmpty(string)
- Check ifstring
isnull
or emptyLower(string)
,ToLower(string)
,ToLowerCase(string)
- Convertstring
to lower caseReplace(string, find, replace)
- Replace all occurrences offind
instring
byreplace
.Upper(string)
,ToUpper(string)
,ToUpperCase(string)
- Convertstring
to upper case
Array functions
How to work with and manipulate Arrays:
- Arrays in Entities Variable are automatically initialized
- Assigning a value to an Array in a Set Activity will append the assigned value to the Array
Clear()
- Empties an existing Array that is stored in a Variable or an Attribute of a Variable.Clear
can only be used in Set Activities' Add or set variables section. Here, Key must be set to a Context Variable or an Attribute of an Variable containing an Array. The Value has to be=Clear()
.ElementAt(array, number)
- Get element at positionnumber
inarray
. If anumber
is given, that is bigger than the size of the Array,null
is returned. The array positions start at zero.Index(array, value)
,IndexOf(array, value)
- Get position of a element equalsvalue
inarray
. If there are multiple matches, the first match is returned. If not matches are found,null
is returned.ReplaceList(findValue, replaceValue)
- Replaces all entries matchingfindValue
withreplaceValue
in an Array that is stored in a Context Variable or an Attribute of a Variable.ReplaceList
can only be used in Set Activities' Add or set variables section. Here, Key must be set to a Context Variable or an Attribute of an Variable containing an Array. The Value has to be=ReplaceList(findValue, replaceValue)
, wherefindValue
andreplaceValue
can be entered directly or can by Variables.
JSON functions
The extractions of parts of a JSON string is explained with this JSON example:
{
"Name":"MyName",
"Info":{
"Another.Name": "OtherName",
"List":[
1,
2
],
"Object":{
"aValue": 1,
"aString": "first"
},
"ObjectArray":[
{
"aValue": 2,
"aString": "second"
},
{
"aValue": 3,
"aString": "third"
}
]
}
}
Two functions are provided to extracts parts from a JSON string. Both of them use the JSONPath syntax.
-
SelectToken(jsonString, pathString)
- Extracts the JSON element identified bypathString
out of thejsonString
. IfjsonString
equals the above example, the followingpathString
examples provide valid extraction results:.
or[]
- Access the child of a JSON elementName
extractsMyName
Info['Another.Name']
extractsOtherName
, i.e., to be used if there are periods in the JSON element’s name.Info.List
extract the JSON list[ 1, 2 ]
Info.List[0]
extract1
, i.e, the first element from the listInfo.Object
extracts the JSON object{ "aValue": 1, "aString": "first" }
Info.Object.aString
extractsfirst
-
SelectTokens( jsonString, jsonPath)
- Extracts the JSON element or elements identified byjsonPath
out of thejsonString
.SelectTokens( jsonString, jsonPath)
always returns an Array, but is otherwise identical toSelectToken(jsonString, pathString)
.jsonPath
has to follow the JSONPath notation. The following notation is frequently used:$
- Root of the JSON string, i.e., the highest point in the JSON hierarchy.
or[]
- Access the child of a JSON element..
- Recursive run through all elements below*
- Wildcard, i.e., all elements regardless of their names@
- Current element?( ... )
- Filter[start:end:step]
- Iterates through an Array fromstart
toend
with the givenstep
If
jsonString
equals the above example, the followingjsonPath
examples proved valid extraction results:$..ObjectArray[?(@.aValue==2)]
extract the JSON object{ "aValue": 2, "aString": "second" }
$..ObjectArray[?(@.aString!='second')]
extract the JSON object{ "aValue": 3, "aString": "third" }
Be aware that when you enter the jsonString
examples, you have to use the correct String literals:
Info.Object
is entered as =SelectToken(#[MyVar.JsonAttribute], 'Info.Object')
Info['Another.Name']
is entered as =SelectToken(#[MyVar.JsonAttribute], 'Info[\'Another.Name\']')
, note the escaped inner inverted commasInfo.List[0]
is entered as =SelectToken(#[MyVar.JsonAttribute], 'Info.List[0]')
$..ObjectArray[?(@.aString!='second')]
is entered as =SelectTokens(#[MyVar.JsonAttribute], '$..ObjectArray[?(@.aString!=\'second\')]' )
, note the escaped inner inverted commas
Utility functions
Additional utility functions:
CalculateOwner(group, func)
- Selects a used from the specified user group. Asgroup
you can specify the group ID or the name of the group.func
is a string, that determiners how the user is selected:random
- Randomly selects any user from the groupsfewest
- Selects the user with the lowest number of open tasks
FindReference(entityType, attribute, value)
- Get an Entity of typeentityType
whereattribute
equalsvalue
. If there are multiple matches, the first match is returned. If not matches are found,null
is returned.Guid()
- Generate a global unique identifierif( expression, trueValue, falseValue)
- Ifexpression
evaluates totrue
, thentrueValue
is returned; ifexpression
evaluates tofalse
, thenfalseValue
is returned.in( value, option1, option2, option3 )
- Returnstrue
, ifvalue
is equal to one of the options. You can specify as many options as you like.StrongPassword(length)
- Generate random password with the length given bylength
SQL and SQL Queries
Some Activities allow you to use Structured Query Language (SQL) to interact query data from the Database. For example, SQL can be used to load data from the Database in the Set Activity or to select data for deletion by the Delete Activity. To use SQL in any Activity, you have to provide a validated SELECT
query that can be executed by the Microsoft SQL Server hosting the database.
The usage of SQL is not strictly required in Activities, i.e., everything you can do with SQL in Activities can also be done in another way without SQL. However, the use of SQL queries can often reduce the number of required Activities in Processes.
You will only need SELECT
queries. Even when you want to delete data, you select the data with a SELECT
queries, and the Delete Activity will then select this data. You can use all features of the Microsoft SQL Server SELECT
syntax like JOIN
, ORDER BY
, LIMIT
, etc. The SELECT
queries used in the Novunex Platform have several extensions of the Microsoft SQL Server queries:
- Entity Type can be used as table names when putting them in square brackets like
[MyEntityType]
.- Attributes of an Entity Type can be used like column names
- If the Track Changes setting of an Entity Type is set to Yes, the Attribute modification history of each Entity is stored in a table with the name of the Entity Type and the suffix
_History
. For example the history of the Attributes of Entities with the Entity Type[MyEntityType]
can be accessed with[MyEntityType_History]
.
- Core Tables can also be used like table names when putting them in square brackets like
[File]
- Vales passed to the SQL
SELECT
queries as parameters start with a leading@
sign followed by an alphanumeric string., i.g.,@MyParameter
,@LowerBound
,@SerialNumber
. The Novunex Platform does not check the parameters. This means if you want to handle special cases like empty parameters, you have to write the SQLSELECT
query accordingly.
Here is an example SQL SELECT
query that retrieves the two Attributes FirstAttribute
and SecondAttribute
of the Entity Type [MyEnity]
for all Entities where the Attributes ThirdAttribute
equals the value of MyParameter
SELECT FirstAttribute, SecondAttribute FROM [MyEnity] WHERE ThirdAttribute = @MyParameter
The Novunex Platform provides you will the following SQL functions in addition to the functions the Microsoft SQL Server already has.
ConvertDateTime( userId, DateTime)
- Converts a UTCDateTime
into the local DateTime for the user specified byuserId
.
Activities
The following list contains all Activities that are available in the Process Editor.
Icon | Name | Description |
---|---|---|
Start | The Start Activity marks the beginning of a Process. [Learn more] | |
End | The End Activity is the final stage of each Process. [Learn more] | |
Junction | Junctions are way points to manage the layout of connections between Activities. [Learn more] | |
Form | Form Activities present input Forms to Users for entering, modifying, inspecting or signing data. [Learn more] | |
The Email Activity sends emails to one or more recipients. [Learn more] | ||
Set | The Set Activity is used to manipulate Entity and Context Variables. [Learn more] | |
Load | The Load Activity loads Entities from the Database into Entity Variables. [Learn more] | |
Create | The Create Activity creates new Entity Variables and initializes their Attributes. [Learn more] | |
Update | The Update Activity manipulates Entities directly in the Database. [Learn more] | |
Delete | The Delete Activity deletes Entities in the Database. [Learn more] | |
Clone | This Activity clones Entity Variables and the underlying data in the Database. [Learn more] | |
Report | The Report Activity executes a Data Query and converts the results into a file. [Learn more] | |
File | The File Activity fetches one or more files via the HTTP or HTTPS protocol and stores them on the Novunex Platform. [Learn more] | |
Serial Number | SerialNumber creates a new Serial Number and stores it in an Attribute of an Existing Variable. [Learn more] | |
Connect | Connect Activities create and synchronously start a child Instance. [Learn more] | |
Condition | The Condition Activity create conditional branches in Processes. [Learn more] | |
Loop | The Loop Activity iterates though the elements in an array. [Learn more] | |
Execute | The Execute Activity executes a script written in JavaScript. [Learn more] | |
Start Process | Start Process asynchronously starts one or more new Instances. [Learn more] | |
End Process | The End Process Activity terminates the execution of an Instance. [Learn more] | |
Merge | Merges multiple files that are on the Novunex platform into one single PDF file. [Learn more] | |
Http | Http executes a HTTPS Request to an HTTPS server and maps the results to Variables. [Learn more] | |
Parse | The Parse Activity creates Entity Variables from the content of CSV or JSON files. [Learn more] | |
Administration | The Administration Activity allows you to create an manipulate Users and User Groups. [Learn more] |