App Builder

Index of ContentsApp actions

App Builder allow you to control the behaviour of your apps using actions. App Builder include lots of actions for various purposes, for example, you can use an action to show an alert box message to the user, another action to show whatever view of your app, one action to retrieve data from an external resource, another action to post data to your app server, another more to set an app variable, etc., etc.

App Builder actions for apps

All App Builder actions together conform what we can name the App Builder Script language. As you know, App Builder produce HTML5 hybrid apps based in the JavaScript language. You can use arbitrary JavaScript in your apps, however, probably you can make whatever you wanted using only App Builder actions, in a visual way, because every action have their appropiate action's editor.

Below you can view the App Builder actions reference. Remember this help file are linked to App Builder in the sense that every action's editor help button redirect here in the right action reference.

App

Events

Views

Tools

Variables

Strings

Arrays

Objects

Datetime

Storage

Alerts

Math

Control

Device

Orientation

Timer

Watcher

Events

HTTP

Pusher

WebSocket

WebCam

Media

WebExtension

Windows

Sensors

Debug

JavaScript

StatusBar

Clipboard

Camera

Recorder

Barcode

Network

Files

SetAppTheme "Theme name"

Use this action to establish the app theme in runtime by specifiying the theme name.

You can use the app options dialog in designtime in order to include one or more themes along your app. You must use one of the included and available theme names with this action.
Argument name Argument type Argument value
Theme name String The name of the theme to be set

BlockApp

Use this action to block the app user interface, for example, until a performed HTTP request is complete. When the app user interface is blocked the user can't interact with any of the app controls. To unblock a previously blocked app user interface you must use the UnblockApp action.

Take a look at the App Builder included BlockApp* app samples in order to learn how to use the block app related actions.

UnblockApp

Use this action to unblock a previously blocked app user interface. To block the app user interface you can use the BlockApp action.

Take a look at the App Builder included BlockApp* app samples in order to learn how to use the block app related actions.

IsAppBlocked "Result variable"

Use this action to determine if the app user interface is currently blocked or not (see the BlockApp action). The result variable store "true" or "false" depending if the app user inteface is blocked or not.

Take a look at the App Builder included BlockApp* app samples in order to learn how to use the block app related actions.
Argument name Argument type Argument value
Result variable String Store "true" if the app user interface is blocked or "false" when not.

BlockedText "Text"

Use this action to change the text of the app user interface blocked container (see the BlockApp action). The text can be changed also if the app is currently blocked.

Take a look at the App Builder included BlockApp* app samples in order to learn how to use the block app related actions.
Argument name Argument type Argument value
Text String The text to be established.

UserAgent "Result variable"

Use this action to retrieve information from the browser's user agent in which the application is running. The result variable stores an object with various useful properties you can access in order to get the user agent information already parsed.

Take a look at the App Builder included UserAgent app sample in order to learn how to use this action.
Argument name Argument type Argument value
Result variable String The result variable name in which the action store the user agent information.
[ResultVar.browser.name] String Store the browser's name. This variable can store one of these possible values: Amaya, Android Browser, Arora, Avant, Baidu, Blazer, Bolt, Camino, Chimera, Chrome, Chromium, Comodo Dragon, Conkeror, Dillo, Dolphin, Doris, Edge, Epiphany, Fennec, Firebird, Firefox, Flock, GoBrowser, iCab, ICE Browser, IceApe, IceCat, IceDragon, Iceweasel, IE [Mobile], Iron, Jasmine, K-Meleon, Konqueror, Kindle, Links, Lunascape, Lynx, Maemo, Maxthon, Midori, Minimo, MIUI Browser, [Mobile] Safari, Mosaic, Mozilla, Netfront, Netscape, NetSurf, Nokia, OmniWeb, Opera [Mini/Mobi/Tablet], PhantomJS, Phoenix, Polaris, QQBrowser, RockMelt, Silk, Skyfire, SeaMonkey, SlimBrowser, Swiftfox, Tizen, UCBrowser, Vivaldi, w3m, Yandex.
[ResultVar.browser.version] String Store the browser's version.
[ResultVar.engine.name] String Store the browser's engine name. This variable can store one of these possible values: Amaya, EdgeHTML, Gecko, iCab, KHTML, Links, Lynx, NetFront, NetSurf, Presto, Tasman, Trident, w3m, WebKit.
[ResultVar.engine.version] String Store the browser's engine version.
[ResultVar.os.name] String Store the browser's OS name. This variable can store one of these possible values: AIX, Amiga OS, Android, Arch, Bada, BeOS, BlackBerry, CentOS, Chromium OS, Contiki, Fedora, Firefox OS, FreeBSD, Debian, DragonFly, Gentoo, GNU, Haiku, Hurd, iOS, Joli, Linpus, Linux, Mac OS, Mageia, Mandriva, MeeGo, Minix, Mint, Morph OS, NetBSD, Nintendo, OpenBSD, OpenVMS, OS/2, Palm, PCLinuxOS, Plan9, Playstation, QNX, RedHat, RIM Tablet OS, RISC OS, Sailfish, Series40, Slackware, Solaris, SUSE, Symbian, Tizen, Ubuntu, UNIX, VectorLinux, WebOS, Windows [Phone/Mobile], Zenwalk.
[ResultVar.os.version] String Store the browser's OS version.
[ResultVar.cpu.architecture] String Store the browser's CPU architecture. This variable can store one of these possible values: 68k, amd64, arm, arm64, avr, ia32, ia64, irix, irix64, mips, mips64, pa-risc, ppc, sparc, sparc64.
[ResultVar.device.type] String Store the browser's device type. This variable can store one of these possible values: console, mobile, tablet, smarttv, wearable, embedded.
[ResultVar.device.vendor] String Store the browser's device vendor. This variable can store one of these possible values: Acer, Alcatel, Amazon, Apple, Archos, Asus, BenQ, BlackBerry, Dell, GeeksPhone,Google, HP, HTC, Huawei, Jolla, Lenovo, LG, Meizu, Microsoft, Motorola, Nexian,Nintendo, Nokia, Nvidia, Ouya, Palm, Panasonic, Polytron, RIM, Samsung, Sharp,Siemens, Sony-Ericsson, Sprint, Xbox, ZTE.
[ResultVar.device.model] String Store the browser's device model.

IdleStart "Seconds"

Use this action to initiate the app idle watcher. By default the app idle watcher is not enabled in order to save but you can initiate it using this action by establish the number of seconds you wanted to enter in app idling after reach such seconds.

Once you call this action and before call IdleStop action the appropiate IdleStart and IdleEnd app events can be fired.
Take a look at the "[App.IdleIsIdling]" and "[App.IdleIsRunning]" app global variables.
Argument name Argument type Argument value
Seconds Number The app idle time in seconds.

IdleStop

Use this action to stop a previously initiated app idle watcher by use the IdleStart action.

Once you call this action the IdleStop action the appropiate IdleStart and IdleEnd app events are not fired anymore.
Take a look at the "[App.IdleIsIdling]" and "[App.IdleIsRunning]" app global variables.

ToggleFullscreen

This action toggle the app fullscreen state, that is, if the app is already in fullscreen, this action exit the fullscreen and viceversa. Take a look at the "[App.Fullscreen]" global variable.

SetAppScaled "Scaled mode"

Use this action to establish the app scaled mode in runtime by specifiying the scaled mode name.

Take a look at the Calculator app sample, which use this action in order to be more responsive for both larger and small device screens. Also take a look at the Scaled app sample.
If you want to know the currently app scaled mode take a look at the "[App.Scaled]" from global variables.
Argument name Argument type Argument value
Scaled mode String One of this possible values: "scaled" or "fixed".

SetViewSize "Width" "Height"

Use this action to establish the size of the current app's view. This action si particularly useful if our application uses the Scaled option or when we previously use the SetAppScaled action with the "scaled" option.

Take a look at the Scaled app sample to view this action running.
Argument name Argument type Argument value
Width String Specify the new current app's view width. You must specify the unit, for example, "800px" to use pixels, "100wv" to use the entire device's viewport, etc.
Height String Specify the new current app's view height. You must specify the unit, for example, "600px" to use pixels, "100hv" to use the entire device's viewport, etc.

PreventDefault "Event variable"

Prevents an application event, an application view event or a control event from bubbling up so the browser do not perform their default behaviour. For example, if you use the ContextMenu event of an app view, you can use this action to prevent the browser to show their default contextual menu.

Argument name Argument type Argument value
Event variable String The Event variable to be used, for example, the global variable [App.Event], an [ViewName.Event] or a [ControlName.Event]

StopPropagation "Control name"

Prevents an application event, an application view event or a control event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. For example, supose you have an app view and a push button control inside. If you use the app view Click event and also the button Click event, after the execution of the button Click event, the app view Click event is also executed. If you don't wanted this behaviour, just use this action inside the button Click event.

Argument name Argument type Argument value
Event variable String The Event variable to be used, for example, the global variable [App.Event], an [ViewName.Event] or a [ControlName.Event]

ShowView "View name"

Show the specified app view. Specify the name of the view you want to be shown and use this action to show whatever view of your app. Suposing you have an app view named "AboutView", you can show it by using this action in this way:

ShowView "AboutView"

This action show the specified app view and put it into the URL history, then the user can navigate back using the back button from their browser or mobile device. If you do not wanted this behaviour use the ReplaceView action instead.

The View name combobox in this action's editor allow us to choose an app view name from the existing ones.
You can show an app view as a dialog using the ShowDialog action.
Argument name Argument type Argument value
View name String The app view you want to view

ReplaceView "View name"

Show the specified app view and replacing the URL history with such view. Doing this the user cannot use the back button to navigate back into the URL history. Specify the name of the view you want to be shown and use this action to show whatever view of your app. Suposing you have an app view named "AboutView", you can show it by using this action in this way:

ReplaceView "AboutView"

If you wanted to add the specified app view into the URL history the ShowView action is for you.

The View name combobox in this action's editor allow us to choose an app view name from the existing ones.
You can show an app view as a dialog using the ShowDialog action.
Argument name Argument type Argument value
View name String The app view you want to view

ReloadView

Reload the current app view. This action cause the current app view to be reloaded. This action no requires any argument.

ShowDialog "View name"

Every app view can be show also as a modal dialog to the user. This action allow you to do that. For example, below we use this action to show an existing app view named "AboutView". It's important to provide a way to close the view dialog. This can be doing using the CloseDialog in some part of the dialog view, for example, you can put a Push Button control in the dialog view and in their "Click" event use the CloseDialog action.

ShowDialog "AboutView"
The app view "Show" event is fired when an app view is shown, also when it's shown as a dialog.
The View name combobox in this action's editor allow us to choose an app view name from the existing ones.
Argument name Argument type Argument value
View name String The app view you want to show as a dialog

CloseDialog

Close the current modal dialog. This action can be used from an app view show with the ShowDialog action in order to close the dialog. This action no requires any argument.

HistoryBack

Use this action to navigate back the browser's history. This action no requires any argument.

Take a look at the HistoryForward action too!

HistoryForward

Use this action to navigate forward the browser's history. This action no requires any argument.

Take a look at the HistoryBack action too!

Hide "Control name"

Use this action to hide the specific app view control. You can hide an app view control by manipulate their "Hidden" variable or by adding or removing the appropiate CSS class, however, this action is a convenient shortcut in order to hide an app view control.

You can show a control using the Show action and also can toggle the control visibility to using the Toggle action.
Argument name Argument type Argument value
Control name String The app control name you want to hide

Show "Control name"

Use this action to show the specific app view control. You can show an app view control by manipulate their "Hidden" variable or by adding or removing the appropiate CSS class, however, this action is a convenient shortcut in order to show an app view control.

You can hide a control using the Hide action and also can toggle the control visibility to using the Toggle action.
Argument name Argument type Argument value
Control name String The app control name you want to show

Toggle "Control name"

Use this action to toggle the visibility for the specific app view control. If the control is hide, then the control is show. If the control is show, then the control is hidden.

You can show a control using the Show action and also can hide a control using the Hide action.
Argument name Argument type Argument value
Control name String The app control name you want to toggle

Enable "Control name"

Use this action to enable the specific app view control. For example, you can enable a previously disabled input control in order to allow or disallow the entering of data in such control. You can enable an app view control by manipulate their "Disabled" variable or by adding or removing the appropiate CSS class, however, this action is a convenient shortcut in order to enable an app view control.

You can disable a control using the Disable action.
Argument name Argument type Argument value
Control name String The app control name you want to enable

Disable "Control name"

Use this action to disable the specific app view control. For example, a disabled input control doesn't allow to enter any new data on it. You can disable an app view control by manipulate their "Disabled" variable or by adding or removing the appropiate CSS class, however, this action is a convenient shortcut in order to disable an app view control.

You can enable a control using the Enable action.
Argument name Argument type Argument value
Control name String The app control name you want to disable

Blur "Control name"

Use this action to remove the focus from the specified control.

You can give the focus to a control using the Focus action.
Argument name Argument type Argument value
Control name String The app control name you want to remove the focus

Focus "Control name"

Use this action to give the focus from the specified control.

You can remove the focus to a control using the Blur action.
Argument name Argument type Argument value
Control name String The app control name you want to give the focus

GetStyle "Control name" "CSS property" "Result variable"

