The community will undergo maintenance on October 16th at 10:00 PM PDT and will be unavailable for up to one hour.
One recurring question that comes up after a customer has been using the scripting capabilities of the Axeda Platform for some time is how to create function libraries that are reusable, in order to reduce the amount of copy and pasting (and testing) that is done to create new functionality. Below I demonstrate a mechanism for how to accomplish this. Some things that are typically included in such a library are:
For those unfamiliar with Custom Objects I suggest some resources at the end of this document to get started. The first thing we want to do is create a script that is going to be our "Library of Functions":
FunctionLibrary.groovy:
class GroovyChild {
String hello() {
return "Hello"
}
String world() {
return "World"
}
}
return new GroovyChild()
This can the be subsequently called like this:
FunctionCaller.groovy:
import static com.axeda.sdk.v2.dsl.Bridges.*
import com.axeda.services.v2.CustomObjectCriteria
import com.axeda.services.v2.CustomObjectType
import com.axeda.services.v2.CustomObject
CustomObjectCriteria cOC1 = new CustomObjectCriteria()
cOC1.setName 'FunctionLibrary'
def co = customObjectBridge.findOne cOC1
result = customObjectBridge.execute(co.label )
return ['Content-Type': 'application/text', 'Content': result.hello() + ' ' + result.world() ]
A developer would be wise to add in null checking on some of the function returns and do some error reporting if it cannot find and execute the FunctionLibrary. This is only means a a means to start the users on the path of building their own reusable content libraries.
Regard
-Chris Kaminski
PTC/Axeda Customer Support
References: