Autor Tema: ayuda - RAWSTRING  (Leído 11211 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado FuryNocturn

  • Novato
  • *
  • Mensajes: 14
    • Ver Perfil
ayuda - RAWSTRING
« en: 12 de Diciembre de 2017, 05:53:40 pm »
buenas tengo en una tabla un campo con un dominio que tiene RAWSTRING en el hay yna cadena '3C53756D696E697374726F4C524C53756D696E69737C53756D696E697373A7072783D22C53756D696E69737361C53756D696E6973770726F78793A4D' "es el principio del código pero repetido para que se vea mas o menos la largura del campo

desde una transacción de sap al darle a un icono me carga un xml. se supone que esta linea es ese xml. mi pregunta que método se usa para transformar esta linea en el xml?
 he probado con este método CL_HTTP_UTILITY=>IF_HTTP_UTILITY~DECODE_BASE64 pero sin resultado. la cadena en concreto no puedo pasarlo pues tiene datos delicados.

Desconectado FuryNocturn

  • Novato
  • *
  • Mensajes: 14
    • Ver Perfil
Re:ayuda - RAWSTRING
« Respuesta #1 en: 14 de Diciembre de 2017, 04:03:30 pm »
Resuelto la mayor parte.

Código: [Seleccionar]
data: gs_edocumentfile      type edocumentfile,
      lo_xml                type ref to cl_xml_document,
      lo_error              type ref to if_ixml_parse_error,
      lv_xml_error          type string,
      lv_error_txt          type string,
      iv_xml_string         type xstring.


parameter gv_key(32) type c.

select single *
    from edocumentfile
    into gs_edocumentfile
    where edoc_guid = gv_key and
          file_type = 'RESPONSE' .

iv_xml_string = gs_edocumentfile-file_raw.

check not iv_xml_string is initial.

create object lo_xml.
if lo_xml is bound.
  try.
      clear lv_xml_error.
      lo_xml->parse_xstring( exporting stream = iv_xml_string ).
      lo_error = lo_xml->get_last_parse_error( ).
      if lo_error is bound.
        lv_xml_error = lo_error->get_reason( ).
      endif.
      if lv_xml_error is initial.
******************************************
        lo_xml->display( ).
        lo_xml->export_to_file( 'C:\Users\fernandt\Documents\SAP\TEM.xml' ).
******************************************
      else.
        message e071(edocument) into lv_error_txt.
        cl_edocument=>raise_edoc_exception( ).
      endif.

    catch cx_root.
      message e071(edocument) into lv_error_txt.
      cl_edocument=>raise_edoc_exception( ).
  endtry.
endif.

lo que me falla es esto 
Código: [Seleccionar]
catch cx_root.
      message e071(edocument) into lv_error_txt.
      cl_edocument=>raise_edoc_exception( ).

me tira damn y me cierra todo.

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re:ayuda - RAWSTRING
« Respuesta #2 en: 14 de Diciembre de 2017, 05:37:08 pm »
La clase CX_ROOT es la clase más alta de todas las clases de excepción.

Mira en tu DUMP que excepción te esta devolviendo.

Este ejemplo te puede ayudar... TRY CATCH – Ejemplo básico de excepción



Desconectado FuryNocturn

  • Novato
  • *
  • Mensajes: 14
    • Ver Perfil
SOLUCIONADO LISTO PARA CERRAR TEMA
« Respuesta #3 en: 14 de Diciembre de 2017, 05:49:27 pm »
gracias revisando el código con la info que me distes me di cuenta que el primer if que es el que dice si hay registro al no aver llamaba al error sin cargar y solo carga cuando procesa datos el método. por eso es imposible poner esa sentencia así que busque otra. ya me funciona usando el mensaje mostrando texto de tipo s pero con aspecto de tipo e.

Código: [Seleccionar]
message text-e01 type 'S' display like 'E'." INTO lv_error_txt.
y así si me hace la advertencia y no se sale del programa permitiendo modificar la variable. gracias. ya termine este proyecto


ahora a por el siguiente.