Ir al contenido
Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - FuryNocturn

#1
podias publicarlos aqui para tener aceso todos.
#2
ando algo perdido. tengo un alv en una WD y lo exporto a un XXL pero ahora me piden que si aplican algún filtrado en el AVL que se exporten solo los que se muestran en pantalla.

una sugerencia de como hacerlo. ando perdido en las WD.
#4
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.


buenas días.
Alguien sebe si este método tiene alguna limitación de datos. tanto en desarrollo como en calidad me funciono. pero al pasarlo a producción varios archivos de los que intenta extraer generan un error que cierra el programa. no da damp ni muestra mensaje de error en la barra de abajo.
si extraigo el XML desde la transacion del que muestra la lista de documentos del SII puedo comprobar que el documento guardado tiene formato adecuado y esta bien estructurado. pero desde este método no lo carga. puede ser por el tamaño. ya que ese en concreto como los que están fallando son muy largos.
#5
Me he encontrado la situación que querían deshabilitar el botón de las variantes en una transacción, y no encontré la información adecuada así que pongo el resultado de mi investigación.

at selection-screen output.
  perform f_selection_screen.



form f_selection_screen .

  data itab type table of sy-ucomm.

  append 'GET' to itab.
  append 'VSHO' to itab.
  append 'VDEL' to itab.
  append 'SPOS ' to itab.

  call function 'RS_SET_SELSCREEN_STATUS'
    exporting
      p_status  = sy-pfkey
    tables
      p_exclude = itab.

endform.                    " F_SELECTION_SCREEN
#6
de nada
#7
si pero si se desactiva los malware que atacan a sap podrían ejecutarse, es mejor crear la regla para una carpeta en concreto que es lo que realize, de esa manera solo abres esa carpeta y el resto del equipo queda protegido. gracias por tu ayuda.
#8
buenas tengo un programa que genera un xml y tiro el modulo para que lo guarde en mi equipo. el tema esta, cadavez que se ejecuta pide permisos, doy a retener decision y si es sobrescribir si me la mantiene si es para hacer uno nuevo con otro nombre me vuelve a pedrir permiso.

hay algun codigo que pueda añadir a mi programa que evite esa pregunta.
el decir al cliente que entre en las opciones de sap y cree una regla de permitir en cierta carpeta no me vale.
#9
PODÉIS CERRAR TEMA RESUELTO.
#10
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.

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.
#11
Resuelto la mayor parte.

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 
catch cx_root.
      message e071(edocument) into lv_error_txt.
      cl_edocument=>raise_edoc_exception( ).


me tira damn y me cierra todo.
#12
Programación ABAP / ayuda - RAWSTRING
12 Dic 2017, 17:53
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.
#13
gracias ya lo resolvi. despues de darle una tarde entera al coco me salio esto codigo.

IF gs_datos_xls-sueldo CA '0123456789'.
    SHIFT gs_datos_xls-sueldo RIGHT DELETING TRAILING space.

    IF gs_datos_xls-sueldo+12(1) = ','.

      DO 2 TIMES.
        REPLACE '.' IN gs_datos_xls-sueldo WITH '' .
      ENDDO.

      SHIFT gs_datos_xls-sueldo RIGHT DELETING TRAILING space.
      REPLACE ',' IN gs_datos_xls-sueldo+12(1) WITH '.' .

      IF gs_datos_xls-sueldo+8(1) = ','.
        gv_nerror = 5.
        gs_datos-sueldo = ''.
      ELSE.
        gv_nerror = 3.
        gs_datos-sueldo = gs_datos_xls-sueldo.
      ENDIF.

    ELSEIF gs_datos_xls-sueldo+12(1) = '.'.

      DO 2 TIMES.
        REPLACE ',' IN gs_datos_xls-sueldo WITH '' .
      ENDDO.

      SHIFT gs_datos_xls-sueldo RIGHT DELETING TRAILING space.

      IF gs_datos_xls-sueldo+8(1) = '.'.
        gv_nerror = 5.
        gs_datos-sueldo = ''.
      ELSE.
        gv_nerror = 0.
        gs_datos-sueldo = gs_datos_xls-sueldo.
      ENDIF.

    ELSE.
      IF gs_datos_xls-sueldo = 0.
        gv_nerror = 4.
        gs_datos-sueldo = gs_datos_xls-sueldo.
      ELSE.
        gv_nerror = 0.
        gs_datos-sueldo = gs_datos_xls-sueldo.
      ENDIF.
    ENDIF.
  ELSE.
    IF gs_datos_xls-sueldo = ''.
      gv_nerror = 2.
    ELSE.
      gv_nerror = 1.
    ENDIF.
    gs_datos-sueldo = ''.
  ENDIF.
#14
buenas tengo que cojer el 3 caracter del final de una cadena.

el poblema es que el campo es de 15 posiciones typo c.
y lo que se registra en el valor que extrae de un XLS, el cual se corresponde con el sueldo del empleado.

el tema es que no todos ocupan lo mismo. uno cobra 750.25€ y otros cobra 2120.75€

lo que quiero es hacer que comprueve que el 3 caracter del final sea un '.' y si no lo es que ponga un '.'
aparte si contiene letras que no rellene ya que dara error.

este es el codigo que tengo por el momento.
FORM verificar_datos .
  CLEAR gs_datos_xls.
  LOOP AT gt_datos_xls INTO gs_datos_xls.
    REPLACE ',' WITH '.' INTO gs_datos_xls-sueldo.
    IF gs_datos_xls-sueldo CA '0123456789' "AND gs_datos_xls-sueldo NS ','
      .
      gs_datos-nombre     = gs_datos_xls-nombre.
      gs_datos-apellidos  = gs_datos_xls-apellidos.
      gs_datos-direccion  = gs_datos_xls-direccion.
      gs_datos-sueldo     = gs_datos_xls-sueldo.

    ELSE.
      gs_datos-nombre     = gs_datos_xls-nombre.
      gs_datos-apellidos  = gs_datos_xls-apellidos.
      gs_datos-direccion  = gs_datos_xls-direccion.
      gs_datos-sueldo     = ''.
      gs_datos-incorrecto = 'X'.
    ENDIF.

    APPEND gs_datos TO gt_datos.
    CLEAR: gs_datos, gs_datos_xls.
  ENDLOOP.
ENDFORM.                    " VERIFICAR_DATOS