Use this action to retrieve the value of a computed CSS style property from the specified control. The result variable store the computed style property value.

Note that the computed style of an element may not be the same as the value specified for that element in a style sheet. For example, computed styles of dimensions are almost always pixels, but they can be specified as em, ex, px or % in a style sheet. Different browsers may return CSS color values that are logically but not textually equal, e.g., #FFF, #ffffff, and rgb(255,255,255).
You can set CSS properties of an app view control using the SetStyle action.
Argument name Argument type Argument value
Control name String The app view control to retrieve their CSS property
CSS property String The CSS property name to be retrieved
Result variable String The variable name in which store the returned value

SetStyle "Control name" "CSS property" "Property value"

Use this action to set the value of a CSS style property of the specified control.

You can get CSS properties of an app view control using the GetStyle action.
Argument name Argument type Argument value
Control name String The app view control to retrieve their CSS property
CSS property String The CSS property name to be set
Property value String The value of the CSS property

AddClass "Control name" "CSS class(es)"

Use this action to add one or more CSS classes to the specified control. You can specify more than one class by separating them with spaces.

You can toogle CSS classes using the ToggleClass action and also remove CSS classes using the RemoveClass action.
Argument name Argument type Argument value
Control name String The app view control to add the class(es)
CSS class(es) String One or more CSS classes names (space separated)

HasClass "Control name" "CSS class(es)" "Result variable"

Use this action to search for the existence of one or more CSS classes in the specified control. You can specify more than one class by separating them with spaces. The result variable contains "true" if the CSS class exists or "false" when not.

You can add one or more CSS classes using the AddClass action, toogle CSS classes using the ToggleClass action and also remove CSS classes using the RemoveClass action.
Argument name Argument type Argument value
Control name String The app view control to find for the class(es)
CSS class(es) String One or more CSS classes names (space separated)
Result variable String Name of the variable to store the action result.

ToggleClass "Control name" "CSS class(es)"

Use this action to toggle one or more CSS classes in the specified control. You can specify more than one class by separating them with spaces.

You can add one or more CSS classes using the AddClass action and remove one or more CSS classes using the RemoveClass action. This action remove the CSS class if exists, or put it available when not.
Argument name Argument type Argument value
Control name String The app view control you want to toggle
CSS class(es) String One or more CSS classes names (space separated)

RemoveClass "Control name" "CSS class(es)"

Use this action to remove one or more CSS classes from the specified control. You can specify more than one class by separating them with spaces.

You can add one or more CSS classes using the AddClass action.
Argument name Argument type Argument value
Control name String The app view control you want to animate
CSS class(es) String One or more CSS classes names (space separated)

SetAttribute "Control name" "Attribute name" "Attribute value"

Use this action to set the specified HTML attribute for the specified app control.

Argument name Argument type Argument value
Control name String The app view control you want to set an attribute
Attribute name String The name of the attribute you want to set
Attribute value String|Number The value of the attribute you want to set

GetAttribute "Control name" "Attribute name" "Result variable"

Use this action to get the value of the specified HTML control attribute and store it into the result variable.

Argument name Argument type Argument value
Control name String The app view control you want to get an attribute
Attribute name String The name of the attribute you want to retrieve
Result variable String The variable name to store the attribute value

SimpleScrollbar "Control name"

Use this action to change the standard apparence of the scrollbar in HtmlContent controls who shown their content in an overflow way.

Take a look at the SimpleScrollbar app sample to view this action running. Look at the Menu - File - Samples.
Argument name Argument type Argument value
Control name String Commonly the name of an HtmlContent control. Can be also an HTML element ID.

SetVar "Variable name" "Variable value" "Variable type"

This action allow us to set the value of certain app existing variable (for example, an app control specific variable) or create new ones for our convenience. You can use app variables to store certain information which you can retrieve in other place or situation.

Note that a variable name must be a valid identifier, and, this mean the variable name must be sequence of letters, digits, or underscores. Letters are limited to A-Z and a-z, although the name are case sensitive. The first character of a variable name cannot be a digit.

The variable type determine the way in which the variable is treated when it's converted to their JavaScript representation. Basically, if you want to store a number in a variable, choose the "Number" type for your variable. In any other case choose the "String" type for your variable.

All variables are global to the app, except the app functions variables/arguments, which can be used only inside the function in which resides. This mean that you can set a variable from an app view, for example, and this are automatically available in other app views.

After all, this action is very powerfull, since app controls exposes lots of variables, and you can use this action to set or update such variables contents. For example, you can hide a control using their "Hidden" variable, just like in the below code:

// Hide the Input1 control
SetVar "[Input1.Hidden]" "true" "String"

In a similar way, you can show a hidden control using the same "[Input1.Hidden]" variable, this time passing as argument an empty string, which mean "false", then the below code show a previously hidden control:

// Show the Input1 control
SetVar "[Input1.Hidden]" "" "String"

App views controls expose various variables which can be manipulated using this action. The above "Hidden" variable is just one example. We refer you to the app controls section in this help to discover what variables exposes the available app controls.

As I mentioned above, you can use app variables to store useful information in order to be used in other places. If you wanted to store information which are no loss when your app close, you can use the SetOption and GetOption actions instead.

Last but no least, note that App Builder variables are writen wrapped in "brackets". This is the way you can refer to a variable when needed, however, note also that in some situations the brackets are optional. For example, the both statements in the below code does exactly the same:

SetVar "[Input1.Hidden]" "" "String"

SetVar "Input1.Hidden" "" "String"
Note that a more convenient way to show, hide or toggle the visibility of an object can be the directly use of the Show, Hide and Toggle actions.
Argument name Argument type Argument value
Variable name String The variable name to be set or updated
Variable value Mixed The variable value: an string, a number, or another variable
Variable type String "String" or "Number" values, which determine the variable treatment

VarIsNull "Variable name" "Result variable"

Use this action to find if the specified variable is "null". A variable can exists but can have this value.

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store "true" if the specified variable is null, or "false" when not

VarIsTrue "Variable name" "Result variable"

This action allow us to find if a variable is a pure boolean true in Javascript or if the variable store a "true" string in a non case sensitive way, that is, it's the same "True" than "true" than "TrUe".

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store "true" if the specified variable is a boolean true, or "false" when not

VarIsFalse "Variable name" "Result variable"

This action allow us to find if a variable is a pure boolean false in Javascript or if the variable store a "false" string in a non case sensitive way, that is, it's the same "False" than "false" than "FaLsE".

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store "true" if the specified variable is a boolean false, or "false" when not

VarIsString "Variable name" "Result variable"

Use this action to find if the specified variable is an string.

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store "true" if the specified variable is an string, or "false" when not

VarToString "Variable name" "Result variable"

This action allow us to convert a variable into their string representation, for example, a pure boolean true value in Javascript has the "true" (string) representation; a pure false value has the "false" (string) representation. This can help us in some conditionals and other scenarios.

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store the string representation of the specified variable.

VarIsNumber "Variable name" "Result variable"

Use this action to find if the specified variable is a number.

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store "true" if the specified variable is a number, or "false" when not

VarIsArray "Variable name" "Result variable"

Use this action to find if the specified variable is an Array.

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store "true" if the specified variable is an Array, or "false" when not

VarIsObject "Variable name" "Result variable"

Use this action to find if the specified variable is an Object.

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store "true" if the specified variable is an Object, or "false" when not
We can create Object variables with the NewObject action.

VarIsUndefined "Variable name" "Result variable"

Use this action to find if the specified variable is undefined. A non existing variable is undefined.

Argument name Argument type Argument value
Variable name String The variable name to looking for
Result variable String The result variable. Store "true" if the specified variable is undefined, or "false" when not

LoadVariables "URL"

Use this action to load one or most commonly more than one variable from an app file or a remote file. This action is mostly intented to be used with app files, because they do not provide any feedback about the progress or possible errors. The action expected an URL that provide a text plain file in this format:

Var1=Var value
Var2=Other value
Var3=Another more

As you can see the file defines various variables separated by lines, and variable names/values separated by the "=" character. Once the action retrieve such text they are parsed and the "[Var1]", "[Var2]" and "[Var3]" variables are created (or updated) with their respectively values.

App Builder also can to load Array variables. To do this your variable values must start with the "|" (pipe) character and then use the same "|" character to separate the different substrings. For example, supose the below file contents:

Var1=Var value
Var2=Other value
Var3=|Blue|Red|Green|Pink

In the above case the "[Var3]" variable store an Array variable with four items: "Blue", "Red", "Green" and "Pink".

This action also support variable names with up to three "dot levels", which means we can prepare someting like this file:

MyControl.Text=My control text
MyControl.Title=My control title

Then, the appropiate control's Text and Title variables are set with the right values.

Argument name Argument type Argument value
URL String App file URL or remote URL to be loaded
This action can be very useful when use with app files. Also can be used with remote files, but, they do not provide any feedback. If you need that feedback try a combination of the HttpClient control and the ParseVariables action. Take a look at the included app samples "LoadVars" and "ParseVars" too.

ParseVariables "Text"

Use this action to load one or most commonly more than one variable from the specified text. The text expected by this action is something like the below one:

Var1=Var value
Var2=Other value
Var3=Another more

As you can see the file defines various variables separated by lines, and variable names/values separated by the "=" character. The are parsed and the "[Var1]", "[Var2]" and "[Var3]" variables are created (or updated) with their respectively values.

App Builder also can to load Array variables. To do this your variable values must start with the "|" (pipe) character and then use the same "|" character to separate the different substrings. For example, supose the below file contents:

Var1=Var value
Var2=Other value
Var3=|Blue|Red|Green|Pink

In the above case the "[Var3]" variable store an Array variable with four items: "Blue", "Red", "Green" and "Pink".

This action also support variable names with up to three "dot levels", which means we can prepare someting like this file:

MyControl.Text=My control text
MyControl.Title=My control title

Then, the appropiate control's Text and Title variables are set with the right values.

Argument name Argument type Argument value
Text String Text to be parsed.
This action can be very useful when use with remote files. Also can be used with app files, but, then a probably better choice can be the LoadVariables action. Take a look at the included app samples "LoadVars" and "ParseVars" too.

ClearVariables "Variables"

Use this action to clear one or more application variables. Separate the variables' names with commas.

Argument name Argument type Argument value
Variables String One or more (separated by commas) variables' names.
If you pass an empty string for this action's argument this action clear all the application's user's variables.

StrLen "Input string" "Result variable"

Use this action when you want to know the length of an string, in other words, what number of characters contains a string. Providing the string into the input field of the action's editor, you receive in the specified result variable the string length. For example:

StrLen "Hello world!" "[StrLen]"

Alertbox "The string is [StrLen] characters length" "info"

The above AlertBox action show to us a message like "The string is 12 characters length", because this is the length of the "Hello world!" string.

The app view "Show" event is fired when an app view is shown.
You can show an app view as a dialog using the ShowDialog action.
Argument name Argument type Argument value
Input string String The string you want to length
Result variable String Variable name to store the input string length

SubStr "Input string" "Start" "Length" "Result variable"

This action extracts parts of a string, beginning at the character at the specified start position, and returns the specified length number of characters. The resulted string are then stored in the specified result variable.

For example, if you use this action like in the below code:

SubStr "Hello world!" "0" "5" "[Result]"

AlertBox "The extracted characters are: [Result]" "info"

The above AlertBox action show to us a message like "The extracted characters are: Hello".

This action does not change the original string.
To extract characters from the end of the string, use a negative start number.
Argument name Argument type Argument value
Input string String The string you want to get certain characters
Start Number The position where to start the extraction. First character is at index 0
Length Number The number of characters to extract
Result variable String Variable name to store the extracted part of the string

StrHash "Input string" "Algorithm" "Result variable"

This action alow us to get the hash of the input string and put it into the result variable. The algorithm can be one of these SHA-1, SHA-224, SHA-256, SHA-384 or SHA-512.

If you wanted the HMAC hash then the StrHMAC action is for you.
Argument name Argument type Argument value
Input string String The string you want to get their hash
Algorithm String One of these values: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384 or SHA3-512
Result variable String Variable name to store the input string hash

StrHMAC "Input string" "Key" "Algorithm" "Result variable"

This action alow us to get the HMAC hash of the input string based in the specified key and then put it into the result variable. The algorithm can be one of these SHA-1, SHA-224, SHA-256, SHA-384 or SHA-512.

If you wanted just the input string hash then the StrHash action is for you.
Argument name Argument type Argument value
Input string String The string you want to get their hash
Key String The key you want to use for the hash
Algorithm String One of these values: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384 or SHA3-512
Result variable String Variable name to store the input string hash

StrNumber "Input string" "Result variable"

Use this action to extract the number part of an string. For example, if you provide the "abc123" as the input string, this action's result variable stores "123".

Argument name Argument type Argument value
Input string String The string you want to get their number part
Result variable Number Variable name to store the string number part

TrimStr "Input string" "Result variable"

This action removes whitespace from both ends of the specified input string. Whitespace in this context is all the whitespace characters (space, tab, no-break space, etc.) and all the line terminator characters (LF, CR, etc.). Then the action put in the specified result variable the trimmed string.

For example, if you use this action like in the below code:

TrimStr "     Hello world!   " "[Result]"

AlertBox "#[Result]#" "info"

The above AlertBox action show to us a message like "#Hello world!#".

Argument name Argument type Argument value
Input string String The string you want to transform in uppercase
Result variable String The trimmed string

SplitStr "Input string" "Separator" "Result variable"

This action can convert an string into an Array variable by the specified separator.

For example, if you use this action like in the below code:

SplitStr "Peter,Donald,Walter" "," "[MyArray]"
VarIsArray "[MyArray]" "[Result]"
AlertBox "[Result]" "info"

The above AlertBox action show to us a message like "true" and our "[MyVar]" Array variable contains three elements: "Peter", "Donald" and "Walter".

Argument name Argument type Argument value
Input string String The string you want to be split
Separator String The separator for every Array elements.
Result variable String The name of the variable for the created Array.

LowerStr "Input string" "Result variable"

This action transform to lowercase the specified input string and put the new string into the specified result variable.

For example, if you use this action like in the below code:

LowerStr "HELLO WORLD!" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox action show to us a message like "hello world!".

Argument name Argument type Argument value
Input string String The string you want to transform in lowercase
Result variable String Variable name to store the Lowercased string

UpperStr "Input string" "Result variable"

This action transform to uppercase the specified input string and put the new string into the specified result variable.

For example, if you use this action like in the below code:

UpperStr "hello world!" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox action show to us a message like "HELLO WORLD!".

Argument name Argument type Argument value
Input string String The string you want to transform in uppercase
Result variable String Variable name to store the uppercased string

StrSearch "Input string" "Search query" "Result variable"

This action searches a string for the specified search query, and returns the position of the match, storing it in the result variable. The result variable store "-1" if no match is found.

For example, if you use this action like in the below code:

StrSearch "Hello world!" "world" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox action show to us a message like "6".

This action is case sensitive, then it's not the same to search for an "a" that an "A".
Argument name Argument type Argument value
Input string String The string you want to search in
Search query String The text you want to search
Result variable String Variable name to store the position of the matched text

StrReplace "Input string" "Search query" "Replacement" "Result variable"

This action searches a string for the specified and replace the first match with the specified replacement, returning the new string into the specified result variable. If you want to replace all the matches in the string can use the StrReplaceAll action instead.

For example, if you use this action like in the below code:

StrReplace "Hello world world!" "world" "there" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox action show to us a message like "Hello there world!".

This action is case sensitive, then it's not the same to search for an "a" that an "A".
Argument name Argument type Argument value
Input string String The string you want to search in
Search query String The text you want to search
Replacement String The text you want to use as replacement
Result variable String Variable name to store the new string

StrReplaceAll "Input string" "Search query" "Replacement" "Result variable"

This action searches a string for the specified and replace every matches with the specified replacement, returning the new string into the specified result variable. If you want to replace the only the first match in the string can use the StrReplace action instead.

For example, if you use this action like in the below code:

StrReplace "Hello world world!" "world" "there" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox action show to us a message like "Hello there there!".

This action is case sensitive, then it's not the same to search for an "a" that an "A".
Argument name Argument type Argument value
Input string String The string you want to search in
Search query String The text you want to search
Replacement String The text you want to use as replacement
Result variable String Variable name to store the new string

StrToBase64 "Input string" "Result variable"

This action encodes an string into their Base64 representation.

Take a look at this action's partner: Base64ToStr action.
Argument name Argument type Argument value
Input string String The string you want to encode
Result variable String The Base64 representation of the input string

Base64ToStr "Input string" "Result variable"

This action decodes an string from their Base64 representation.

Take a look at this action's partner: StrToBase64 action.
Argument name Argument type Argument value
Input string String The Base64 string you want to decode
Result variable String The input string after decoded

EncodeUri "Input string" "Result variable"

Encodes special characters of an URI component. In addition, it encodes the following characters: , / ? : @ & = + $ #. This action can be used to conform URLs before we made an HTTP GET request using, for example, an HttpClient control.

We don't need to encode all the URL, but the parts who proceed from the user input, for example:

// Our Request URL
SetVar "[RequestUrl]" "http://www.ourappserver.com/" "String"

// Encode Name and Last name inputs
EncodeUri "[NameInput.Value]" "[Name]"
EncodeUri "[LastNameInput.Value]" "[LastName]"

// Prepare the URL for our HttpClient control
HttpSetUrl "HttpClient1" "[RequestUrl]?name=[Name]&lastName=[LastName]"

// Execute the HTTP call
HttpExecute "HttpClient1"
To decode a previously encoded URI we can use the DecodeUri action.
Argument name Argument type Argument value
Input string String The string you want to encode
Result variable String The input string after encoded it

DecodeUri "Input string" "Result variable"

Decode a URI component after encoding it with the EncodeUri action.

Argument name Argument type Argument value
Input string String The string you want to decode
Result variable String The input string after decoded it

StrSerialize "Array or Object" "Result variable"

Use this action to transform an Array or Object variable into their string representation. This can be useful, for example, to save a complete object into the options using the SetOption action.

We can transform a previosly serialized Array or Object using the StrUnserialize action
Argument name Argument type Argument value
Array or Object Array|Object Array or Object variable name to be serialized
Result variable String The string representation of the specified Array or Object

StrUnserialize "Input string" "Result variable"

Use this action to transform a previosly string serialization of an Array or Object into the appropiate variable.

We can serialize an Array or Object variable using the StrSerialize action
Argument name Argument type Argument value
Input string String A previosuly serialized Array or Object
Result variable Array|Object The original Array or Object variable

IsIP "Input string" "Result variable"

Find if the specified input string appear as a valid IP v4 or v6. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsEmail "Input string" "Result variable"

Find if the specified input string appear as a valid email address. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsAlphaNum "Input string" "Result variable"

Find if the specified input string contains only letters and numbers. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsAlpha "Input string" "Result variable"

Find if the specified input string contains only letters (a-zA-Z). The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsNumeric "Input string" "Result variable"

Find if the specified input string contains only numeric characters.

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsASCII "Input string" "Result variable"

Find if the specified input string contains only ASCII characters. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsBase64 "Input string" "Result variable"

Find if the specified input string is base64 encoded. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsCreditCard "Input string" "Result variable"

Find if the specified input string appear as a valid credit card number. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsUUID "Input string" "Result variable"

Find if the specified input string appear as a valid UUID (Universally unique identifier) v3, v4 or v5. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsFQDN "Input string" "Result variable"

Find if the specified input string appear is a fully qualified domain name (e.g. domain.com). The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsISBN "Input string" "Result variable"

Find if the specified input string appear as a valid ISBN number (International Standard Book Number) v10 or v13. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsISIN "Input string" "Result variable"

Find if the specified input string appear as a valid ISIN (stock/security identifier). The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsJSON "Input string" "Result variable"

Find if the specified input string appear as a valid JSON. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsHexColor "Input string" "Result variable"

Find if the specified input string appear as a valid hexadecimal color. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsLowercase "Input string" "Result variable"

Find if the specified input string is lowercase. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsUppercase "Input string" "Result variable"

Find if the specified input string is uppercase. The result variable store "true" or "false".

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
Result variable String Store "true" or "false"

IsWhitelisted "Input string" "White list chars" "Result variable"

Find if the specified input strings contains only whitelisted chararacters and no others.

Note that any validation we made in the client side must be also checked in the server side.
Argument name Argument type Argument value
Input string String An input string to be checked
White list chars String The chars we want to allow in the input string.
Result variable String Store "true" or "false"

FormatNumber "Number" "Precision" "Thousand" "Decimal" "Result variable"

Format a number with custom precision and localisation.

Take a look also at this action counterpart: UnformatNumber.
Argument name Argument type Argument value
Number Number The number to be formatted
Precision Number Decimal places precision. Set to "0" if you don't wanted decimals.
Thousand String Thousands separator.
Decimal String Decimal point separator.
Result variable String Variable name to store the formatted number.

UnformatNumber "Input" "Decimal" "Result variable"

Parse a value from any previously formatted number.

Take a look also at this action counterpart: FormatNumber.
Argument name Argument type Argument value
Input String Formatted number to be parsed.
Decimal String Decimal point separator.
Result variable String Variable name to store the parsed number.

StrToNumber "Input" "Result variable"

Convert an string/variable into an number variable.

Argument name Argument type Argument value
Input String The string/variable name to be converted.
Result variable Number Variable name to store the number variable.

NumberToStr "Input" "Result variable"

Convert an number/variable into an string variable.

Argument name Argument type Argument value
Input String The string/variable name to be converted.
Result variable Number Variable name to store the string variable.

NewArray "Array name"

Create a new Array variable to be available for the app. Once you create an Array variable with this action you can use any other Array related action indicating the created Array name.

Argument name Argument type Argument value
Array name String The name for the new Array variable

ArrayLength "Array name" "Result variable"

Retrieve the length of the specified array and store the result into the specified variable. Remember the Array items are zero indexed. Then the length of an Array is the number of items -1.

You can create new Array variables using the NewArray action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array
Result variable String The name of the variable to store the Array length

ArrayClear "Array name"

Clear the specified array variable, that is, remove all the possible array items.

You can create new Array variables using the NewArray action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array

ArrayPop "Array name" "Result variable"

This action removes the last element of the specified array, and store that element in the specified result variable.

To removes the first element of an Array you can use the ArrayShift action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array
Result variable String The name of the variable to store the last Array element

ArrayShift "Array name" "Result variable"

This action removes the first item of the specified array, and store that item in the result variable.

To removes the last element of an Array you can use the ArrayPop action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array
Result variable String The name of the variable to store the first Array element

ArrayPush "Array name" "Item value"

This action add the specified new item value to the end of the specified array.

To add a new item to the beginning of the Array you can use the ArrayUnshift action.
Argument name Argument type Argument value
Array name String The name for the new Array variable
Item value Mixed The new Array item value. An string, a number or some variable.

ArrayUnshift "Array name" "Item value"

This action add the specified new item value to the beginning of the specified array.

To add a new item to the end of the Array you can use the ArrayPush action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array
Item value Mixed The new Array item value. An string, a number or some variable.

ArrayConcat "First Array name" "Second Array name" "Result variable"

This action concat the items of the specified first array with the specified second array, and store the new array into the specified result variable.

You can create new Array variables using the NewArray action.
Argument name Argument type Argument value
First Array name String The name or variable of an existing Array
Second Array name String The name or variable of an existing Array
Result variable String The name of the variable in which store the new Array

ArrayGetItem "Array name" "Item index" "Result variable"

This action retrieve the item value at the specified index from the specified array variable, and store such value into the specified result variable. Remember that Array items start zero indexed. Then the first element is the zero, the second element the 1, the third element the 2 and so on.

To update an existing Array you can use the ArraySetItem action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array
Item index Number The Array item index to retrieve their value
Result variable String The name of the variable in which store the item value

ArraySetItem "Array name" "Item index" "Item value"

This action change the value of the specified item index of the specified array.

To retrieve an existing Array item value you can use the ArrayGetItem action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array
Item index Number The Array item index to set their value
Item value Mixed The new Array item value

ArrayRemoveItem "Array name" "Item index"

This action remove from the specified item index from the specified Array variable. Remember Array variables start with zero, then the first item is "0", the second item "1", and so on.

If you want to remove the first item of an Array variable can use the ArrayPop action, and if you want to delete the first item from an Array variable can use the ArrayShift action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array
Item index Number The Array item index to be removed

ArrayReverse "Array name"

This action reverses the order of the elements of the specified array variable.

You can create new Array variables using the NewArray action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array

ArraySortAsc "Array name"

This action sorts the specified array values as strings in alphabetical and ascending order.

You can sort array values as numbers using the ArrayNumSortAsc action, and sort array values as strings in alphabetical and descending order using the ArraySortDesc action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array

ArraySortDesc "Array name"

This action sorts the specified array values as strings in alphabetical and descending order.

You can sort array values as numbers using the ArrayNumSortAsc action, and sort array values as strings in alphabetical and ascending order using the ArraySortAsc action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array

ArrayNumSortAsc "Array name"

This action sorts the specified array values as numbers and ascending order.

You can sort array values as strings using the ArraySortAsc action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array

ArrayNumSortAsc "Array name"

This action sorts the specified array values as numbers and ascending order.

You can sort array values as strings using the ArraySortAsc action, and sort array values as numbers in alphabetical and descending order using the ArrayNumSortDesc action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array

ArrayNumSortDesc "Array name"

This action sorts the specified array values as numbers and descending order.

You can sort array values as strings using the ArraySortAsc action, and sort array values as numbers in alphabetical and ascending order using the ArrayNumSortAsc action.
Argument name Argument type Argument value
Array name String The name or variable of an existing Array

ArrayIndexOf "Array name" "Result variable"

Searches the specified array from the beginning for the specified item value, and store its position index in the specified result variable or -1 if not found.

You can searches from the end of an Array using the ArrayLastIndexOf action.
Argument name Argument type Argument value
Array name String The name for the new Array variable
Result variable Mixed The index position of the matched item

ArrayLastIndexOf "Array name" "Result variable"

Searches the specified array from the end for the specified item value, and store its position index in the specified result variable or -1 if not found.

You can searches from the beginning of an Array using the ArrayIndexOf action.
Argument name Argument type Argument value
Array name String The name for the new Array variable
Result variable Mixed The index position of the matched item

