Mensajes recientes

Páginas: 1 ... 4 5 [6] 7 8 ... 10
51
Programación ABAP / Re:ayuda - RAWSTRING
« Último mensaje por Carlos 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


52
Programación ABAP / Re:ayuda - RAWSTRING
« Último mensaje por FuryNocturn 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.
53
Programación ABAP / ayuda - RAWSTRING
« Último mensaje por FuryNocturn 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.
54
Programación ABAP / Re:AYUDA - cojer 3 caracter del final de cadena.
« Último mensaje por FuryNocturn en 12 de Diciembre de 2017, 05:36:07 pm »
gracias ya lo resolvi. despues de darle una tarde entera al coco me salio esto codigo.

Código: [Seleccionar]
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.
55
Programación ABAP / Re:AYUDA - cojer 3 caracter del final de cadena.
« Último mensaje por molaci en 12 de Diciembre de 2017, 09:40:23 am »
Hola, prueba con la instrucción STRLEN que te devuelve la longitud de tu campo.

El código podría ser algo así... Y como tienes en tu código comprueba antes si viene una coma (,) punto (.), etc...



DATA: lf_long TYPE i. 
DATA: lf_pos  TYPE i.
DATA: lf_part1(10).
DATA: lf_part2(10).

lf_long  = STRLEN( tu_importe ).
lf_pos   = lf_long - 3.
lf_part1 = tu_importe(lf_pos).
lf_part2 = tu_importe+lf_pos(3).

CONCATENATE lf_part1 '.' lf_part2 INTO tu_importe.





56
Programación ABAP / AYUDA - cojer 3 caracter del final de cadena.
« Último mensaje por FuryNocturn en 11 de Diciembre de 2017, 04:59:55 pm »
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.
Código: [Seleccionar]
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
57
HANA / Ejemplo web con SAPUI5
« Último mensaje por oscar en 01 de Diciembre de 2017, 12:26:18 pm »
¿Queréis ver un ejemplo de una web realizada con tecnología SAPUI5?

Nuestro amigo Marcos, nos la enseña...

Ejemplo SAPUI5




58
ALV / Re:alv quitar ceros
« Último mensaje por oscar en 11 de Octubre de 2017, 03:23:38 pm »
Un tema que suele suceder es que si el campo que contiene los decimales es de tipo QUAN no quita esos decimales, la solución sería modificar en el catálogo el DATATYPE.

   
   <fs>-datatype     = 'DEC'.
   <fs>-decimals_out = 0.


59
Programación ABAP / Re:Colorear celda de ALV
« Último mensaje por oscar en 11 de Octubre de 2017, 01:42:17 pm »
Un nuevo ejemplo para colorear celdas individualmente en un ALV_GRID...

REPORT zcolor_en_celdas.

* Type Pools *
TYPE-POOLS: slis.

* Tabla interna de prueba (se agrega el campo CELLCOLORS.
DATA: BEGIN OF r_alv,
        vbeln      TYPE vbeln,
        posnr      TYPE posnr,
        cellcolors TYPE lvc_t_scol,
      END OF   r_alv.
DATA: i_alv                 LIKE TABLE OF r_alv.

DATA: i_fieldcat TYPE slis_t_fieldcat_alv,
      r_layout   TYPE slis_layout_alv.

INITIALIZATION.

* TRAIGO ALGUNOS DATOS
  REFRESH i_alv.
  SELECT vbeln posnr
    FROM vbap
    INTO CORRESPONDING FIELDS OF TABLE i_alv
    WHERE vbeln = '0005101265'.
  SORT i_alv BY posnr.

* CARGO FIELDCAT.
  REFRESH i_fieldcat.
  PERFORM f_init_fieldcat     TABLES i_fieldcat.

* LAYOUT, AGREGO COLORES DEPENDIENDO DE LA CELDA
  CLEAR r_layout.
  PERFORM f_init_layout       CHANGING r_layout.

* ALV GRID
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = sy-repid
      i_callback_user_command = 'F_USER_COMMAND_01'
      is_layout               = r_layout
      it_fieldcat             = i_fieldcat[]
    TABLES
      t_outtab                = i_alv
    EXCEPTIONS
      program_error           = 1
      OTHERS                  = 2.
  IF sy-subrc <> 0.
    EXIT.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  f_init_fieldcat
*&---------------------------------------------------------------------*
FORM f_init_fieldcat  TABLES ptc_fieldcat TYPE slis_t_fieldcat_alv.
* LOCAL WORKAREA AND VARIABLE
  DATA: r_fieldcat TYPE slis_fieldcat_alv,
        l_pos      TYPE i VALUE 0.

  CLEAR r_fieldcat.
  l_pos = l_pos + 1.
  r_fieldcat-col_pos       = l_pos.
  r_fieldcat-fieldname     = 'VBELN'. "VBELN
  r_fieldcat-tabname       = 'I_ALV'.
  r_fieldcat-seltext_l     = 'VBELN'.
  APPEND r_fieldcat TO ptc_fieldcat.

  CLEAR r_fieldcat.
  l_pos = l_pos + 1.
  r_fieldcat-col_pos       = l_pos.
  r_fieldcat-fieldname     = 'POSNR'. "POSNR
  r_fieldcat-tabname       = 'I_ALV'.
  r_fieldcat-seltext_l     = 'POSNR'.
  APPEND r_fieldcat TO ptc_fieldcat.

ENDFORM.                    " f_init_fieldcat

*&---------------------------------------------------------------------*
*&      Form  f_init_layout
*&---------------------------------------------------------------------*
FORM f_init_layout  CHANGING playout TYPE slis_layout_alv.
* Variables
  DATA l_color               TYPE lvc_s_scol.

* Field-Symbols
  FIELD-SYMBOLS <fs_report>  LIKE LINE OF i_alv.

* ASIGNAMOS EL CAMPO CELLCOLORS AL LAYOUT
  playout-coltab_fieldname  = 'CELLCOLORS'.

  UNASSIGN <fs_report>.
  LOOP AT i_alv ASSIGNING <fs_report>.
    CASE <fs_report>-posnr.
      WHEN '000011'.
        l_color-fname = 'POSNR' .
        l_color-color-col = '6'. "ROJO
        l_color-color-int = '1'. "INTENSIDAD
        l_color-color-inv = '0'. "INVERSO
        APPEND l_color TO <fs_report>-cellcolors.

      WHEN '000013'.
        l_color-fname = 'POSNR' .
        l_color-color-col = '3'. "AMARILLO
        l_color-color-int = '1'.
        l_color-color-inv = '0'.
        APPEND l_color TO <fs_report>-cellcolors.

      WHEN OTHERS.
        l_color-fname = 'POSNR' .
        l_color-color-col = '1'. "AZUL
        l_color-color-int = '1'.
        l_color-color-inv = '0'.
        APPEND l_color TO <fs_report>-cellcolors.
    ENDCASE.
  ENDLOOP.
ENDFORM.                    " f_init_layout

60
WorkFlow / Re:Novato en WorkFlow
« Último mensaje por jafung en 29 de Septiembre de 2017, 05:32:35 am »
Agree with the comment above
Páginas: 1 ... 4 5 [6] 7 8 ... 10