Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I need to update a column 'Flag' based on values in another column completecodes
if completecodes = ['1001','1010','1011','1012','1101','1102','1104','1108','1109'] then flag=1 else flag=0
I tried using the below expression in the Flag field in the tMap component ,but got compilation errors
1010.equals(copyOfCurrMonth.responsetypecode)?1:0
Please can you help me with this?
To check if two strings are equal, use this expression:
"1010".equals(copyOfCurrMonth.responsetypecode)?1:0
Thank you! This expression worked.But how do I add the entire list of complete codes in the comparison condition?
I would suggest you to create a user routine and use switch...case to transform it. In Repository, click Code, followed by Routines and create a new routine. for example:
package routines;
import static java.time.temporal.TemporalAdjusters.nextOrSame;
import static java.time.temporal.TemporalAdjusters.previousOrSame;
/*
* 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 {
/**
* 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 !.
*/
static int returnValue=0;
public static int caseDemoFunction(String completecodes ) {
switch (completecodes)
{
case "1001":
returnValue= 1;
break;
case "1002":
returnValue= 1;
break;
case "1003":
returnValue= 1;
break;
default:
returnValue= 0;
}
return returnValue;
}
}
Then, call the user routine in the expression field of column on tMap:
myRoutine.caseDemoFunction(copyOfCurrMonth.responsetypecode)
Hope it helps and let me know if you have any questions.
Regards
Shong
Thank you! This worked.