NewObject "Object name"

Use this action to create an Object variable. While the Array variables allow us to store various items/values in a numerical indexed way, Object variables allow us to store various pairs of keys/values.

We can add new properties to an Object variable using the ObjectSetProp action and retrieve Object variables properties using the ObjectGetProp action.
Argument name Argument type Argument value
Object name String The name for the new Object variable

ObjectSetProp "Object name" "Property name" "Property value"

Set the value of the specified property in an Object variable.

NewObject "MyObject"

ObjectSetProp "MyObject" "Name" "My name"

ObjectGetProp "MyObject" "Name" "[Result]"

AlertBox "[Result]" "success"

The above AlertBox action show to us "My name" when is executed.

We can create Object variables with the NewObject action and retrieve Object properties using the ObjectGetProp action.
Argument name Argument type Argument value
Object name String The name of the Object variable
Property name String The property name to be set
Property value String The property value to be set

ObjectGetProp "Object name" "Property name" "Result variable"

Retrieve the value of the specified property in an Object variable and store it in the result variable.

NewObject "MyObject"

ObjectSetProp "MyObject" "Name" "My name"

ObjectGetProp "MyObject" "Name" "[Result]"

AlertBox "[Result]" "success"

The above AlertBox action show to us "My name" when is executed.

We can create Object variables with the NewObject action and set Object properties using the ObjectSetProp action.
Argument name Argument type Argument value
Object name String The name of the Object variable
Property name String The property name to be get
Result variable String Store the specified property value

NewDate "Value" "Format" "Result variable"

Use this action to create a new Date variable in order to be used later with datetime related actions. This action allow us to create a Date variable specifying a date value and the format in which the date value is.

We can ommit the Value and Format arguments to get the Now datetime into the result Date variable. We can ommit the Format argument if we put a value formated as an ISO 8601 string. For example, take a look at the below code:

// [MyDate] store the Now datetime
NewDate "" "" "[MyDate]"

// [MyDate] store the current timestamp datetime
NewDate "[App.Timestamp]" "" "[MyDate]"

// [MyDate] store the 2100 year, 12 month and 5 day date, time part is set as zeroes
NewDate "2100-12-05" "YYYY-MM-DD" "[MyDate]"

// [MyDate] store the same than above because non-alphanumeric characters are ignored
NewDate "2100/12/05" "YYYY-MM-DD" "[MyDate]"

// [MyDate] contains a valid date passed as an ISO 8601 string
NewDate "2010-12-05 09:30:26.123" "" "[MyDate]"

The parsing tokens in the Format argument are similar to the formatting tokens used in DateFormat action.

Year, month, and day tokens

Input Example Description
YYYY 2014 4 or 2 digit year
YY 14 2 digit year
Q 1..4 Quarter of year. Sets month to first month in quarter.
M MM 1..12 Month number
MMM MMMM Jan..December Month name in locale set by moment.locale()
D DD 1..31 Day of month
Do 1st..31st Day of month with ordinal
DDD DDDD 1..365 Day of year
X 1410715640.579 Unix timestamp
x 1410715640579 Unix ms timestamp

Week year, week, and weekday tokens

For these, the lowercase tokens use the locale aware week start days, and the uppercase tokens use the ISO week date start days.

Input Example Description
gggg 2014 Locale 4 digit week year
gg 14 Locale 2 digit week year
w ww 1..53 Locale week of year
e 1..7 Locale day of week
ddd dddd Mon...Sunday Day name in locale set by moment.locale()
GGGG 2014 ISO 4 digit week year
GG 14 ISO 2 digit week year
W WW 1..53 ISO week of year
E 1..7 ISO day of week

Hour, minute, second, millisecond, and offset tokens

Input Example Description
H HH 0..23 24 hour time
h hh 1..12 12 hour time used with a A.
a A am pm Post or ante meridiem
m mm 0..59 Minutes
s ss 0..59 Seconds
S 0..9 Tenths of a second
SS 0..99 Hundreds of a second
SSS 0..999 Thousandths of a second
SSSS 0000..9999 fractional seconds
Z ZZ +12:00 Offset from UTC as +-HH:mm, +-HHmm, or Z
Argument name Argument type Argument value
Value String|Number Optional. The value to be set to the Date variable
Format String Optional. The format string which the Value argument follows
Result variable String The variable name to store the Date variable

DateValid "Date variable" "Result variable"

Use this action to find if the specified Date variable is considered valid or not. Use this action to check if Date variables created by the NewDate action are considered valid Dates or not.

Argument name Argument type Argument value
Date variable Date Date variable to be checked
Result variable String Store "true" or "false" depending if the Date variable is valid or not

DateFormat "Date variable" "Format" "Result variable"

Use this action to display Date variables created by the NewDate action. It takes a string of tokens from the Format arguments and replaces them with their corresponding values. Below you can see the available format tokens:

Token Output
Month M 1 2 ... 11 12
Mo 1st 2nd ... 11th 12th
MM 01 02 ... 11 12
MMM Jan Feb ... Nov Dec
MMMM January February ... November December
Quarter Q 1 2 3 4
Day of Month D 1 2 ... 30 31
Do 1st 2nd ... 30th 31st
DD 01 02 ... 30 31
Day of Year DDD 1 2 ... 364 365
DDDo 1st 2nd ... 364th 365th
DDDD 001 002 ... 364 365
Day of Week d 0 1 ... 5 6
do 0th 1st ... 5th 6th
dd Su Mo ... Fr Sa
ddd Sun Mon ... Fri Sat
dddd Sunday Monday ... Friday Saturday
Day of Week (Locale) e 0 1 ... 5 6
Day of Week (ISO) E 1 2 ... 6 7
Week of Year w 1 2 ... 52 53
wo 1st 2nd ... 52nd 53rd
ww 01 02 ... 52 53
Week of Year (ISO) W 1 2 ... 52 53
Wo 1st 2nd ... 52nd 53rd
WW 01 02 ... 52 53
Year YY 70 71 ... 29 30
YYYY 1970 1971 ... 2029 2030
Week Year gg 70 71 ... 29 30
gggg 1970 1971 ... 2029 2030
Week Year (ISO) GG 70 71 ... 29 30
GGGG 1970 1971 ... 2029 2030
AM/PM A AM PM
a am pm
Hour H 0 1 ... 22 23
HH 00 01 ... 22 23
h 1 2 ... 11 12
hh 01 02 ... 11 12
Minute m 0 1 ... 58 59
mm 00 01 ... 58 59
Second s 0 1 ... 58 59
ss 00 01 ... 58 59
Fractional Second S 0 1 ... 8 9
SS 00 01 ... 98 99
SSS 000 001 ... 998 999
SSSS ... SSSSSSSSS 000[0..] 001[0..] ... 998[0..] 999[0..]
Z -07:00 -06:00 ... +06:00 +07:00
ZZ -0700 -0600 ... +0600 +0700
Unix Timestamp X 1360013296
Unix Millisecond Timestamp x 1360013296123

Here we can see some samples of this action usage:

// [MyDate] store the Now datetime
NewDate "" "" "[MyDate]"

// [Result] can store "2100-09-08T08:02:17-05:00" (ISO 8601)
DateFormat "[MyDate]" "" "[Result]"

// [Result] can store "Sunday, February 14th 2100, 3:25:50 pm"
DateFormat "[MyDate]" "dddd, MMMM Do YYYY, h:mm:ss a" "[Result]"

// [Result] can store "Sun, 3PM"
DateFormat "[MyDate]" "ddd, hA" "[Result]"
Argument name Argument type Argument value
Date variable Date Date variable to be formatted
Format String The format string to use
Result variable String Store the Date variable formatted following the specified format string

DateGet "Date variable" "Unit" "Result variable"

Use this action to get an specific unit value from the specified Date variable created by the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to retrieve some unit
Unit String One of these possible values: year, month, date (day), hour, minute, second, millisecond
Result variable Number Store the specified Date variable unit value
Please, note that the "month" Unit returns a number in the range 0 to 11.

DateSet "Date variable" "Unit" "Value"

Use this action to set an specific unit value in the specified Date variable created by the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to retrieve some unit
Unit String One of these possible values: year, month, date, hour, minute, second, millisecond
Value Number New value ot be set in the specified unit of the Date variable
Please, note that the "month" Unit must be a number in the range 0 to 11.

DateAdd "Date variable" "Key" "Value"

Use this action to mutates the specified Date variable by adding time. The Date variable must be firstly created with the NewDate action. If you want to subtract time use the DateSubtract action.

// [MyDate] store the Now datetime
NewDate "" "" "[MyDate]"

// Add ten days to [MyDate]
DateAdd "[MyDate]" "days" "10"

// Add two hours to [MyDate]
DateAdd "[MyDate]" "hours" "2"
Argument name Argument type Argument value
Date variable Date The Date variable you want to add time
Key String One of these possible values: years, quarters, months, weeks, days, hours, minutes, seconds, milliseconds
Value Number Value to be added into the specified Date variable

DateSubtract "Date variable" "Key" "Value"

Use this action to mutates the specified Date variable by subtracting time. The Date variable must be firstly created with the NewDate action. If you want to add time use the DateAdd action.

// [MyDate] store the Now datetime
NewDate "" "" "[MyDate]"

// Subtract ten days to [MyDate]
DateSubtract "[MyDate]" "days" "10"

// Subtract two hours to [MyDate]
DateSubtract "[MyDate]" "hours" "2"
Argument name Argument type Argument value
Date variable Date The Date variable you want to subtract time
Key String One of these possible values: years, quarters, months, weeks, days, hours, minutes, seconds, milliseconds
Value Number Value to be added into the specified Date variable

DateDiff "Date A variable" "Date B variable" "Unit" "Result variable"

Use this action to Get the difference between the two specified Date variables. The Date variables must be firstly created with the NewDate action.

Argument name Argument type Argument value
Date A variable Date The Date A variable to be compared
Date B variable Date The Date B variable to be compared
Unit String One of these possible values: year, month, day, hour, minute, second, millisecond
Value Number Value to be added into the specified Date variable

DateToIso "Date variable" "Result variable"

Use this action to get the specified Date variable as an ISO8601 string standard. The Date variable must be firstly created with the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to be get
Result variable String The specified Date variable as an ISO8601 string

DateToArray "Date variable" "Result variable"

Use this action to get the specified Date variable as an Array variable which that mirrors the parameters of the Javascript "Date()". The Date variable must be firstly created with the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to be get
Result variable Array The specified Date variable as an Array variable

DateToObject "Date variable" "Result variable"

Use this action to get the specified Date variable as an Object variable containing year, month, day-of-month, hour, minute, seconds, milliseconds. The Date variable must be firstly created with the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to be get
Result variable Object The specified Date variable as an Object variable

DateToUnix "Date variable" "Result variable"

Use this action to get the specified Date variable as the number of milliseconds since the Unix Epoch.. The Date variable must be firstly created with the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to be get
Result variable Number Number of milliseconds since the Unix Epoch

DateToTimestamp "Date variable" "Result variable"

Use this action to get the specified Date variable as an Unix timestamp (the number of seconds since the Unix Epoch). The Date variable must be firstly created with the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to be get
Result variable Number Unix timestamp (the number of seconds since the Unix Epoch)

DateToJSDate "Date variable" "Result variable"

Use this action to convert a Date variable (created with the NewDate action) into a Javascript's Date variable.

This action is useful, for example, to set the value of an Date input control.

Argument name Argument type Argument value
Date variable Date The Date variable to be converted.
Result variable JS Date Javascript Date variable

DateMonthDays "Date variable" "Result variable"

Get the number of days in the current month in the specified Date variable. The Date variable must be firstly created with the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to be get
Result variable Number Days in months in the current Date variable

DateYearIsLeap "Date variable" "Result variable"

Find if the year of the specified Date variable is a leap year or not. The Date variable must be firstly created with the NewDate action.

Argument name Argument type Argument value
Date variable Date The Date variable to be get
Result variable Boolean Store "true" if the year is leap, or "false" when not

DateIsBefore "Date variable A" "Date variable B" "Unit" "Result variable"

Check if a Date variable is before another Date variable. At least the Date variable A argument must be a Date variable created with NewDate action.

The Date variable B argument can be also an string which contains an ISO8601 string confirming the datetime. Such datetime is then compared with the first argument Date variable.
Argument name Argument type Argument value
Date variable A Date The Date variable A to be compared
Date variable B Date|String The Date variable B or a formatted datetime string to be compared
Unit String Optional comparison granularity. One of these possible values: year, month, day, hour, minute, second, millisecond. Leave empty if you do not want any granularity.
Result variable Boolean Store "true" if the Date variable A is before the Date variable B, or "false" when not

DateIsSame "Date variable A" "Date variable B" "Unit" "Result variable"

Check if a Date variable is the same as another Date variable. At least the Date variable A argument must be a Date variable created with NewDate action.

The Date variable B argument can be also an string which contains an ISO8601 string confirming the datetime. Such datetime is then compared with the first argument Date variable.
Argument name Argument type Argument value
Date variable A Date The Date variable A to be compared
Date variable B Date|String The Date variable B or a formatted datetime string to be compared
Unit String Optional comparison granularity. One of these possible values: year, month, day, hour, minute, second, millisecond. Leave empty if you do not want any granularity.
Result variable Boolean Store "true" if the Date variable A is the same than the Date variable B, or "false" when not

