cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Groovy CPI: String to Integer

anirban_pwc
Participant
0 Likes
6,249

Hi Experts -

I'm trying to increment a local variable value by 1, but when I read the header value, it maps to a String "value", then I'm trying to cast it to an Integer with the statement:

counter_var = Integer.parseInt(value)

but receiving a Java exception:

java.lang.Exception: java.lang.NumberFormatException: For input string

Please help me resolve this issue.

Thank you,

Anirban

import com.sap.gateway.ip.core.customdev.util.Message
import java.util.HashMap
def Message processData(Message message) {
       //Headers 
       def map = message.getHeaders()
       def value = map.get("INCREMENT")
       if(value == null)
       { 
           def counter_var = 0       
       }
       else 
       {
           counter_var = Integer.parseInt(value)
       }
       
       message.setHeader("INCREMENT", counter_var + 1)
       return message;
}
View Entire Topic
anirban_pwc
Participant
0 Likes

Thank you, sunny.kapoor2 and @ganesh m for your kind responses.

This is the script that finally worked for me:

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

def Message processData(Message message) {
       def map = message.getHeaders()
       String value = map.get("INCREMENT");
       def counter_var;
       if(value == null || value == "")
       { 
         counter_var = 0       
       }
       else 
       {
		  counter_var = Integer.parseInt(value)
       }
       
       message.setHeader("INCREMENT", counter_var + 1)
       return message;
}