Call Adobe Form through ABAP Program
2015-04-24      0个评论    来源:ChampaignWolf的专栏  
    adobe form-LMLPHP我要投稿

Scenario

Create an Adobe Form and call it through an ABAP Program

Pre-request:

1) In the Front End System Adobe Life Cycle Designer has to install. Then only the Adobe Form Layout and Adobe form will open in the SAP system
2) Adobe Reader 8.0 and above version has to installed

Steps to Create and Call the adobe form

1) Create a Table Type for a Table
2) Create the Interface for the Adobe Form
3) Create the Adobe Form and design the layout
4) Write a Program to Call the Adobe Form

Step by Step Approach

1) Create a Table Type for a Table

Go to the Transaction Code "SE11" and give the Table Type name as "zmari_tb1".

adobe form-LMLPHP
Then click "Create" and a popup will appear as shown below.

Select the radio button "Table Type" and press enter

adobe form-LMLPHP

Enter the Table Name 'MARI' in the line type.
adobe form-LMLPHP

Then save it as Local Object and activate it.

adobe form-LMLPHP

Activate the Table Type.

adobe form-LMLPHP

2) Create the Interface for the Adobe Form

Go to Transaction code 'SFP' and create the Interface for the ADOBE FORM

Enter the Interface Name as 'ZSUR_ADOBE_INTR' and click "Create"

adobe form-LMLPHP

Give the Description and click save.

adobe form-LMLPHP

Give Description and press enter

adobe form-LMLPHP

Save as Local Object

adobe form-LMLPHP

Then the below screen will appear.

adobe form-LMLPHP

Then Click "Append Row" icon as indicated below.
adobe form-LMLPHP

Then as new row will inserted and assign the Table Type ZMARI_TBL value as shown below.

adobe form-LMLPHP

Then activate it.

adobe form-LMLPHP

Then go back and Give the Adobe Form name click Create.

3) Create Adobe Form and design the layout in the Same Transaction Code "SFP"

adobe form-LMLPHP

Give the Description and the Interface name, which just created as indicated below.

adobe form-LMLPHP

Then Save as Local Object.

adobe form-LMLPHP

Then the below Screen will appear.

adobe form-LMLPHP

Expand the import button and you can find the Table Parameter ZMARI.

adobe form-LMLPHP

Then Drag and drop it to the Context as shown below

adobe form-LMLPHP

After Drag and Drop the Table type to Context, then below screen will appear.

adobe form-LMLPHP

Then Click the "Layout" Tab and the Below Screen will appear.

adobe form-LMLPHP

Drag and Drop the table type "ZMARI" to Design View Layout as indicated below.

adobe form-LMLPHP

Then adjust the Table in the Top center of the layout as shown below.
adobe form-LMLPHP

Select the 'Text' from the Library and drop it the Layout 'Design" View and give a description to the Table as shown below.

adobe form-LMLPHP

adobe form-LMLPHP

Then Activate the Adobe form

adobe form-LMLPHP

4) Write a Program to Call the Adobe Form

Go to Transaction code SE38 and Create a Test Program "ZCALL_ADOBE_FORM".

adobe form-LMLPHP

adobe form-LMLPHP

Save it as local Object.

adobe form-LMLPHP

Then enter the Below Code.

adobe form-LMLPHP

REPORT  zcall_adobe_form.
&-----------------------------------------------------------------------&
*& Author : P Surjith Kumar
*& Purpose : Call the Adobe form in the ABAP Program
*&------------------------------------------------------------------------
DATA: fm_name TYPE rs38l_fnam, " CHAR300 Name of Function Module
fp_docparams TYPE sfpdocparams, " Structure SFPDOCPARAMS Short Description Form ParametersforForm Processing
fp_outputparams TYPE sfpoutputparams, " Structure SFPOUTPUTPARAMS Short Description Form Processing Output Parameter
it_mari TYPE zmari_tbl. " Table Type ZMARI_TBL MARI Table Tyoe
* Sets the output parameters and opens the spool job
CALL FUNCTION 'FP_JOB_OPEN' "& Form Processing: Call Form
CHANGING
ie_outputparams = fp_outputparams
EXCEPTIONS
cancel =1
usage_error =2
system_error =3
internal_error =4
OTHERS =5.
IF sy-subrc <> 0.
* <error handling>
ENDIF.
*&---- Get the name of the generated function module
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME' "& Form Processing Generation
EXPORTING
i_name ='ZSUR_ADOBE_FORM'
IMPORTING
e_funcname = fm_name.
IF sy-subrc <> 0.
* <error handling>
ENDIF.
*-- Fetch the Data and store it in the Internal Table
SELECT * FROM mari INTO TABLE it_mari UP TO15ROWS.
* Language and country setting (here US as an example)
fp_docparams-langu ='E'.
fp_docparams-country ='US'.
*&--- Call the generated function module
CALL FUNCTION fm_name
EXPORTING
/1bcdwb/docparams = fp_docparams
zmari = it_mari
* IMPORTING
* /1BCDWB/FORMOUTPUT =
EXCEPTIONS
usage_error =1
system_error =2
internal_error =3.
IF sy-subrc <> 0.
* <error handling>
ENDIF.
*&---- Close the 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.
* <error handling>
ENDIF.

Then activate and Execute (F8) it.

adobe form-LMLPHP

Then the printer screen will appear.
adobe form-LMLPHP

Click the Print Preview

adobe form-LMLPHP

Then the Output will shown as below.

adobe form-LMLPHP

05-11 11:12