¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¡Acceso SAP S/4HANA desde $100!

Acceso a SAP

Como resolver a exceção do Java ao converter uma string em um inteiro

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 8 Vistas
0
Cargando...

Olá Especialistas -

Estou tentando aumentar o valor de uma variável local em 1, mas ao ler o valor do cabeçalho, ele é atribuído a uma string "valor", depois tento convertê-lo para um inteiro com a declaração:

counter_var = Integer.parseInt(valor)

mas estou recebendo uma exceção do Java:

java.lang.Exception: java.lang.NumberFormatException: Para a string de entrada

Por favor, me ajudem a resolver esse problema.

Obrigado,

Anirban

import com.sap.gateway.ip.core.customdev.util.Message
import java.util.HashMap
def Message processData(Message message) {
       //Cabeçalhos 
       def map = message.getHeaders()
       def valor = map.get("INCREMENT")
       if(valor == null)
       { 
           def counter_var = 0       
       }
       else 
       {
           counter_var = Integer.parseInt(valor)
       }
       
       message.setHeader("INCREMENT", counter_var + 1)
       return message;
}
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Olá amallick ,

  1. Como sunny.kapoor2 mencionou, a declaração da variável counter_var deve estar fora. E
  2. A condição 'if' também deve verificar a condição de string vazia. - if(value == null || value == "")
  3. 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;
}

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado, sunny.kapoor2 e @ganesh m por suas amáveis respostas.

Este é o script que finalmente funcionou para mim:

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;
}
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá amallick ,

O script parece estar correto, apenas mova a declaração da variável counter_var para fora.

Se ainda estiver vendo o erro, verifique o valor do cabeçalho INCREMENT no modo de rastreamento, talvez não esteja no número adequado no formato de string.

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)
       { 
         counter_var = 0       
       }
       else 
       {
           counter_var = Integer.parseInt(value)
       }
       
       message.setHeader("INCREMENT", counter_var + 1)
       return message;
}

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeconsultor.com

+1 (305) 285-8622

© 2025 Todos los derechos reservados.

Desarrollado por Prime Consultor

¡Hola! Soy Diana, asesora académica de Prime Consultor, indícame en que Academia SAP estás interesado, saludos!
Hola ¿Buscas Academias SAP?