A function is a set of statements that is invoked in an application to perform a certain action or yield a desired result based on the logic in the code. Node.js is a cross-platform, open-source JavaScript runtime environment. Introducing Node.js will enable your app to run in a single process, without creating a new thread for every request.
Create a new function using node.js
To create a new node.js function:
-
Click on
Workflows
to navigate to your
Workflow Dashboard
.
-
Click
Functions
tab.
-
Click
New Function
button.
-
The create page will appear.
-
Enter
Function Name
. This serves as the identifier using which the function can be invoked. Specify a meaningful name for the function without any empty spaces.
-
Select
Node.js
as Language for scripting the function.
-
Specify the
Arguments
.
-
Click
Create Function
button. The builder will appear.
-
Now, Add required node.js code to the function.
-
The function will get listed under
Functions
in the workflow dashboard.
Note
:
-
Namespace
: Namespace for node.js function will be
Default Namespace
.
-
Return Type
: Return value of a node.js function will only be of
Collection data type
.
-
Argument
: Node.js functions accept only
string
values.
-
Node.js functions cannot be renamed after creation.
Arguments and parameters in node.js functions
Similar to deluge function, node.js also requires you to specify arguments based on which your function runs. An argument is the instance that is passed to the method on running a function. At the event of creating a node.js function, you can specify an argument. If you have the necessity to add more arguments to the same function at a later stage, you can access the
Function
Properties
in the builder (click the
Settings
icon).
To run a program, you need to define parameters in node.js functions. A parameter is the variable assigned for the value of an argument. It serves as the container in which the argument value passed from deluge is received in a node.js function.
This function is created to calculate average in node.js function and uses the values obtained to update records using deluge.
void gradeCalculator.avgCalculation()
{
avg = 0.0;
for each i in Student_Details [ ID != 0 ]
{
total = i.Grand_Total.toString();
count = i.Number_of_Subjects.toString();
avg = thisapp.calculatorFunction(total,count).get("output").toDecimal();
i.Average = avg ;
}
module.exports = async function( context, basicIO )
{
var total = parseInt(basicIO.getParameter("total"));
var count = parseInt(basicIO.getParameter("count"));
var nodeFile = require("average.js");
basicIO.write(nodeFile.calculateAvg(total, count));
}
this.calculateAvg = function (total, count)
{
return (total/count);
}
Note
:
-
module.exports = async function( context, basicIO ) should not be removed. If removed, an execution error will occur.
Config.json and Library
-
config.json is a configuration file.
-
node_modules is the folder to which you can upload your node.js files. Right click on the folder to upload files.
To call a node.js function in a deluge script, you need to use the statement indicated in the image below. In this example, “thisapp.calculatorFunction(total,count);” refers to the node.js function, which contains the value as a collection.
Assign variables to the parameters that you input to obtain the output. In the above mentioned example, the variables are Total (Grand Total) and Count (Number of Subjects). These two parameters will be obtained using the statement basicIO.getParameter statements. The node_modules folder serves as a container for you to upload .js format file that can be used in you node.js functions. You can create the code and save the code in this folder as well and access it from your node.js function. For instance, we have created the average.js file that has the code to calculate the average for the variables total and count. nodeFile = require(average.js) is the syntax used to access the .js file to complete calculation. But, the code for processing the variables to obtain the average can also be directly written in node.js script as well. The node_modules will be of use when you are creating complex calculations or ones that will be repetitively used.
The basicIO.write statement is used to print the result following calculation. The result obtained thus can be used in a deluge function for further processing.