All smartforms inteview question and answer in SAP ABAP.
Smartforms inteview question and answer.
1. What Are Smart
Forms In SAP System?
SAP Smartform is a graphical user interface tool to
create and maintain forms. SAP Smart Forms supports printer, fax, e-mail or
internet (XML) as its output medium.
SAP Smartform is a tool for the maintenance of forms
on which application data from the SAP system can be output. Depending on the
application, the number of forms to be printed can be very high, and they might
have to be printed in a short period of time, in a mass printing. Examples of
mass printing are monthly invoices sent by telecom companies or salary
statements.
Transaction
Code to create and maintain forms is SMARTFORMS.
2. What Are The
Differences Between SAP Scripts & Smartforms?
Differences
between SAP Scripts and Smart Forms are:
•
Smart Forms are client independent and SAP
Scripts are client dependent.
•
Multiple page formats are possible in Smart
Forms which is not the case in SAP Scripts.
•
It is possible to have a Smart Form without a main
window where as you create a SAP Script without a main window.
•
Smart Forms generates a function module when
activated, which is not the case with SAP Scripts.
•
SAP Scripts require a driver program to display
the output whereas in Smart Forms the form routines can be written so that it
is standalone.
•
An integrated Form Builder helps to design Smart
Forms more easily than SAP Scripts.
•
A Table Painter and Smart Styles to assist in
building up the Smart Forms which is not available in SAP Scripts.
•
Smart Forms generates XML output which can be
viewed through the web.
3. How Many Main
Windows Can We Have In A Smartform?
Unlike SAP Scripts, in Smart Forms you can have only
one main window. And that too its width should be same in all the pages whereas
height can be varied. Only one main window per smartforms is allowed but you
can have 99 sub-windows.
Main Window -
Smartforms – Only 1
Main Window –
SAP Scripts - 99
4. Is It Mandatory To
Have A Main Window In Smartforms?
It is possible to create Smartforms without a main
window also. In case, confirmation of a mail to client or customer is required
there is no need of main window, this can be achieved or done through
smartforms without main window.
5. What Are The Types
Of Windows Available In Smartforms?
Four Types of windows available in Smart Forms. They
are:
•
Main
Window
•
Secondary
Window
•
Copies
Window
•
Final
Window
6. Explain The Significance Of Main Window?
Basically, we
use main window when there is a need to display text or data which can cover
several pages. Say there is a requirement to display data of all the rows
of a table (a table in which you are not very sure as to how many row it has),
in such cases we always use main windows.
As soon as a main window is completely filled with text/data,
the system continues to display the text/data in the main window of the next
page. It automatically triggers the page
break.
Only one window can be defined in a form as main
window. The main window can be called in other pages of the form but it must
have the same width on each page, but can differ in height.
A page without
main window must not call itself as next page, since this would trigger an
endless loop. In such a case, the system automatically terminates after three
pages.
7.
Explain The Significance Of Secondary Window?
Basically,
secondary window is used to display text or data output with a fixed length.
Secondary windows are used when there is a need to
display text and data in a predetermined output area. There is no flow text
display with page break.
If we position a secondary window with the same name
on several pages, the system displays the contents of this secondary window on
each page.
Text & data that do not fit into the secondary
window are truncated and not displayed.
8.
Explain The Significance Of Copies Window?
Basically, Copies
Window is a special type of secondary window for making pages as copy or
original. This window type is used to output data either on original, or on
copies, or both.
In simple words, Copies window is to be used when there is a
requirement to print copies of the pages.
Copies window is used to define an output area for the
print output, whose content you want to appear either only on the copy or only
on the original. This allows you to flag copies as copies when the form is
printed.
9.
Explain The Significance Of Final Window?
Final window is to be used where there is a requirement to show/display
details that has to be processed only at the end of the form processing.
The windows in a page are processed from top to
bottom. So the execution first skips all the Final windows and completes the
processing of other windows. Once all the non-final windows are processed, the
Final windows are processed from top to bottom.
For example if there is a requirement to display the total value of all the items
on the first page but the total value is known only at the end of the form
processing, we can use the Final window for displaying the total value. The
sum of line items is calculated in the MAIN window.
10. What Is The
Difference Between Tables & Template Node?
Template contains a fixed number of rows and columns, where the output
is fixed where as a table can have variable number of rows. Templates are also
preferred where there is a need of proper alignment. Templates are used to
print tables whose layout and rows are fixed and known before the application
program runtime. Example: Tax Forms
Template is a
static entity i.e. its dimensions cannot be changed at run time whereas Table
is a dynamic entity i.e. its dimensions can be changed at run time. Hence,
based on the data, it can last from one page to multiple pages. For line items
display, normally table is used because one does not have prior information
about the number of line items and no of pages.
Table node has 3 components- HEADER, ITEM and FOOTER
•
The
Header component will be executed once.
•
The Item
component can be used to process/display table contents.
•
At the
end footer will be executed.
Templates can be used to define the following:
•
No. of
rows and cell
•
Height of
each row
•
Width Of
individual cells
•
Separators
or frames to be displayed or not
•
Alignment
of the table in the window
Tables are used
to print dynamic data which is not known before the application program
runtime. Example: Material list Of Purchase orders.
Tables node to
be used only in main window and no such fixed height can be set for table
rows.
11. How To Insert Or
Upload Graphics In Smartforms?
Graphics node is used to insert company logos as well
as other graphics in any part of the smartform. Before including a logo in a
smartform, one must first upload the
graphic from the local PC system to SAP system using SE78 transaction. The
imported graphic/image must be of *.BMP or *.TIF extension.
12. Can You Force A
Page Break Within Table Loop In Smart Forms? If Yes, How?
Create a loop
around the table. Put a Command node before the table in the loop that forces a
NEWPAGE on whatever condition you want. Then only loop through a subset of
the internal table (based on the conditions in the Command node) of the
elements in the Table node.
13. How Do You Create
& Maintain Font Style & Font Size Used In Smartforms In SAP?
We can use
Transaction SMARTSTYLES. Here we can create and maintain Paragraph formats
and character formats as per the requirement.
We can use our own custom SMARTSTYLES in our Smart
Form. We can mention the Smart Style under the following path.
Global
Settings --> Form Attributes -->Output Options tab --> Style.
14. Why SAP Scripts Are
Client Dependent & Smartforms Are Client Independent?
Smart Forms
create its own function module so it doesn’t need to transport the request
through SCC1. As all the Development Object are stored in client independent
tables. Whereas SAP Script doesn’t generate any function module while
executing so we need to transport the request number through SCC1. Sap Script is stored inside the client
dependent table as a
TEXT. So
SAP Scripts are client dependent and Smart Forms are client independent.
15. A SAP R/3 System
Has 2 Clients 100 & 110. You Create An SAP Script Z_Script & A
Smartform Z_Smartform In Client 100. Will Both Z_Script & Z_Smartform Be
Available In Client 110 As Well?
Client 110 will have just the Smartform Z_Smartform
and not the SAP Script Z_Script. SAP-Script
is client dependent whereas SMARTFORM is client independent. One will have
to manually import the SAP Script to 110 through SCC1 transaction in SAP.
16. How Do You Find The
Name Of The Function Module For A Smartform? When Is This Function Module
Created?
The function
module for Smartform is created when the Smartform is activated. You can
find the name of the Function Module for a Smartform by going to Environment
--> Function Module Name.
17. You Have Created A
Smartform In Development Server. Then You Transported The Smartform To
Production Server. Will The Name Of The Function Module Be Same In Both The
Servers?
The Smart Form that is created in the Development may
not have the same name in the
Production server. So it is always advised to use the
Function
Module 'SSF_FUNCTION_MODULE_NAME'
to get the Function Module name by passing the Smartform name.
DATA: fm_name TYPE rs38l_fnam.
CALL FUNCTION
'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname =
'ZSMARTFORM' IMPORTING
fm_name =
fm_name EXCEPTIONS
no_form =
1
no_function_module = 2
others =
3.
IF sy-subrc <> 0.
MESSAGE ID
sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION fm_name
EXCEPTIONS formatting_error =
1 internal_error = 2 send_error = 3 user_canceled = 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.
Once you transport the Smartform from Development to
Production server, a new function module name for the Smartform in generated in
the Production server. For a particular
Smartform , generated function module names are different in different systems.
18. State The
Difference Between Form Interface & Global Definitions In Global Settings
Of Smartforms?
Form Interface
is where we can declare what must be passed in and out of the smartform (in
from the print program to the smartform and out from the smartform to the print
program).
Global
Definition is where we declare data to be used within the smartform on a
global scope i.e. anything we declare here can be used in any other node in the
form.
19. In A Certain
Smartform, For Two Differently Configured Printers, There Seem To Be A
Difference In The Output Of Characters Per Inch (The Distance Between
Characters Which Gives A Layout Problem - Text In Two Lines Instead Of One.
It happens when the two printers having different
Printer Controls. We can go to SPAD Transaction Menu (Spool Administrator Menu)
where we can see the difference in the Printer Control and if we make the Printer control setting for both the
printers as same then there would be no difference in the output of characters
per inch. Also we will have to check what is the device type used for both
the output devices if the issue persist.
20. How Can You Convert
Smartforms Output To PDF?
Following steps needs to be carried out to convert
Smart Forms output to PDF:
•
Print the
Smart Form to the spool.
•
Note the
spool number.
•
Download
the PDF file version of the spool by running Program RSTXPDFT4 and entering the
noted spool number.
Here is one more and probably the easiest way to see
PDF output for a Smartform. Type PDF! In
the command prompt and hit enter button.
To see the Smartform Print Preview output as list
output, Type SLIS in the command prompt
and hit enter.
21. How Will You Print
On Both Sided Of A Smartform?
At the Page level in Smartforms, you can find something called as Print Mode. Set the Print mode to
duplex to print on both sides of the Smartform.
22. How Can One Insert
Symbols In Smartforms?
Select the Text Node --> Change Editor --> Go to
Menu Option 'Insert' --> Characters --> SAP Symbols.
Choose the SAP symbol that you want to insert.
23. How Can I Make The
Smartforms To Choose A Printer Name By Default?
In the CALL FUNCTION of the Smartform Function Module
(CALL FUNCTION fm_name ), set the output
options parameter to set the printer name. The output option is of the type
SSFCOMPOP which contains the field TDDEST. Set
the TDDEST field to your default printer name.
For Example:
OUTPUT_OPTIONS-TDDEST = 'Printer Name'.
24. How Can I Make The
Smartforms To Display A Print Preview By Default Without Displaying The Popup
For Print Parameters?
In the CALL
FUNCTION of the Smartform Function Module (CALL FUNCTION fm_name ), set the
Output Options and Control Parameters as mentioned below:
control_options-preview = 'X'. " Print Preview
control_options -no_open = 'X'.
control_options -no_close = 'X'.
control_options -no_dialog = 'X'.
control_options -device = 'PRINTER'.
output_options-TDDEST = 'PRINTER NAME'. "Spool: Output Device
output_options-TDNOPRINT = 'X'. "No
printing from print preview
CALL FUNCTION
'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname =
c_formname IMPORTING
fm_name =
lf_fm_name EXCEPTIONS no_form = 1 no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
CALL FUNCTION
LF_FM_NAME
EXPORTING
CONTROL_PARAMETERS = control_options
OUTPUT_OPTIONS = output_options
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR =
3 USER_CANCELED = 4 OTHERS = 5.
25. How Can I Display The Total Number Of Pages In
Smartforms?
Use SFSY-FORMPAGES to display the total number of
pages in the Smartforms
•
&SFSY-PAGE&
: Current page number
•
&SFSY-FORMPAGE&
: Total number of pages in the currently formatted layout set
•
&SFSY-JOBPAGE&
: Total number of pages in the currently formatted print request
•
&SFSY-COPYCOUNT&
: Original-1,1st copy-2
•
&SFSY-DATE&
: Date
•
&SFSY-TIME&
: Time
•
&SFSY-USERNAME&
: Username
26. Sometimes While Using The Variable SFSY-FORMPAGES Or
SFSY-PAGE, You Get A Star '*' Instead Of The Total Number Of Pages Or Current
Page Number. How To Resolve Such Issues?
There may not be enough space in the window to display
the variable, either increase the window dimensions or condense the spaces
using &SFSY-FORMPAGES(C)& or using &SFSY-FORMPAGES(ZC)& or
using &SFSY-FORMPAGES(4ZC)&.
Here
•
'4' reserves
a four character wide output. (It can be set to any value.) 'Z' eliminates the leading zeroes.
•
'C'
Compress Spaces.
27. What Are The Various Text Formatting Options In
Smartforms?
Various text formatting options available in Smart
Forms are:
•
&symbol(Z)&
: Omit Leading Zeroes
•
&symbol(S)&
: Omit Leading Sign
•
&symbol(<)&
: Display Leading Sign to the Left
•
&symbol(>)&
: Display Leading Sign to the Right
•
&symbol(C)&
: Compress Spaces
•
&symbol(.N)&
: Display up to N decimal places
•
&symbol(T)&
: Omit thousands separator
•
&symbol(R)&
: Right justified
•
&symbol(I)&
: Suppress output of the initial value
28. How To Add A Standard Address In A Smart Form?
Address can be printed quickly and smoothly using the
address node available in smartforms. This node is based on Central Address
Management (CAM). Addresses can be of 3 types:
•
Company
/Organization address type.
•
Workplace
address type.
•
Personal
address type.
In case if you
the address number or the person number is already known, then we just we
need to maintain the values in the options given in the address node.
In case if you
are fetching the address number or the person number dynamically or during run
time, you can achieve it by passing the variable as shown below:
29. What Is The Concept
Of Page Protection In Smart Forms? How Do You Achieve Page Protection In Smart
Forms?
Page Protection
is used to avoid displaying the broken contents of the page and allow it to
display in the new page from the beginning after the previous page.
Page Protection
attribute is to be used to determine whether or not to display a paragraph
completely on one page. Mark it if you want to avoid that a paragraph is
split up by a page break. If on the current page (only in the main window)
there is not enough space left for the paragraph, the entire paragraph appears
on the next page.
While one can use the PROTECT ..... ENDPROTECT
command for SAP-Scripts, for Smart Forms
the Page-Protection checkbox can be used to ensure page protection.
Note: You have
Page-protection property only for Text Elements in the Main Window.
30. Can You Move A
Smartform From One SAP System To Another Without Using Transports?
Yes, this can be achieved using the Upload/Download
feature for Smartforms. One can download the Smartform from one system and save
it as an XML file. Once that is done, the XML file can be used to upload the
Smartform in another system.
31. Why Pages &
Windows Node Are Required Or Mandatory While Creating A Smart Form?
The Page represents the layout of the Page that is
printed on and the items to be printed on the Page are contained in Windows.
The page together with the windows defined on the page determines how the print
will appear and the contents of the print.
32. How Can You Find
The Generated Function Module Name For A Smart Form?
First activate the Smart Form. Go to Environment ->
Function Module Name and get the automatically generated function module for
the Smart Form.
33. How Do You Debug A
Smart Form?
By Putting a break point on the generated function
module of the Smartform, one can debug it. For more information, Refer the link
mentioned below.
34. What Are The
Different Auxiliary Nodes Available In Smart Form?
Auxiliary nodes help to control and format the print
but do not print any contents by themselves. Following are the different
auxiliary nodes available in Smart Form:
•
Table:
Output of a table containing application/dynamic data.
•
Template:
output of a table containing static data.
•
Program
Lines: Executes ABAP Code.
•
Folder: Combines
successor nodes to logical groups.
•
Loop:
Processes successor nodes repeatedly.
•
Alternative:
Branches depending on conditions.
•
Command: Executes
Special Commands.
35. What are the Text Types available in Smart Form?
There are 4 different types of Text available in Smart
Forms. They are:
•
Text
Element
•
Text
Module
•
Include
Text
•
Dynamic
Text
36. What Are Text Modules In Smart Forms? What Are The
Advantages Of Using Text Module?
A Text Module
acts as some sort of container of text, which makes reuse of text easier. There
are texts that frequently appear in different forms. Text Modules can be
used to store these texts centrally in the system. This detaches text
maintenance from form maintenance, with the result that there will be no need
to call the Form Builder to edit individual texts.
Text modules
can be maintained using smartforms transaction. The text module is
maintained exactly like the Text element. Text literals as well as fields can
be written in the text module. Fields of the Text module take values from the
Smart Form from which it is called. Since a Text Module is a separate entity,
it has its own Management (Attributes) screen.
The main
advantages of using a Text module are:
•
Central
storage and maintenance of texts: Commonly used texts like Terms and
Conditions, Address line on footer, etc. do not have
to be typed and maintained on every Smart Form being made. Also, changes made
to the text at one place can be cascaded to all Forms where it is used if the
Copy option is not used.
•
Language
specific maintenance: Text modules can be maintained in different
languages. Thus, by referring to the same Text module name, Smart Forms in
different languages pick up the text of the corresponding language.
•
Client
independence: This is an advantage over Include texts that are client
dependent.
•
Can be
assigned to CTS: An advantage over Standard Texts that are not assigned to
a Transport System by default.
•
Can be
translated to other languages through the transaction SE63.
31. Why Pages &
Windows Node Are Required Or Mandatory While Creating A Smart Form?
The Page represents the layout of the Page that is
printed on and the items to be printed on the Page are contained in Windows.
The page together with the windows defined on the page determines how the print
will appear and the contents of the print.
32. How Can You Find
The Generated Function Module Name For A Smart Form?
First activate the Smart Form. Go to Environment ->
Function Module Name and get the automatically generated function module for
the Smart Form.
33. How Do You Debug A
Smart Form?
By Putting a break point on the generated function
module of the Smartform, one can debug it. For more information, Refer the link
mentioned below.
34. What Are The
Different Auxiliary Nodes Available In Smart Form?
Auxiliary nodes help to control and format the print
but do not print any contents by themselves. Following are the different
auxiliary nodes available in Smart Form:
•
Table:
Output of a table containing application/dynamic data.
•
Template:
output of a table containing static data.
•
Program
Lines: Executes ABAP Code.
•
Folder: Combines
successor nodes to logical groups.
•
Loop:
Processes successor nodes repeatedly.
•
Alternative:
Branches depending on conditions.
•
Command: Executes
Special Commands.
35. What are the Text Types available in Smart Form?
There are 4 different types of Text available in Smart
Forms. They are:
•
Text
Element
•
Text
Module
•
Include
Text
•
Dynamic
Text
36. What Are Text Modules In Smart Forms? What Are The
Advantages Of Using Text Module?
A Text Module
acts as some sort of container of text, which makes reuse of text easier. There
are texts that frequently appear in different forms. Text Modules can be
used to store these texts centrally in the system. This detaches text
maintenance from form maintenance, with the result that there will be no need
to call the Form Builder to edit individual texts.
Text modules
can be maintained using smartforms transaction. The text module is
maintained exactly like the Text element. Text literals as well as fields can
be written in the text module. Fields of the Text module take values from the
Smart Form from which it is called. Since a Text Module is a separate entity,
it has its own Management (Attributes) screen.
The main
advantages of using a Text module are:
•
Central
storage and maintenance of texts: Commonly used texts like Terms and
Conditions, Address line on footer, etc. do not have
to be typed and maintained on every Smart Form being made. Also, changes made
to the text at one place can be cascaded to all Forms where it is used if the
Copy option is not used.
•
Language
specific maintenance: Text modules can be maintained in different
languages. Thus, by referring to the same Text module name, Smart Forms in
different languages pick up the text of the corresponding language.
•
Client
independence: This is an advantage over Include texts that are client
dependent.
•
Can be
assigned to CTS: An advantage over Standard Texts that are not assigned to
a Transport System by default.
•
Can be
translated to other languages through the transaction SE63.
37. What Is The Use Of
Command Node In Smart Form?
Command Nodes
can be used to achieve page break. By using Command Node, one can manually
control the numbers of records to be displayed per page based on some
condition.
38. Can One Restrict
The Translations Of Smart form To Specific Languages?
Yes, one can restrict the translations of Smart forms
to specific languages by creating a super set of languages for which you want
to allow the translations. Go to form
Attributes --> General Attributes --> Language Attributes --> Into
Selected Language.
Select all the languages for which you want the
translation to happen.
39. How Can You
Translate A Smart Form From One Language To Another?
In smart forms, if you want a user to see the text in
other languages (other than language in which smart form is created) , in
Global settings ,we need to select radio button Into Selected languages and
maintain the Translations in that particular language using SE63.
There is no
other way to automate this process but to maintain translations with human
intervention for selected languages.
In SE63
transaction, Use path Translations -> ABAP objects -> Other Long
Text. Click on Forms and Styles & Select Forms.
Please give object name in CAPITALS. Also select
Source and target language from F4 help.
For more information, refer the link mentioned below:
40. How Do You Assign
Transport Request To Translations For Smart Forms?
Once you are done with your translation and you want
to push the translation to your target system, you need a transport request. Run the transaction code SLXT or program
RS_LXE_RECORD_TORDERfor creation of transport request.
For more information, refer the link mentioned below:
41. What Is The Use Of
Folder Node In Smart Form?
Folder option
is useful for placing all the contents into a single place which we call as
logical grouping. If we want to put a condition on a group of text elements
or templates we can place them in a folder and apply the condition once to the
folder.
Folder option allows you to place all the contents
into a single place. This is basically useful when you have number of windows
and with each window you have different graphics, texts, tables, templates
used. So to differentiate between 2 windows we generally go for folders and
place all contents of one window in a folder and wise versa.
Page Protection property of Folder control will be
used in order to display text in the same page without separating it into two
different pages. If there is not enough space for a text node, or a group of
text nodes, a group of table rows, etc. the items will be displayed as a group
on the next page with maintaining the integrity of these items.
In SAP Smartforms documents frequently it is a
requirement to print data in same page. For example in a Smart Form table, some
of the table rows are required to print in same page together. If the empty
space is not enough it is preferred to print those table rows in following page
together. In such cases Smartforms
Folder control helps ABAP developers creating SAP Smartforms documents. Folder
control is the key for page protection in Smartforms.
SAP Smartform Folder control has the Page Protection
attribute which can be used by SAP Smart Form developers as a switch for keeping
items in the same page.
42. How Do You Use Barcode in Smart Form?
First go to SE73
SAP Script Font Maintenance to create or display the system bar codes.
Then go to SMARTSTYLES
transaction, create a new character format and assign the barcode name that
you have created in it. Then you can use the character format in your Smartform
wherever you want the barcode to be displayed.