Olá amallick ,
- Como sunny.kapoor2 mencionou, a declaração da variável counter_var deve estar fora. E
- A condição 'if' também deve verificar a condição de string vazia. - if(value == null || value == "")
- Também é melhor usar uma condição adicional value.isNumber() == true e lidar com o caso antes de converter a string em inteiro. A condição aninhada abaixo é apenas um exemplo. Você pode fazer alterações e otimizar o código conforme necessário.
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
def map = message.getHeaders()
def value = map.get("INCREMENT");
def counter_var;
if(value == null || value == "")
{
counter_var = 0
}
else
{
if(value.isNumber() == false)
{
//fazer o contador ser zero / gerar uma exceção personalizada / tomar qualquer outra ação
}
else
counter_var = Integer.parseInt(value)
}
message.setHeader("INCREMENT", counter_var + 1)
return message;
}