veera pi mapping udf 22nd april 2026
again udpate code; as per this logic:
1) var1 ---any one is value then outputValue true
else
2) var1---- all emppty--- and var2 or var3 ---any contains CTH then outputValue true
else
3) var1---- all emppty--- and var2 or var3 ---no CTH then outputValue false
---
-------------
//inside udf;
// Step 1: Check conditions on var1
boolean anyVar1HasValue = false;
boolean allVar1Empty = true;
for (int i = 0; i < var1.length; i++) {
boolean isEmpty = (var1[i] == null || var1[i].trim().isEmpty());
anyVar1HasValue = anyVar1HasValue || !isEmpty;
allVar1Empty = allVar1Empty && isEmpty;
}
// Step 2: Check if ANY entry in var2 or var3 contains "CTH"
boolean anyCTHFound = false;
for (int i = 0; i < var2.length; i++) {
boolean containsCTH = (var2[i] != null && var2[i].contains("CTH"));
anyCTHFound = anyCTHFound || containsCTH;
}
for (int i = 0; i < var3.length; i++) {
boolean containsCTH = (var3[i] != null && var3[i].contains("CTH"));
anyCTHFound = anyCTHFound || containsCTH;
}
// Step 3: Apply priority logic
String outputValue = "false";
if (anyVar1HasValue) {
outputValue = "true";
} else if (allVar1Empty && anyCTHFound) {
outputValue = "true";
} else {
outputValue = "false";
}
// Step 4: Assign result for all occurrences
for (int i = 0; i < var1.length; i++) {
result.addValue(outputValue);
}