¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como lidar com valores nulos em uma string e seu código hexadecimal em ABAP

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

Olá pessoal,

Estou tendo problemas com valores nulos em uma string e seu código hexadecimal xstring. Tenho alguns dados em um campo com tipo de dados LCHR. Este campo contém dados como:

"SAPMSDYP MBatch-Input ####%PC 60317081539#?"

Tenho um programa ABAP. Simplesmente estou adicionando esses dados a uma variável de string e depois convertendo essa string em dados xstring. O comprimento da string é 53 e após a conversão para xstring, o comprimento dos dados xstring é maior que os dados da string. Nos dados da string, onde quer que o "#" apareça como "0000" nos dados brutos (xstring). Após essa conversão, envio apenas esses dados para meu programa Java usando http_client. No lado do Java, se os dados de entrada tiverem um valor nulo entre os dados, então este programa Java rejeitará esses dados. O problema principal é que tenho que lidar com esses valores nulos apenas em meu programa ABAP.

Durante a depuração, na janela de detalhes da variável, seu valor hexadecimal também aparece como 0000, que é a conversão padrão de string para hexadecimal da SAP. E se eu mover o cursor do mouse sobre essa variável, na janela de informações, este único '#' aparece como 5 caracteres como CString.

Para a conversão de string para xstring estou usando o seguinte código: CL_ABAP_CONV_OUT_CE =>create(

codificação = 'UTF-8'

endian = 'L' ).

conv->convert( EXPORTING data = texto

IMPORTING buffer = buffer1 ).

Aqui tenho que lidar com esse valor nulo("#") seja nos dados da string ou nos dados xstring no programa ABAP apenas. Não sei como fazer isso.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Florian,

Também tentei no lado do ABAP, mas nenhuma das funções de string pode modificar/substituir ou alterar esse caractere. Preciso da maneira de obter seu valor hexadecimal correto.

~Shekhawat

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

Por que não manipular o sinal # com ABAP antes de enviá-lo para sua aplicação Java? Você pode construir um construto com funções de string.

Assim, você não terá que lidar no lado do Java :-)

Aqui estão algumas palavras-chave para apontá-lo para a documentação correta.

Funções de string, contar, encontrar e corresponder

~Florian

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

Olá Ebrahim Hatem,

Obrigado pela resposta, testei todas as soluções anteriores, mas nada está funcionando. Na janela de depuração do SAP GUI, o valor hexadecimal de # é exibido como 0000 e em CString é exibido como . Já testei todas as soluções anteriores. Em vez deste caractere # umlaut, se tivermos # normal, então consigo fazer qualquer modificação e para este # normal o SAP GUI irá mostrar o hexadecimal como 0023, que está correto. Mas este caractere em particular não é um # normal, apenas parece ser #. Você pode sugerir se é nulo ou qualquer outro caractere? E este caractere está disponível na tabela D345T e o campo é BLOCK (tipo LCHR).

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

Olá Ompal Shekhawat ,

Acredito que você deve verificar seu XSTRING e se encontrar isso 0x00 , então você pode removê-lo. Aliás, você pode obter ### se houver uma quebra de linha 0x0a ou uma quebra de linha 0x0D e pode removê-los do seu XSTRING.

Portanto, apenas isso poderia te ajudar

Verifique se a string tem 0x00 ou 0x0a ou 0x0D, então remova.

Então eu gostaria que você lesse sobre esta tabela ASCII:

códigos ASCII comuns para conhecer

Char  Dec  Oct  Hex   O que são
---------------------------------------
(nul)   0 0000 0x00   Nulo 
(ht)    9 0011 0x09   Tabulação Horizontal
(nl)   10 0012 0x0a   Nova Linha
(vt)   11 0013 0x0b   Tabulação Vertical
(cr)   13 0015 0x0d   Retorno de Carro
(sp)   32 0040 0x20   Espaço

Ref: http://www.bluesock.org/~willg/dev/ascii.html

Para a string, você pode verificar esta classe

CL_ABAP_CHAR_UTILITIES=>NEWLINE


Saudações cordiais

Ebrahim Hatem

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

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?