Estoy tratando de salvar a un SAP tabla interna para SAP Directorio .Archivo CSV. He aprendido que debo convertir el contenido de un tipo de letra pero me da un ilegales error de conversión.
Este es mi código:

 FORM f_opendata TABLES p_tab TYPE STANDARD TABLE USING
                   p_work TYPE any.


FIELD-SYMBOLS: <lfs_wa>.


 CONCATENATE c_headerfile c_initials sy-datum c_ext INTO v_dtasetfile.

OPEN DATASET v_dtasetfile FOR OUTPUT IN TEXT MODE ENCODING UTF-8.

IF sy-subrc EQ 0.

LOOP AT p_tab INTO p_work.
  ASSIGN p_work TO <lfs_wa> CASTING TYPE c.
  TRANSFER <lfs_wa> TO v_dtasetfile.
ENDLOOP.
CLOSE DATASET v_dtasetfile.
MESSAGE i899(f2) WITH 'SUCCESS' v_dtasetfile.

ENDIF.
ENDFORM.   

Este es el error:

Se produjo una excepción que se explica en detalle a continuación.
La excepción, que es asignado a la clase CX_SY_ASSIGN_CAST_ILLEGAL_CAST, fue
no se detecta en el procedimiento de F_OPENDATA, ni se propagan por una elevación de la cláusula.
Desde la llamada del procedimiento no podría haber previsto que el
la excepción se llevaría a cabo el programa actual está terminado.
La razón de la excepción es:

Se ha producido el error en una declaración de la forma
ASIGNAR f A la FUNDICIÓN.

ASIGNAR f A la FUNDICIÓN de TIPO t.

ASIGNAR f A la FUNDICIÓN, COMO f1.

en la tabla de instrucciones con la adición

LA ASIGNACIÓN DE FUNDICIÓN.

El siguiente error causas posibles:

1. El tipo de campo de f o el tipo de destino determinado por , t o f1
contiene referencias de datos, las referencias a objetos, cadenas o tablas internas
como componentes.

Estos componentes deben coincidir exactamente cuanto a su posición (offset)
y su tipo se refiere.

2. El tipo especificado t o el tipo de f1 no son adecuados para el tipo de
el campo de símbolo .

3. El tipo de fila de la tabla relacionada que no es adecuado para el tipo de destino
de acuerdo a lo especificado por las normas que se describen en 1).

InformationsquelleAutor user919789 | 2013-07-05

2 Comentarios

  1. 1

    La conversión de no es la misma cosa como casting. Si la tabla contiene campos que no son CLIKE, el sistema se niegan a emitir la totalidad de la línea. Usted tiene dos opciones en este momento:

    • asegurarse de que su salida de la tabla sólo contiene caracteres como campos o
    • caminar a través de cada campo de cada línea (puede utilizar RTTI para ello) y convertir el contenido como lo requiere la
  2. 1

    He utilizado una función para convertir a formato de texto antes de transferir los datos al conjunto de datos:

    CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
    EXPORTING
      I_FIELD_SEPERATOR          = c_colon
    TABLES
      I_TAB_SAP_DATA             = ig_final
    CHANGING
     I_TAB_CONVERTED_DATA       = ig_text
    EXCEPTIONS
     CONVERSION_FAILED          = 1
     OTHERS                     = 2
          .
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    
    
    
    OPEN DATASET v_g_dtasetfile FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
    
    IF sy-subrc EQ 0.
    
    LOOP AT ig_text ASSIGNING <fs_l_wa>.
      TRANSFER <fs_l_wa> TO v_g_dtasetfile.
    ENDLOOP.
    CLOSE DATASET v_g_dtasetfile.
    
    MESSAGE i899(f2) WITH text-020 v_g_dtasetfile text-021.
    
    ENDIF.
    

Dejar respuesta

Please enter your comment!
Please enter your name here