Business Libraries

A Business Library is a set of JavaScript functions that can be reused in multiple business rules. The following should be reviewed when considering the use of a business library:

  • When creating multiple JavaScript based business rules, a business library should be used to hold common functions. This makes maintaining the related business rules easier since the JavaScript code exists in a single location. For details, refer to Creating a Business Rule, Function, or Library.
  • Libraries cannot be called independently, but must be referenced from other actions or conditions.
  • Any number of JavaScript business rules can be used to define library functions.
  • It is not possible to bind STEP objects when working with libraries, but they can be passed in as arguments.
  • For business rules where library functionality is needed, you must declare a dependency to the libraries on the Dependencies tab, as described in the Editing a Business Library topic.

As an example, the following library function could be used to check if a product is below another product:

// Checks whether a Product is below another Product
function isProductBelow(prod, checkProdID) {
   if(!prod instanceof com.stibo.core.domain.Product) throw "Function only works with Products";
   if(checkProdID == "Product hierarchy root") return true;
   if(prod.getID() == "Product hierarchy root") throw "The top level Product is never below another Product.";
		 
   var currentParentId;
   var currentProd = prod;
   while(true) {
	currentParentId = currentProd.getParent().getID();
	if(currentParentId == "Product hierarchy root") return false;
	else if (currentParentId == checkProdID) return true;
	else currentProd = currentProd.getParent();
   }
}
 
//Condition using function (Library alias = “lib”, Current Object bound to variable "obj")
return lib.isProductBelow(obj, "ID of STEP Product");