DateIsAfter "Date variable A" "Date variable B" "Unit" "Result variable"

Check if a Date variable is after another Date variable. At least the Date variable A argument must be a Date variable created with NewDate action.

The Date variable B argument can be also an string which contains an ISO8601 string confirming the datetime. Such datetime is then compared with the first argument Date variable.
Argument name Argument type Argument value
Date variable A Date The Date variable A to be compared
Date variable B Date|String The Date variable B or a formatted datetime string to be compared
Unit String Optional comparison granularity. One of these possible values: year, month, day, hour, minute, second, millisecond. Leave empty if you do not want any granularity.
Result variable Boolean Store "true" if the Date variable A is after than the Date variable B, or "false" when not

SetOption "Option name" "Option value" "Option type"

Use this action to store some option into the app local storage space. This options are not loss between app executions, which mean that the saved option can later be retrieved in next app executions. You can retrieve a saved option using the GetOption action.

The option name is case sensitive, then it's not the same if you save "name" and "Name" options.
Argument name Argument type Argument value
Option name String The option name you want to store
Option value String The option value you want to store
Option type String Determine the type of the option's value. Possible values are "String" and "Number".

GetOption "Option name" "Result variable"

Use this action to retrieve the value of a previously saved option with the SetOption action.

The option name is case sensitive, then it's not the same if you retrieve "name" and "Name" options.
Argument name Argument type Argument value
Option name String The option name you want to retrieve
Result variable String The variable to store the retrieve option value or an empty string if the option doesn't exists.

RemoveOption "Option name"

Use this action to remove a previously saved option with the SetOption action. The app local storage space available is around 5 MB, then it's a good practice to remove options which you don't need anymore. If you want to remove all the saved options use the ClearOptions action.

The option name is case sensitive, then it's not the same if you want to remove "name" and "Name" options.
Argument name Argument type Argument value
Option name String The option name you want to remove

ClearOptions

Use this action to clear all the previously saved options. This action no requires any argument. If you want to remove an specific option use the RemoveOption action instead.

SetCookie "Key" "Value" "Days"

Use this action to store a new cookie for your app. We can use the local storage to store app data with the SetOption action, but maybe a cookie can be more convenient in some scenarios. To retrieve a previously set cookie remember we have the GetCookie action.

Argument name Argument type Argument value
Key String The cookie name to be stored
Value String The cookie value to be stored
Days String Number of days to store the cookie after expire it. Leave empty to create a session cookie, which are expired when the user close the browser.

GetCookie "Key" "Result variable"

Use this action to retrieve the value of a previously established cookie with the SetCookie action.

Argument name Argument type Argument value
Key String The cookie name to be retrieved
Result variable String The variable name to store the cookie value

RemoveCookie "Key"

Use this action to remove a previously established cookie with the SetCookie action.

Argument name Argument type Argument value
Key String The cookie name to be removed

ClearCookies

Use this action to remove all the cookies previously established with the SetCookie action.

IsCookiesEnabled "Result variable"

Find if the cookies are enabled and ready to use by our app.

Argument name Argument type Argument value
Result variable String The variable name to store "true" if the cookies are availables or "false" when not.

Alert "Message title" "Message text"

Use this action to show a native alert box from your app. Most platforms support this action, however, some of them can fallback to the default "alert" action of the web browsers, which is less customizable and in fact only show the message text: the title is ignored.

Argument name Argument type Argument value
Message title String The alert message title
Message text String The alert message text
This action can use the Dialogs Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems.

Confirm "Message title" "Message text" "Callback"

Use this action to show a native confirm dialog from your app. Most platforms support this action, however, some of them can fallback to the default "confirm" action of the web browsers, which is less customizable and in fact only show the message text: the title is ignored.

Argument name Argument type Argument value
Message title String The dialog message title
Message text String The dialog message text
Callback String A mandatory app function name to be called when the user close the confirm dialog. The function must have one argument, which is "true" if the user confirm the dialog, or "false" if the user cancel the dialog.
This action can use the Dialogs Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems.

Prompt "Message title" "Message text" "Default value" "Callback"

Use this action to show a native prompt dialog from your app. Most platforms support this action, however, some of them can fallback to the default "prompt" action of the web browsers, which is less customizable and in fact only show the message text and the default value: the title is ignored.

Argument name Argument type Argument value
Message title String The dialog message title
Message text String The dialog message text
Default value String An optional value to be show into the dialog input box at the start
Callback String A mandatory app function name to be called when the user close the confirm dialog. The function must have two arguments. The first contains "true" if the user confirm the dialog, or "false" if the user cancel the dialog. If the first argument contains "true" then the second argument contains the dialog input value, that is, what the user provide to us
This action can use the Dialogs Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems.

AlertBox "Text" "Kind"

This action show an HTML based modal dialog with the message text and the specified background color, which is determined by the alert kind argument.

Argument name Argument type Argument value
Text String The alert message text
Kind String One of these values: primary, success, info, warning or danger. "info" by default
Take a look at the MessageBox app sample included by App Builder in order to learn how to use this action.

MessageBox "Header" "Content" "Buttons" "Kind" "Callback"

Use this action to show a more complete HTML modal message box than with the AlertBox action. This action allow us to specify optional message header, message kind and function callback.

Argument name Argument type Argument value
Header String Optional header for the message box
Content String The properly said content of the message box
Buttons String One or more button labels (separated by the "|" pipe character). "Ok" by default
Kind String One of these values: primary, success, info, warning or danger. "info" by default
Callback String An optional app function name to be called when the user press a button of the message box. The function must have one argument, and, this argument contains 1 if the user press the first button, 2 if the user press the second button, 3 for the third button and so on.
Take a look at the MessageBox app sample included by App Builder in order to learn how to use this action.

InputBox "Header" "Buttons" "Default" "Kind" "Callback"

Use this action to show an HTML modal input box to require from the user certain input value.

Argument name Argument type Argument value
Header String Optional header for the input box, for example, "Write your name"
Buttons String One or more button labels (separated by the "|" pipe character). "Ok" by default
Default String An optional default value for the input box
Kind String One of these values: primary, success, info, warning or danger. "info" by default
Callback String An optional app function name to be called when the user press a button of the message box. The function must have two arguments. The first argument contains 1 if the user press the first button, 2 if the user press the second button, 3 for the third button and so on. The second argument store the value of the input box, that is, what the user write into the input box.
Take a look at the InputBox app sample included by App Builder in order to learn how to use this action.

Beep "Number of times"

Use this action to play a beep the specified number of times. The beep sound differs between platforms. If your app is running on a web browser the times argument are ignored. In fact the times argument are used, but the sound are not play in a perfectly sequence.

Argument name Argument type Argument value
Number of times Number The number of beep to be played
This action can use the Dialogs Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems.

Vibrate "Milliseconds"

Use this action to perform a vibration. In the supported platforms this action cause the device vibration. If your app run in a web browser, instead of a vibration, this action show a "vibration" using certain CSS animation.

Argument name Argument type Argument value
Milliseconds Number Number of milliseconds to vibrate
This action can use the Vibration Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (the vibration are replaced by certain CSS animation).

Math "Math expression" "Result variable"

Use this action to get the result of a math expression evaluation. You can use the ^ (exponentiation), *, /, and % (multiplication, division, and remainder), and finally +, -, operators in that precedence.

Math "1 + 1" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "2".

For advanced users, you can also use several functions inside this action Math expression argument.

For example, all of the below action calls are valid:

Math "1.5 + 1.5" "[Result]"

Math "[Variable] + 1.5" "[Result]"

Math "round([Variable]) + 1.5" "[Result]"

Math "ceil([Variable] + 1.5)" "[Result]"
Argument name Argument type Argument value
Math expression String The math expression to be evaluated
Result variable String The variable name to store the math expression result

Abs "Number" "Result variable"

This action get the absolute value of a number.

Abs "-7.25" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "7.25".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number, representing the absolute value of the specified number

Dec "Variable"

This action decrement by one the specified numeric variable.


SetVar "[A]" "123" "Number"

Dec "[A]"

AlertBox "[A]" "info"

The above AlertBox message show to us "122".

Argument name Argument type Argument value
Variable String The numeric variable name to be decremented.

Inc "Variable"

This action increment by one the specified numeric variable.


SetVar "[A]" "123" "Number"

Inc "[A]"

AlertBox "[A]" "info"

The above AlertBox message show to us "124".

Argument name Argument type Argument value
Variable String The numeric variable name to be incremented.

Exp "Number" "Result variable"

This action get the value of Ex, where E is Euler's number and x is the number passed as the number argument.

Exp "1" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "2.718281828459045".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number, representing Ex

Pow "Base number" "Exponent number" "Result variable"

This action get the value of x to the power of y (xy).

Pow "4" "3" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "64".

Argument name Argument type Argument value
Base number Number The base number
Exponent number Number Number to be passed
Result variable String The variable name to store a number, representing the value of x to the power of y (xy)

Log "Number" "Result variable"

This action get the natural logarithm (base E) of a number.

Log "2" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "0.6931471805599453".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number, representing the natural logarithm of a specified number

Cos "Number" "Result variable"

This action get the cosine of a number.

Cos "3" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "-0.9899924966004454".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number, from -1 to 1, representing the cosine of an angle

Acos "Number" "Result variable"

This action get the arccosine of a number as a value value between 0 and PI radians.

Acos "0.5" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "1.0471975511965979".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number, from 0 to PI, or NaN if the value is outside the range of -1 to 1

Sin "Number" "Result variable"

This action get the sine of a number.

Sin "3" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "0.1411200080598672".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number, from -1 to 1, representing the sine of an angle

Asin "Number" "Result variable"

This action get the arcsine of a number as a value between -PI/2 and PI/2 radians.

Asin "0.5" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "0.5235987755982989".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number, from -PI/2 to PI/2

Tan "Number" "Result variable"

This action get the tangent of a number (angle).

Tan "90" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "-1.995200412208242".

Argument name Argument type Argument value
Number Number Number to be passed representing an angle (in radians)
Result variable String The variable name to store a number, representing the tangent of an angle

Atan "Number" "Result variable"

This action get the arctangent of a number.

Atan "2" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "1.1071487177940904".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number, from -PI/2 to PI/2

Atan2 "Y coordinate" "X coordinate" "Result variable"

This action get the arctangent of the quotient of its arguments, as a numeric value between PI and -PI radians.

Atan2 "8" "4" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "1.1071487177940904".

Argument name Argument type Argument value
Y coordinate Number Number representing the Y coordinate
X coordinate Number Number representing the X coordinate
Result variable String The variable name to store a number, from PI to -PI

Sqrt "Number" "Result variable"

This action get the square root of a number.

Sqrt "9" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "3".

Argument name Argument type Argument value
Number Number Number to be passed
Result variable String The variable name to store a number square root

Round "Number" "Result variable"

This action rounds the specified number to the nearest integer and place the result in the specified result variable.

Round "2.49" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "2".

2.49 will be rounded down, 2.5 will be rounded up.
Argument name Argument type Argument value
Number Number Number to be rounded
Result variable String The variable name to store the rounded number

Ceil "Number" "Result variable"

This action rounds the specified number upwards to the nearest integer and place the result in the specified result variable.

Ceil "2.49" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "3".

Argument name Argument type Argument value
Number Number Number to be rounded
Result variable String The variable name to store the rounded number

Floor "Number" "Result variable"

This action rounds the specified number downwards to the nearest integer and place the result in the specified result variable.

Floor "2.49" "[Result]"

AlertBox "[Result]" "info"

The above AlertBox message show to us "2".

Argument name Argument type Argument value
Number Number Number to be rounded
Result variable String The variable name to store the rounded number

Random "Result variable"

This action generates a random number between zero and 1^10 (10000000000) inclusives and put it into the specified result variable.

Argument name Argument type Argument value
Result variable String The variable name to store the random number
If you wanted a random number from a range of numbers the RandomEx action is for you.

RandomEx "Min number" "Max number" "Result variable"

This action generates a random number between the specified min number and max number inclusives and put it into the specified result variable.

Argument name Argument type Argument value
Min number Number The mininum number in the range
Max number Number The maximum number in the range
Result variable String The variable name to store the random number
If you wanted just a random number maybe the Random action can be useful to you.

If "First statement" "Operator" "Second statement"

Use this action to control the workflow of your App Builder scripts. For example, supose we want to salute an specific user in our app. Then, if the user name is "Peter", we salute to Peter and do nothing in any other case.

If "[UserName]" "==" "Peter"
  AlertBox "Hello Peter!" "info"  
EndIf

The above AlertBox action only being executed if the variable "[UserName]" contains the word "Peter". In any other case the "AlertBox" are not executed.

The first and second statements can be an string or a number. The operator must be one of this possible values:

Operator Mean
== First statement is equal than the second
=== First statement is equal valud and variable type than the second
!= First statement is not equal than the second
!== First statement is not equal in valur or variable type than the second
> First statement is greater than the second
< First statement is less than the second
>= First statement is greater than or equal to the second
<= First statement is less than or equal to the second
You must use the EndIf action in order to properly close an "If" action, an Else action or an ElseIf action.
If you wanted to evaluate more than one condition at the same time the IfEx action exists at your disposition.
Argument name Argument type Argument value
First statement Mixed The first statement to be compared with the second one
Operator String The operator you want to use in the statements comparison
Second statement Mixed The second statement to be compared with the first one

IfEx "Condition(s)"

This action is a little more advanced than the If action and allow us to evaluate more than one condition at the same time. You can use the same comparison operators than with the If action and compare the conditions using the below logical operators.

Logical operators Mean
&& AND
|| OR
! NOT

Here we go with some "IfEx" action samples:

SetVar "[A]" "1" "Number"
SetVar "[B]" "2" "Number"
SetVar "[C]" "3" "Number"

IfEx "([A] >= [B]) && ([A] >= [C])"
  AlertBox "A is greater than B and greater than C" "info"
Else
  AlertBox "A is less than B and less than C" "info"
EndIf
SetVar "[A]" "" "String"
SetVar "[B]" "" "String"
SetVar "[Force]" "false" "String"

IfEx "( ([A] != '') && ([B] != '') ) || ([Force] == 'true')"
  AlertBox "A and B are not empties or Force is true" "info"
Else
  AlertBox "A and B are empties or force is not true" "info"
EndIf
If you wanted to evaluate just one condition at the same time the If action is for you.
Argument name Argument type Argument value
Condition(s) String The statements of the condition(s) to be evaluated

Else

Use this action when you want a workflow bifurcation after an If action or an ElseIf action. This action doesn't require any argument, but need to be used only in conjunction the refered actions and never alone.

As an example, consider the code sample of the "If" action, in which we salute to "Peter" if it's the current user name of our app. Then this code:

If "[UserName]" "==" "Peter"
  AlertBox "Hello Peter!" "info"  
Else
  AlertBox "Hello you!" "info"  
EndIf

In the above script, if the variable "[UserName]" is contains the string "Peter", the first AlertBox action being executed and the message "Hello Peter!" appear to us. However, if the variable "[UserName]" is not equal to "Peter", then the second "AlertBox" is being executed and we receive the message "Hello you!", since we use the "Else" action.

You must use the EndIf action in order to properly close an "If" action, an "Else" action or an ElseIf action.

ElseIf "First statement" "Operator" "Second statement"

This action is very similar to the If action, and must be used inside and "If" block, in order to provide another possible alternative to the script workflow. For example, considerer the bellow sample script:

If "[UserName]" "==" "Peter"
  AlertBox "Hello Peter!" "info"  
ElseIf "[UserName]" "==" "James"
  AlertBox "Hello James!" "info"  
Else
  AlertBox "Hello you!" "info"  
EndIf

As you can see above we use a combination of the If action, the "ElseIf" action and the Else action. If the variable "[UserName]" contains the string "Peter", then the right AlertBox action being executed and we receive the message "Hello Peter!". However, if the variable "[UserName]" contains "James", we receive the message "Hello James!", and, if any other case, we receive the message "Hello you!".

The first and second statements can be an string or a number. The operator must be one of this possible values:

Operator Mean
== First statement is equal than the second
=== First statement is equal valud and variable type than the second
!= First statement is not equal than the second
!== First statement is not equal in valur or variable type than the second
> First statement is greater than the second
< First statement is less than the second
>= First statement is greater than or equal to the second
<= First statement is less than or equal to the second
You must use the EndIf action in order to properly close an "ElseIf" action or an Else action.
Argument name Argument type Argument value
First statement Mixed The first statement to be compared with the second one
Operator String The operator you want to use in the statements comparison
Second statement Mixed The second statement to be compared with the first one

EndIf

Use this action to close an script block starting by an If action, an ElseIf action or an Else action. This action doesn't require any argument, but need to be used only in conjunction the refered actions and never alone.

If you write something like the bellow script code:

If "[UserName]" "==" "Peter"
  AlertBox "Hello Peter!" "info"  

... an error probably occur. We need to close the If action with their pair "EndIf":

If "[UserName]" "==" "Peter"
  AlertBox "Hello Peter!" "info"  
EndIf
You must use the EndIf action in order to properly close an If action, but also an Else action or an ElseIf action.

While "First statement" "Operator" "Second statement"

Use this action to loop through a block of code as long as a specified condition is true. Be sure that you provide a way to get out of the while or use the Break action in order to exit. For example, supose the below script code:

SetVar "[Text]" "" "String"
StrLen "[Text]" "[TextLen]"

While "[TextLen]" "<" "10"
  SetVar "[Text]" "[Text]A" "String"
  StrLen "[Text]" "[TextLen]"
EndWhile

AlertBox "[Text]" "info"

First we set a variable "[Text]" as an empty string. Then we retrieve the length of such string, which is zero at the first moment. Then we prepare a "While" action in order to execute the next code until the "[TextLen]" variable is less than "10".

