Adobe Forms - Generar PDF desde ABAP

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • luise32
    Member
    • oct
    • 71

    #1

    Adobe Forms - Generar PDF desde ABAP

    Hola a todos, he intentado buscar ayuda acerca de este tema y no he tenido mucha suerte. Resulta que necesito generar un PDF en adobe forms, para ello ingrese en la transaccion SFP e hice lo siguiente:

    1. Cree una interface en la cual agregue dos elementos import los cuales son dos tablas, se supone que debo enviar estas dos tablas desde un programa ABAP el cual ya lo tengo funcionando.

    2. Cree el form en esta misma transaccion y diseñe el reporte.

    Necesito saber que lineas de codigo debo utilizar para generar ese pdf desde un programa ABAP.

    Gracias!
    Consultor SAP ABAP
  • ademar
    Member
    • oct
    • 31

    #2
    Funciones para mostrar Adobe Form

    Aqui te dejo las funciones necesarias para que puedas mostrar el formulario mediante codigo ABAP.

    Data: g_params type sfpoutputparams.

    call function 'FP_JOB_OPEN'
    changing
    ie_outputparams = g_params
    exceptions
    cancel = 1
    usage_error = 2
    system_error = 3
    internal_error = 4
    others = 5.

    call function 'FP_FUNCTION_MODULE_NAME'
    exporting
    i_name = "Normbre del formulario
    importing
    e_funcname = fm_name.

    call function fm_name.

    call function 'FP_JOB_CLOSE'
    exceptions
    usage_error = 1
    system_error = 2
    internal_error = 3
    others = 4.

    Espero que te ayude a lo que quieres desarrollar.

    Slds.

    ------------------------------------
    antony.alza@gmail.com

    Comentario

    • luise32
      Member
      • oct
      • 71

      #3
      Muchas gracias por responder, podrias orientarme un poco mas? no me queda claro el lugar exacto en donde le envio los parametros a mi Form que he creedo en la transacción SFP, debo enviar dos tablas pero no estoy seguro de como hacerlo.
      Consultor SAP ABAP

      Comentario

      • luise32
        Member
        • oct
        • 71

        #4
        Para los interesados agrego el código que nos permite generar el adobe form desde un programa ABAP pero tengan en cuenta que es necesario crear la interfaz y el form en la transacción SFP.
        Código PHP:
        DATA:
        *
        Nombre del form
              form              TYPE tdsfname  VALUE 
        'ZESTADOCTA_FRM',
              
        conn              TYPE rfcdest   VALUE 'ADS',
              
        connections       TYPE ty_connections,
              
        fm_name           TYPE rs38l_fnam,
              
        fp_docparams      TYPE sfpdocparams,
              
        fp_outputparams   TYPE sfpoutputparams,
              
        fp_result         TYPE fpformoutput,
              
        error_string      TYPE string.

        *
        Lineas de codigo del programalleno los campos que exportare al adobe
        *form para que este funcione

        *Cuando ya tengo toda la información necesaria puedo generar el adobe form

          CALL 
        FUNCTION 'FP_FUNCTION_MODULE_NAME'
            
        EXPORTING
              i_name     
        form
            IMPORTING
              e_funcname 
        fm_name.

        Set output parameters and open spool job
          fp_outputparams
        -preview  'X'.    " do not launch print preview
          fp_outputparams-nodialog = 'X'.      " 
        suppress print dialog
          fp_outputparams
        -connection conn.
          
        CALL FUNCTION 'FP_JOB_OPEN'
            
        CHANGING
              ie_outputparams 
        fp_outputparams
            EXCEPTIONS
              cancel          
        1
              usage_error     
        2
              system_error    
        3
              internal_error  
        4
              OTHERS          
        5.
          
        IF sy-subrc <> 0.
            MESSAGE ID sy
        -msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy
        -msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.

        Set form language and country (->form locale)
        *  
        fp_docparams-langu    'D'.
        *  
        fp_docparams-country  'DE'.
          
        fp_docparams-fillable 'X'.

        Now call the generated function module
          CALL 
        FUNCTION fm_name
            EXPORTING
              
        /1bcdwb/docparams  fp_docparams
        *Estos son los datos que envio desde el programa ABAP 
        *y que mi interfaz recibees necesario que
        *sean del mismo tipo sino habra un error en ejecución
              it_personaldata    
        wa_kna1
              it_estadocta       
        it_zestado
              head               
        header
            IMPORTING
              
        /1bcdwb/formoutput fp_result
            EXCEPTIONS
              usage_error        
        1
              system_error       
        2
              internal_error     
        3
              OTHERS             
        4.
          
        IF sy-subrc <> 0.
            CALL 
        FUNCTION 'FP_GET_LAST_ADS_ERRSTR'
              
        IMPORTING
                e_adserrstr 
        error_string.
            IF 
        NOT error_string IS INITIAL.
        *     
        we received a detailed error description
              WRITE
        :/ error_string.
              EXIT.
            ELSE.
              
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                      WITH sy
        -msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
            ENDIF.
          ENDIF.

        Close spool job
          CALL 
        FUNCTION 'FP_JOB_CLOSE'
        *   IMPORTING
        *     E_RESULT             =
            
        EXCEPTIONS
              usage_error          
        1
              system_error         
        2
              internal_error       
        3
              OTHERS               
        4.
          
        IF sy-subrc <> 0.
            MESSAGE ID sy
        -msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy
        -msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF. 
        Ahora resulta que estoy llenando una tabla y si se le meten muchos registros las partes del formulario se montan unas con otras. De qué manera puedo evitar que esto suceda?

        Gracias!
        Editado por última vez por luise32; 11/04/2012, 15:44:38.
        Consultor SAP ABAP

        Comentario

        • esterg
          Junior Member
          • sep
          • 20

          #5
          Adobe form ABAP (Tablas)

          Hola,
          Tengo un problema cuando cargo estructuras tipo tabla en CALL FUNCTION fm_name , no me llegan los datos.

          Tengo segundo problema en el Layout no me aparece la tabla en la ejecución , si en el diseño ni siquiera vacia (hay algun tips?)

          Muchas gracias, si alguien me puede ayudar en algo.

          Comentario

          • alvcano
            Junior Member
            • oct
            • 13

            #6
            Os dejo un ejemplo sobre como construir un adobe form, está bastante bien explicado el ejemplo. Si no conoces mucho del tema puede venir bien leerlo.

            Comentario

            Trabajando...