Utilizar proceso de fondo

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • gdmj1107
    Member
    • mar
    • 93

    #1

    Utilizar proceso de fondo

    Hola, les comento que tengo un programa que obtiene unos datos y los quiero bajar a uno o mas archivos texto, para lo cual utilizo la función Download, pero cuando lo envío a proceso de fondo, este se cancela, porque se produce el error "Errores tiempo ejecucióRAISE_EXCEPTION "
    Qué función puedo utilizar para poder procesar en fondo?

    Gracias por su ayuda

    GDMJ1107
  • gcid
    Junior Member
    • jun
    • 8

    #2
    Utilizar proceso de fondo

    Hola GDMJ1107, que yo sepa eso no se puede hacer, no puedes usar esa función para bajar a PC y procesarla en fondo, por que el proceso en fondo significa que le pasa la ejecución al servidor y como va a saber el servidor en que PC dejar el archivo?.

    En esos casos debe especificar bien si lo que quieren es ejecutar en proceso de fondo, debes enviarlo a un servidor UNIX u otro que ocupen Uds..
    ejemplo yo uso este código para bajar el archivo al servidor UNIX.

    *-Bajar a UNIX.-
    CONCATENATE p_dunix p_nfile INTO path_file.
    OPEN DATASET path_file FOR OUTPUT IN TEXT MODE.
    IF NOT sy-subrc IS INITIAL.
    MESSAGE i000(zg01) WITH
    'Error al generar archivo de salida' path_file.
    EXIT.
    ELSE.
    LOOP AT ti_reg.
    TRANSFER ti_reg TO path_file.
    IF NOT sy-subrc IS INITIAL.
    MESSAGE i001 WITH 'Error al grabar registros' path_file.
    ENDIF.
    ENDLOOP.
    CLOSE DATASET path_file.
    ENDIF.


    En el caso que solo deseen bajarlo a PC puedes ocupar la función download pero te recomiendo que ocupes WS_DOWNLOAD.
    Atte.,
    Gcid.

    Comentario

    • gdmj1107
      Member
      • mar
      • 93

      #3
      Quería evitar llevarlo al servidor pero tendré que hacerlo, gracias por tu ayuda

      Salu2

      Comentario

      • Toko
        Junior Member
        • abr
        • 20

        #4
        Bajar archivo en proceso de fondo

        Tengo el mismo problema con el proceso de fondo, utilizo lo siguiente:

        OPEN DATASET PATH_FILE FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.

        IF NOT SY-SUBRC IS INITIAL.

        write : 'Error al generar archivo de salida'.
        * EXIT.
        ELSE.

        LOOP AT T_SALIDA.
        TRANSFER T_SALIDA TO PATH_FILE.
        IF NOT SY-SUBRC IS INITIAL.
        WRITE: 'Error al grabar registros'.
        ENDIF.
        ENDLOOP.

        CLOSE DATASET PATH_FILE.
        ENDIF.

        es un servico AS/400, no me aparece error, pero no hace nada....

        alguien tiene alguna idea de como puedo hacerlo.

        atte
        toko

        Comentario

        • DCErick
          Moderator
          • mar
          • 1090

          #5
          Puedes grabarlo en una PC usando carpetas compartidas....
          Por ejemplo yo subo archivos de una PC que se conecta al banco, y para subirlos solo comparto la carpeta en donde se crearan dichos archivos y con el open dataset los abro poniento rutas como
          '\\192.168.11.114\Cash\28032007\160815.txt' y funciona de maravilla...

          puedes ver el grupo de funciones SAPLEPSF, ahi vienen varias funciones muy buenas para el manejo de archivos...

          Y si ves el codigo de las fuciones notaras que la mayoria usa open dataset para manejar los archivos...
          -------------------
          ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

          Comentario

          • bisonye
            Senior Member
            • ago
            • 635

            #6
            Originalmente publicado por Toko
            Tengo el mismo problema con el proceso de fondo, utilizo lo siguiente:

            OPEN DATASET PATH_FILE FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.

            IF NOT SY-SUBRC IS INITIAL.

            write : 'Error al generar archivo de salida'.
            * EXIT.
            ELSE.

            LOOP AT T_SALIDA.
            TRANSFER T_SALIDA TO PATH_FILE.
            IF NOT SY-SUBRC IS INITIAL.
            WRITE: 'Error al grabar registros'.
            ENDIF.
            ENDLOOP.

            CLOSE DATASET PATH_FILE.
            ENDIF.

            es un servico AS/400, no me aparece error, pero no hace nada....

            alguien tiene alguna idea de como puedo hacerlo.

            atte
            toko
            ¿Como pones la ruta? Si pones /directorio/ Te lo guarda en un directorio del raiz del 400 si omites la primera barra te lo guarda en el directorio por defecto del 400.
            A mi asi me funciona sin problemas
            http://sapymas.blogspot.com/

            Comentario

            Trabajando...