After that we append an "A" character to the "[Text]" variable, and, again we get the length of the "[Text]" variable. The code is executed over and over again until our condition is reached (until the "[TextLen]" variable is less than "10", then we exit the while and the AlertBox action show us a message like "AAAAAAAAAA", in other words, "10" A.

The first and second statements can be an string or a number. The operator must be one of this possible values:

Operator Mean
== First statement is equal than the second
!= First statement is not equal than the second
> First statement is greater than the second
< First statement is less than the second
>= First statement is greater than or equal to the second
<= First statement is less than or equal to the second
You must need to assert that your condition allow to exit the while in some moment and/or use the Break action to exit the while, in order to avoid an "infinite" while, which can cause problems in your app.
A "While" script code block need to be closed by using the EndWhile action.
Argument name Argument type Argument value
First statement Mixed The first statement to be compared with the second one
Operator String The operator you want to use in the statements comparison
Second statement Mixed The second statement to be compared with the first one

EndWhile

You need to use this action when before start a code block with the While action. This action doesn't require any argument. If you write something like the bellow script code:

SetVar "[Text]" "" "String"
StrLen "[Text]" "[TextLen]"

While "[TextLen]" "<" "10"
  SetVar "[Text]" "[Text]A" "String"
  StrLen "[Text]" "[TextLen]"

AlertBox "[Text]" "info"

... an error probably occur. We need to close the While action with their pair "EndWhile":

SetVar "[Text]" "" "String"
StrLen "[Text]" "[TextLen]"

While "[TextLen]" "<" "10"
  SetVar "[Text]" "[Text]A" "String"
  StrLen "[Text]" "[TextLen]"
EndWhile

AlertBox "[Text]" "info"

Loop "Start number" "End number" "Loop variable"

Use this action to perform a certain number of block code loops, starting and end with the specified values. You can use the Break action in order to get out the loop in every moment. For example, supose an script code like the below:

SetVar "[Text]" "" "String"

Loop "1" "10" "[LoopCount]"
  SetVar "[Text]" "[Text]A" "String"
EndLoop

AlertBox "[Text]" "info"

First we set a variable "[Text]" as an empty string. Then we prepare a "Loop" action in order to execute their block code 10 times: from 1 to 10. Finally the AlertBox action show us a message like "AAAAAAAAAA", in other words, "10" A. Note we no use the "[LoopCount]" variable, which are incremented in every loop, containing "1", "2", "3", "4", etc., and finally "10".

After that we append an "A" character to the "[Text]" variable, and, again we get the length of the "[Text]" variable. The code is executed over and over again until our condition is reached (until the "[TextLen]" variable is less than "10", then we exit the while and the AlertBox action show us a message like "AAAAAAAAAA", in other words, "10" A.

A "Loop" script code block need to be closed by using the EndLoop action.
Argument name Argument type Argument value
Start number Number The number in which our loop start
End number Number The number in which our loop end
Loop variable String The variable name in which store the loop counter

EndLoop

You need to use this action when before start a code block with the Loop action. This action doesn't require any argument. If you write something like the bellow script code:

SetVar "[Text]" "" "String"

Loop "1" "10" "[LoopCount]"
  SetVar "[Text]" "[Text]A" "String"

AlertBox "[Text]" "info"

... an error probably occur. We need to close the Loop action with their pair "EndLoop":

SetVar "[Text]" "" "String"

Loop "1" "10" "[LoopCount]"
  SetVar "[Text]" "[Text]A" "String"
EndLoop

AlertBox "[Text]" "info"

Continue

This action can be used inside a While action block or a Loop action block to exit the current iteration but continue with the next one. This action doesn't require any argument.

If you want to exit the current iteration can use the Break action.

Break

This action can be used inside a While action block or a Loop action block to inmediatly exit the while or the loop. This action doesn't require any argument.

If you want to exit the current iteration but continue with the next one can use the Continue action.

Sleep "Milliseconds"

This action cause the sleep of the app script for the specified milliseconds. Use this action carefully since they freeze your apps the specified milliseconds.

Argument name Argument type Argument value
Milliseconds Number Milliseconds to be sleeped

Return "Return value" "Variable type"

This action can be used in the app functions App Builder script to provide a JavaScript result when needed.

Argument name Argument type Argument value
Return value Mixed The value to be returned by the function
Variable type String|Number|Boolean The evaluation type of the returned value

Exit

The Exit action can be used to exit the current script block, without execute any next possible actions.

DeviceId "Result variable"

Use this action to retrieve the ID of the device in which your app is running. The ID depend on every platform in which your app are running, and may are not unique in some of these platforms. If your app is running on a web browser this action return the web browser user agent as is defined in the "navigator" JavaScript variable.

Argument name Argument type Argument value
Result variable String The variable name to store the device information
This action can use the Device Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (use web browser provided information).

DeviceModel "Result variable"

Use this action to retrieve the name of the device model or product in which your app is running. The value is set by the device manufacturer and may be different across versions of the same product. If your app is running on a web browser this action return the web browser code name as is defined in the "navigator" JavaScript variable.

Argument name Argument type Argument value
Result variable String The variable name to store the device information
This action can use the Device Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (use web browser provided information).

DeviceVersion "Result variable"

Use this action to retrieve operating system version in which your app is running. If your app is running on a web browser this action return the web browser version as is defined in the "navigator" JavaScript variable.

Argument name Argument type Argument value
Result variable String The variable name to store the device information
This action can use the Device Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (use web browser provided information).

DevicePlatform "Result variable"

Use this action to retrieve operating system name in which your app is running. If your app is running on a web browser this action return the web browser platform as is defined in the "navigator" JavaScript variable.

Argument name Argument type Argument value
Result variable String The variable name to store the device information
This action can use the Device Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (use web browser provided information).

DeviceSerial "Result variable"

Use this action to retrieve the device's hardware serial in which your app is running, if available. If your app is running on a web browser this action return an empty string.

Argument name Argument type Argument value
Result variable String The variable name to store the device's hardware serial.
This action can use the Device Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (use web browser provided information).

DeviceIsVirtual "Result variable"

Use this action to check if your application is running on a device's emulator. If your app is running on a web browser this action return "false".

Argument name Argument type Argument value
Result variable String The variable name to store if the application is running on a device's emulator or not.
This action can use the Device Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (use web browser provided information).

OrientationLock "Orientation"

Use this action to set an orientation for the device in runtime. See also OrientationUnlock.

Take a look at the Orientation application sample included in App Builder in order to view this action working.
Argument name Argument type Argument value
Orientation String One of these values:
Value Description
portrait-primary The orientation is in the primary portrait mode.
portrait-secondary The orientation is in the secondary portrait mode.
landscape-primary The orientation is in the primary landscape mode.
landscape-secondary The orientation is in the secondary landscape mode.
portrait The orientation is either portrait-primary or portrait-secondary (sensor).
landscape The orientation is either landscape-primary or landscape-secondary (sensor).
any Orientation is unlocked - all orientations are supported.
This action can use the Orientation Cordova plugin. See app options for more information.

OrientationUnlock

Use this action to unlock the possible fixed orientation of the device. See also OrientationLock.

Take a look at the Orientation application sample included in App Builder in order to view this action working.
This action can use the Orientation Cordova plugin. See app options for more information.

TimerStart "Timer name"

Use this action to start the execution of the specified Timer control. Once you execute this action the Timer control Interval event are fired in the predefined interval.

Argument name Argument type Argument value
Timer name String Name of the Timer control you want to start

TimerStop "Timer name"

Use this action to stop the execution of the specified Timer control. Once you execute this action the Timer control Interval event are no more fired.

Argument name Argument type Argument value
Timer name String Name of the Timer control you want to stop

TimerInterval "Timer name" "Timer interval"

Use this action to change programatically the interval of the specified Timer control. Note the interval change doesn't take effect if Timer is running.

Argument name Argument type Argument value
Timer name String Name of the Timer control you want to set their interval
Timer interval Number Number of milliseconds for the Timer interval

WatcherStart "Watcher name"

Use this action to start the execution of the specified Watcher control. Once you execute this action the Watcher control Change event are fired when the associated Watcher variable has changed.

Argument name Argument type Argument value
Watcher name String Name of the Watcher control you want to start

WatcherStop "Watcher name"

Use this action to stop the execution of the specified Watcher control. Once you execute this action the Watcher control Change event are no more fired.

Argument name Argument type Argument value
Watcher name String Name of the Watcher control you want to stop

WatcherVariable "Watcher name" "Variable name"

Use this action to change programatically the variable watched by the specified Watcher control. Note that after you change the variable the Watcher control is automatically started.

Argument name Argument type Argument value
Watcher name String Name of the Watcher control you want to set their variable
Variable name String The name of the variable to be observed by the Watcher control

ShareByControl "Share name"

Use this action in combination with a Share control to share an URL or image and other information in various social web sites. For more information and details see the Share control help.

We have an alternative way by use the ShareByObject action.
Argument name Argument type Argument value
Share name String Name of the Share control you want to use

ShareByObject "Object name"

Use this action in combination with Javascript object variable to share an URL or image and other information in various social web sites.

We have an alternative way by use the ShareByControl action, which maybe is more easy to use if we can establish the share information in designtime.
Argument name Argument type Argument value
Object name String Object variable you want to use

The object variable you must to provide must have the optional or mandatory properties described in the below table. Note that properties names are in lowercase.

Property name Property type Property value
url String Mandatory. The URL we want to share.
via String Optional. For some sites like Twitter.
text String Optional. For some sites shared title or description.
media String Mandatory for Pinterest, optional for Tumblr. URL of an image.
caption String Mandatory for Tumblr. A caption for the media image.
hashtags String Optional. Used for Twitter. Comma separated tags/words.
provider String Optional. One of these values: vk, digg, buffer, reddit, tumblr, twitter, meneame, linkedin, facebook, google+, pinterest, delicious or stumbleupon. "facebook" by default.
width String Optional. Popup width. Default 500.
height String Optional. Popup height. Default 500.
toolbar String Optional. Popup toolbar. "yes" or "no". Default "yes".
resizable String Optional. Popup resizable. "yes" or "no". Default "yes".
scrollbars String Optional. Popup scrollbars. "yes" or "no". Default "yes".

The most simple way to call this action is:

NewObject "ShareInfo"
ObjectSetProp "ShareInfo" "url" "https://www.davidesperalta.com"
ShareByObject "ShareInfo"

... which share the App Builder URL in Facebook. We can set other object variable properties in order to use more information and/or when use other providers.

SimpleGet "Request URL" "Result variable"

Use this action to perform an HTTP GET request and retrieve the response in the specified result variable. Note this action doesn't provide information about the progress or the task, for example. On the other hand the use of the action is very simple and allow us, for example, to load internal app resources into certain variables in a quick way.

This action is executed asynchronously and therefore the HTTP response may is not available just after the action execution.
Take a look at the App Builder included app samples, in which this action is used to made an app translation in various languages.
If you wanted more control over the HTTP request, take a look at the HTTP Client control and the related Http* available actions.
Argument name Argument type Argument value
Request URL String URL to use in the performing HTTP request
Result variable String Variable name in which store the HTTP response

SimplePost "Request URL" "Result variable"

Use this action to perform an HTTP POST request and retrieve the response in the specified result variable. Note this action doesn't provide information about the progress or the task, for example. On the other hand the use of the action is very simple and allow us, for example, to perform more or less simple HTTP POST in a quick way.

This action is executed asynchronously and therefore the HTTP response may is not available just after the action execution.
Take a look at the App Builder included app samples, in which this action is used to send information to a server from various app Inputs controls.
If you wanted more control over the HTTP request, take a look at the HTTP Client control and the related Http* available actions.
Argument name Argument type Argument value
Request URL String URL to use in the performing HTTP request
Post data String Key/value pairs of data to send in the HTTP request.
Result variable String Variable name in which store the HTTP response

HttpExecute "HTTP Client"

This action perform the execution of the request prepared in the specified HTTP Client control. When this action is executed you can expect that one, the success or the error event of the HTTP client must be fired when the response (success or error) are received.

Take a look at the App Builder included Http Client app sample, in which this action is used along other Http* actions.
This action is executed asynchronously and therefore the HTTP response may is not available just after the action execution.
If you wanted a quick way to make an HTTP POST or HTTP GET requests, take a look at the SimpleGet and SimplePost actions, respectivelly.
Argument name Argument type Argument value
HTTP Client String HTTP Client control name

HttpSetUrl "HTTP Client" "Request URL"

This action set the request URL for the specified HTTP Client control. You can establish a request URL from the HTTP Client control URL property, but can use this action to set a new one if you wanted.

Take a look at the App Builder included Http Client app sample, in which this action is used along other Http* actions.
Argument name Argument type Argument value
HTTP Client String HTTP Client control name
Request URL String The URL to perform the HTTP request

HttpSetMethod "HTTP Client" "Request method"

This action set the request HTTP method for the specified HTTP Client control. You can establish a request method from the HTTP Client control Method property, but can use this action to set a new one if you wanted.

Take a look at the App Builder included Http Client app sample, in which this action is used along other Http* actions.
Argument name Argument type Argument value
HTTP Client String HTTP Client control name
Request method String An HTTP method: GET, POST, etc.

HttpSetData "HTTP Client" "Key name" "Key value"

This action add data to the specified HTTP Client control, in order to be send when you execute the HTTP request. You can use this action more than one time, in order to add various key/value pairs.

Take a look at the App Builder included Http Client app sample, in which this action is used along other Http* actions.
Argument name Argument type Argument value
HTTP Client String HTTP Client control name
Key name String An unique name for your HTTP request data key
Key value Mixed The value associated with the specified data key

HttpClearData "HTTP Client"

This action clear all previously added data into the specified HTTP Client control.

Take a look at the App Builder included Http Client app sample, in which this action is used along other Http* actions.
Argument name Argument type Argument value
HTTP Client String HTTP Client control name

HttpSetHeader "HTTP Client" "Header name" "Header value"

Set an optional HTTP header for the specified HTTP Client control.

Argument name Argument type Argument value
HTTP Client String HTTP Client control name
Header name String The HTTP header name to be set
Header value String The HTTP header value to be set

HttpClearHeaders "HTTP Client"

Clear all previously established HTTP headers in the specified HTTP Client control.

Argument name Argument type Argument value
HTTP Client String HTTP Client control name

HttpStatus "HTTP Client" "Result variable"

This action retrieve the response status code of the specified HTTP Client control and put it into the specified result variable. This action must be executed after the success or error events of the HTTP Client are fired, otherwise the result variable contains a "zero".

Take a look at the App Builder included Http Client app sample, in which this action is used along other Http* actions.
Argument name Argument type Argument value
HTTP Client String HTTP Client control name
Result variable String Variable name in which store the HTTP request status code
If you receive an status equals to "0" (zero) this generally mean the HTTP response is empty. Remember you need to enable CORS (Cross-Origin Resource Sharing) in your server. Take a look at this website, which show us how to enable CORS in various kind of servers and scripting languages like PHP.

HttpStatusText "HTTP Client" "Result variable"

This action retrieve the response status text of the specified HTTP Client control and put it into the specified result variable. This action must be executed after the success or error events of the HTTP Client are fired, otherwise the result variable contains an empty string.

Take a look at the App Builder included Http Client app sample, in which this action is used along other Http* actions.
Argument name Argument type Argument value
HTTP Client String HTTP Client control name
Result variable String Variable name in which store the HTTP request status text

HttpResponse "HTTP Client" "Result variable"

This action retrieve the response of the specified HTTP Client control and put it into the specified result variable. This action must be executed after the success or error events of the HTTP Client are fired, otherwise the result variable contains an empty string.

Take a look at the App Builder included Http Client app sample, in which this action is used along other Http* actions.
Argument name Argument type Argument value
HTTP Client String HTTP Client control name
Result variable String Variable name in which store the HTTP response

PusherConnect "Pusher name"

Use this action to connect and bind to the channel and event of the specified Pusher control control. After execute this action we are ready to receive push notifications/messages from a server.

Argument name Argument type Argument value
Pusher name String Pusher control name

PusherDisconnect "Pusher name"

Use this action to disconnect and unbind from the channel and event of the specified Pusher control control. After execute this action we no longer receive push notifications/messages from a server.

Argument name Argument type Argument value
Pusher name String Pusher control name

SocketOpen "WebSocket name"

Open the client/server connection in the specified WebSocket control. You must execute this action before other Socket* actions. After this action is executed the WebSocket control events can be fired.

Take a look at the App Builder included WebSocket app sample, in which this action is used along other Socket* actions.
Argument name Argument type Argument value
WebSocket name String WebSocket control name

SocketSend "WebSocket name" "Message"

Open the client/server connection in the specified WebSocket control. You must execute this action after SocketOpen action.

Take a look at the App Builder included WebSocket app sample, in which this action is used along other Socket* actions.
Argument name Argument type Argument value
WebSocket name String WebSocket control name
Message String The message to be send to the server

SocketClose "WebSocket name"

Close the client/server connection in the specified WebSocket control. You must execute this action after SocketOpen action.

Take a look at the App Builder included WebSocket app sample, in which this action is used along other Socket* actions.
Argument name Argument type Argument value
WebSocket name String WebSocket control name

WebCamCheck "WebCam name"

Check for the permissions required to use the WebCam control.

Take a look at the App Builder included WebCam app sample, in which this action is used along other WebCam* actions.
Argument name Argument type Argument value
WebCam name String WebCam control name

WebCamStart "WebCam name"

Start the reproduction in the specified WebCam control.

Take a look at the App Builder included WebCam app sample, in which this action is used along other WebCam* actions.
Argument name Argument type Argument value
WebCam name String WebCam control name

WebCamShot "WebCam name" "Result variable"

Get a Base64 representation of an imaged captured from the specified WebCam control.

Take a look at the App Builder included WebCam app sample, in which this action is used along other WebCam* actions. Note how we can directly assign the Base64 representation into an Image control "src" attribute.
Argument name Argument type Argument value
WebCam name String WebCam control name
Result variable String Variable name in which the Base64 string must be saved

MediaPlay "Media Player"

Use this action to start the media reproduction at the specified MediaPlayer control.

Argument name Argument type Argument value
Media player String The name of a media player control

MediaPause "Media Player"

Use this action to pause the media reproduction at the specified MediaPlayer control.

Argument name Argument type Argument value
Media player String The name of a media player control

MediaStop "Media Player"

Use this action to stop the media reproduction at the specified MediaPlayer control.

Argument name Argument type Argument value
Media player String The name of a media player control

MediaProperty "Media Player" "Property name" "Result variable"

Use this action to retrieve information about the specified MediaPlayer control. The retrieved information are then stored in the specified result variable. You can use this action to retrieve various properties of the media player, just take a look below at the "Property name" argument.

Argument name Argument type Argument value
Media player String The name of a media player control
Property name String Property name to be retrieved. See the below table
Result variable String Name of the variable to store the retrieved information

The "Property name" argument can be on of these possible values:

Property name Returned value
isReady "true" if the media player is ready to use or "false" when not
isBuffering "true" if the media player is buffering media or "false" when not
isCompleted "true" if the media player has been completed or "false" when not
isFullScreen "true" if the media player is in full screen or "false" when not
currentState One of these values: "play", "pause" or "stop"
currentTime The time in milliseconds of the media reproduction
totalTime The total time in milliseconds of the media file
timeLeft The milliseconds of the media time left
volume The percentage (0 to 100) of the media player volume

MediaSeekPercent "Media Player" "Percentage"

Use this action to seek the reproduction position of the specified MediaPlayer control to the specified percentage.

Argument name Argument type Argument value
Media player String The name of a media player control
Media player Number Percentage value from 0 to 100

MediaSeekSeconds "Media Player" "Seconds"

Use this action to seek the reproduction position of the specified MediaPlayer control to the specified seconds.

Argument name Argument type Argument value
Media player String The name of a media player control
Media player Number Number of seconds to set the position

MediaSetVolume "Media Player" "Percentage"

Use this action to set the volume level of the specified MediaPlayer control to the specified percentage.

Argument name Argument type Argument value
Media player String The name of a media player control
Media player Number Percentage value from 0 to 100

MediaFullScreen "Media Player"

Use this action to toggle the full screen state of the specified MediaPlayer control.

Argument name Argument type Argument value
Media player String The name of a media player control

MediaSetSource "Media Player" "OGG source" "MP4 source" "Webm source" "3GP source"

Use this action to set the media source files to the specified MediaPlayer control. You can use one or more sources URL to the differents media files format. Think that the media player control use the supported media file format depending on the platform in which your app is running.

Argument name Argument type Argument value
Media player String The name of a media player control
OGG source String URL for the OGG source file format
MP4 source String URL for the MP4 source file format
Webm source String URL for the Webm source file format
3GP source String URL for the 3GP source file format

MediaShowControls "Media Player"

Use this action to show the default controls (play, pause, stop, etc.) of a MediaPlayer control. Note that the designtime "Controls" variable of the MediaPlayer control must be "true"in order to allow this action to work.

Argument name Argument type Argument value
Media player String The name of a media player control

MediaHideControls "Media Player"

Use this action to hide the default controls (play, pause, stop, etc.) of a MediaPlayer control. Note that the designtime "Controls" variable of the MediaPlayer control must be "true"in order to allow this action to work.

Argument name Argument type Argument value
Media player String The name of a media player control

MediaSetSubtitle "Media Player" "File URL" "Language code"

Use this action to set a subtitle for the MediaPlayer control control's video source.

Argument name Argument type Argument value
Media player String The name of a media player control
File URL String URL of the VTT file to be used.
Language code String A "BCP 47" language code, for example: "en", "es", "de"...

WebExtSendMessage "Message" "Callback"

This action is only available when our application is deployed as a WebExtension for the modern browsers. We can use this action in order to communicate some message to our WebExtension content script, which is executed in the context of the current browser's page. Once we call to this action the app WebExtContent event is fired and therefore we can do whatever we wanted. Please carefully see the WebExtContent event reference.

Argument name Argument type Argument value
Message Mixed The message we want to send to the WebExtension content script. This variable can store virtually anything: an string, an object, etc.
Callback String This argument can store the name of an app's function to be called once the message has been send. This callback is completely optional.
See the WebExtension app sample in order to take a look at how works the related events and this action in particular.

PlaySound "MP3 source" "OGG source"

Use this action to simply play a sound.

If need a little more control remember you have the MediaPlayer control at your disposition.
You can stop a sound started with this action by using the StopSound action.
Argument name Argument type Argument value
MP3 source String URL for the MP3 source file format
OGG source String URL for the OGG source file format

StopSound

Use this action to simply stop a sound started by PlaySound.

If need a little more control remember you have the MediaPlayer control at your disposition.

OpenWindow "URL" "Show location bar" "Target" "Result variable"

Use this action if you want to open an URL in another window or web browser. The behaviour of this action differs between platforms. For example, in an Android device, the new window is opened on top of your app. If your app is running in a browser, however, a new window doesn't cover your app and the URL is opened in other browser window.

Argument name Argument type Argument value
URL String URL to be opened in the new window
Show location bar String "true" if you want to show a location bar in the window or an empty string when not
Target String In addition to "_blank" and "_self", this argument can be "_system", and, if our application is compiled with Apache Cordova and the "Browser" plugin (included out-of-the-box with App Builder) the link is opened in the system's default browser.
Result variable String Variable name to store the opened window reference
This action can use the Browser Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (use the right browser window's method instead).
You can use the CloseWindow action to close a window opened by this action.

CloseWindow "Window variable"

Use this action to programatically close a window opened by the OpenWindow action.

Argument name Argument type Argument value
Window variable String Variable name which contains a window reference
This action can use the Browser Cordova plugin if you wanted. See app options for more information. If you include the plugin with the app, then this action use the plugin when execute. However, if you do not include the plugin, the action fallback without problems (use the right browser window's method instead).

Geolocation "Location name"

Use this action in conjunction with a Location control to retrieve the device geolocation information.

Argument name Argument type Argument value
Location name String The name of the Location control to be used.
Note this action doesn't retrieve the information of the device location automatically, but you need to wait for the Succes or Error events of the Location control.

Acceleration "Motion name"

Use this action in conjunction with a Motion control to retrieve the device motion acceleration information.

Argument name Argument type Argument value
Motion name String The name of the Motion control to be used.
Note this action doesn't retrieve the information of the device motion automatically, but you need to wait for the Succes or Error events of the Motion control.

CompassHeading "Compass name"

Use this action in conjunction with a Compass control to retrieve the device compass heading information.

Argument name Argument type Argument value
Compass name String The name of the Compass control to be used.
Note this action doesn't retrieve the information of the device compass automatically, but you need to wait for the Succes or Error events of the Compass control.

StartJS

This action is indented to advanced users who want to use pure JavaScript code inside their App Builder scripts. This action doesn't require any argument. Just put this action in an App Builder script and, all the following code are treated by the App Builder compiler as pure JavaScript code.

As an example, consider the below code, in which we start and end the JavaScript block of code and use a JavaScript native function ("alert") in that source block.

StartJS
  alert('Hello world!');
EndJS
You must use the EndJS action in order to properly close a block of code starting by an "StartJS" action.

EndJS

Use this action to properly close a block of code started by the StartJS action.

If you write a script code like this:

StartJS
  alert('Hello world!');

AlertBox "Hello again!" "info"

... we get unexpected results, since the "AlertBox" action is considered as pure JavaScript code, and doesn't recognized by the App Builder compiler as an App Builder action. Then remember to close any "StartJS" action with the pair "EndJS", just like in the below code:

StartJS
  alert('Hello world!');
EndJS

AlertBox "Hello again!" "info"

ApplyModel

Use this action to inform the app model that some changes has been made. In very rare scenarios AngularJS, the Javascript framework behind App Builder, need to be informed about some changes in the model of our apps. This action is intended to do that.

A possible scenario to use this action can be if we use the Location control Success event in order to set the URL of an IFrame control. In such scenario we need to call to this action after set the URL variable.

ThrowError

Throw a Javascript error and stop the execution of the subsequent actions, but fire the app Error event.

Take a look at the "[App.LastError]" in global variables.

StatusBarShow

Show the system's StatusBar.

In order to use this action you must check the StatusBar plugin from the app's options dialogand then build your application using Apache Cordova.

StatusBarHide

Hide the system's StatusBar.

In order to use this action you must check the StatusBar plugin from the app's options dialogand then build your application using Apache Cordova.

StatusBarIsVisible "Result variable"

Find if the system's StatusBar is visible or not.

Argument name Argument type Argument value
Result variable String The name of the result variable. The variable store "true" if the system's StatusBar is visible or "false" if not.
In order to use this action you must check the StatusBar plugin from the app's options dialogand then build your application using Apache Cordova.

StatusBarColor "Color"

Change the background color of the system's StatusBar.

Argument name Argument type Argument value
Color String Hexadecimal CSS color for the StatusBar's background, for example: #FF0, #CCCCCC, etc.
In order to use this action you must check the StatusBar plugin from the app's options dialogand then build your application using Apache Cordova.

CopyToClipboard "Clipboard name" "Text"

Copy the specified text into the clipboard. We must specify a Clipboard control name, then the appropiate control event is fired after this action is executed.

Argument name Argument type Argument value
Clipboard name String The Clipboard control name to be used.
Text String The text to be copied into the clipboard.
Take a look at the Clipboard control and also take a look at the Clipboard app sample included with the App Builder installation.

CameraGetPicture "Camera name"

This action starts to get an image from the device's camera or the device's gallery. This action must be used in combination with a Camera control.

Argument name Argument type Argument value
Camera name String The name of the Camera control to be used.
Note this action doesn't retrieve the image data automatically, but you need to wait for the Succes or Error events of the Camera control.

CameraDataToImage "Camera name" "Success callback" "Error callback"

When we set the Camera control Destination to "file_uri", what we receive in the Camera control Success event is a file path for the selected image. In order to upload this image to our server we must use this action, which convert that file path into an Image Blob ready to be sended using an HttpClient control. This image only can be executed inside the Camera control Success event. This action, like the Camera control, requires that the application must be compiled with Apache Cordova with both Camera and Files plugins checked in our app's options.

Take a look at the Camera5 app sample, which uses this action in conjunction with the Camera control Destination option.
Argument name Argument type Argument value
Camera name String The name of the Camera control to be used.
Success callback String The name of an app's function to be executed when the Camera Data variable has been converted into an Image Blob. The function must have one argument, which receive the Image Blob data ready to be added to an HttpClient control in order to upload it.
Error callback String The name of an app's function to be executed if the Camera Data cannot be converted into an Image Blob. The function must have one argument, which receive the posible error message.
Note this action doesn't retrieve the image data automatically, but you need to wait for the Succes or Error events of the Camera control.

RecorderGetAudio "Recorder name"

This action starts the appropiate stuff to record an audio from the user's device. This action must be used in combination with a Recorder control.

Argument name Argument type Argument value
Recorder name String The name of the Recorder control to be used.
Note this action doesn't retrieve the audio automatically, but you need to wait for the Succes or Error events of the Recorder control.

RecorderGetVideo "Recorder name"

This action starts the appropiate stuff to record an video from the user's device. This action must be used in combination with a Recorder control.

Argument name Argument type Argument value
Recorder name String The name of the Recorder control to be used.
Note this action doesn't retrieve the video automatically, but you need to wait for the Succes or Error events of the Recorder control.

RecorderDataToFile "Recorder name" "Success callback" "Error callback"

We can use this action in the Success event of a Recorder control in order to get the appropiate file from the recorded data. In order to upload this file to our server we must use this action, which convert the refered data into an File Blob ready to be sended using an HttpClient control. This action, like the Recorder control, requires that the application must be compiled with Apache Cordova with both Recorder and Files plugins checked in our app's options.

Argument name Argument type Argument value
Recorder name String The name of the Recorder control to be used.
Success callback String The name of an app's function to be executed when the Recorder Data variable has been converted into an File Blob. The function must have one argument, which receive the File Blob data ready to be added to an HttpClient control in order to upload it.
Error callback String The name of an app's function to be executed if the Recorder Data cannot be converted into an File Blob. The function must have one argument, which receive the posible error message.
Note this action doesn't retrieve the recorded data automatically, but you need to wait for the Succes or Error events of the Recorder control.

BarcodeScan

This action start the process to scan a barcode. This action must be used in conjunction with the Barcode control. Carefully read this control help for details.

A Barcode app sample is included with App Builder! Take a look too!

GetNetworkType "Result variable"

Retrieve the device's connection type. This action requires that our application include the Network plugin for Apache Cordova. Take a look also at the [App.Online] global variable.

Argument name Argument type Argument value
Result variable String This variable can store one of these possible values: "unknown", "ethernet", "wifi", "2g", "3g", "4g", "cellular" or "none"

FileWrite "File name" "Contents" "Error callback" "Success callback"

This action allow us to write a text file under the application's data storage directory. This action requires that our application include the Files plugin for Apache Cordova. If you want to append text to a file use the FileAppend action.

Take a look at the Files application sample included with the App Builder's installation. This sample show us how to use this and other Files related actions from our applications.
Argument name Argument type Argument value
File name String The file name to be write, for example, "MyFile.txt". If such file do not exists into the application's data storage directory they are created by the action.
Contents String The contents to be writen into the specified file.
Error callback String An application's function name in order to be called if an error occur. You must create an application function with one argument, which store the error code. See below the error codes' table.
Success callback String An application's function name in order to be called when the file are write. You must create an application function with no arguments.

The possible error codes are listed in the below table:

Code Description
1 File not found
2 Security error
3 Operation aborted
4 Not readable
5 Encoding error
6 No modification allowed
7 Invalid state
8 Syntax error
9 Invalid modification
10 Quota exceeded
11 Type mismatch error
12 Path exists error

FileAppend "File name" "Contents" "Error callback" "Success callback"

This action allow us to append text into a text file under the application's data storage directory. This action requires that our application include the Files plugin for Apache Cordova. If you want to replace the entire contents of a file use the FileWrite action.

Take a look at the Files application sample included with the App Builder's installation. This sample show us how to use this and other Files related actions from our applications.
Argument name Argument type Argument value
File name String The file name to be write, for example, "MyFile.txt". If such file do not exists into the application's data storage directory they are created by the action.
Contents String The contents to be appended into the specified file.
Error callback String An application's function name in order to be called if an error occur. You must create an application function with one argument, which store the error code. See below the error codes' table.
Success callback String An application's function name in order to be called when the file are write. You must create an application function with no arguments.

The possible error codes are listed in the below table:

Code Description
1 File not found
2 Security error
3 Operation aborted
4 Not readable
5 Encoding error
6 No modification allowed
7 Invalid state
8 Syntax error
9 Invalid modification
10 Quota exceeded
11 Type mismatch error
12 Path exists error

FileRead "Directory" "File name" "Error callback" "Success callback"

This action allow us to read a text file from under the application's data storage directory or the application install directory. This action requires that our application include the Files plugin for Apache Cordova. If you want to write a file take a look at the FileWrite and FileAppend actions.

Take a look at the Files application sample included with the App Builder's installation. This sample show us how to use this and other Files related actions from our applications.
Argument name Argument type Argument value
Directory String Determine the directory in which the specified file resides. This can be one of these possible values: "dataDirectory", "applicationDirectory".
File name String The file name path to be read. When use the "applicationDirectory" directory we must specify the relative path of the file to be read. For example, if we include a file named "Sample.txt" in our application, this file is placed into the directory "/www/app/files/Sample.txt", and this is the path to be used in the File name argument of this action.
Error callback String An application's function name in order to be called if an error occur. You must create an application function with one argument, which store the error code. See below the error codes' table.
Success callback String An application's function name in order to be called when the file are write. You must create an application function with one argument, which contains the text readed from the file.

The possible error codes are listed in the below table:

Code Description
1 File not found
2 Security error
3 Operation aborted
4 Not readable
5 Encoding error
6 No modification allowed
7 Invalid state
8 Syntax error
9 Invalid modification
10 Quota exceeded
11 Type mismatch error
12 Path exists error

Watch "Variable name"

Use this action to add app variables to be watched by the debugger watcher. We must pass to this action the name of a variable and this variable can be an String, Number, an Array or an Object variable. We can watch an entire control variables by pass to this action the control name. Note that this action only works in debug mode, that is, when you build your app, this action doesn't take any effect.

Argument name Argument type Argument value
Variable name String The name of the variable you want to watch

Console "Text" "Kind"

Use this action to add a message into the App Builder debugger console or the platform browser console in which your app is running.

Argument name Argument type Argument value
Text String The text you want to write
Kind String Determine the kind of the message and can be one of these values: "info", "warning" or "error".