Creating a routine and declaring a static variable - 6.1

Defining a variable accessible from multiple Jobs

author
Shicong Hong
EnrichVersion
6.4
6.3
6.2
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Design and Development > Designing Jobs
EnrichPlatform
Talend Studio
In this example, you will create a routine with a static variable and add the setter/getter methods to make the variable accessible from multiple Jobs.
  1. In the Repository tree view, expand Code to display the routines folder.
  2. Right-click Routines and select Create routine to create a new routine.
  3. Name the new routine MyRoutine.
  4. Declare a static variable in the routine and set its value as null, for example:
    private static String name = null;
                        
  5. Add the setter/getter methods for this variable in the routine and press Ctrl+S to save the routine.
    
    public static synchronized void setValue(String message) {
            name=message;
        }
                                    
    public static synchronized String getValue() {
            return name;
        }
                                
    Note: The complete Java code for this routine is as below:
    package routines;
    /*
    * user specification: the function's comment should contain keys as follows: 1. write about the function's comment.but
    * it must be before the "{talendTypes}" key.
    *
    * 2. {talendTypes} 's value must be talend Type, it is required . its value should be one of: String, char | Character,
    * long | Long, int | Integer, boolean | Boolean, byte | Byte, Date, double | Double, float | Float, Object, short |
    * Short
    *
    * 3. {Category} define a category for the Function. it is required. its value is user-defined .
    *
    * 4. {param} 's format is: {param} <type>[(<default value or closed list values>)] <name>[ : <comment>]
    *
    * <type> 's value should be one of: string, int, list, double, object, boolean, long, char, date. <name>'s value is the
    * Function's parameter name. the {param} is optional. so if you the Function without the parameters. the {param} don't
    * added. you can have many parameters for the Function.
    *
    * 5. {example} gives a example for the Function. it is optional.
    */
    public class MyRoutine {
        private static String name = null;
        /**
        * helloExample: not return value, only print "hello" + message.
        *
        *
        * {talendTypes} String
        *
        * {Category} User Defined
        *
        * {param} string("world") input: The string need to be printed.
        *
        * {example} helloExemple("world") # hello world !.
        */
        public static void helloExample(String message) {
            if (message == null) {
                message = "World"; //$NON-NLS-1$
            }
            System.out.println("Hello " + message + " !"); //$NON-NLS-1$ //$NON-NLS-2$
         }
                                        
         public static synchronized void setValue(String message) {
             name=message;
         }
                                        
         public static synchronized String getValue() {
             return name;
        }
     }