Sap Abap Printer Mix
Sap Abap Printer Mix
With BAPI/RFCs
Without BAPI/RFCs
OData is REST based protocol to access and update the data. OData is build
on Atom Publishing Protocol(AtomPub), XML and JSON. This make the
protocol easy to understand and use.
Ans:-
Instance Attributes are created for each instance of the class. They are object
specific and are created separately for each instance of the class. Instance attributes
are defined using statement DATA.
Static Attributes are not instance specific and exist only once for all instance of the
class i.e they exist once per class. Static attributes are defined using statement
CLASS-DATA.
CONSTANTS value cannot be changed. Use CONSTANTS to store data that should
not be changed both from inside the class as well as from outside the class.
What are the differences between SAP Scripts and Smartforms? SAP Scripts are client dependent
whereas Smartforms are client independent. SAP Scripts require a driver program to display the
output whereas in smartforms the form routines can be written so that it is standalone. An
integrated Form Builder helps to design Smartforms more easily than SAP Scripts An Table Painter
and Smartstyles to assist in building up the smartforms On activation a function module is generated
for Smartforms It is possible to create a Smartform without a main window Smartforms generates
XML output which can be viewed through the web Multiple page formats is possible in smartforms
How can I insert symbols in Smartforms? Select the Text node. Change Editor (Click the button above
Check near the Editor) Go to menu Include->Characters->SAP Symbols Choose the SAP symbol that
you want to insert. I have a smartform which works fine in DEV. After trasnsporting it to PROD, there
is no Function module generated for this smartform. As a result my program dumps in PROD? The
Smartform 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.How can I make the
Smartforms to choose a printer name by default? In the CALL FUNCTION of the Smartform Function
Module, set the output options parameter to set the printer name. The output options is of the type
SSFCOMPOP which contains the field TDDEST. Set the TDDEST field to your default printer name.
How can I make the Smartforms to display a print preview by default without displaying the popup
for print parameters? In the SSF_OPEN function module, Set the OUTPUT OPTIONS paramter
TDDEST to your printer name. Set the CONTROL PARAMETERS and control parameters as shown
below, control-preview = 'X'. control-no_open = 'X'. control-no_close = 'X'. control-no_dialog = 'X'.
control-device = 'PRINTER'. control_parameters-no_dialog = 'X'. control_parameters-no_open = 'X'.
control_parameters-no_close = 'X'. OUTPUT_OPTIONS-TDDEST = 'PRINTER NAME'.
OUTPUT_OPTIONS-TDNOPRINT = 'X'. CALL FUNCTION 'SSF_OPEN' EXPORTING output_options =
output_options control_parameters = control user_settings = ' ' 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. 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 I'm using the variable SFSY-FORMPAGES, I
get a star "*" instead of the total number of pages. 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)& What are the various text formatting options in Smartforms? & symbol(Z)& Omit
Leading Zeros & 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
upto N decimal places & symbol(T)& Omit thousands separator & symbol(R)& Right justified &
symbol(I)& Suppress output of the initial value How can I provide a background shading to the table?
In the Table Painter, you can specify the color and shading for the table lines. Where can I provide
the input parameters to the smartform? The input parameters for the smartform can be defined in
Global Settings->Form Interface. The Associated Type must be defined in the ABAP Dictionary.
Where can I define my own global types for the smartform? The global types(within the smartform)
can be defined in Global Settings->Global Definitions->Types The types defined here will be global
through the entire smartform. Also the form routines can be defined Global Settings->Global
Definitions->Form Routines I have defined my own Program Lines, where I have used a global
variable G_TEXT. I get an error G_TEXT is not defined? Whenever using the global variables in the
Program Lines, enter the variable name in Input Parameters if you are going to use(read) the
variable. If you are going to both read/write the variable value enter the same in Output Parameters.
I have created a table node for display. Where can I check the condition which must satisfy to display
the table? The conditions can be defined in the Conditions tab. In smartforms all the nodes have a
condition tab where you can specify the condition to be satisfied to access the node. How can I
define Page Protect in Smartforms? To define Page Protect for a node go to the Output options and
check the Page Protection checkbox. What is the difference between Template and Table in
Smartforms? The Template contains a fixed number of rows and columns, where the output is fixed.
The Table can have variable number of rows Where can I define the paragraph and character format
for the smartforms? The paragraph and character format for the smartforms can be defined in the
transaction SMARTSTYLES How to add watermark to smartform output? Go to the properties of
'PAGE', tab 'Background Picture'. Add the grapic image name here Forcing a page break within table
loop 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. Font style and
Font size Goto Transaction SMARTSTYLES. There you can create Paragraph formats etc just like in
sapscript. Then in your window under OUTPUT OPTIONS you include this SMARTSTYLE and use the
Paragraph and character formats. Line in Smartform Either you can use a window that takes up the
width of your page and only has a height of 1 mm. Then you put a frame around it (in window
output options). Thus you have drawn a box but it looks like a line. Or you can just draw "__" accross
the page and play with the fonts so that it joins each UNDER_SCORE. Difference between
'forminterface' and 'global definitions' in global settings of smart forms The Difference is as follows.
To put it very simply: Form Interface is where you 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 defs. is where you declare data to be used within the smartform on a global scope.
ie: anything you declare here can be used in any other node in the form. Smartforms function
module name Once you have activated the smartform, go to the environment -> function module
name. There you can get the name of funtion module name. The key thing is the program that calls
it. for instance, the invoice SMARTFORM LB_BIL_INVOICE is ran by the program RLB_INVOICE. This
program uses another FM to determine the name of the FM to use itself. The key thing is that when
it calls this FM (using a variable to store the actual name), that the parameters match the paramters
in your smartform. Another thing to note is that the FM name will change wherever the SF is
transported to. So you need to use the FM to determine the name of the SF. Here is the code that
can be use to determine the internal name of the function module: Code: if sf_label(1) <> '/'. " need
to resolve by name move sf_label to externalname. call function 'SSF_FUNCTION_MODULE_NAME'
exporting formname = externalname importing fm_name = internalname exceptions no_form = 1
no_function_module = 2 others = 3. if sy-subrc <> 0. message 'e427'. endif. move internalname to
sf_label. endif. It checks to see if the sf_label starts with a '/', which is how the internal names start.
if it does, the name has already been converted. If not, it calls the FM and converts the name. You
would then CALL FUNCTION sf_label. Smartforms output difference Problem with Smartforms: in a
certain form 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' if you go to SPAD
Menu (Spool Administrator Menu) you can see the difference in the Printer Control and if you make
the Printer control setting for both the printers as same. then it will be ok. and also u have to check
what is the device type used for both the output devices. SmartForms Output to PDF There is a way
to download smartform in PDF format. Please do the following: 1. Print the smartform to the spool.
2. Note the spool number. 3. Download a PDF file (Acrobat Reader) version of the spool by running
Program RSTXPDFT4 and entering the noted spool number. SmartForm Doublesided printing
question Your customer wants your PO SmartForm to be able to print "Terms and Conditinos" on the
back side of each page. They don't want to purchase pre-printed forms with the company's logo on
the front and terms & conditions on the back. Now this presents an interesting problem. Has anyone
else ever had a request like this? If for example there was a 3 page PO to be printed, they want 3
pieces of paper, the front side of each to containe the PO information (page 1, 2, and 3) and the back
side of each piece of paper to containg the static "Terms & Conditions" information. Anyone have a
clue how to force this out? Easy - page FRONT lists page CONTACTS as next page and CONTACTS lists
FRONT as next page. Since CONTACTS does not contain a MAIN window, it will print the contacts
info and then continue on to FRONT for the rest of the main items. Additionally, set print mode on
FRONT to D (duplex) and set CONTACTS to 'blank' (for both resource name and print mode - this is
the only way to get to the back of the page). Transport Smart Forms How does one transport
SMARTFORM? SE01? How do you make sure that both, the SMARTFORM & it's function module gets
transported? Or does the FM with same name gets generated automatically in the transported
client? A smartform is transported no differently than any other object. if it is assigned to a
development class that is atteched to a transport layer, it will be transported. The definition is
transported, and when called, the function module is regenerated. This leads to an interetsing
situation. On the new machine, it is very likely the function module name will be different than the
name on the source system. Make sure, before you call the function module, you resolve the
external name to the internal name using the 'SSF_FUNCTION_MODULE_NAME' function module.
Typically, generate the SF, then use the pattern to being in the interface. Then change the call
function to use the name you get back from the above function module. Smartforms: protect lines in
main window. How to protect lines in the main window from splitting between pages? It was easy
with SAPscript, but how to do it with SF's. For 4.7 version if you are using tables, there are two
options for protection against line break: - You can protect a line type against page break. - You can
protect several table lines against page break for output in the main area. Protection against page
break for line types - Double-click on your table node and choose the Table tab page. - Switch to the
detail view by choosing the Details pushbutton. - Set the Protection against page break checkbox in
the table for the relevant line type. Table lines that use this line type are output on one page.
Protection against page break for several table lines - Expand the main area of your table node in the
navigation tree. - Insert a file node for the table lines to be protected in the main area. - If you have
already created table lines in the main area, you can put the lines that you want to protect again
page break under the file using Drag&Drop. Otherwise, create the table lines as subnodes of the file.
- Choose the Output Options tab page of the file node and set the Page Protection option. All table
lines that are in the file with the Page Protection option set are output on one page. In 4.6,
Alternatively in a paragraph format use the Page protection attribute 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 pa How do you debug SMARTFORMS?
A: insert a "Program Line" node just above, where you enter BREAK statement… You may also run
SFTRACE transaction (or SMARTFORM_TRACE in releases before 6.10) to generate a log and activate
break-points when abnormal events occur. Q: How do you differentiate Table and Template in
Smartform? A: If the Output is fixed then the Template contains a fixed number of rows and
columns. Otherwise the table can have variable number of rows. Q: Which functions does used to
use to display a print preview by default without displaying the popup for print parameters on
smartforms? A: Go to Function Module “SSF_OPEN” and set the OUTPUT OPTIONS parameter
TDDEST to your printer name. Example: control-no_dialog = 'X'. control-device = 'PRINTER'.
control_parameters-no_dialog = 'X'. control_parameters-no_open = 'X'. control_parameters-
no_close = 'X'. OUTPUT_OPTIONS-TDDEST = 'PRINTER NAME'. OUTPUT_OPTIONS-TDNOPRINT = 'X'.
CALL FUNCTION 'SSF_OPEN' EXPORTING output_options = output_options control_parameters =
control user_settings = ' ' EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3
user_canceled = 4 OTHERS = 5. Q: How do you transport your smart forms? A: As usual as a Report
by using transaction code “SE10”. Is it possible to migrate a SAPscript form to a Smart Form? Smart
Forms provides a migration tool for this purpose which migrates layout and texts of a SAPscript form
to a Smart Form. It does not migrate SAPscript form logic of the print program. Using Smart Forms,
this logic is described by the tree structure of the Form Builder. The effort involved in migrating the
form logic depends on the complexity of the print program. For more information, see the section
Migrating SAPscript Forms of the Smart Forms online documentation. Do we have to migrate all
SAPscript forms or Smart Forms to a newer form solution? In general, there is no immediate need to
migrate existing forms. SAPscript forms and Smart Forms can still be used and will be supported in
the future. If you plan to migrate a SAPscript form or Smart Form, it is recommended that you check
in each individual case whether the benefit is worth the effort involved. Depending on the use case,
it may make more sense to implement the form from scratch in, for example, SAP Interactive Forms
by Adobe, see also the answer to question 'How do Smart Forms and SAPscript-based forms relate to
SAP's new forms solution SAP Interactive Forms by Adobe?' above. How can I check if there are
already standard Smart Forms for my application? What can I do if this is not the case? To reduce
implementation time for print forms development, SAP has created a set of the most commonly
used forms. These preconfigured Smart Forms are delivered with SAP Best Practices in the SAP Best
Practices scenarios. Depending on your requirements, and with some minor adaptations, the
preconfigured Smart Forms (SMP login necessary!) can be made ready to be used in your business.
What is XSF? SAPscript offered a Raw Data Interface (BC-RDI) to allow the use of 3rd party printing
tools, that is, to pass form content (without layout information) from the SAP system to an external
product. Smart Forms provides a data stream called XML for Smart Forms (XSF) for this purpose. Like
RDI, XSF does not contain any layout information about a Smart Form. As an SAP Partner, you can
become a certified partner for the XSF interface (BC-XSF) . Smart Forms XSF output is also the
precondition for generating HTML by using an XSLT program. This program uses layout information
from your form (for example, used fonts, page and window sizes) and the given XML tags of XSF to
generate HTML. Structure of a Form A form contains pages, output areas (called windows), address,
graphics and text data etc. In pages we specify the page layout and other general settings for the
page. Windows are the output areas in a page. There are several types of windows used in a form
page. Main Window: Contains the main continuous data and supports page break. Secondary
window: Output the data in a fixed size area. Final Window: A special type of secondary window
used for output the data available only at the end of form processing Copies Windows: A special
type of secondary window used for marking the pages as copy or original.