Create and manage node.js functions

Introducing Node.js Functions

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:

  1. Click on Workflows to navigate to your Workflow Dashboard.

  2. Click Functions tab.

  3. Click New Function button.

  4. The create page will appear.

  5. 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.

  6. Select Node.js as Language for scripting the function.

  7. Specify the Arguments.
  8. Click Create Function button. The builder will appear.
  9. Now, Add required node.js code to the function.

  10. 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 FunctionProperties 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.

Sample 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.

Call a node.js function

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.

Get Value

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.

Points to remember

  • .js files can only be uploaded to the node_modules.
  • The file upload limit of all the files put together is 10 MB.
  • The size of your request and response payload can only be up to 1 MB each.
  • The file size in the editor can only be up to 1 MB.
  • You can pass a maximum of 20 arguments to node.js functions.
  • You can call a function 5 times in one deluge script.
  • You need to receive a response within 40 seconds from the start of a function call, beyond which the execution will fail.
  • Following are the supported default node-modules:
    • Request-promise
    • bluebird
    • crypto
    • axiom
    • other default node packages (request, fs, url, etc.)
  • Currently this feature is not supported in DS files. The cloud functions will not be captured during import/export/backup/duplicate actions. Instead it will be substituted with an empty deluge function of same name to avoid errors.
  • console.log statement will not work in creator cloud functions

Share this post : FacebookTwitter

Still can't find what you're looking for?

Write to us: support@zohocreator.com