Post #36: Call an AdobeForm

Adobeforms uses Portable Document Format (PDF) and software from Adobe Systems Inc. that has been integrated into the SAP environment. You can create interactive forms in PDF format that allow users to fill out the form on the screen and save their entries in XML format in the form.

In this blog post i will show you how to call an Adobe Form in a custom program.

 

 I created an AdobeForm Z_ADOBEFORM using transaction SFP with importing parameters Employee personnel Number, Employee Position and Employee Organization Unit.

 

Source Code:

 

REPORT Z_RIM_ABASSI.

TABLES: PA0001.


*-- Data Declaration
DATA: GS_PA0001 TYPE PA0001.
DATA: GS_OUTPUTPARAMS TYPE SFPOUTPUTPARAMS.
DATA: FM_NAME TYPE RS38L_FNAM.
DATA: FP_DOCPARAMS TYPE SFPDOCPARAMS.
DATA: GS_FORM_OUTPUT TYPE FPFORMOUTPUT.

*-- Selection screen
SELECTION-SCREEN: BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_PERNR FOR PA0001-PERNR.
PARAMETERS: P_DATE LIKE SY-DATUM.
SELECTION-SCREEN: END OF BLOCK A1.

*-- Start Of Selection
START-OF-SELECTION.

*-- Populate Data
  PERFORM POPULATE_DATA.

*-- Call AdobeForm
  PERFORM CALL_FORM.

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form POPULATE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM POPULATE_DATA .

  CLEAR GS_PA0001.
  SELECT SINGLE * INTO GS_PA0001
  FROM PA0001
  WHERE PERNR IN S_PERNR
  AND BEGDA <= P_DATE
  AND ENDDA >= P_DATE.

ENDFORM. " POPULATE_DATA
*&---------------------------------------------------------------------*
*& Form CALL_FORM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CALL_FORM .

*-- Call the form
  GS_OUTPUTPARAMS-NOPREVIEW = ' '.
  GS_OUTPUTPARAMS-NODIALOG = ' '.

  CALL FUNCTION 'FP_JOB_OPEN'
  CHANGING
  IE_OUTPUTPARAMS = GS_OUTPUTPARAMS
  EXCEPTIONS
  CANCEL = 1
  USAGE_ERROR = 2
  SYSTEM_ERROR = 3
  INTERNAL_ERROR = 4
  OTHERS = 5.

*-- Call form
  CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
  EXPORTING
  I_NAME = 'Z_ADOBEFORM'
  IMPORTING
  E_FUNCNAME = FM_NAME.

 

  CALL FUNCTION FM_NAME
  EXPORTING
  /1BCDWB/DOCPARAMS = FP_DOCPARAMS
  PERNR = GS_PA0001-PERNR
  PLANS = GS_PA0001-PLANS
  ORGEH = GS_PA0001-ORGEH
  IMPORTING
  /1BCDWB/FORMOUTPUT = GS_FORM_OUTPUT
  EXCEPTIONS
  USAGE_ERROR = 1
  SYSTEM_ERROR = 2
  INTERNAL_ERROR = 3
  OTHERS = 4.

*-- Close form
  CALL FUNCTION 'FP_JOB_CLOSE'
  EXCEPTIONS
  USAGE_ERROR = 1
  SYSTEM_ERROR = 2
  INTERNAL_ERROR = 3
  OTHERS = 4.

ENDFORM. " CALL_FORM

Leave a comment