Anuncio

Colapsar
No hay anuncio todavía.

Problemas con el simbolo #### al cargar una tabla

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Problemas con el simbolo #### al cargar una tabla

    Hola a todos.

    Me ha surguido un gran problema que se trata de:

    Tengo una conexión del R3 a un FTP para traer un archivo txt, el cual contiene unos campos que debo de guardar en unat tabla Z.

    Todo el proceso esta bien acceso al FTP obtengo los datos estos los guardo en una cadena de caracteres, para despues aplicarle un LOOP y un SPLIT y guardarlos en su respectivos campos de la tabla Z.


    El gran problema es:

    en el txt son varias lineas para dividir los campos ejemplo:

    22,20,2010-07-06 10-53-52
    245,7,2010-05-01 12-34-15
    213,20,2010-07-06 10-53-05


    El problema es que cuando checo la string biene asi: 22,20,2010-07-06 10-53-52##245,7,2010-05-01 12-34-15##213,20,2010-07-06 10-53-05#############

    El problema es que necesito quitar estos ## por que en la tabla solo se almacena la primera linea y las otras ya no!!!!!


    22 20 2010-07-06 10-53-52


    Espero sus sugerencias !!!!!!!!

    GRACIAS!!!!!!!!!!!

  • #2
    ¿Cómo recuperas la cadena de caracteres?

    ¿No puedes utilizar alguna función que te reconozca el salto de línea?

    El problema también puede venir de la codificación del texto.

    Saludos
    "Soy el señor Lobo, arreglo problemas"
    http://sapymas.blogspot.com/

    Comentario


    • #3
      Originalmente publicado por bisonye Ver Mensaje
      ¿Cómo recuperas la cadena de caracteres?

      ¿No puedes utilizar alguna función que te reconozca el salto de línea?

      El problema también puede venir de la codificación del texto.

      Saludos


      GRACIA!!!!!!!!!!!!!!!!!!! Por interesarte en mi problema.


      la cadena de caracteres la recupero con esta función:

      CALL FUNCTION 'FTP_SERVER_TO_R3'
      EXPORTING
      HANDLE = HDL
      FNAME = FILENAME
      IMPORTING
      BLOB_LENGTH = BLOB_LENGTH
      TABLES
      BLOB = BLOB[]
      EXCEPTIONS
      .........

      Esta es la tabla donde la guardo.

      * TABLAS INTERNAS
      BEGIN OF BLOB OCCURS 0,
      LINE(200) TYPE C,
      END OF BLOB,


      y depues de tenerla le aplico un loop para guardarla en una tabla interna


      *REPLACE ALL OCCURRENCES OF '#' in TABLE blob WITH SPACE. --->>>No reconose al simbolo #.

      loop at blob.
      SPLIT BLOB AT ','
      INTO IT_TABLE-Vbelmd
      IT_TABLE-folio
      IT_TABLE-fecha.
      append IT_TABLE.
      clear IT_TABLE.
      endloop.



      lo guarda bien y todo pero solo la primera linea. Esta carga del archivo tambien lo habia hecho de forma local con el GUI_UPLOAD y no habia ningun problema por que guardaba todas las lines que tuviera el TXT.



      Espero y puedas AYUDARME..

      Comentario


      • #4
        Originalmente publicado por vt010101 Ver Mensaje
        GRACIA!!!!!!!!!!!!!!!!!!! Por interesarte en mi problema.


        la cadena de caracteres la recupero con esta función:

        CALL FUNCTION 'FTP_SERVER_TO_R3'
        EXPORTING
        HANDLE = HDL
        FNAME = FILENAME
        IMPORTING
        BLOB_LENGTH = BLOB_LENGTH
        TABLES
        BLOB = BLOB[]
        EXCEPTIONS
        .........

        Esta es la tabla donde la guardo.

        * TABLAS INTERNAS
        BEGIN OF BLOB OCCURS 0,
        LINE(200) TYPE C,
        END OF BLOB,


        y depues de tenerla le aplico un loop para guardarla en una tabla interna


        *REPLACE ALL OCCURRENCES OF '#' in TABLE blob WITH SPACE. --->>>No reconose al simbolo #.

        loop at blob.
        SPLIT BLOB AT ','
        INTO IT_TABLE-Vbelmd
        IT_TABLE-folio
        IT_TABLE-fecha.
        append IT_TABLE.
        clear IT_TABLE.
        endloop.



        lo guarda bien y todo pero solo la primera linea. Esta carga del archivo tambien lo habia hecho de forma local con el GUI_UPLOAD y no habia ningun problema por que guardaba todas las lines que tuviera el TXT.



        Espero y puedas AYUDARME..
        La # no te la va a reconocer por que es un caracter especial. Intenta subir los datos con el parámetro character_mode de la función = 'X' a ver que pasa.

        Saludos
        "Soy el señor Lobo, arreglo problemas"
        http://sapymas.blogspot.com/

        Comentario


        • #5
          Originalmente publicado por bisonye Ver Mensaje
          La # no te la va a reconocer por que es un caracter especial. Intenta subir los datos con el parámetro character_mode de la función = 'X' a ver que pasa.

          Saludos
          Ya intente lo que me comentas pero al ponerlo no deja subir los datos, mi string biene vacia.


          ¿Que más se podria hacer?

          Comentario


          • #6
            Hola,

            esa línea la observas al momento de realizar el debug? o directamente cuando visualizas el archivo?

            Comentario


            • #7
              Originalmente publicado por koken Ver Mensaje
              Hola,

              esa línea la observas al momento de realizar el debug? o directamente cuando visualizas el archivo?
              En la dos partes en el debug y al guardar los datos, desde el momento en que el archivo es subido ya trae los #.

              Comentario


              • #8
                No veo más opciones en la función y tampoco veo funciones que puedan ayudarte.

                Lo siento
                "Soy el señor Lobo, arreglo problemas"
                http://sapymas.blogspot.com/

                Comentario


                • #9
                  Hola.

                  A mi se me ocurre hacerlo por codigo...

                  La función almacena todo el contenido del fichero en una única línea. Por lo que puedes hacer lo siguiente:

                  DO.
                  * Comprobacion de salida del bucle
                  IF contenido_fichero = 0.
                  EXIT.
                  ENDIF.

                  linea_tabla_interna = contenido_fichero+0(cantidad_caracteres_linea).

                  APPEND linea_tabla_interna TO tabla_interna.

                  contenido_fichero = contenido_fichero+cantidad_caracteres_linea.
                  ENDDO.

                  De esta manera obtendras el contenido del fichero en tu tabla interna.
                  SAP solo es el medio a través del cual se expresa nuestra imaginación.

                  Comentario


                  • #10
                    Solución

                    Gracias a todos por su ayuda me ha sido de gran utilidad.

                    Al final, pedia al encargado de mandarme los datos que me enviara las lineas de un solo tamaño:

                    000000224,000006,10-05-2010,12-34-10
                    000000123,000004,10-05-2010,12-34-10
                    000000890,000003,10-05-2010,12-34-10
                    000000980,000007,10-05-2010,12-34-10
                    000000566,000008,10-05-2010,12-34-10

                    Esto no resolvio el problema de los #, pero ya podia delimitar mi string(36) y poder tomar solo los datos necesarios.


                    000000224,000006,10-05-2010,12-34-10##
                    000000123,000004,10-05-2010,12-34-10##

                    Aplique algunos LOOP y SPLIT y puede meter los datos en su correspondiente campo y con los estandares de SAP.


                    000000224
                    000006
                    10052010
                    123410

                    Esta fue la mejor solución, la otra era cambiar mi archivo a otro formato (.csv).


                    GRACIAS POR SU INTERES.

                    BISONYE
                    KOKEN
                    LOCO-1

                    Comentario

                    Trabajando...
                    X