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
Avalados por :
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.
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
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
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).
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:
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.jpgcontacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute