Error que no puedo identificar en ABAP

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jcortegana1993
    Junior Member
    • abr
    • 8

    #1

    Error que no puedo identificar en ABAP

    Estoy intentando crear un archivo de texto plano a partir de un reporte ya creado, y al querer generar me sale el siguiente error, no se a que se debe en otro programa no ocaciona ningun error, que podria ser:

    este es el error:

    A line of "PI_SALDOS" and "GTD_DATA_SALDOS" are not mutually convertible. In a Unicode program, "PI_SALDOS" must have the same structure layout as "GTD_DATA_SALDOS". Irrespective of the length of a Unicode character. Unicode character.
  • Jesicka_21
    Junior Member
    • sep
    • 15

    #2
    Error

    Buen día,

    Podrías pasar el código así vemos exactamente que es lo que esta fallando? Tal vez sea cambiar un type por un like line of.
    Saludos!,

    Jess.

    "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."

    Comentario

    • jcortegana1993
      Junior Member
      • abr
      • 8

      #3
      Este es el codigo

      *{@Jhohan


      *&---------------------------------------------------------------------*
      *& Form generar_archivos_control_sal
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      * -->PI_SALDOS text
      *----------------------------------------------------------------------*
      FORM generar_archivos_control_sal USING pi_saldos LIKE gtd_faglflext[].
      DATA: ls_lines TYPE i, ls_reg(15) TYPE c, ls_hora(8) TYPE c,
      ls_fecha LIKE sy-datum.

      * PERFORM calcular_fecha CHANGING
      ls_fecha = sy-datum.

      * Archivo de control de saldos
      CLEAR: ls_lines, ls_reg, ls_hora.
      DESCRIBE TABLE pi_saldos LINES ls_lines.
      ls_reg = ls_lines.
      CONDENSE ls_reg. UNPACK ls_reg TO ls_reg.

      CONCATENATE sy-uzeit+0(2) sy-uzeit+2(2) sy-uzeit+4(2)
      INTO ls_hora SEPARATED BY ':'.

      gtd_ctrl_sal-data+0(1) = space.
      gtd_ctrl_sal-data+1(30) = space.
      gtd_ctrl_sal-data+31(30) = space.
      gtd_ctrl_sal-data+61(30) = space.
      gtd_ctrl_sal-data+91(2) = '00'.
      gtd_ctrl_sal-data+93(30) = space.
      gtd_ctrl_sal-data+123(3) = '000'.
      gtd_ctrl_sal-data+126(3) = '000'.
      gtd_ctrl_sal-data+129(20) = ' 00000000000000.0000'.
      gtd_ctrl_sal-data+149(15) = ls_reg.
      gtd_ctrl_sal-data+164(8) = ls_fecha.
      gtd_ctrl_sal-data+172(8) = ls_hora.
      APPEND gtd_ctrl_sal.
      CLEAR gtd_ctrl_sal.

      ENDFORM. "generar_archivos_control_sal





      *&---------------------------------------------------------------------*
      *& Form descargar_archivos
      *&---------------------------------------------------------------------*
      * text
      *----------------------------------------------------------------------*
      * -->PI_SALDOS text
      * -->PI_CTRL_SAL text
      *----------------------------------------------------------------------*
      FORM descargar_archivos USING pi_saldos LIKE gtd_faglflext[]
      pi_ctrl_sal LIKE gtd_ctrl_sal[].

      DATA: ls_directorio LIKE rlgrap-filename.

      * Archivo de Saldos
      CLEAR ls_directorio.
      CONCATENATE gs_ruta gs_broad_sal '.TXT' INTO ls_directorio.

      * OPEN DATASET ls_directorio FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. "-@0003
      OPEN DATASET ls_directorio FOR OUTPUT IN TEXT MODE ENCODING UNICODE
      IGNORING CONVERSION ERRORS. "+@0003
      LOOP AT pi_saldos INTO gtd_data_saldos.
      TRANSFER gtd_data_saldos TO ls_directorio.
      ENDLOOP.
      CLOSE DATASET ls_directorio.

      * Archivo de Contol de Saldos
      CLEAR ls_directorio.
      CONCATENATE gs_ruta gs_broad_sal '_CTRL.TXT' INTO ls_directorio.

      * OPEN DATASET ls_directorio FOR OUTPUT IN TEXT MODE ENCODING DEFAULT "-@0003
      OPEN DATASET ls_directorio FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE
      IGNORING CONVERSION ERRORS. "+@0003
      LOOP AT pi_ctrl_sal INTO gtd_data_ctrl_sal.
      TRANSFER gtd_data_ctrl_sal TO ls_directorio.
      ENDLOOP.
      CLOSE DATASET ls_directorio.

      ENDFORM. "descargar_archivos

      *}@Jhohan

      e intentado cambiarlo pero no se me sale el mismo error

      Comentario

      • Jesicka_21
        Junior Member
        • sep
        • 15

        #4
        Tipo de gtd_data_saldos

        Como definiste gtd_data_saldos?
        Saludos!,

        Jess.

        "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."

        Comentario

        • jcortegana1993
          Junior Member
          • abr
          • 8

          #5
          Decalaracion

          *&--------------------------------------------------------------------&*
          *& T A B L A S I N T E R N A S G L O B A L E S &*
          *&--------------------------------------------------------------------&*
          gtd_data_saldos TYPE ty_data_saldos WITH HEADER LINE,



          *&--------------------------------------------------------------------&*
          *& T I P O S T A B L A S G L O B A L E S &*
          *&--------------------------------------------------------------------&*

          TYPES: ty_data_saldos LIKE TABLE OF l_data_sal,
          ty_ctrl_sal LIKE TABLE OF l_data_sal,
          ty_data_ctrl_sal LIKE TABLE OF l_data_sal.

          *&--------------------------------------------------------------------&*
          *& T I P O S G L O B A L E S &*
          *&--------------------------------------------------------------------&*

          DATA: BEGIN OF l_data_sal,
          data(990) TYPE c,
          END OF l_data_sal.

          Esa es la declaracion completa.

          Comentario

          • alvarops90
            Junior Member
            • abr
            • 13

            #6
            Buenos días,

            No he revisado el código entero pero estas haçaciendo un loop de PI_Datos en gtd _data_saldos ("LOOP AT pi_saldos INTO gtd_data_saldos").

            Te has asegurado que a estructura de datos de pi_datos de tipo gtd_data_saldos? Puedes pasar donde has declarado pi_saldos?.

            Un saludo.

            Comentario

            • Jesicka_21
              Junior Member
              • sep
              • 15

              #7
              Tipo gtd_faglflext

              Para mi el problema es la declaración de esta línea (PI_SALDOS) el cual no estoy viendo en el código que mandaste.

              Veo que PI_SALDOS tiene la siguiente declaración:

              pi_saldos LIKE gtd_faglflext[]

              No estoy viendo como esta armado gtd_faglflext. Pero puede ser que no este armado de la misma manera que gtd_data_saldos, ya que esta de la siguiente forma:

              DATA: BEGIN OF l_data_sal,
              data(990) TYPE c,
              END OF l_data_sal.

              Corrobora eso o seguimos investigando que puede ser.
              Saludos!,

              Jess.

              "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."

              Comentario

              • jcortegana1993
                Junior Member
                • abr
                • 8

                #8
                Ya encpontre el error pero se al llegar al loop no pasa los datos

                LLegue a ejecutar el programa pero al momento que entra al loop me gennera otro error

                Err.tmpo.ejec. UC_OBJECTS_NOT_CHARLIKE
                Fecha y hora 07.04.2016 15:04:49

                y no manda los datos al archivo.

                Comentario

                • Jesicka_21
                  Junior Member
                  • sep
                  • 15

                  #9
                  cl_abap_container_utilities=>fill_container_c

                  Podrías probar con lo siguiente:

                  data: ls_string(1000).

                  LOOP AT pi_saldos
                  INTO gtd_data_saldos.

                  CALL METHOD cl_abap_container_utilities=>fill_container_c
                  EXPORTING
                  im_value = gtd_data_saldos
                  IMPORTING
                  ex_container = ls_string
                  EXCEPTIONS
                  illegal_parameter_type = 1
                  OTHERS = 2.

                  IF sy-subrc is initial.

                  TRANSFER ls_string
                  TO ls_directorio.

                  ENDIF.

                  ENDLOOP.
                  Saludos!,

                  Jess.

                  "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."

                  Comentario

                  • jcortegana1993
                    Junior Member
                    • abr
                    • 8

                    #10
                    parece que lo genera pero vota este error

                    Ejecuto y si me convierte los datos con la función que mandaste pero me sale el siguiente erro:

                    "/xcom_rep/GAFI/salida/30/SALDOS1.TXT" ist nicht geöffnet.

                    Comentario

                    • Jesicka_21
                      Junior Member
                      • sep
                      • 15

                      #11
                      Originalmente publicado por jcortegana1993
                      Ejecuto y si me convierte los datos con la función que mandaste pero me sale el siguiente erro:

                      "/xcom_rep/GAFI/salida/30/SALDOS1.TXT" ist nicht geöffnet.
                      Tenes permiso para entrar a esa carpeta? Es la dir correcta?
                      Saludos!,

                      Jess.

                      "...Puedes llegar a cualquier parte, siempre y cuando andes lo suficiente..."

                      Comentario

                      Trabajando...