Code Routines and Embedded Code
Take advantage of Code Routines to create commonly used methods, and static values outside of a Job. Code Routines reduce the amount of embedded code required in a Job, simplifying the overall Job creation process.
Create a Formbird Code Routine
Setup a Formbird Code Routine with some common methods.
- From the Repository panel, create a new Code Routine, naming it
FormbirdRoutine
. - Right-click on the new Routine, select
Edit Routine Libraries
and add the following external Java Libraries:
java
fieldtec-webclient.jar
json-simple-1.1.1.jar
commons-lang3-3.3.2.jar
httpcore-4.3.2.jar
httpclient-4.3.4.jar
handlebars-1.3.2.jar
gson-2.2.4.jar
commons-logging-1.2.jar
- Add the code below to the Routine:
package routines;
import java.util.List;
import org.apache.log4j.Logger;
import com.fieldtec.webclient.config.WebclientConfig;
import com.fieldtec.webclient.model.Document;
import com.fieldtec.webclient.service.FieldtecService;
import com.fieldtec.webclient.util.UtilJson;
import com.fieldtec.webclient.util.UtilLogger;
public class FormbirdRoutine {
public static final String KEY_SYSTEMHEADER_TEMPLATE_ID = "systemHeader.templateId";
public static final String KEY_SYSTEMHEADER_SYSTEM_TYPE = "systemHeader.systemType";
public static final String SYSTEM_TYPE_DOCUMENT = "document";
public static final String SYSTEM_TYPE_TEMPLATE = "template";
public static final String KEY_DOCUMENT_ID = "documentId";
static Logger logger = UtilLogger.getLogger();
public static boolean stringHasValue(String val) {
return val != null && !val.trim().equals("");
}
public static boolean hasValue(Object val) {
return val != null;
}
public static void setupWebClientConfig(java.util.Properties context) {
String method = "setupWebClientConfig";
logger.info(method + " setup webClientConfig");
WebclientConfig wc = WebclientConfig.getInstance();
String username = (String) context.get("username");
String password = (String) context.get("password");
String authUrl = (String) context.get("authUrl");
String webserviceUrl = (String) context.get("webserviceUrl");
String loggerName = (String) context.get("loggerName");
wc.setUsername(username);
wc.setPassword(password);
wc.setAuthUrl(authUrl);
wc.setWebserviceUrl(webserviceUrl);
wc.setLoggerName(loggerName);
}
}
The Formbird Code Routine can now be called from your Jobs embedded code.
Below example demonstrates how to call the FormbirdRoutine.setupWebClientConfig method to automatically setup ftService using the values stored in context.
// Initialise ftService (always synchronize context before passing to Routine)
context.synchronizeContext();
FormbirdRoutine.setupWebClientConfig(context);
ftService = new FieldtecServiceImpl();
With only 3 lines of code in a Job
, the ftService is now available to be used.