Convertir formulario smartform a pdf y utilizar open dataset para bajarlo directorio

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • minerva0112
    Senior Member
    • nov
    • 116

    #1

    Convertir formulario smartform a pdf y utilizar open dataset para bajarlo directorio

    Estoy convirtiendo un formulario smartform a pdf y luego bajarlo a un directorio, cuando utilizo CALL FUNCTION 'GUI_DOWNLOAD', todo funciona perfecto, pero esto va ser realizado en proceso de fondo y al utilizar open dataset, genera error.


    Favor que posible solución puedo aplicar en este caso.

    gracias
  • vtsuchida
    Junior Member
    • dic
    • 21

    #2
    Hola, podrías poner algo de tu código para poder revisar el problema?
    Asumo que tienes una tabla OTF, la cual has convertido previamente a formato PDF.

    Saludos
    Saludos

    Comentario

    • minerva0112
      Senior Member
      • nov
      • 116

      #3
      Originalmente publicado por vtsuchida
      Hola, podrías poner algo de tu código para poder revisar el problema?
      Asumo que tienes una tabla OTF, la cual has convertido previamente a formato PDF.

      Saludos
      hola aqui te anexo

      g_texto = 'Listado de ingresos para la fecha:'.
      g_fecha = sy-datum.
      control_parameters-no_dialog = 'X'.
      output_options-tddest = 'PDF '.
      output_options-tdnewid = 'X'.
      output_options-tdimmed = 'X'.
      * g_ruta = 'C:\'.
      g_nombre = 'Lista'.

      CONCATENATE p_ruta g_nombre '.pdf' INTO g_archivo2.


      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
      formname = 'ZHRO_LSTD_NTFCCNS'
      IMPORTING
      fm_name = g_funcion
      EXCEPTIONS
      no_form = 1
      no_function_module = 2
      OTHERS = 3.

      IF sy-subrc = 0.

      CALL FUNCTION g_funcion
      EXPORTING
      ingrs = p_ingrs
      output_options = output_options
      control_parameters = control_parameters
      user_settings = ' '
      TABLES
      it_ingresos = it_ingresos
      EXCEPTIONS
      formatting_error = 1
      internal_error = 2
      send_error = 3
      user_canceled = 4
      OTHERS = 5.

      ELSE.
      MESSAGE x016(rp) WITH 'Genere el Formulario'(030)
      'ZHRO_LSTD_NTFCCNS'(031).
      ENDIF.

      SELECT SINGLE rqowner MAX( rqident ) AS rqident INTO (vl_uname, vg_n_spool)
      FROM tsp01
      GROUP BY rqowner
      HAVING rqowner = sy-uname.
      SELECT SINGLE rqclient rqo1name INTO (vg_client, vg_name)
      FROM tsp01
      WHERE rqident = vg_n_spool.
      CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
      EXPORTING
      authority = 'SP01'
      client = vg_client
      name = vg_name
      part = 1
      IMPORTING
      type = vg_tipo
      objtype = vg_tipo_obejto
      EXCEPTIONS
      fb_error = 1
      fb_rsts_other = 2
      no_object = 3
      no_permission = 4.

      IF vg_tipo_obejto(3) = 'OTF'.
      * Convertir el spool en pdf, desde un fomulario


      CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
      EXPORTING
      src_spoolid = vg_n_spool
      no_dialog = ' '
      IMPORTING
      pdf_bytecount = vg_numbytes_pdf
      pdf_spoolid = vg_pdf_spool_id
      btc_jobname = vg_job_name
      btc_jobcount = vg_job_id
      TABLES
      pdf = t_pdf
      EXCEPTIONS
      err_no_otf_spooljob = 1
      err_no_spooljob = 2
      err_no_permission = 3
      err_conv_not_possible = 4
      err_bad_dstdevice = 5
      user_cancelled = 6
      err_spoolerror = 7
      err_temseerror = 8
      err_btcjob_open_failed = 9
      err_btcjob_submit_failed = 10
      err_btcjob_close_failed = 11.

      ELSE.

      * Convertir el spool en pdf, desde una tabla de sap
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
      EXPORTING
      src_spoolid = vg_n_spool
      no_dialog = ' '
      IMPORTING
      pdf_bytecount = vg_numbytes_pdf
      pdf_spoolid = vg_pdf_spool_id
      btc_jobname = vg_job_name
      btc_jobcount = vg_job_id
      TABLES
      pdf = t_pdf
      EXCEPTIONS
      err_no_abap_spooljob = 1
      err_no_spooljob = 2
      err_no_permission = 3
      err_conv_not_possible = 4
      err_bad_destdevice = 5
      user_cancelled = 6
      err_spoolerror = 7
      err_temseerror = 8
      err_btcjob_open_failed = 9
      err_btcjob_submit_failed = 10
      err_btcjob_close_failed = 11.


      ENDIF.


      DATA: w_lines TYPE tline.
      CONCATENATE p_ruta g_nombre '.pdf' INTO g_archivo2.

      OPEN DATASET g_archivo2 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS.

      IF sy-subrc = 0.
      LOOP AT t_pdf INTO w_lines.
      TRANSFER w_lines TO g_archivo2 LENGTH 2500.
      ENDLOOP.
      ENDIF.
      CLOSE DATASET g_archivo2.


      gracias

      Comentario

      • ballan
        Senior Member
        • oct
        • 671

        #4
        Prueba a sustituir

        OPEN DATASET g_archivo2 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS.

        Por

        OPEN DATASET g_archivo2 FOR OUTPUT IN BINARY MODE ....

        De todas formas dinos el error exacto que te da para saber por donde van los tiros

        Comentario

        • minerva0112
          Senior Member
          • nov
          • 116

          #5
          Originalmente publicado por ballan
          Prueba a sustituir

          OPEN DATASET g_archivo2 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS.

          Por

          OPEN DATASET g_archivo2 FOR OUTPUT IN BINARY MODE ....

          De todas formas dinos el error exacto que te da para saber por donde van los tiros

          hola gracias por responder, ya le cambie la opción al open data, pero ni siquiera me da error solo me da el msje que creo el pdf, pero no lo agrega al directorio.....

          Comentario

          • minerva0112
            Senior Member
            • nov
            • 116

            #6
            Originalmente publicado por ballan
            Prueba a sustituir

            OPEN DATASET g_archivo2 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT IGNORING CONVERSION ERRORS.

            Por

            OPEN DATASET g_archivo2 FOR OUTPUT IN BINARY MODE ....

            De todas formas dinos el error exacto que te da para saber por donde van los tiros
            listo era la manera de como estaba declarando, es asi:

            DATA: ls_lines LIKE LINE OF lt_lines.
            DATA ld_ofile(100) TYPE c.

            ld_ofile = '\\veccsapp14\PB\Lista.pdf'.
            OPEN DATASET ld_ofile FOR OUTPUT IN BINARY MODE.
            LOOP AT t_pdf INTO ls_lines.
            TRANSFER ls_lines TO ld_ofile.
            ENDLOOP.
            CLOSE DATASET ld_ofile.

            gracias

            Comentario

            Trabajando...