[go: up one dir, main page]

0% found this document useful (0 votes)
552 views9 pages

How To Include Watermark in All Smartform

This article explains how to automatically include a watermark in all Smartform outputs, including standard forms, without modifying individual forms. It describes uploading a watermark graphic, creating a Smartform with the watermark node, and enhancing the SSFCOMP_PROCESS_DOCUMENT function module to add the watermark node for each page in the internal table.

Uploaded by

Marcos Abe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
552 views9 pages

How To Include Watermark in All Smartform

This article explains how to automatically include a watermark in all Smartform outputs, including standard forms, without modifying individual forms. It describes uploading a watermark graphic, creating a Smartform with the watermark node, and enhancing the SSFCOMP_PROCESS_DOCUMENT function module to add the watermark node for each page in the internal table.

Uploaded by

Marcos Abe
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

How to include Watermark in all Smartform

outputs including standard forms without


changing individual forms
Ir para o final dos metadados
 Criado por Former Member, última alteração por Former Member em nov 01, 2011

Ir para o início dos metadados

Applies to:

ECC6 and above. You need implicit enhancement points option to implement this.

Summary

This article explains how to include watermark symbol automatically in all Smartforms without touching the individual
forms. This is especially needed in the places where we have to differentiate between different print outs, printed from
different systems. This will be reflected in the print outs/emails/fax outputs, even if standard forms are used.

Author(s): Gokul Radhakrishnan Nair

Company: IBM

Created on: 15 August 2011

Author Bio

Gokul is a SAP ABAP consultant with around 10 years of SAP technical experience and experience in IS-OIL / IS-
Retail business along with SD,MM, FI-CO, CRM modules.

Purpose
This change is really necessary in the places where the same printer/output device shared among different systems
(e.g.: Test/Production or different test systems). This will help you to add a watermark symbol in all Smartform
(including SAP standard forms) printouts/ emails /faxes which will help to differentiate these output origins.

This is applicable only for

 Smartforms . Sapscript/ADOBE forms should be handled separately.


 Releases ECC6 and above since implicit enhancement points are used here

Method

Step1 Upload the watermark:


Upload the Graphic file into SE78 which will be used as the background watermark image. In this example, the
following image is taken as example.
And this image is uploaded in SE78. Please make sure the checkbox “Reserve Height Automatically” is not checked
while uploading it.

Step 2 Smartform creation:


Create a smartform which will have only one node. This is needed to hold the background picture which will be
displayed as the watermark and the picture properties. Any modifications/changes to the image properties will be
done in this smartform and will be reflected in all smartform outputs.

If you want to display different watermarks per system or form, you need to create that many Smartforms. This is
needed for easy handling purpose as we have all the output attributes available here and can be modified directly
here.

As mentioned earlier, only one page node is needed here and the MAIN window is also not needed here. Enter the
object details/ output mode/resolution and position.
Activate the smartform and do a test run, just to make sure whether the watermark can be seen in print preview.

The space found above the test watermark helps us to make sure that the placement of the watermark is correct.

Step 3 Enhance function module SSFCOMP_PROCESS_DOCUMENT:

This is the important step in the whole procedure.


Open the function module in SE37 and click on the Enhance Source Code button to make it ready for enhancement
point creation.

Click on the Edit menu, go to Enhancement Operations-> Select “Show Implicit Enhancement Options”. Now the
implicit enhancement option at the start of the function module is shown.

Right click on the implicit enhancement line, go to Enhancement implementation and create an implementation for
this. Choose ‘Type of Enhancement’ as ‘Code’ in the next popup as we will be using this for our coding purpose.
Enter a name for the implementation and text, create the implementation. Activate it.

Double click on the implementation. Go to change mode. Use the ABAP source code button to add our functionality in
it.

Step 4 Coding part:


In this enhancement, at this stage (function module SSFCOMP_PROCESS_DOCUMENT), internal table
DOCSTRUC holds all the page details & the corresponding technical details. This is exactly the step where we are
going to add the background image (watermark) as one of the records. Please see below the run time sample
records of DOCSTRUC. In the example, only the first page is handled. In the same way, please make sure the same
thing is done for all available pages by using LOOP…at DOCSTRUC and using control break statements by checking
the TDPAGE name.
Sample coding is given below. In this, we are populating the work area l_datastruc which has the same structure as
DOCSTRUC and appending it at the right place for every page. Important point to be noted here is, the background
image node which needs to be added should always be added as the first node for that page. In the above example,
this record should be added as the first record for page ‘FIRST’ and should be added as the 11th record (9 + 1 record
added for first page) for ‘NEXT” page.

Pass “%%BGR10” for TDWINDOW and ‘G’ for TDWTYPE to indicate that these are background graphic type nodes.
Other parameters can be copied from the current DOCSTRUC record.
We need to fill up two more important parameters CALLPROG and CALLFORM. We are going to call the smartform
created in the second step through these two parameters and will display the background watermark image. For that
purpose, retrieve the generated smartform function module name using SSF_FUNCTION_MODULE_NAME by
passing the smartform created in the second step. Retrieve the main program name of this function module name by
using function module FUNCTION_INCLUDE_INFO. This will return the main program name in parameter PNAME if
you pass the generated function module name in CHANGING parameter FUNCNAME. Pass this main program name
into CALLPROG parameter.

Based on your requirement, add the restrictions here, so that you use different smartform per system/ form. This
restriction is completely dependent on your requirement. You can add system wise checks also, something like SY-
SYSID check or SY-UNAME check based on the requirements.

Last parameter which should be passed is CALLFORM. Since we have only one node, the name will always be
“%WI1”. Please make sure you delete the Main window (in second step) as mentioned earlier to make sure that
name of this form does not change to %WI2 or %WI3.

Activate the Enhancement.

Output:
This is the output from one of the smartforms before activating the above enhancement.

After activating the enhancement, the output has changed like this with a watermark on it.
Please note that this is applicable for all smartforms including any standard forms. And the same output is applicable
in E-mail and Fax output as well.

You might also like