Print Workbench

ADDON.FICABFPW

SAP Online Help

13.07.2011

Copyright
© Copyright 2008 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iSeries, pSeries, xSeries, zSeries, eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6, POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes, BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli and Informix are trademarks or registered trademarks of IBM Corporation. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. SAP, R/3, xApps, xApp, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP Business ByDesign, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.

Print Workbench

690

2

SAP Online Help

13.07.2011

Icons in Body Text
Icon Meaning Caution Example Note Recommendation Syntax

Additional icons are used in SAP Library documentation to help you identify different types of information at a glance. For more information, see Help on Help General Information Classes and Information Classes for Business Information Warehouse on the first page of any version of SAP Library.

Typographic Conventions
Type Style Example text Description Words or characters quoted from the screen. These include field names, screen titles, pushbuttons labels, menu names, menu paths, and menu options. Cross-references to other documentation. Example text EXAMPLE TEXT Emphasized words or phrases in body text, graphic titles, and table titles. Technical names of system objects. These include report names, program names, transaction codes, table names, and key concepts of a programming language when they are surrounded by body text, for example, SELECT and INCLUDE. Output on the screen. This includes file and directory names and their paths, messages, names of variables and parameters, source text, and names of installation, upgrade and database tools. Exact user entry. These are words or characters that you enter in the system exactly as they appear in the documentation. Variable user entry. Angle brackets indicate that you replace these words and characters with appropriate entries to make entries in the system. Keys on the keyboard, for example, F2 or ENTER.

Example text

Example text <Example text>

EXAMPLE TEXT

Print Workbench

690

3

SAP Online Help 13.2011 Print Workbench Form Classes Properties and Attributes Form Class Library Smart Form/PDF Indicator Test Print Indicator Object Type (BOR) Document Type Status Package Assignment and Transport Documentation Hierarchy Form Levels 1:1 levels Structure Logic of the Hierarchy Source Text Display of the Form Class Hierarchy Form Class Library Automatically Generated Variable Declarations READ Subroutines GET Subroutines FILL Subroutines Global Area for Own Variables Subroutine TEST_PRINT Subroutine SET_ARCHIVE_INDEX Subroutine PROCESS_AFTER_DOC Subroutine PROCESS_AFTER_FORM Controlled Terminations in Exception Situations Processing Form Classes Creating Form Classes Creating Form Levels Creating 1:1 Levels Enabling Test Prints Example: Flight Notification Application Forms Properties and Attributes Form Classes Form Types SAPscript Form/Smart Form /PDF-Based Form User Includes Print Workbench 690 7 8 9 9 9 10 10 10 10 11 12 12 12 13 14 16 16 17 17 18 19 20 20 21 22 22 23 24 24 25 26 26 27 28 29 29 29 30 30 4 .07.

2011 31 31 32 33 34 34 36 36 36 37 37 38 39 41 42 42 43 44 44 45 45 46 47 47 48 49 50 50 50 51 51 52 52 53 54 54 55 55 55 Interaction of Application Forms with SAPscript Forms.07. Smart Forms. PDF-Based Forms Access to Data Read Control Variable C Processing Application Forms Creating Application Forms Inserting Variables in Texts (SAPscript Only) Creating a Summation Reading Additional Data from the Database Dynamic Intervention in the Process Flow in User Exits Transferring Own Data to a Smart Form or PDF-Based Form Optimizing Performance User Exits in Application Forms Declaration of Own Data Areas Exit Before Loop Exit During Loop Exit After loop Text Exit (SAPscript only) Start/End Exit Triggering Controlled Terminations Utilities Test Print Breakpoints and Debugging Copying from Clients Uploading and Downloading Application Forms Creating Links Finding Variables Form Information Administration and Transport Mass Processing Print Workbench 690 5 .SAP Online Help Start/End Exit Optional Static User Exits in Generated Print Program Generated Modules Languages Status The Hierarchy of an Application Form Form Levels 1:1 levels Texts (SAPscript Only) Flow Logic and Processing Definition of the Hierarchy 13.

2011 56 57 58 58 59 59 63 63 64 65 67 68 69 69 69 70 70 71 72 73 76 77 78 79 80 81 82 84 85 85 86 87 88 88 89 89 90 90 Print Workbench 690 6 .07.SAP Online Help Mass Activation Transporting Application Forms Using References Versioning and Archiving via Upload/Download Translating Application Forms Worklist Creating Worklists Processing Worklists Collection Process Flow of Collections Variable C Dynamic Modifications in the Process Flow Interaction between Application Forms and Collections Send Type e-mail Data Type EFG_TAB_GENDATA Data Type EFG_TABN_SEL_PER_FCLASS Calling Form Printing in ABAP Programs Module EFG_PRINT Module EFG_PRINT_EXPANDED Print Parameter Structure EPRINTPARAMS Print Parameter Dialog EFG_GET_PRINT_PARAMETERS Initializing and Closing Print Transactions Open/Close Optimization Printing Processes and Printing Scenarios Further Processing of Data in External Systems Archiving/Connection to ArchiveLink Sending as e-mail or Telefax via SAPconnect Send Control Flexible Control and Modification of Print Parameters Using the Print Workbench with Correspondence (CA-GTF-COR) Using Print Action Records Print Action Records (Technical Background) Function Modules for Programming Customizing Individual Creation of Print Action Records Mass Creation of Print Action Records Reorganization Integrating Print Action Records in Application Forms 13.

and account statements are examples of form classes. SAPscript (BC-SRV-SCR). To configure the forms. The Print Workbench is subdivided into the following subobjects: ● Form classes Form classes are defined by SAP applications and contain a modeling as well as access instructions for all of the data that belongs to an application or an application process. for example. The form classes are delivered with each application component that uses the Print Workbench. Invoices. You can define several application forms for each form class. the Print Workbench uses the SAP standard components for configuring forms – SAPscript. You can use form classes to create application forms where you access the data defined in the form classes. and PDF-based forms. Integration The Print Workbench (CA-GTF-PWB) is a component of SAP Web Application Server and it can be used with no further prerequisites by every other SAP application. different invoices for different business partner groups.07. Smart Forms. Changes to form classes delivered have modification status. Numerous help functions simplify form creation.2011 Print Workbench Purpose The Print Workbench is a central development environment for creating standardized outgoing correspondence. Architecture of the Print Workbench Print Workbench 690 7 . SAP delivers example forms that you can use as a reference for your own application forms. In the Print Workbench you can use Smart Forms (BC-SRV-SSF). or PDFbased forms (BC-SRV-FP) alternatively.SAP Online Help 13. Application forms You create application forms based on the form classes delivered. You can use user exits to adjust the application forms to your requirements. ● You can call up the Print Workbench via the area menu PWB. dunning notices.

Therefore. Further controlling properties are defined in the Attributes of a form class. Structure A form class consists of a hierarchy representing a logical view of the data model for each application or an application process. Use Form classes are used by application forms to create forms.2011 Application with correspondence request Call at runtime (EFG_PRINT) S AP Smart Forms PDF-based forms S APs crip delivers Generated function module (Print program) sel ect data from databas e. the form classes are comparable to logical databases. that is. particular emphasis was given to a logical view of the data model. they have the advantage that they can swap two equal levels and duplicate a level in application forms. The related Form Class Library contains access instructions in the form of ABAP subroutines.07. Print Workbench 690 8 . correspondence. When creating the data hierarchy.SAP Online Help 13. Smart F orms or PDF-based for ms SAP SAP Customer Form Classes Definition The form class is an application-specific object that contains both the underlying data hierarchy for the application and the database access required for data procurement in the form of ABAP/4 coding. integrates SAPscript. In contrast to logical databases however. SAP Smart For ms API Application form Hierarchical display of proc essing logic Form class Data hier arch y ►(De)selection/adjus tment of data creates procurement ► Selection of additional data using ABAP user exits Form class librar y (ABAP Report) Data model(/hierarchy) Data struc tures Access coding ► Packaging of texts (only SAPscript) ► Form type c ontrols processing usi SAPscript.

Smart Form/PDF Indicator Definition The Smart Form/PDF indicator shows whether a form class is designed for using Smart Forms or PDF-based forms. Structure The attributes of a form class contain the following fields: ● ● ● ● ● ● ● ● Form Class Library [Seite 16] Smart Form/PDF Indicator [Seite 9] Test Print Indicator [Seite 10] Object Type (BOR) [Seite 10] Document Type [Seite 10] Status [Seite 10] Assigned Package [Seite 11] Documentation [Seite 12] Form Class Library Definition For each form class you have to define a form class library [Seite 16]. Form classes are usually independent of the use of the data and particularly of the category of the application form. in application forms. you cannot use the form class for Smart Forms or PDF-based forms. Print Workbench 690 9 . These reflect the hierarchy of the form class and are responsible for transporting data from the application form to the Smart Form or PDF-based form. It contains the access commands for the form levels and 1:1 levels declared in the hierarchy.SAP Online Help 13. From a technical view.2011 Integration Form classes are a fixed component of an application and cannot be changed or replaced. the form class library is an ABAP report. generated DDIC types are assigned to each form level by the Print Workbench. If the indicator is not set.07. If the indicator is set for a form class. Properties and Attributes Definition The attributes of a form class contain controlling information that is important for further processing. for example.

you should only suppress the test print in documented exception cases. It is used for information purposes and test printing. The DDIC structures assigned to a form level or 1:1 level are active. the FIND method of the object type entered is called. The BOR object type specified is used as link object in archiving with SAP ArchiveLink. If no BOR object type is specified. since when you determine the initial object key for the test print. you can suppress the test print in the maintenance of an application form for an application.07. However. The object key thus determined is interpreted as hierarchy access and transferred for further processing as the first entry in the first ranges table of the module EFG_PRINT [Seite 71]. Print Workbench 690 10 .2011 Test Print Indicator Definition By setting the indicator Test Print. The following objects and object statuses are considered and checked: ● ● ● The relevant form class library exists and is syntactically correct with regard to ABAP. since the test print is an important tool for developing forms and for error analysis. the dialog for the test print can also be carried out via a form routine in the form class library by the application. or none is suitable. Object Type (BOR) Structure A <BOR object type> can be assigned to a form class. and usability of a form class with regard to use in application forms. the obligatory READ and GET/FILL subroutines exist in the form class library. Document Type Definition The specified document type is optional and provides information about which document type is used for archiving documents of the form class. correctness. For all form levels or 1:1 levels of the form class.SAP Online Help 13. Status Definition The status of a form class indicates the completeness. This specification is optional and creates a logical link between the data hierarchy and a BOR object type in the system.

and these subobjects are assigned to a local package ($*). generated DDIC types) are transported via separate transport objects and each have separate package assignments. The possible statuses are: ● ● ● Inactive Incorrect Active In the message log. You can change the object catalog entry that arises for the form class later. If a form class was created locally. The system checks whether all referenced subobjects of a form class belong to the same package as the form class itself. For each change to a form class. the system issues warning messages. you can see the details of the status for the form class check. the package controls the assignment and the transport. Use The status of a form class is relevant for: ● ● Processing and activating application forms for a form class Transporting form classes The actions are terminated if the form class does not have the status Active. the system also checks whether all generated DDIC types specified in the form levels existand have the structure derived from the form class. Prerequisites To transport a form class it must be assigned to a transportable package. to a package.SAP Online Help ● 13. If this condition is not fulfilled.2011 If the Smart Form/PDF [Seite 9] indicator is set in the form class. such as an ABAP program. If subobjects were referenced in a transportable form class.07. Integration Form classes are transported in the correction and transport system using the transport object EFCL. in package $TMP. that is. Print Workbench 690 11 . you have to change the package assignment of the form class before the transport. the system issues corresponding error messages and the form class concerned is not transported. The referenced subobjects of a form class (form class library. Package Assignment and Transport Use During creation you have to assign a form class. after a transport request the system checks whether there is an entry for the form class in an open transport request.

A form level represents an entity in the data model of the respective application. there are n entries in the form level below it in the hierarchy. The form levels define the basic framework of a form class and data is added using the 1:1 levels. that is.SAP Online Help 13. PWB_FLIGHT_NOTIFICATION. All of the form levels together. Each form level and 1:1 level represent a data structure that is dependent on data that is higher in the hierarchy in accordance with its hierarchical position. For each level there are subroutines (ABAP form routines) in the form class library that carry out encapsulated data selections in the relevant tables of the database.2011 Documentation Use In the documentation of a form class you can define information about the data hierarchy and other special features of the form class. Structure The hierarchy consists of two node elements: The form levels and the 1:1 levels. you can transfer the data declared in the form class to a form. The following figure shows the hierarchy of a form class using the standard example delivered. The form levels are related to each other in a 1:n relationship. Using defined data areas. Integration The documentation of the form class is defined as General Text in the system and you can access it via the form class. for example. Integration The hierarchy is a major component of a form class. Print Workbench 690 12 . There you can configure the form as required. Form Levels Definition The form levels make up the main part of a form class. reflect the maximum quantity of data that an application supports for use in forms as standard.07. all nodes of the hierarchy. Hierarchy Definition You use the hierarchy of a form class to display and model the data of an application or process. This means that for each entry belonging to a particular form level. The fixed assignment of the form class in an application form means that the hierarchy defined in the form class is always the template for the hierarchy in the application form and is always compared to it. The individual fields of a form level or 1:1 level are defined by an assigned DDIC structure. account or business partner. Use You transfer the hierarchy of a form class to the application forms.

Form levels and 1:1 levels represent a logical or business entity. The READ subprograms of a form class are called up in the application form in the order in which the related form levels exist in the hierarchy.2011 Use In application forms. ● ○ 1:1 levels Definition The 1:1 levels are directly assigned to the form levels. This GET subprogram procures the n data records of the relevant form level dependent on the current data record of the next highest form level so that this can also be processed. With regard to performance. They have a unique and direct relationship (1:1) to their affiliated form level. Global data areas are derived from the name of the form level (WA_<name of form level>).SAP Online Help 13. this means that data buffering is strongly recommended. you should make sure that GET subprograms can be called up more than once in an application form. in texts. In the GET subprogram you procure the current data for the form level from the database directly or from other filled data buffers. Since form levels represent a 1:n relationship between data. When you use the subprogram types. When you are developing a form class. you can choose between the following strategies: ○ All the data for a form level is procured in the relevant READ subprogram and defined in the global table. you have to decide which strategy to use based on the data constellation and program design. for example.07. Structure The attributes of a form level contain the following information: ● ● ● ● Name of the form level Assigned DDIC output structure or DDIC table Short name Name of the DDIC structure or table type generated if Smart Forms are active in the form class For each form level there are exactly two ABAP subprograms in the form class library: ● READ subprogram The READ subprogram procures the initial data and is called up once at the start of form processing. form levels are used to select the data belonging to the form level. the execution of a data loop is always connected to a form level. Typical examples for 1:1 levels are the long texts (explanatory texts) for each of the entities. The affiliated READ subroutine is empty. GET subprogram There is one GET subprogram for each form level. the data is temporarily stored in these areas. The GET subprogram extracts the n data records required for the current run from the global table. Print Workbench 690 13 . The data selected is placed in global data areas and can be accessed in application forms. A 1:1 level is dependent on the form levels to which it is assigned since the selection criteria for access to the database are in the data already imported for the superordinate form level.

The structure logic cannot be used in the form class itself.. insert additional events (for example. The complex data type is filled for Smart Forms. for example. 4.2011 The name of a 1:1 level and the DDIC structure below it is defined in the corresponding form class and cannot be changed. each entry for this level equates to a document. the relevant data for the levels is placed in the global work areas (WA_<name of form level>) of the form class. In the application form.. The highest form level (also called document level) is very important. Example The process logic is described in more detail using the example PWB_FLIGHT_NOTIFICATION.SAP Online Help 13. Using this process definition. Features The system processes the form level according to the following principle: . 1. the hierarchy tree is processed recursively from top to bottom.07. There must always be an application form for this. you can. The hierarchically subordinate form levels are processed. these can then be accessed in texts or user exists in the application forms. printing a text or calling a user exit) between events 2) and 3) and between 3) and 4). The current form level entry is imported 2. Structure Logic of the Hierarchy Use The hierarchy of the form class is the tool used to model the dependencies of the data areas and the structure logic for the print transaction. In each run. Data from the appropriate 1:1 levels is imported 3. Print Workbench 690 14 .

All bookings for the current customer are imported and placed in an internal table. the processing of the relevant form levels continues. At the same time. They have a 1:n relationship since one customer can have several postings. further events (for example. The flight belonging to the current flight booking is read and placed in the work area WA_FLIGHT. 6.2011 The customer (CUSTOMER. The document is completed and the processing returns to processing step 2. The number of entries in this table is identical to the number of documents created later. 4. 2. A customer is read from the internal table and archived in the global work area of the form level (WA_CUSTOMER). if you want to access the same data in different sections of the form. If all postings have been processed for the current customer. This hierarchy is processed as follows: .SAP Online Help 13. Processing of the form level BOOKING begins. printing a text or calling a user exit) are added to this hierarchy. the processing of the next posting continues. Since the form level CUSTOMER has no 1:1 levels. 1. All customers fulfilling the initial selection criteria are imported and placed in an internal table (T_CUSTOMER). 3. table SCUSTOM) and his postings (BOOKING. Print Workbench 690 15 . This means the same form levels can appear several times running in the hierarchy. 5. This is necessary. Since the form level has no further dependent form levels or 1:1 levels. for example. table SBOOK) represent two form levels. In application forms. There is a 1:1 level posting (FLIGHT. the processing of the form level BOOKING for the current customer is completed. You can also process the same form levels several times running in application forms. This flow logic can be expanded to any number of form levels..07. a new document is opened. table SPFLI) for a posting that contains additional information about the unique flight of the posting..

SAP Online Help 13. The generated data declaration area is not transferred. In addition. the program does not contain any functions that you can run. Features All of the parts of a generated print program are displayed schematically: ● ● ● ● Global data declarations READ subprogram call Start/end of document The calls of the GET subprograms recursively integrated in the data loops In the list you can double-click in the displayed subprograms and variables to navigate from the form class library. the form class library copies all subprograms into the print program. However.for example in order to be able to ensure a correct syntax check . Each form class has its own library. The name of the program is defined in the attributes of the form class. In particular.07. the dependencies of the different levels and call events of the subprograms are visible.the form class library has the status of an ABAP/4 (Online) program. This tool enables you to understand the print processes and you can use it for developing form classes and for implementing application forms. it is regenerated in the print program. the area with its own global data declarations is also copied. Structure A form class library has the following content: ● ● ● ● ● READ and GET subroutines for the form levels READ and FILL subroutines for the 1:1 levels Other subroutines Area for own data declarations to be transferred to print program Generated data declaration area (cannot be changed) For technical reasons . Print Workbench 690 16 . When you generate a print program. Form Class Library Definition The form class library is an ABAP/4 program.2011 Source Text Display of the Form Class Hierarchy Use The source text display enables you to display the processing in a hierarchy in the way it appears later in the generated print program of an application form.

in SAPscript texts for a user. Print Workbench 690 17 .SAP Online Help 13. . For the subsequent print process. . The applications are responsible for initializing the generated data areas. DATA: T_FLIGHT TYPE TABLE OF SPFLI WITH HEADER LINE.07. Since the generated print programs consist of function groups. Example Source text of the form class PWB_FLIGHT_NOTIFICATION *§********************************************************************** *****THE FOLLOWING CODE IS GENERATED. data is retained. you can use global data areas (WA_*) that are at the same hierarchical level or higher. particularly for multiple calls. The total of all global work areas represents the maximum data list for an application form. In application forms. It is executed just once at the beginning of the print program. WILL NOT BE TRANSFERED TO PRINT PROGRAMS** ************************************************************************ … *******************global table declarations**************************** DATA: T_CUSTOMER TYPE TABLE OF SCUSTOM WITH HEADER LINE. DATA: T_BOOKING TYPE TABLE OF SBOOK WITH HEADER LINE. Integration The data declarations are generated by the Print Workbench automatically in a data area defined for this purpose. for example. a global work area and a global internal ABAP/4 table are defined.2011 Automatically Generated Variable Declarations Use With each form level or 1:1 level. *§*end*******END-OF-GENERATED-CODE************************************** READ Subroutines Use A READ subroutine exists for each hierarchy level of a form class. the work areas are particularly important. They are update with every change in the form class hierarchy. Both have the DDIC table structure that is defined in the attributes for the level. This READ subroutine is used for reading the data from the database. 1:1 levels are at the same hierarchical level as the related form level. They represent relevant data interfaces used. The naming of the global work area follows the convention WA_<level name>. the internal table T_<level name>. NEVER CHANGE IT MANUALLY********** **DATA ONLY FOR SYNTAX-CHECK. *******************global workarea declarations************************* DATA: WA_CUSTOMER DATA: WA_BOOKING DATA: WA_FLIGHT TYPE SCUSTOM TYPE SBOOK TYPE SPFLI .

2011 In addition to the READ subroutine. exactly one GET subroutine belongs to each form level. In the GET subroutine you procure the current data for the form level from the database directly or from other applicationdefined data buffers. the GET/FILL subroutines can also be used for reading data from the database. The affiliated READ subroutine is empty.07. During the call. There is no GET subroutine for the document level as loop of the hierarchy. GET Subroutines Definition With the exception of the document level. ● All the data for a form level is obtained in the relevant READ subroutine and defined in the global table. Use GET subroutines are used to procure the n data records for a form level dependent on the data of the next highest form level. the GET subroutine then extracts the data records from the table that belong to the current entry of the next highest form level. you only have to extract data from the internal global table T_BOOKING. The GET subprograms are copied to the print program when you activate an application form. The n data records determined are processed sequentially in the generated print program. The name of the GET subroutine is composed of the prefix GET. Since the posting data is read from the database in the READ subroutine. Integration The GET subroutines are then called in the generated print program of an application form if a form level is to be processed according to the hierarchy of an application form. the calls of the GET subroutines are dependent on the hierarchy in the application form. Structure The interface of a GET subroutine contains the variables that are set as prerequisite or result for the call in by the Print Workbench in accordance with their hierarchical position. READ subroutines are at the start of a print program. the name of the next highest form level. *&---------------------------------------------------------------------* *& Form get_form GET_CUSTOMER_BOOKING *&---------------------------------------------------------------------* FORM get_customer_booking TABLES yt_booking STRUCTURE sbook Print Workbench 690 18 . and the name of the form level itself.SAP Online Help 13. Example The source text of the GET subroutine of the form level FLIGHT is as follows. you can use all global data areas (<T_*> or <WA_*>) of the same form level or all form levels higher in the hierarchy. ● When you are developing a form class. The data records received are then processed sequentially. Within the READ subroutine however. You can follow two strategies. and called up once only. you have to decide which strategy to use based on the data constellation and program design.

13. Just as with the GET subprograms. Example The source text of the FILL subprogram of the 1:1 level FLIGHT is as follows. READ subprograms are at the start of a print program. Structure The interface of a FILL subprogram contains the variables that are set as prerequisite or result for the call in by the Print workbench accordance with their hierarchical position. that is. The FILL subprograms return the data record of the 1:1 level belonging to the current run. ENDFORM. you can also follow both of the strategies described above for the data procurement for FILL subprograms.SAP Online Help USING x_customer REFRESH yt_booking. you can also use the global variables of the 1:1 level higher in the hierarchy. and called up once only. you only have to extract data from the internal global table T_FLIGHT. and the name of the 1:1 level.07. The FILL subprograms are copied to the print program when you activate an application form. "GET_CUSTOMER_BOOKING TYPE scustom. the name of the relevant form level. This FILL subprogram provides the relevant 1:1 level data for the current data record of the relevant form level. Print Workbench 690 19 . Within the READ subprogram however. the calls of the FILL subprograms are dependent on the hierarchy in the application form. you can use all global data areas (<T_*> or <WA_*>) of the same form level or all form levels higher in the hierarchy. *&---------------------------------------------------------------------* *& Form fill_form FILL_BOOKING_FLIGHT *&---------------------------------------------------------------------* FORM fill_booking_flight USING x_booking y_flight CLEAR y_flight. If 1:1 levels are beneath one another hierarchically. READ TABLE t_flight INTO y_flight WITH KEY carrid = x_booking-carrid TYPE sbook TYPE spfli .2011 FILL Subroutines &DEFINITION& There is exactly one FILL subroutine for each 1:1 level. ENDLOOP. Use There is exactly one FILL subroutine for each 1:1 level. if the data records belonging to the form level are processed sequentially. The name of the FILL subprogram is composed of the prefix FILL. LOOP AT t_booking WHERE customid = x_customer-id. Since the posting data is read from the database in the READ subprogram. APPEND t_booking TO yt_booking. Integration The FILL subprograms are then called in the generated print program of an application form if the related form level is processed.

● Integration The subroutine TEST_PRINT is called up from an application form for a test print. " FILL_BOOKING_FLIGHT 13. The comments are generated by the Print Workbench during creation of the form classes. include. *data: .SAP Online Help connid = x_booking-connid. ENDFORM. however. The implementation of the subroutine is optional. The READ subroutine of the document level must be able to process this information.. you have to define the corresponding instructions in a specific area of the form class library. The application implements the subroutine TEST_PRINT and specifies the input parameter for the module EFG_PRINT in the subroutine (for example... The area has unique limit characters and relevant comments. Use The instructions defined for an application form in the TOP area are copied to the corresponding TOP include of the function group when the print program is generated. The test print is only possible if the form class supports it.. you cannot change the frame generated.07. via own value queries). " own type-pools " own global data *&*end******END-OF-OWN-GLOBAL-DATA************************************** Do not change the restricting comment lines generated for the TOP area of the form class library. Structure The TOP area is restricted by the following comment lines in the form class library: *&********************************************************************** ***The following code WILL be transported to print programs************* *************PUT HERE YOUR OWN GLOBAL DATA****************************** *type-pools . data.. Subroutine TEST_PRINT Use You can use the test print with real data for checks during form development and maintenance and for the analysis of errors during data procurement of the form class.2011 Global Area for Own Variables Definition If an application requires its own global instructions (for example. type pools).. This means if: ● A BOR object type is specified in the form class and the object key of this BOR object type is queried via the FIND method and then inserted in to the first line of the ranges table of the module EFG_PRINT. Print Workbench 690 20 . This means that the instructions are valid for all subroutines.

set the export parameter y_found to X.SAP Online Help 13. When you have implemented the subroutine. Example *&---------------------------------------------------------------------* *& Form Testprint (Optional) * *&---------------------------------------------------------------------* FORM test_print TABLES yt_ranges STRUCTURE efg_ranges yt_ranges1 STRUCTURE efg_ranges yt_ranges2 STRUCTURE efg_ranges yt_ranges3 STRUCTURE efg_ranges yt_ranges4 STRUCTURE efg_ranges yt_ranges5 STRUCTURE efg_ranges yt_ranges6 STRUCTURE efg_ranges yt_ranges7 STRUCTURE efg_ranges yt_ranges8 STRUCTURE efg_ranges yt_ranges9 STRUCTURE efg_ranges USING y_found LIKE rfgen-kennzx y_cancelled LIKE rfgen-kennzx. The subroutine is called up in the generated module of an application form just before the processing of a document. Subroutine SET_ARCHIVE_INDEX Use The subroutine SET_ARCHIVE_INDEX sets the ID relevant for the archiving system. set the indicator y_cancelled to X. ***dialog for completion of ranges tables ENDFORM. This has the same importance as the object key of the BOR object type used for archiving.07. you can specify the complete archive parameters when you call up the module EFG_PRINT.2011 Activities Implement a dialog to determine an object key and place this in the ranges tables transferred such that you can use this information for the selection of relevant data in the READ subroutine of the document level. however. CLEAR y_cancelled . If there is a termination by the user. Print Workbench 690 21 . ***always set this ! y_found = 'X' . If you always call up the Print Workbench once for each document. REFRESH yt_ranges . The implementation of the subroutine is optional. you cannot change the frame generated.

"PROCESS_AFTER_DOC Subroutine PROCESS_AFTER_FORM Use The subroutine PROCESS_AFTER_FORM is designed for carrying out an applicationspecific activity after the application form has been processed. Activities Implement the application-specific activities for the event specified above. leave frame untouched !!!) * *&---------------------------------------------------------------------* FORM process_after_doc. It is called in the generated print program for the application form. The implementation of the subroutine is optional. *** c-archive_index-object_id = wa_. however.SAP Online Help 13. The global data areas (WA_*) of the document level are filled in this event.07. Activities Implement the application-specific activities for the event specified above. Print Workbench 690 22 . Example *&---------------------------------------------------------------------* *& Form process_after_doc (OPTIONAL. you cannot change the frame generated. * do something ENDFORM. leave frame untouched !!!) * *&---------------------------------------------------------------------* FORM set_archive_index . The subroutine is called up in the generated module of an application form just after the processing of an individual document. The implementation of the subroutine is optional. "SET_ARCHIVE_INDEX Subroutine PROCESS_AFTER_DOC Use The subroutine PROCESS_AFTER_DOC is designed for carrying out an application-specific activity after a single document has been processed. you cannot change the frame generated. all data and form levels of the application form have been processed. Example *&---------------------------------------------------------------------* *& Form set_archive_index (OPTIONAL. set the archive index to the value of the object key of the BOR object.2011 Activities In the global variable c-archive_index-object_id... however.. At the time of the call. ENDFORM.

*do something ENDFORM. should always be completed before a text is issued. The only parameter you have to specify here is the message type. such as for data consistency. EZ) &4 to &7 – Message parameters 1 to 4 MAC_PRINT_CANCEL_REPEAT If a module called has triggered an exception in a subroutine with the macro MAC_MSG_PUTX. checks.’ABCDE’ EXPORTING … IMPORTING Print Workbench 690 23 . but do not delete the texts printed in the form up to this point in the spool. Controlled means that before leaving the print module.07. unexpected data inconsistencies). Example CALL FUNCTION . where the printing of a form must be subject to a controlled termination. leave frame untouched !!!) * *&---------------------------------------------------------------------* FORM process_after_form.SAP Online Help 13.2011 Example *&---------------------------------------------------------------------* *& Form process_after_form (OPTIONAL. 100) &3 – Message class (for example. E ) &2 – Message number (for example. you can forward the corresponding message with the macro MAC_PRINT_CANCEL_REPEAT. use only one of the two macros.. Terminations within GET or FILL subroutines end with the printing of the current form. Procedure If you want to terminate the print transaction of an (application) form. Therefore. Prerequisites To terminate the print transaction. All other message activities could disrupt the global print process. the open form process is closed so that the next document can be printed in the mass run. call one of the following macros: ● MAC_PRINT_CANCEL In MAC_PRINT_CANCEL the error parameters are transferred in the macro parameters 1 to 7: ○ ○ ○ ○ ● &1 – Message type (for example. "PROCESS_AFTER_FORM Controlled Terminations in Exception Situations Use In the subroutines of the form class library exception situations may occur (for example.

Procedure . you should avoid changes to the form class hierarchy or the assigned structures. 13. MAC_MSG_PRINT_CANCEL ‘E’ SY-MSGNO SY-MSGID SY-MSGID SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4..SAP Online Help … EXCEPTIONS NOT_FOUND OTHERS IF SY-SUBRC NE 0. Specify a Create. In the following dialog box. form classes are themselves constantly developing. you can use it for developing application forms. In the menu choose Print Workbench Form Class name for the new form class and choose Form Class Process (EFCS).. ENDIF. Once a form class has been created. or at least check them precisely since incompatible change could invalidate productive application forms. 2. Creating Form Classes Use You create a form class if you want to create standardized correspondence for an application or a process. Result If a form class has the status Active.2011 Processing Form Classes Purpose Creating and processing form classes Prerequisites To process a form class you have to ● ● ● ● Know the processes of the Print Workbench Have good ABAP programming knowledge Know the data model of the underlying application Have reconciled the data mode to the requirements of a document Process Flow Due to constant further development of the related application. specify the name of the new form class library (ABAP program) and a short text. Since form classes represent interfaces. = 1 = 2. it should be applied and tested using your application forms.07. 1. If you also want to define the form class for using Smart Print Workbench 690 24 .

place the cursor on an existing form level. In the subsequent dialog box. Note that you can call the GET subprograms several times. Result The form class has been created. In the following dialog box. Prerequisites Form levels are in a 1:n relationship to another. The new form level is inserted into the hierarchy. If you initially do not want to transport the form class. you can procure all the relevant data in the GET subprogram.. Enter a short text and the output structure. You can output the remaining fields later if required. You should therefore buffer to reduce the effect on performance. Choose Continue. Create the related READ and GET subprograms by selecting the symbols R and G in the hierarchy. it does not have any form levels or a form class library. 5. enter a maximum ten character name for the form level and if necessary. You now have to create form levels.2011 Forms or PDF-based forms (recommended) set the indicator Smart Forms/PDF. Creating Form Levels Use You create form levels to add structures to the dataset of a form class. However. If the indicator Smart Forms is set in the attributes of the form class. The name of the form level is binding and unique within a form class and should be fitting. This means that for n=1. 1.07. and the related subprograms together with the form class library. the program is created automatically by the Print Workbench. 3. you should use 1:1 levels. you can also select the package $TMP (= local object) and reassign the form class later if necessary. In the READ subprogram you can first read all the relevant data and can only fill the relevant subareas in the required internal table in the GET subprogram. Same Level depending on 4. This relationship should always agree with the actual relationship in the data model – otherwise the hierarchy has a design error that has a negative effect on the use in application forms and the enhancement of the form class. implement the coding for procuring the relevant data for the form level. Since the generated programs are function groups. also enter the name of the generated structure and the generated table type. Alternatively. If form levels exist. You are responsible for initializing the global data area <WA_*>. Choose Edit Create Lower Level or Edit Create the hierarchical relationship of the new form level. If the form class library has not been created yet. choose a package for the form class. 2. these structures are in a 1:n relationship to existing form levels.. enter a transport request in the dialog box. 3. If you want to use a transportable package. Choose Continue. Procedure . choose the node type Form Level. Print Workbench 690 25 . 4. In the Print Workbench menu choose Form Class Process. the values in the global data areas are retained if you call a form or form routine again.SAP Online Help 13. 1:1 levels. In the READ or GET form routines.

To do this. you can specifically use actual data from the system without having to create a time-consuming test case with integration in an application process... You can now include the 1:1 level in an application form and test that the subprograms work correctly.2011 Result You have created a form level and implemented the relevant data procurement in the relevant subprograms of the form class library. Creating 1:1 Levels Use You create 1:1 levels to add to the data list for a form level. If the form class library has not been created yet. In particular. Place the cursor on a form level or a 1:1 level if the new 1:1 level is dependent on another 1:1 level. You can now include the form level in an application form and test that the subprograms work correctly. Specify a name for the 1:1 level. Assign a new maximum ten character name for the new 1:1 level. Procedure . Result You have created a 1:1 level and implemented the relevant data procurement in the relevant subprograms of the form class library.SAP Online Help 13. 2. you can procure all the relevant data in the FILL subprogram. Choose Continue. 1. 3. choose Edit Create Lower Level or Edit Create Same Level.07. Prerequisites The data must be in a 1:1 relationship to the data of the relevant form level. Note that you can call the FILL subprograms more than once and should therefore buffer so that you do not affect performance. Enabling Test Prints Use You can use the test print in the application form for development and later for the error analyses in the application form or the form class. Print Workbench 690 26 . implement the coding for procuring the relevant data for the 1:1 level. In the READ or FILL subprograms. The output structure must be a DDIC table or structure. Create the related READ and FILL subprograms by selecting the symbols R and F in the hierarchy. the Print Workbench creates the program automatically. Choose 1:1 level as node type and specify the output structure. Alternatively. You should therefore configure each form class accordingly. You can create additional form levels or 1:1 levels for the form level. The name of the form level is binding and unique within a form class and should be fitting. The new 1:1 level is inserted into the hierarchy at the relevant point. In the READ subprogram you can first read all the relevant data and can only fill the relevant subareas in the required internal table in the FILL subprogram.

The flight assigned to a flight booking is represented by the 1:1 FLIGHT level. All 1:1 levels are placed in the hierarchy beneath the associated form levels and can be displayed or hidden by clicking on them. this form level is below the level CUSTOMER in the hierarchy. At the time of the test print. Since a customer can have several bookings.2011 Procedure To enable the test print. specify a BOR object type. In the attributes of a form class.. you have the following options: . 1. All flight bookings for one customer are shown on the BOOKING form level. As return parameter the Print Workbench expects the RANGES tables transferred to the application form. 2. Implement the subroutine TEST_PRINT [Seite 51] in the form class library such that it corresponds to the dialog for determining the initial object of the form class. Print Workbench 690 27 . Form class: flight notification PWB_FLIGHT_NOTIFICATION Confirmation for flight bookings  Customer Customer Form Levels  Booking Booking Flight Flight 1:1 Level This particular form class is attached to the CUSTOMER form level. Additional flight details are stored in the flight that is assigned to a flight booking. The form class (or the data procurement in its library) must be able to process this. the Print Workbench uses the FIND method of the object type to determine an object key that is inserted in the first line of the RANGES table transferred to the application form.. Result You can carry out a test print of application forms for a form class. Example: Flight Notification This is an example of the structure of a typical form class using the example of the form class Flight Notification. invoice document). Form classes are also frequently attached to a document (for example.SAP Online Help 13.07. The CUSTOMER and BOOKING form levels are in a 1:n relationship to one another.

in the case of SAPscript. Structure The application form consists of: ● ● ● ● ● ● ● Properties/attributes Hierarchy Form (SAPscript. data procurement. You can determine the form and scope of the data procurement as required and add your own data using user exits.2011 Application Forms Definition Application forms are configuration objects and integrate the data structure defined in the relevant form class. Use If standardized correspondence is to be created from an application process. you have to configure application forms. but is extended. This has a similar function to the form class. Smart Form. such as the call of a user exit or. the form levels represent events in the flow logic of the form. Afterwards. In the context of application forms. The generated print program integrates: ● ● ● The SAP application Customer-defined configurations and implementations of user exits Calls of the components SAPscript. or PDF-based form. If the application uses the Print Workbench as configuration tool. An application form is printed by calling the module EFT_PRINT that then calls the generated module for the application form. SAPscript form.07. this provides a form class that you have to set as attribute in the application form. you can no longer change the form class. and PDF-Based Forms. and the form layout. Smart Form. The status of the application form provides information about whether the application form has no errors and can be run and whether the generated print program is up-to-date with regard to the application form and its subcomponents. you have to specify the form class. Print Workbench 690 28 .SAP Online Help 13. or PDF-based) SAPscript texts (SAPscript) User exit includes User top includes Generated print program The core of an application form is the hierarchy. In the events you can define further activities. the call of texts. When you create an application form. Application forms are usually defined in Customizing tables or master data in the application. You can also choose between the basic tools for creating the form layout – Smart Form. The form class assigned to an application form determines the structure of the data delivered by SAP. the form logic you have determined. Integration An application form is closely linked with the related form class and integrates the data model and the related data procurement of the application with the requirements of the SAP customer.

A collection is a grouping of different application forms that are printed or output combined sequentially per call from the application (for example. This setting is obligatory and cannot be changed once you have created the application form. Form Types Definition The form type of an application form controls the configuration and output of a form. texts are assigned to the hierarchy of an application form. The names of these data structures are defined in the form levels of the form class. Print Workbench 690 29 . data is placed in the generated data structures and transferred to the Smart Form assigned.07. In the case of SAPscript.2011 Properties and Attributes Definition The attributes of an application form contain all the relevant. Use The following form types are possible: ● ● ● ● SAPscript Smart Form PDF-based form Collection Depending on the form type. depending on their position in the hierarchy they can be processed or printed.SAP Online Help 13. The form classes are delivered by the applications. they are independent of the hierarchy and form levels. different functions and options are offered for the form processing and form printing. Form Classes Definition The form class of an application form contains the data hierarchy and the relevant access coding that belongs to an application for creating a form. Use Form classes are used in application forms. that is. static settings. In the case of Smart Forms and PDF-based forms. in the form of an e-mail with attachment).

that a user include or Print Workbench 690 30 . Smart Form. Use Data instructions (for example. creation. The ABAP implementations required are stored in customer-defined includes in the USER-EXIT-INCLUDE and the USER-TOP-INCLUDE. The application form controls the print transaction. Smart Forms. ● SAPscript ○ ○ ● Window (used in the attributes for text nodes) Form level symbols (WA_*) used in texts Smart Forms and PDF-based forms Name.07. and PDF-based forms are integrated in the configuration of the application form. Use The application form and the related SAPscript. either a Smart Form. consistency checks. or PDF-based form are reconciled with one another during the print transaction. and PDF-based forms. and upload/download take place in the processing of the application form. see SAP Help Portal at help. This means that the data is read and the program interfaces of the layout tool are called for the events defined. SAP Smart Forms. Since user includes are client-independent as ABAP program objects. windows.com Documentation SAP NetWeaver SAP NetWeaver Release/Language SAP NetWeaver Application Platform (SAP Web Application Server) Business Services PDF-Based Forms. Note therefore. or a PDF-based form is defined in the attributes of an application form. under certain circumstances.sap.2011 SAPscript Form/Smart Form /PDF-Based Form Definition Depending on the form type.SAP Online Help 13. DATA: TOTAL TYPE <Data type>) are implemented in the USER-TOP-INCLUDE. different application forms can reference to the same user include from different clients. deletion. SAPscript (BC-SRV-SCR). The form contains all relevant layout information (for example. you can enhance the function and dynamics of an application form as required. which means that navigation. User Includes Definition Using ABAP programming. the user exit subroutines are defined in the USER-EXIT-INCLUDE. copying. Smart Forms.and type-justified interface parameters for transferring the selected data: ○ ○ PWB_DATA or the name of the generated DDIC type at document level Data declarations in user top includes For detailed information about SAPscript. The names of both ABAP includes are defined in the attributes of an application form. pages. a SAPscript form. paragraph formats) for preparation of the form to be printed. Integration SAPscript forms. The interfaces between the application form and the form used depend on the type of form and must be reconciled with one another.

You can use the exits to carry out initial or closing processing. Integration The subroutine for the start-exit is called up in the generated print program at the start of form processing before each activity that affects a form. call OPEN/CLOSE_FORM modules) since this can lead to errors in the internal form control. The name of the subroutine is composed of the prefix USER_EXIT and the name specified in the attributes of the application form. Optional Static User Exits in Generated Print Program Definition In addition to the user-defined user exits. globally defined Print Workbench variables (C-*) and print parameters have been set. Start/End Exit Definition To carry out initial and closing activities pre document. you must carry out form activities (for example. You can also define and call other user-defined form routines. The end exit is called at the end of the form processing. Use The use of these exits is optional. after loop). Here all static. before. the generated print program contains further static user exits that you can specify in the user exit include in the configuration of an application form. The user exits defined in the user exit include are called in the defined events for the form levels (for example. Here all of the activities that affect the form have been completed. Structure The start/end exist is an ABAP subroutine. Print Workbench 690 31 .SAP Online Help 13. you can define a start/end exit in addition to the user exits of the form levels and the text nodes. Both subroutines have no interface parameters.2011 referenced application forms can be changed or invalidated by unintentional changes as part of maintenance of other application forms. during. to all data areas generated by the Print Workbench or own data defined in the user top include. as in all user exits. Use Static user exits fulfill functions that are independent of the actual data procurement and processing of the hierarchy. Integration The user includes are included in the TOP included in the generated function groups of an application form.07. They can refer. In the user exits.

Generated Modules Definition When you activate an application form. which is called in the print event of an application. ● FORM EXIT_BEFORE_PRINT This form is called immediately before the call of a generated module of an individual SAPscript form. The call takes place exclusively in module EFG_PRINT. and performs the user exits. the application data from the application form or from the form class has not been read yet. creates corresponding calls from the generated print program. for example. the Print Workbench recognizes the existence of the subroutines. the name is different for each application form in each system and client. The Print Workbench gives the name of a user exit. There you can check the uses of generated modules and delete modules no longer used. A nonPrint Workbench use of the generated module is not permitted. There you can modify the import parameters of the module SSF_OPEN (if necessary) with ABAP programming: c-sf_control_parameters_ TYPE SSFCTRLOP c-sf_output_options TYPE SSFCOMPOP At this point. There you can modify the import parameter c-pdf_output_options TYPE SFPOUTPUTPARAMS of the module FP_JOB_OPEN. Smart Forms. Customers can define them in the user exit include. place the form in the spool of the SAP system. The generated module contains all ABAP commands and function calls of the form processing (SAPscript. a function group with exactly one function module is generated. form class. You can determine the application form for a generated module or for the function group with the same name with the Persistent Garbage Collector (CA-GTF-TS-PCG) in the Print Workbench menu. This function group contains all of the settings defined in the application form in the form of coding. For each application form. You have to regenerate the module for each change to the application form or one of the referenced objects (for example.07. user includes). At the time of activation. or PDF-based form. You can use the following static user exits: ● FORM CHANGE_SF_OPTIONS This form routine is called immediately before the processor for Smart Forms is opened. At this point. the application data from the application form or from the form class is read completely. At this point. enter the same name. see the documentation for the Persistent Garbage Collector [Extern] Print Workbench 690 32 . PDF-based forms) that are responsible for the data procurement and processing and. the application data from the application form or from the form class has not been read yet.SAP Online Help 13. Smart Form. Use The generated module is called if the application form is to be printed. ● FORM CHANGE_PDF_OPTIONS This form routine is called immediately before the processor for PDF-based forms is opened. For more information. The function group and the module are always defined locally ($TMP).2011 Structure Static user exits are subroutines that have no parameters.

or the language is not defined in the list for the application form. Languages Use To create outgoing correspondence in different form languages. for each application form you can define a list of languages (except the maintenance language) for which the document can be printed. If you wish to change the language interactively for each application form. The language only refers to the languagedependent components (for example. standard texts). you use the translation tools of the Print Workbench. However. you first have to add the language to the language pool. and PDF-Based Forms. and a number composed of the date and time of the first generation. choose Extras Language Create. Call of user exit from user include The name of the generated module is composed of the naming convention prefix of the Print Workbench /1PWB/.07. If you also want to print the form in other languages. FILL subroutines) Calls of the program interfaces for SAPscript. You have the following options for printing in different languages: ● ● The language is set at the start of the print process by the application in question and then retained. specify the relevant language under Extras Language Select. Integration The generated module is called up dynamically in the module EFG_PRINT exclusively. To do this. you have to define languages within application forms. you have to set the internal language variable c-langu in the start exit. direct) call of the module is not supported by SAP. The name is different in each system/client and has no self-explanatory semantic. Features When you create an application form. GET. To ensure that the print transaction works without any errors. Every other (for example. SAPscript form) for all languages used. the language in which you log on to the SAP system is always set in the pool. In the translation transaction the languages are created automatically. the client. The definition of an application is not language-dependent. If a language is used in which texts or the SAPscript form are missing. Integration The languages defined are an integral part of the application form and are transported between systems. Print Workbench 690 33 . printing is immediately terminated. Activities To translate application forms. Smart Form.SAP Online Help 13. In order to maintain the SAPscript form and the texts in languages other than your logon language.2011 Structure The generated module integrates the following parts of an application form: ● ● ● ● The flow logic of the application form according to the hierarchy Data procurement from the form class (call of READ. make sure that you have maintained all language-dependent components of the application form (texts.

It shows whether the generated print program is up to date with regard to the application form and the relevant subobjects. form class library) User includes (user top include. attribute. Integration The following (sub)objects determine the status of an application form: ● ● ● ● Application form (attribute. The print program that is called dynamically at runtime by the module EFG_PRINT is generated from the structure of the hierarchy. If one of the above-mentioned subobjects is changed. PDF-based form. Use The hierarchy describes the flow logic of an application form. A. the status is set to Inactive. The Hierarchy of an Application Form Definition The hierarchy of an application form covers all of the information about the relationships of the data belonging to the form levels. B‚ D. hierarchy.07.2011 Status Use The status of an application form is defined by different system conditions and different statuses of the application form objects involved. You can only print print programs with status Active. form levels. the form has the status New. the current version information of this subobject is written into a local table and then used for determining the status. user exit include) Status of form elements (Smart Form. Structure The hierarchy consists of: ● ● ● ● ● ● Root level (= attribute of the application form) Form levels Document level (= first form level) 1:1 levels Placeholder for user exits (for example. The hierarchy also defines a flow logic that is used to process all form levels and 1:1 levels and the data linked to these from top to bottom in the generated print program. form levels) Form class (hierarchy. or form interface) When the module is generated.SAP Online Help 13. or T) Texts for form type SAPscript (SAPscript standard texts) The following figure contains the schematic display of the hierarchy: Print Workbench 690 34 . If no module has been generated from an application form.

Print Workbench 690 35 . The name of the work area is formed from the prefix WA_ and the name of the form level or 1:1 level (for example. it still appears in the hierarchy but is no longer considered for printing. a form level was deleted. these are printed according to their position. you have to correct this before you can activate and print the application form. The hierarchy of an application form is always created following the structure of the underlying form class. If you use SAPscript. For each form level and 1:1 level there is a global variable (work area) which you can access both in texts and also in user exits. you can delete it or deactivate it. you can also assign additional SAPscript texts to the hierarchy. Integration The hierarchy of an application form is the basic configuration for the generation of the print program. WA_CUSTOMER). if. for example.texts (only SAPscript)  BOOKING FLIGHT B D User-Exits Form level 1:1 level PWB_FLIGHT_BOOKINGS Line Items By selecting and activating form levels or 1:1 levels you can define which data is to be read. The document level is the first form level in the hierarchy and has almost the same attributes as any other form level. form class and name of the user exit include and the user top include. The document level is of particular significance to the form levels. the hierarchically dependent form levels and the affiliated 1:1 levels are also deleted or inactivated. If a form level is deactivated. If a form level or 1:1 level is not required for printing. The root level contains logical data (attributes) for the application form. the number of entries for this form level corresponds to the number of forms created.SAP Online Help The Hierarchy of an Application Form 13.2011 PWB_FLIGHT_NOTIFICATION  Flight confirmation for customer Root level/ Attribute Document level Customer PWB_FLIGHT_HEADER_INFO PWB_FLIGHT_FOOTER PWB_FLIGHT_ADDRESS PWB_FLIGHT_INTRODUCTION PWB_FLIGHT_ITEM_HEADER PWB_FLIGHT_ITEM_HEADER Infor mation for customer Footer (number of pages) Address Letter for customer Heading for line items (MAIN) Heading for line items (TOP ) Booking Flight SAPscript . You cannot select or add form levels that are not defined in the form class. for example. Please note that when deleting or inactivating a form level. For this reason. In contrast to other form levels however. If the system determines inconsistencies between the hierarchy and form classes. this document level must not be placed equal to another level.07.

In the texts. The name of a 1:1 level and the DDIC structure below it is defined in the corresponding form class and cannot be changed. 1:1 levels Definition The 1:1 levels are directly assigned to the form levels. The texts contain the actual contents of the printed form. This situation is described in more detail in the next section. you can use the same form level more than once in the hierarchy (duplication). Texts (SAPscript Only) Definition Texts are a further node type in the hierarchy of an application form of the type SAPscript. together with the application form‟s general process logic. you have to enter this text in the hierarchy as a lower level of the form level. Here too the principle applies that siblings (levels at the same hierarchy level) are independent of one another. This means that for each entry in a form level there are several related entries for the form level below (for example. You can insert texts in the required position of the hierarchy.07. However. you can access all work areas (WA _<level name>) and your own variables that you define in the user top include. customer and his flight bookings). form levels at the same level have no hierarchical relationship to one another. However.SAP Online Help 13. If you want to output a text for a form level. Form levels and 1:1 levels represent a logical or business entity. The hierarchical relationships of the levels are defined in the form class and cannot be changed. A 1:1 level is dependent on the form levels to which it is assigned since the selection criteria for access to the database are in the data already imported for the superordinate form level.2011 Form Levels Definition Form levels form the basic framework of the hierarchy of an application form. They have a unique and direct relationship (1:1) to their affiliated form level. The name of a form level and the DDIC structure below it is defined in the corresponding form class and cannot be changed. Typical examples for 1:1 levels are the long texts (explanatory texts) for each of the entities. Form levels that are hierarchically dependent on one another (parent-child dependency) have a 1:n relationship with one another. Print Workbench 690 36 .

There you can evaluate and modify the table. The n entries for the current form level are determined for the current entry of the superordinate form level and place in an internal table. The table determined is transferred to the user exit. that is. the integration in the Print Workbench is also different. 6. all global data areas of the related active 1:1 levels are filled in sequence. the loop is left. if it is a form level. The next entry in the loop is processed. 8. Alternatively. For each form level in the application form. PDF-Based Forms Purpose In the Print Workbench. The hierarchically subordinate nodes of the form level are processed. At document level. 1. Interaction of Application Forms with SAPscript Forms. Smart Forms. such as that a document is completed or a new document is starting.SAP Online Help 13. the form level is processed in the same way.2011 Flow Logic and Processing Definition of the Hierarchy Definition The application form is a configuration object that is translated in the generated print program in a processing and flow logic at runtime. The data loop over the entries of the internal table begins. the global data area (WA_<form level>) is filled with the current line. 3. If it is a text (form type SAPscript). In this user exit you can use and modify all global data areas of the form level and the related 1:1 levels. The exit before loop is called – if it exists.. the text is printed. You can use the global data areas of the superordinate form levels and the related 1:1 levels. you can use Smart Forms for the print output. SAPscript is used for print preparation.07. As standard. 4. In the loop. it contains the processing of other dependent form levels. additional form control orders are given to SAPscript or Smart Forms. Prerequisites: To use Smart Forms in an application form. you can use the form classes delivered in different ways. Since both components are very different. The exit after loop is called – if it exists. 5. Print Workbench 690 37 . Structure The flow logic of an application form is defined recursively. 7. At the same time. a flow rule is defined for a form level. 2. The exit during loop is called – if it exists.. you have to activate the relevant form class for using Smart Forms (see documentation for the indicator Smart Forms in the attributes of the form class). If the last entry for the current form level is reached. the following steps are executed in sequence: . You can also use the global data areas of the superordinate form levels and the related 1:1 levels.

These work areas are the central interface of the hierarchy to the read data in the application form. The nesting of the data is reflected implicitly by a complex data structure for each form level. and choose Extras Display Symbols. but the data is no longer valuated for immediate output in the form. The selected symbol is placed in the buffer and can be inserted again at any point. The data is transferred from the global data areas to the complex data structure when the text is output for SAPscript. Place the cursor on the text. This means that the form is created interactively between the Print Workbench and SAPscript. The interface is created appropriate to the application form or the form class. The name of the parameter in the form interface must be PWB_DATA. or on a form level or 1:1 level. window. paragraph formats. Access to Data Read Use During the processing of the hierarchy. as described in point 1. choose Insert Symbols Program Symbols and select the required symbols. OPEN_FORM. Unlike in point 2. In Smart Forms and PDF-based forms. the data is read from the database and placed in the global data areas in accordance with the form class definition as for SAPscript. Choose the symbol you want to transfer and choose Enter. The name of the complex data type for the data transfer to the Smart Form corresponds to the assigned complex data type of the document level. START_FORM. The texts are inserted in the hierarchy of the application form and are called up at runtime in accordance with their position in the hierarchy. All of the application form symbols that you can use based on the position of the text in the application form hierarchy appear. data is stored in the global work areas. You have several options for inserting symbols into a text: ● In the SAPscript text editor. there is one work area for each form level and each 1:1 level and this has the name WA_<Level name>. these can be accessed in texts with the usual symbol logic for SAPscript. WRITE_FORM_LINES). The data written in the complex type is controlled by selecting or deactivating form levels and 1:1 levels. It is firstly saved in a complex data structure also provided by the form class.SAP Online Help 13.2011 Process Flow In the SAPscript scenario. In the generated print program the print transaction consists of alternative calls for data procurement and calls of the SAPscript form processor (for example. Select the symbol you require from the list and choose Enter. font. For Smart Forms and PDF-based forms. you can copy the symbol into the buffer by double-clicking on it in the list. the Print Workbench provides the global data areas of the form levels and 1:1 levels defined in the form classes by the application. Alternatively. the system can create the corresponding form object for an application form automatically. Choose Utilities Display Hierarchy.07. The SAPscript form assigned to the application form contains settings for the layout such as pages. By double-clicking on one of the levels you can display the appropriate symbol. the ● ● Print Workbench 690 38 . Features In the print program. You can also adjust the form elements automatically later using a corresponding help function in the application form. the standard variables PWB_DATA and C are added to the form interface. The complex data type of the form class agrees with the hierarchy of the form class. A new amodal window containing the form class hierarchy appears.

the work areas are: ● ● ● WA_CUSTOMER WA_BOOKING WA_FLIGHT In these work areas you can access the texts and the user exits. A table or structure from the ABAP Dictionary is hidden behind each work area. In our example. TELEFAX)) Print Workbench 690 39 . The Smart Forms and PDF-based forms contain own methods for accessing the data in the data categories packed. However. To do this. The character & at the beginning and at the end of the instruction distinguishes SAPscript symbols (variables) from normal text.07. you can see that there is a field ID that contains the customer number. in this case. This corresponds to the DDIC structure EFG_STRN_PRINTDATA: Field LANGU DEVICE Name Current language for the form Current output type (PRINTER.SAP Online Help 13. Structure The variable C consists of two parts. Use The variable C enables you to request global information for the application form or the print environment so that you can interpret and process this information either locally in the form or externally. the global variables WA_* are still available for use in user exits. place the cursor on a form level and choose Find Variable. See also Flow Logic of the Hierarchy [Seite 14]. It contains technical data for the application form or the print environment that is relevant for the current print transaction. All the variables found are listed.2011 selected symbols are not copied directly to the buffer unless you choose Copy to Buffer. Example In the example above. The first part is transferred to the Smart Form. you must include the symbol &WA_CUSTOMER-ID& in the text. The variable is replaced with the current content in the print program at the time of printing. To output the customer number of the current business partner. The variable has a fixed structure and is defined globally which means that it can be queried at any time in texts or user exits. Control Variable C Definition The control variable C is a global variable that exists in each application form. You can see from the attributes of the form level that the table SCUSTOM is masked by CUSTOMER. When you double-click on the table. You can ascertain the dictionary structure concerned in the attributes for the relevant form levels or 1:1 levels. the customer‟s number is to be printed in the text PWB_FLIGHT_BOOKINGS. The search includes both the names of the variables and their short text. The global data area that you can access in a text or a user exit depends on the position in the hierarchy. You can also carry out a cross-level search.

Print action records to be updated Current form level Number of form level if multiple selection in the hierarchy SAPscript return structure if RDI has been used Name of SAPscript form Name of Smart Form Table of valid languages Recipient for send type (e-mail address. user name) Print Workbench 690 40 . FAX.SAP Online Help 13. RML) send type External send type Document is a copy Test print Print parameter returned by SAPscript as ITCPP structure XSF indicator for print using Smart Forms: Name of collection (if integrated in a collection) Identification from collection (if integrated in a collection) Returns data on the caller Parameter specified by the application for controlling print-relevant parameters Output format of PDF-based forms XSF COLLECTION IDENTIFICATION GET_PWB_DATA ADDITIONAL_PARAM XFP The second part of the variable contains further fields: Field TABIX LINES FORMTYPE NO_ENTRY PA_PRINT PA_UPDATE FORM_LEVEL LEVEL_NUMBER RDI_RESULT SAP_FORM SMARTFORM T_LANGU REC_STRING Name Count variable for the current loop Number of entries in the current loop Form type (Smart Form of SAPscript) Last form level has no entry Print action records should automatically be printed. fax number. archive object type) BCI send type (INT.2011 RDI FORMKEY FORMCLASS ITCPO ARCHIVE_INDEX COMM_TYPE SENDTYPE SENDTYPE_EXT COPYFLAG TESTMODE ITCPP SAPscript indicator for RDI Current application form Current form class Input print parameter for SAPscript as ITCPO structure Parameters for archiving (BOR object type.07. BOR object ID.

Integration The variable C is globally defined in the generated print program. you must first create the required application form.. 1. 2. Smart Form. Print Workbench 690 41 . Insert the text nodes in the hierarchy and maintain the texts (only for SAPscript).. or PDF-based form. Maintain the SAPscript form. Via Extras Display Control Variable. Process Flow To create an application form. to query the form type. for example. 3.SAP Online Help 13. Result When you activate an application form. the print parameters in CITCPO. The form is only available for printing once it has been activated. Implement user exits. The variable is also defined in the form class library and can be used there. 4. you can display the most important fields of variable C.2011 SEND_STRING MANDT RDI SMARTPRINT SMARTFILL SF_RESULT Sender for send type (e-mail address. fax number. this generated function module is processed. or PDF-based form. SAPscript form. If the application form is called in a print process of the application using the function module EFG_PRINT. &C-TABIX&) or in user exits. Processing Application Forms Purpose To create outgoing correspondence. It is filled by the print program and interpreted later for further processing. Create an application form and name the subobjects (form class. this is only recommended in a few cases.07. proceed as follows: . You can display a complete list of all fields by displaying the structure EFG_STRN_PRINTDATA_EXPANDED in the ABAP Dictionary. for example. user name) Client of form RDI indicator Indicator whether Smart Form is to be called Indicator whether the data is to be filled in the complex data types (default „X‟) Return result of Smart Form call (structure SSFCRESCL) SF_OUTPUT_OPTIONS SF_CONTROL_PARAMETERS Output options for Smart Forms (structure SSFCOMPOP) Smart Forms: Control structure (structure SSFCTRLOP) You can use the variable C at any time in texts (for example. You can also change the variable. a print program is generated in the form of an ABAP function group and a function module. Smart Form. however. user includes).

If you have specified user includes. or PDF-based form and activate it. If you want to work with user exits. the text module of a form contains data from the business process that triggered the printing of a correspondence. Edit the relevant SAPscript. or PDF-based form). 3. . Print Workbench 690 42 . 1. you assign the application form to an application. Process the required SAPscript text. If automatic recording of changes is active in the current clients. Create.. create the includes by double-clicking on the objects in the attributes of the application form. Procedure . Prerequisites The SAPscript form for the application form is active. delete or deactivate form levels or 1:1 levels not used). add text nodes to the hierarchy. Choose Print Workbench Application Form Edit. A list of all fields relevant for the text node appears. 1.. Result You can now print the application form. For all objects. specify the name for the relevant form of the respective form tool... The fields are displayed as symbols – they have a restricting & at the beginning and end. and adjust it to your requirements. Inserting Variables in Texts (SAPscript Only) Use In addition to standardized formulations and headings. Again. Smart Forms. Pay particular attention to the hierarchical position of the text. Place the cursor on the point where you want to insert the symbols.SAP Online Help 13. 2. you have to specify a Customizing transport request. You have inserted one or more text nodes in the hierarchy of the application form. Choose Integrate Symbols Program Symbols. see the naming conventions. In this case..07. consider the conventions and rules for assigning names. 5. Now select the affiliated form class. The complete hierarchy of the form class is inserted into the new application form. you have to integrate the data delivered by SAP in the text.2011 Creating Application Forms Procedure . The application form is created. 3. Choose Continue. If you use SAPscript. By doing this. Enter the name of the new application form and select Application Form 3. You can now start adjusting the hierarchy to your requirements (for example. 4. Edit the texts. 4. You cannot change this assignment later. 2. Smart Form. for example. specify the name for the relevant user includes. 1. 6. Activate the application form. test print). Depending on the form category. 2.. Choose the form category (SAPscript. You can develop it further using the Print Workbench tools (for example.

2. WA_CUSTOMER-FORCURAM. Navigate back to the application form. You can then issue the text using a second form level with the same name. Creating a Summation Prerequisites A user exit include and a user top include are defined in the application form attributes.. for example. if. Navigate back to the application form. Choose D to navigate to the exit during loop. 6. Choose Continue. Enter the summation order. same level). Print Workbench 690 43 . 8. for example. Determine the global data field the total is to be based on. Trigger the summation with the ABAP order CLEAR SUM. Choose one or more fields from the list. Result The selected symbols are inserted in the cursor position. 4. Choose Choose. Result Summation is only performed if you print and it is then output in the text. the two symbols B and D (for “before” and “during”) now appear on the level on which the cursor is still placed. Issue the total in the form by placing the symbol &SUM& in a text after the form level (for example. Place the cursor on the form level from which you wish to run the summation. DATA SUM LIKE WA_CUSTOMER-FORCURAM >). 6. (such as ADD WA_DOC_ITEM-NETTOBTR TO SUM).SAP Online Help 4.2011 5. 9. If you need the total before a text is printed. Choose Goto User top include Display/Process to navigate to the user top include. The fields include: ○ ○ ○ Fields of all global data areas (WA_*) Fields of the control variable C Variables defined in the user top include 13. 3. Activate the application form. Specify a name for the exit before loop (such as INIT_SUM) and the exit during loop (such as PERFORM_SUM). 7. 1. Navigate back to the application form.. Procedure . Define a summation variable (for example. First choose B to navigate to the exit before loop. you want to make the layout of the form dependent on the total. In the hierarchy display. 10. Choose Continue. 5.07. SAP recommends that you first run the summation without text nodes in the form.

Choose Continue. 4. Proceed as follows: . for example. (for example. you can define the command mac_exit in the user exit. and do not want to (or no longer want to) process the subordinate nodes in the current run. You can use all work areas (including 1:1 levels) that belong to the form level or are higher up in the hierarchy as selection criteria. User top include Display/Process to navigate to the user top 3. you discover that the dataset provided by the form class is not sufficient. you have to read the missing data from the database..2011 Reading Additional Data from the Database Procedure If. in other words it must be a dependent node. ● Print Workbench 690 44 . you can make the program branch to the next run by using the ABAP macro mac_next. The text must come below the form level described above in the hierarchy. 1. Only use this procedure if you need data for form printing that the form class does not provide. during the processing of an application form. This is also applicable if you use the data in another user exit. such as READ_DATA. Procedure In the Print Workbench. 6.SAP Online Help 13. Choose the symbol D in the hierarchy display to navigate to the user exit. the concept of the Print Workbench is such that all data of an application or process is provided in the form class. Result You can use the additional read data as a symbol in a text. SELECT * FROM <DDIC-TABELLE> WHERE). Dynamic Intervention in the Process Flow in User Exits Use In user exists. You should only define this macro in the exit during loop and text exit. 5. As standard. 2. Enter a name for the exit during loop. Choose Goto include. This macro is not suitable for the exit after loop. SAP provides the following ABAP macros that you can call up in the user exits: ● mac_next If you are in the program loop of a form level.07. you can make the process logic of an application form dependent. on data or data constellations. Place the cursor on the form level for which you wish to read additional data and choose Choose. mac_exit If you want to terminate processing for the current node. It has no effect there.. Determine the DDIC table containing the required data. Enter the command that reads the data from the database.

you can define your own data areas in the user top include. When you call this macro. 3. it is no longer required due to a specific data constellation. define import parameters with the same name as the variables in the user top include. Define your own data as global variables in the user top include. In the interface of the Smart Form or in the form interface of the PDF-based form. in programming. If you do not need the standard variables PWB_DATA and C in the form. Fill these variables with runtime data using user exits at appropriate places in the hierarchy. 1. fill them in a user exit. choose Edit Smart Form Compare or Edit PDF-Based Form Compare Form Interface. or they disrupt. or the structures do not correspond to the respective aim. mac_activate You can dynamically reactivate a form level (or 1:1 level) if it was deactivated by the macro mac_deactivate in a user exit. you can also generate the data definitions in a user top include automatically in the respective form interface. the form level <Name> is no longer processed. you can remove them from the form interface. To do this. Therefore. for example. ● Transferring Own Data to a Smart Form or PDFBased Form Use If the data defined in the form class is insufficient. the level must be defined as active in the application form hierarchy. note the following rules: ● Deactivate or delete the form levels and 1:1 levels in an application form if you do not need them for form processing. optimal performance in application forms during data processing is very important. Optimizing Performance Use For mass printing. You cannot activate levels that are not named or are not active in the hierarchy.SAP Online Help ● 13. In order to be able to activate a form level.07. Print Workbench 690 45 . The Print Workbench indicates that the standard parameters are missing by issuing warning messages that have no consequences. Result You can use your own global data of an application in a Smart Form or PDF-based form in the same way as the standard data transferred. and use them in the related Smart Form or PDF-based form. Procedure .. In addition to manual maintenance. This deactivation applies for all levels of the same name in the entire form. Make sure that the data categories are identical.2011 mac_deactivate <Name> You can dynamically deactivate a form level (or 1:1 level) defined in an application form in a user exit if. 2. otherwise errors may occur.. regardless of where the macro is called.

store these in ABAP variables (for example. The exit is called after the loop over entries of a form level. Exit during loop Form level Exit after loop Form level Text exit (SAPscript only) Text nodes Start exit End exit Application form Application form Activities Before you create one of the above-mentioned user exits.2011 In SAPscript texts. (Default = Yes) The exit is called at the start of processing for a form level. User Exits in Application Forms Use If you want to access form processing and data procurement and realize other requirements. in global data in the user top include). interactively. The interface of the subroutine contains an indicator (Y_PRINT_TEXT) that shows whether the text is to be printed or not. In user exits you can adjust application forms to your requirements and enhance your functions. The exit is called directly before a SAPscript text is printed. Integration User exits are defined in the form of ABAP subroutines in the user exit include of an application form. The exit is called in the loop of entries of a form level.SAP Online Help ● ● ● ● 13. If you read data in user exits from the database. SAP recommends that you also specify the Print Workbench 690 46 . These subroutines are called up in the generated print program according to their position in the hierarchy. The entries of the following loop are transferred to the interface of the subroutine.07. SAPscript is a meta language whose processing is low performance. This is the last activity before the next same level or entry of the next higher form level is processed. concentrate on the user exits that you have implemented. With database and ABAP traces. The global data areas of the form level and the related 1:1 levels are filled with data in this event. you can use the existing user exit infrastructure of the Print Workbench in the application form. Features The following user exit types are available: Name of user exit Exit before loop Reference Form level Call/function The exit is called directly before processing of the entries for a form level. use user exits instead of ABAP similar control commands. you have to specify the user exit include in the attributes of the application form. The exit is called at the end of processing for a form level. The reasons for low performance of processes are usually there. Avoid naming form levels twice in applications unless this is absolutely necessary and justified. such as summation.

You can modify the table and its entries in the user exit. You can use the user exit includes assigned in several application forms.. the variables defined in the user top includes are transferred to the generated module of the Smart Form in addition to the complex data type. . The internal table is always transferred to the subprogram that is processed next. Example The exits SUM_INIT (before) and SUM_PERFORM (during) exist for the form level BOOKING. The name must be alphanumeric and unique within the application form. Print Workbench 690 47 . The ABAP variables defined there are therefore available in all user exits.2011 user top include since there you have to define global data that is used. form level). The user exit then appears as a symbol in the hierarchy of the application form. the system issues corresponding warnings. 1. Features The interface of the subprogram for the user exit is generated by the Print Workbench during creation of the exit and must not be changed. in user exits. Specify a ten character (maximum) name. You have to declare these data areas as ABAP variables in the user top include.. ○ ○ ○ ○ ○ ○ B for an exit before loop D for an exit during loop A for an exit after loop T for a text exit S for the start exit E for the end exit Select a symbol to go to the user exit maintenance. for example. it enables you to carry out initializing activities with regard to the form level. Integration The user top included is included in the generated print program of an application form. Exit Before Loop Use The exit before loop is called up before the data lines for a form level is processed.07. 2. in addition to user exits you also need own data areas that you can fill and read when you process forms. Declaration of Own Data Areas Use To design a flexible and dynamic application form. Navigate to the object for which you want to create a user exit (for example. If you use Smart Forms and PDF-based forms. If you use the exit more than once (also cross-client).SAP Online Help 13.

Use this user exit to: ● ● ● Perform summations Read additional data from the database Modify global data areas Example *&---------------------------------------------------------------------* *& USER_EXIT_SUM_PERFORM *&---------------------------------------------------------------------* FORM user_exit_sum_perform USING x_booking type sbook value(x_index) type sy-tabix.SAP Online Help 13. In this user exit you can use the work areas belonging to the relevant form level.immediately after data is transported to the respective work areas. DATA: local_amount LIKE x_booking-forcuram. to the corresponding 1:1 levels.07. ENDFORM. Features The exit during loop runs while the form level is being processed . you can reassign entries or change values for individual fields. CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' Print Workbench 690 48 . “defined in user-top-include SORT xyt_booking BY fldate ASCENDING forcurkey ASCENDING.2011 For example. NEW-PAGE orPROTECT) Process SAPscript protect commands Example *&---------------------------------------------------------------------* *& Form USER_EXIT_SUM_INIT *&---------------------------------------------------------------------* FORM user_exit_sum_init TABLES xyt_booking STRUCTURE sbook . You use the exit before loop to: ● ● ● ● ● Read additional data from the database Initialize summation variables Sort the table entries to be processed Process SAPscript control commands (for example. " USER_EXIT_SUM_INIT Exit During Loop Use The exit during loop is called up during the processing of a form level and enables you to carry out activities that have to be performed for each line of the form level. and to all form levels higher in the hierarchy. CLEAR sum.

after all the form levels lower in the hierarchy have been processed. for example. Features The exit after loop runs after the form level has been processed. In this user exit you can process closing instructions. therefore.07. " USER_EXIT_SUM_PERFORM Exit After loop Use The exit after loop runs after the form level is processed and therefore. after all the levels/texts lower in the hierarchy are processed. It is used for closing activities per form level. ADD local_amount TO sum. NEW-PAGE. You use the exit after loop to: ● ● ● Analyze the summation Process control commands for SAPscript (for example. “execute summation ENDFORM .2011 DERIVED_RATE_TYPE = EXCEPTIONS no_rate_found overflow no_factors_found no_spread_found derived_2_times OTHERS = 1 = 2 = 3 = 4 = 5 = 6.SAP Online Help EXPORTING date foreign_amount foreign_currency local_currency * * RATE TYPE_OF_RATE IMPORTING * * exchange_rate foreign_factor local_amount * * * * local_factor exchange_ratex FIXED_RATE = = fremdkurs = local_amount = = faktorsum = = sy-datum = x_booking-forcuram = x_booking-forcurkey = local_currency = 0 = 'M' 13. ENDPROTECT) Initialize totals fields Print Workbench 690 49 . you can prepare a total for output or insert a manual page break. implicitly.

SAP Online Help

13.07.2011

Text Exit (SAPscript only)
Use
The text exit is called before a SAPscript text is printed for each data line of a form level and can be used for different activities during processing of a form level.

Features
The indicator y_print_text is transferred in the interface of the text exit; it controls whether the text of the text exit is to be printed. This enables you to dynamically control whether the text is to be printed and to carry out additional activities (for example, data selection). If there are alternative text parts, you can use IF instructions in SAPscript texts to decide which text parts are to be printed. For performance reasons however, you should implement these instructions using text exits, since IF instructions in SAPscript texts require a time-consuming interpretations (see also Optimizing Performance [Seite 45]).

Start/End Exit
Use
Exit events are the external parentheses around an application form. In exit events you can carry out initial and final activities per application form.

Features
Selecting from these symbols will bring you to the user exit maintenance. There are also two user exits that can be used, irrespective of the hierarchy, at the beginning and at the end of the form. ● Start exit This exit is processed first when you process the form. At this point, no data has been read and no SAPscript function modules have been called. End exit This exit is processed last when you process the form. At this point, the whole form has been processed and the SAPscript module CLOSE_FORM has been called.

Triggering Controlled Terminations
Use
In user exits and the form routines of a form class, exception situations can occur where the system is to react with a controlled termination. The print process is not to be terminated, only the printing of the current document. To make sure that terminations that disrupt the print process of the Print Workbench do not occur, you can use the ABAP macro MAC_PRINT_CANCEL to define how the termination is to take place.

Procedure
Always use the ABAP macro MAC_PRINT_CANCEL in all user exits (see Controlled Terminations in Exception Situations [Seite 23]).

Print Workbench

690

50

SAP Online Help

13.07.2011

Utilities
Use
To make the development and administration in the Print Workbench more efficient, you can use various tools and functions that are described in more detail below.

Test Print
Use
A test print enables you to output a form during form development, form maintenance, or during the analysis of errors during data procurement (form class) without the related application process. You can set and vary the print data and the print parameters. Use the test print if you want to test the form without integrating it in the print process.

Integration
How the test print is initiated depends on the form class of the application form. Either the user determines an initial object via the FIND method of the BOR object type assigned, or an individual dialog takes place to select an initial object. For some form classes you cannot carry out a test print. If a test print is not possible, the application of the form class must provide an alternative.

Prerequisites
The form class of the application form must support test prints. You can only print active application forms for test purposes.

Activities
You are in the processing or display of an active application form.
...

1. Choose Application Form Test Print Execute. In a selection dialog of the application, choose the initial object for the test print. Choose Continue. 2. Specify the send type, the printer, and the output format for the test print and choose Continue. 3. In the subsequent dialog box, specify the additional print parameters and then choose either Print or Print Preview, depending on whether you want to output the result of the test print on the printer or only display it on the screen. If you repeat the test print, the specifications that you are made are used again. If you want to enter new parameters for the test print, choose Application Form Test Print New Object. If you use an application form of the type Smart Form, SAP recommends that you process the application form and the Smart Form in two separate sessions and carry out changes to the Smart Form and start the test print from the application form simultaneously. You can process the Smart Form in a new session from the processing of the application form via Goto Smart Form Display in New Session.

Print Workbench

690

51

SAP Online Help

13.07.2011

Breakpoints and Debugging
Use
For example, if you want to find out why data was not output in a form or output incorrectly, you can analyze the generated print program in a runtime environment during the test print. The generated print program contains numerous breakpoint instructions that you can use if necessary.

Prerequisites
You have the relevant authorization.

Activities
In the display or processing of an active application form that can be tested, you have the following options:
...

Place the cursor on the places in the hierarchy where you want to carry out an analysis. Via Extras Set/Remove Breakpoints, insert breakpoints into the hierarchy of the application form. Navigate to the generated print program via Goto Generated Module Display or via Goto Generated Module Subprograms and set a breakpoint in the editor. Navigate to – if it exists – the user exit include and set breakpoints in the coding in the ABAP Editor.

● ●

Carry out a test print for the application form. You cannot restart the transaction. In the first case, the ABAP process goes to the ABAP debugger in all relevant subprograms for the respective hierarchy nodes (for example, READ/GET/FILL subprograms, text output). In the other cases, the ABAP processor goes to your breakpoints in the debug session.

Copying from Clients
Use
You can copy application forms from other clients to the current client. Since an application form consists of different (sub)components, these components also have to be copied during the transaction.

Features
The hierarchs and the attributes of the application form are copied, along with the SAPscript form or Smart Form depending on the form type, and if necessary, both user includes. You can also suppress the copying of individual objects or reference to existing objects. You can also overwrite explicit specifications.

Activities
...

1. Choose Print Workbench

Application Form

Tools

Copy from Client.

2. Choose the source clients and an application form. 3. In the following dialog you are requested to name the referenced subobjects (new). Pay attention to the usual naming conventions.

Print Workbench

690

52

Application 2. choose Print Workbench Application Form Utilities Upload. select these in the mass processing of application forms and then choose Download with the right mouse button. Features When an application form is downloaded. The subsequent dialog box is identical to the one for copying or copying from a client.20.SAP Online Help 13. Uploading and Downloading Application Forms Use You can upload or download application forms if there is no direct transport connection between SAP systems. Download 1. The internal data format of the files has changed considerably with Basis Release 6. Print Workbench 690 53 .2011 The referenced subobjects of an application form can be used by other application forms. To download several application forms (for example. To download an application form to a local file. you can change all the names of the subcomponents before you save these in the SAP system (see also Copying from Clients [Seite 52]).. You can save an application form and its components in a local file of your front-end and then load them to any version-compatible SAP system.07. Choose an application form from the list. all its components are saved in a local file: ● ● ● ● Hierarchy/attribute of the application form SAPscript form/Smart Form/PDF-based form and form interface depending on the form type SAPscript texts (only for SAPscript) User includes When you upload... To upload an application form from a local file. If the file contains several application forms. Therefore. from other clients). Files created in an earlier release can no longer be read. In mass processing you can also carry out a mass download. The data is then read from the system and downloaded to the specified file. Activities . When you name the new subobjects. choose Print Workbench Form Application Form Download.. Integration All (sub)components of an application form are transported when you upload or download. check precisely before you overwrite them. The Print Workbench shows multiple use of objects as a warning. a corresponding list appears for you to select from. Specify the absolute name of the file to be written. pay attention to the naming conventions and the existing uses. Upload .

SAP Online Help

13.07.2011

Creating Links
Use
If you want to use the same application form in several clients, you can create links to an application form in another client so that it does not have to be transported or replicated. With a link, when you print, only the runtime components from another client are used.

Prerequisites
The target client must not contain an application form with the same name.

Procedure
...

1. Choose Print Workbench

Application Form

Tools

Create Link in Other Client.

2. Specify the (source) clients and the names of the referenced application form and choose Continue. To create several links in one step, proceed as follows:
... ... ...

1. Choose Print Workbench

Application Form

Tools

Mass Processing.

2. Specify the clients and the application forms in the selection conditions and choose Program Execute. 3. Select the application forms that you want to link to, and, using the right mouse button, choose Link. The current clients must not contain the application forms selected for other clients. After a client copy, the application forms are created as links to the source clients. If you want to create real copies of the application forms, you can transport them from one client to another. To manage and automate links over several clients, you can use the reports EFG_CREATE_LINKS and EFG_DELETE_LINKS ; these reports are available exclusively to (system) administrators.

Finding Variables
Use
Depending on the form class, the dataset contains a number of fields that are in different levels and different DDIC structures; under certain circumstances, they may be difficult to find. SAP therefore recommends you use the following procedures.

Features
The Print Workbench provides you with various options for finding variables in the data hierarchy of the form classes: ● ● ● You can display the fields of any node in the hierarchy of an application form and search there. In SAPscript, you can display the available variables in text processing. In Smart Forms, you can display the variables in the hierarchical display of the complex data structure (ABAP Dictionary).

Activities
..

Print Workbench

690

54

SAP Online Help

13.07.2011

1. You are in the processing/display of an application form. To search for a field in the dataset of the form class hierarchy, open the data overview of the form class in question via Extras Display Form Class Hierarchy. 2. On the subsequent processing screen, place the cursor on the form level for which you want to display the related data and choose Edit Display Symbols. In the following dialog box, specify the search term and the search area. The variables found are displayed. For information about integrating variables in a text, see Inserting Variables in Texts (SAPscript only) [Seite 42]. For Smart Forms, you can find additional fields in the ABAP Dictionary. Choose Extras Hierarchy Display.

Form Information
Use
With the function Form Information, you can get a global overview of the complete content of an application form. The printed list can also be used to find symbols used in SAPscript texts and user includes.

Features
The attributes, the hierarchy in flat presentation and the contents of the user exit include and user top include texts are displayed. The contents of the SAPscript form can be printed using a corresponding function for SAPscript forms.

Activities
...

1. Choose Print Workbench 2. Select Utilities

Application Form and specify an application form.

Form Information.

Administration and Transport
Purpose
From an external point of view, the application forms in their entirety represent a large object structure the, due to the heterogeneity of the objects used, is difficult to administrate without special tools. The Print Workbench provides you with functions and tools for managing the objects of the Print Workbench and the referenced objects.

Mass Processing
Use
You use the mass processing of application forms to manage application forms efficiently in a client.

Integration
All subobjects of an application form are used in mass processing.

Print Workbench

690

55

SAP Online Help

13.07.2011

Features
You can use the following functions: ● Cross-client overview of application forms with the following subfields: ○ ○ ○ ○ ○ ○ ● ● ● ● ● ● Status Form class Form Types Name/package of SAPscript or Smart Form and user include Reference client for references Form name

Mass activation Mass check Mass Transport Mass download Individual copy (same or other client) Individual deletion (only same client)

The individual functions are dependent on the selected entries.

Activities
Select the required application forms for which you want to execute a function and then choose the required function with the right mouse button.

Mass Activation
Use
You can use Mass Generation, for example, if you want to activate all or certain application forms in the background with no further dialog.

Prerequisites
The application forms to be activated must not contain errors.

Features
The mass activation program activates any number of application forms in any number of clients and delivers a results log.

Activities
...

1. Choose Print Workbench

Application Form

Tools

Mass Activation.

2. Specify the client and the selection criteria for the application forms to be activated. If you do not want to activate the application forms that have already been activated again, set the indicator Only if Active. 3. Start the program.

Print Workbench

690

56

Features You have two options for transporting application forms. The option you choose depends on the system setting of the client in which the application form is developed or maintained. Transport Behavior of the Objects Object Type Application form SAPscript form Smart Form PDF-based form/form interface SAPscript text User includes Generated function group Transport Object (R3TR) EFOM FORM SSFO SFPF / SFPI Client-Independent NO NO YES YES Object Catalog Entry (TADIR) NO YES YES YES TEXT PROG (FUGR) NO YES (NO) NO YES $TMP (LOCAL) An application form has only been correctly transported if all subcomponents have also been transported.. The system requests this entry before the change. including subcomponents. Print Workbench 690 57 .. independent. select the subobjects to be transported.2011 In the log you can see whether all activations were successful. If you start the program in batch mode. The individual objects each have a different transport behavior. application form or SAPscript text). each time you change a client-dependent object (for example. Choose Print Workbench Application Form Transport. The client-independent objects are entered in transport requests as standard provided you have assigned them to transportable packages. Manual transport You carry out a manual transport in the following cases if the recording of clientspecific Customizing is not active in the client in which you are developing the application form. and/or you want to place the application form. the result log is made persistent and you can evaluate it with transaction SLG1. Transporting Application Forms Use An application form consists of different. b. transportable (sub)objects. Specify a transport request and choose Continue. in a transport request.SAP Online Help 13. but has a cross-client object catalog entry. ● . In the subsequent dialog box. an entry is created in a Print Workbench transport request for the object concerned. Proceed as follows: a. ● Automatic transport If the setting Recording of Client-Dependent Customizing is active. Exception: The SAPscript is client-dependent.07. c.

Using References Use You can set references if you want to develop and manage application forms in a system in a central client. 1. If an application form cannot be activated. Create multiple references . a corresponding error entry is updated in the transport log of the request. 3. Activities Create a reference . You can analyze the corresponding messages in the transport log for the request. the system checks the application form specified and if necessary. reactivates it.. the release is terminated. There must be no application forms with the same name in the current client. ● ● Integration References to other clients are a proprietary function of the Print Workbench. but are visible and you can use them for printing. If errors occur.. The clientspecific objects used for the runtime are read from the referenced client and not the current one. Select the application forms that you want to reference to from other clients. This has the following advantages: ● You can encapsulate the original versions of the application form in a client defined for this purpose and it can then.2011 When it releases the transport request.. for example. There must be no application form with the same name in the current client. 2.. The referenced application forms do not exist physically in the current client. only be changed by certain users in the system. You can quickly access forms of another client. the transported application forms are also activated. The changes are visible and valid in other clients immediately. use mass processing. 2.SAP Online Help 13. With the right mouse button choose Create References. 1. During the import into the target system. Features You create references from one client to application forms of another client and can then use them as if they were in the current client. You no longer need to transport or copy within a system. To display the application forms of another client.07. You can also use uploads and downloads to make the status of individual or all application forms persistent Print Workbench 690 58 . Choose the client and the name of the application form. Versioning and Archiving via Upload/Download Use You can use uploads and downloads for transporting into different systems. Choose Print Workbench Application Form Tools Create Link in Other Client.

Print Workbench 690 59 . You therefore have to follow a different translation procedure: ● ● ● You have to create separate worklists for translating application forms. An integrated versioning of application forms within the SAP system is not supported. that is. you can assess the general processing status. proceed as follows: ● ● Create worklist Process worklist In addition. you can select the components to be loaded. Integration The upload and download of application forms contains all components of an application form. A statistic gives information about the status of translation activities. Translation should take place in a special client so that a separate transport can be carried out. Activities Save the selected or all application forms of a client with the download function.2011 outside the system and thereby carry out versioning or archiving. you can manage them using this function. in mass processing. After translation. ● Mass processing of worklists If there are several worklists in the system. forms that are not used by an application form. From the worklist status. Translation of SAPscript forms not used in the Print Workbench If you use SAPscript forms that do not belong to the Print Workbench. you can list these with this function and check their translation status. you can use further administrative tools that you access via Print Workbench Application Forms Environment Translation Administration. In particular. Translating Application Forms Use You cannot translate the Print Workbench application forms and SAPscript texts with the standard SAP translation function. including their status and the tasks to be carried out for the objects.SAP Online Help 13. ● Worklist Definition Lists of objects that are to be processed once only within a certain time frame for each language. The worklist groups the individual entries and manages the list of objects to be processed. In an upload. a new transport to the target system must be carried out. you can delete worklists and update their status.07. Activities To translate application forms. for example.

Print Workbench 690 60 . Here. By expanding the second level you reach the third level (see figure). By expanding this level you reach the second one.07. the worklist is subdivided into the following object groups: ● ● ● Table short text SAPscript forms SAPscript text The individual objects to be translated are under these object groups.2011 Structure The worklist consists of three hierarchy levels and is subject to status management.SAP Online Help 13. Hierarchy The following figure shows the first level of a worklist with the individual application forms to be translated.

SAP Online Help 13.07. Print Workbench 690 61 .2011 Double-click on the individual objects to translate them.

2011 Print Workbench 690 62 .07.SAP Online Help 13.

. 1. To create a worklist from this list. The desired worklist is displayed. Execution Translating Table Short Texts Print Workbench 690 63 . If there are red lines in the list. Once you have generated the worklist. choose Translation List Save/Send Worklist.. see Worklists [Seite 59]. you can process [Seite 63] it. In the dialog box Indicator for Worklist. choose Print Workbench Application Form Environment Translation Worklist Edit.07. Choose Program Execute. In the menu. Place the cursor on an application form and. Procedure Preparation . specify your indicator and the date on which the worklist was created and choose Continue.SAP Online Help 13. In the dialog box Indicator for Worklist. 1. your initials) Date (for example.. in the menu. For more information about the different hierarchy levels. 2. the current date) Short text Create 5.2011 Creating Worklists Prerequisites . See also the section Creating Worklists [Seite 63]. Log on to the relevant client in the system in which you translate the form. Enter the name and form class of the application form to be translated and the original and target language. 4. notify your system administrator. enter the following: ○ ○ ○ ID (for example. Choose Continue. 2. Result The worklist has been created. Red lines signify errors that must be eliminated. You now see all the objects for translation in the application form you have selected. and choose Print Workbench Application Forms Environment Translation Create Worklist. 3. The technical key of the worklist is made up of the ID that you entered and the date. choose Edit Expand Subtree.. You obtain a list of the objects to be translated in the application forms. Processing Worklists Prerequisites To process a worklist you must first make sure that a worklist exists.

the system changes the status of the application form automatically. The SAPscript Translation screen appears. 2.07. The screen Translation of Tables with Master and Transaction Data appears. enter the form to be translated. If this text is then changed later. This action starts the comparison editor.. the system automatically compares the number and sequence of the paragraphs in the translated text with the original. Select the required SAPscript by double-clicking it. it issues a warning. 2. The screen Meaning appears. If you ignore the warning. Collection Definition A collection is an application form of the form type collection.SAP Online Help 13. double-click on it. 1. the translation is automatically released. you can compare the old version with the current version. If the system determines any differences.. or you can ignore the warning. You can navigate within the text to check the cause of the warning. The worklist is considered completed once all application forms have the status Translated. here you can translate the SAPscript form.. To select the SAPscript text required. The screen Change General Standard Text appears. double-click on the symbol with the quick info text Execute Version Comparison. match the original. 3. The total number of lines does not have to match the original. &DATE&) Note that control characters. Translating SAPscript forms . paragraph format :/) Symbols (for example. Translating SAPscript Texts . double-click on it. the symbol with quick info text Execute Version Comparison appears next to the text. and symbols do not have to be translated. If there is a text version in the Print Workbench buffer. The number and sequence of the paragraphs must.. however. To do this. Save your translation and release the translated text. Place the cursor on a SAPscript text and choose Edit SAPscript Text Display Original. This provides you with information about which lines have changed in the current version. tabulator..2011 To select the table short text required. Print Workbench 690 64 . this version is saved in a Print Workbench buffer. SAPscript texts consist of: ○ ○ ○ ○ Text Control characters (for example. To carry out a version comparison. When you release a translation. Enter the target language required and choose Translation Create/Change. A new window opens displaying the original text as translation reference.) Control lines (for example. Result Once all items have been edited and translated. here you can translate the short text. place the cursor on the edited text and choose Edit SAPscript Text Release. 1. lines. In the Form field. If a standard text has already been translated and released.

Example Grouping of technically separated documents. for example.2011 Use You use collections to group application forms so that you can process them together. for example. the form class. or an e-mail with an electronic document attached. As for each application form. the collection transfers the selection data to the included application form via the interface EFG_PRINT. a specific printer. This means that wherever you can specify an application form in Customizing. carries out one of the following activities: ● ● ● Print application form Create composition Call user exit You can deactivate the node types composition and application form in Customizing so that these are no longer processed. the module is regenerated. and depending on the node type. Using the indicator Cross-Form Class. a collection‟s assignment to a form class defines how it belongs to an application. This module also contains the calls of the module EFG_PRINT for printing the application forms to be processed. a sequential page numbering or a connection at the end of the last page. Structure Each collection is assigned to exactly one form class. or the user includes. you can group both application forms from the same form class. as for application forms. and also application forms from different form classes. you can also define a collection. For each collection the system generates a local module that contains the complete process flow for the collection. Collections must not contain collections or links. If you make changes to the collection. They are processed at runtime. In the user exit include and the user top include. such as an invoice and the attached payment form. Process Flow of Collections Purpose A collection enables a dynamic process flow when you print several application forms in the print event. Collections are called up externally like normal application forms via the modules Print Workbench 690 65 . Process Flow The process flow hierarchy of a collection is processed similar to that of an application form. A collection is not suitable for combining different components of the same document if there are direct dependencies or references between the individual parts. just as for an application form. You can process collections using transaction EFRM (SAP menu: Print Workbench Application Form Process). You can classify the individual application forms so that they are issued sequentially or bundled. These includes are automatically included in the generated module. you can define the form routines of the user exit or your own data definitions. you can control how application forms from other form classes can be included in a collection.07. You can define your own parameters for the technical components of a collection. In a collection. You can also deactivate each node dynamically via user exit. This means that the system calls the individual nodes from top to bottom hierarchically.SAP Online Help 13. During printing.

When an application calls up a collection. The data is transferred to the variable C-T_GENDATA in the following key: TYPE KEY ATTR REF_TO_DATA XSTRING = = = = = “PWB_DATA” <Name of application form> <Identification> Data reference from the deep data type of the form class Data as XML. and the processes for processing the application form can identify the nodes. for example. Within a user exit. You can thereby make the issue of an application form dependent. the application form called can return the selected data to the collection using the parameter Data Handling. you have to create a form routine with the required coding in the user exit include. This variable can be delivered in the collection in a user exit by filling table C-T_GENDATA. If there is no selection data (ranges table of module EFG_PRINT). you can define conditions. the application form or form class called must be able to derive the selection parameters required for data procurement from other information. you can also make the issue of an application form or a composition dynamic. Using user exits and the macros MAC_DEACTIVATE and MAC_ACTIVATE. for example. you have to identify each use uniquely with a simple character string. you can configure the behavior of the program as follows: ● ● ● Suppress output Trigger errors Call application form In this case. on the send type or the RDI or XSF output format. access the variable C and dynamically deactivate specific nodes using the macro provided. apart from the printer and the storage mode. an application form may have to be called without selection parameters. However. For each application form in a collection. various different constellations can occur in the process flow of cross-form class collections. using the variable X_TAB_GENDATA transferred. if the fields remain empty. for example.07. the setting from the print parameters of the print process is retained.2011 EFG_PRINT or EFG_PRINT_EXPANDED. To do this. These conditions determine whether the application form is processed. This is the only way that the macros MAC_DEACTIVATE and MAC_ACTIVATE. only the selection data for one form class is transferred. this information is forwarded to the relevant application form dependent on the form class. If the application has already transferred selection parameters for several form classes when calling EFG_PRINT. The import variable X_TABN_SEL_PER_FCLASS of category EFG_TABN_SEL_PER_FCLASS is available in module EFG_PRINT(_EXPANDED) for this. it can transfer additional selection information for other form classes to the collection for processing.SAP Online Help 13. For each application form included in the collection. For each collection there is one generated module that contains the flow logic of a collection. If you use the form type Smart Forms. you can no longer change the parameters in the collection. To improve your control of the behavior of the collection concerned. you can define an output device and a storage mode. You enter the print parameters when you call the collection. you can supplement the process flow of a collection with additional dynamic logic. if the application only transfers the selection parameters for one form class (standard case). you can. Print Workbench 690 66 . If you want to use an application form more than once in a collection. either in addition to the output or instead of it. Usually. and. including the variables in the user top include In a user exit. These specifications override existing settings.

Use As in every application form. there is also a global control variable C in the generated print program of a collection.07. Structure Variable C has the DDIC type EFG_STRN_COLL_CONTROL and has the following structure: Field Name COLLECTION FORMCLASS SENDTYPE LANGU RDI XSF COPYFLAG MAIL_TITLE SENDTYPE_EXT CLIENT ARCHIVE_INDEX ARCHIVE_PARAMS T_GENDATA OCL_ACTIVE ITCPO ITCPP RDIRESULT Data Type EFG_DTE_COLLECTION FORMCLASS RF_SENDTYPE LANGU RF_RDI EFG_DTE_XSF RF_COPYFLAG EFG_DTE_TITLE EFGSENDTYPE_EXT EFG_DTE_SRCCLIENT TOA_DARASAP ARC_PARAMS EFG_TAB_GENDATA EFG_OCLACTIVE ITCPO ITCPP RDIRESULT Description Collection Form classes Send type for a document Language key Raw Data Interface Smart Form output format Document is a copy Title of a document/attachment External send type Source client for access to other clients ArchiveLink structure (DARA) Archive parameters Table for generic data Open/close logic is active SAPscript output interface SAPscript output parameter SAPscript RDI: Return structure in Mode is not spool Smart Forms: Return at the end of form printing Table for OTF data Selections per form class Print parameter for external control Parameter for control of output format for PDF-based forms SF_RESULT T_OTF T_SEL_PER_FCLASS ADDITIONAL_PARAM XFP SSFCRESCL EFG_TAB_ITCOO EFG_TABN_SEL_PER_FCLASS EFG_DTE_ADDITIONAL_PARAM EFG_DTE_XFP Print Workbench 690 67 .2011 Variable C Definition Global control variable in the generated function module.SAP Online Help 13. this information is either exported in user exits or is used for communication with the application forms. The control variable C contains information about the process flow.

The parameter <IDENTIFIKATION> acts in the same way as in the macro MAC_DEACTIVATE.SAP Online Help 13. The attributes and conditions assigned to the nodes are evaluated. Dynamic Modifications in the Process Flow Use The individual nodes of a collection are processed from top to bottom. enter SPACE for this macro parameter. Terminates the processing of the collection Triggers exit of the current context (for example. They are transferred to the application form and can be queried in the C variable there. MAC_LEAVE MAC_EXIT Print Workbench 690 68 . in the same way as for an application form.07. You can use the following ABAP macros to control the process flow of a collection dynamically in user exits. which means that using the macro is only recommended if an active node was deactivated via user exit. The node must be actively defined in the collection. If the identification is empty or the node is a different type.2011 The variables T_GENDATA and T_SEL_PER_FCLASS are used for communication and data selection for various application forms. for example. the identification in the collection differentiates between the different uses. Features You can use the following macros: Macro MAC_DEACTIVATE <NAME> <IDENTIFIKATION> Function Suppresses the output of the node <NAME> Note If the node is an application form. when calling a module. composition) No error message is triggered. MAC_ACTIVATE <NAME> <IDENTIFIKATION> Reactivates a node <NAME> MAC_CANCEL <MSGTY> <MSGNO> <MSGID> <MSGV1> … <MSGV4> MAC_CANCEL_SY_REPEAT <MSGTY> Terminates the print transaction with an error message (to be specified) Terminates the print transaction by returning the last error message.

information about the context is transferred to the application form. the table has the class CL_DOCUMENT_BCS.07. Send Type e-mail Definition Sending correspondence by e-mail Use If you do not use the external data processing via RDI/XSF for the send type EMAIL. An application form can also return data by creating lines of the type EFG_STR_GENDATA in a user exit for processing later in another application form. The application form receives the information about the name of the calling collection via the variable C-COLLECTION and the identification via the variable C-IDENTIFICATION.2011 Interaction between Application Forms and Collections If a collection calls up an application form. the system creates an e-mail object from individual form components and forwards this directly to the SAPconnect interfaces. You can use the indicator Attachment to control (for send type EMAIL) whether a document is attached as PDF file to an e-mail. You can use a composition to group and bundle application forms. the printer and spool control of the system does not execute the output. In cross-form class collections. from a user exit in the calling collection. These are usually a text and one or more attached documents. You have to insert these lines in the global export parameter Y_TAB_GENDATA or the global field symbol <Y_TAB_GENDATA>. instead.SAP Online Help 13. together with data and selection information. for example. You define the individual parts for an e-mail in a composition. This is the only way the form class can recognize it. or whether it is converted into text and inserted in the header area of the e-mail. Data Type EFG_TAB_GENDATA Use You use table type EFG_TAB_GENDATA to flexibly transfer data between different application forms involved in the printing process and the superordinate collection. you can also control the selection options transferred for the application forms called via the parameter C-T_SEL_PER_FCLASS. Structure The related data type EFG_STR_GENDATA has the following structure: Print Workbench 690 69 . Using user exits you can attach Business Communication Service documents to an e-mail. the logical connection in the e-mail is not created. As line time. The BCS documents must be attached in a composition to the global table G_TAB_BCS_ATTACHMENTS. If the line for the respective form class was not transferred by the calling application. You can also deliver additional information to the application form via the variable CT_GENDATA. you have to add it to this table. This means that you have to create and attach instances of this class in a user exit. If different application forms are not called up within one composition. This could originate from other application forms processed in a previous step or.

ranges tables) for the module EFG_PRINT. use the ABAP command CALL TRANSFORMATION. In the field ATTR. ● Data Type EFG_TABN_SEL_PER_FCLASS Use In order to carry out cross-form class processing in collections. The following is a description of how the runtime object is called from an ABAP program to print an application form. the referenced data type is the highest complex DDIC type in the form class. The field TYPE identifies a component or application. Before further processing. you can define additional attributes or information. You can determine the ABAP/DDIC type dynamically using ABAP methods or using the information in TYPE and KEY. The field XSTRING transports XML data. For example. the name of the application form). The field KEY identifies an object below the information in TYPE (for example. For detailed information. The fields REF_TO_DATA and XSTRING contain the data previously determined: ● REF_TO_DATA is an ABAP data reference that you have to remove before accessing the data. you must be able to transfer or hold selection options for several form classes simultaneously.07. you can also use this command to reconvert this data into ABAP variables. Print Workbench 690 70 . Structure Table type EFG_TABN_SEL_PER_FCLASS has the structure EFG_STRN_SEL_PER_FCLASS. If TYPE = PWB_DATA. You can assign these fields as you require. see the documentation for the ABAP Editor (transaction ABAPHELP) ABAP Programming Language Reference. Table type EFG_TABN_SEL_PER_FCLASS carries out this function. In the case of PWB_DATA. To do this. this means that you configure the data of the highest complex data type of the form class and all global variables that are defined in the user top include of the application form here. Calling Form Printing in ABAP Programs Use An application form is a configuration object from which a runtime object in the form of a function module is generated.2011 Field Name TYPE KEY ATTR REF_TO_DATA XSTRING Data Type EFG_DTE_GENDATA_TYPE EFG_DTE_GENDATA_KEY EFG_DTE_GENDATA_ATTR EFG_DTE_REF_TO_DATA EFG_DTE_GENDATA_XSTRING Description Type ID for data Key for data ID Additional attribute Reference to data RAWSTRING for XML data The fields TYPE. This selection table contains the selection and import parameters (for example.SAP Online Help 13. and ATTR identify/attribute the data record. The structure EFG_STRN_SEL_PER_FCLASS consists of the field FORMCLASS and the selection table EFG_STRN_SELECTION. KEY. PWB_DATA identifies the data selected in an application form.

The difference is in the use of send control. Module EFG_PRINT Definition The module EFG_PRINT reflects the central interface for printing an application form. ITCPO) Information for the data procurement of the form class (ranges tables) The call of the module is independent of the form. Use module EFG_PRINT in individual print processes and EFG_PRINT_EXPANDED in mass printing.2011 Integration Form printing is called exclusively via central interfaces of the Print Workbench.SAP Online Help 13. Smart Form. default: SPACE) Object handle for recipient (optional) Object handle for sender (optional) Print Workbench result structure Result of RDI print Print Workbench result structure X_RECIPIENT X_SENDER Export parameters Y_PRINTPARAMS Y_RDI_RESULT Y_PRINTPARAMS SWOTOBJID SWOTOBJID EPRINTPARAMS RDIRESULT EPRINTPARAMS Print Workbench 690 71 . or PDF-based form). form class) Control information for the print process (for example. Activities The modules EFG_PRINT and EFG_PRINT_EXPANDED are available. and the form tool used (SAPscript. Structure The interface of the module consists of the following parameters: Import parameters X_PRINTPARAMS X_ARCHIVE_INDEX X_ARCHIVE_PARAMS X_DIALOG EPRINTPARAMS TOA_DARA ARC_PARAMS (Indicator) Structure of the print parameters Archive information per document (optional) General archive information (optional) Execute dialog for print parameters (optional.07. output formats. The parameters of the module contain ● ● ● All controlling information for the Print Workbench (for example. which is triggered in the module EFG_PRINT_EXPANDED. application form. the form class.

SAP Online Help Y_SF_RESULT 13. without this data. document type. BOR object ID) is transferred in both import structures X_ARCHIVE_INDEX and X_ARCHIVE_PARAMS. In comparison to the module EFG_PRINT. an activation of the form and generation of the related print program are triggered. Module EFG_PRINT_EXPANDED Definition The module EFG_PRINT_EXPANDED is an extended variant for calling form printing in the Print Workbench.07. as letter and as e-mail). Structure The interface of the module consists of the following parameters: Import parameters X_PRINTPARAMS X_ARCHIVE_INDEX X_ARCHIVE_PARAMS X_SENDCONTROL X_RECIPIENT EPRINTPARAMS TOA_DARA ARC_PARAMS SENDCONTROL SWOTOBJID Structure of the print parameters Archive information per document (optional) General archive information (optional) Send control (optional) Object handle for recipient (alternative to X_REC_ADDR and X_REC_PERSNUMBER) (OPTIONAL) Address number of recipient X_REC_ADDR AD_ADDRNUM Print Workbench 690 72 . You can also use module EFG_GET_ARCHIVE_PARAMS to fill these structures. first the status of the form is checked. optical archiving of correspondence is not possible. the module is designed for mass printing. If the module EFG_PRINT is called. You can only print application forms that have the status Active. application form. Above all. while the module EFG_PRINT should be called for individual printing or online printing. BOR object type. If the status is not Active. Both object reference IDs X_RECIPIENT and X_SENDER are of the type RECIPIENT and must be created with the BOR methods first. The user can also set or modify these by calling the module EFG_GET_PRINT_PARAMETERS. you can use the module EFG_PRINT_EXPANDED to change the print parameters with the send control or send the outgoing correspondence in different ways (for example. printer).2011 SSFCRESCL Result of printing by Smart Form Table parameters XT_RANGES<number> (10) YT_OTF_DATA EFG_RANGES ITCOO Ranges table for interpretation of data selection in form class OTF data returned (if required by application) The most important control information for printing is in the import structure X_PRINTPARAMS (for example. The archiving data that belongs to the application (for example.

SAP Online Help 13.07. fax) Print Workbench 690 73 . Structure The structure EPRINTPARAMS consists of two parts: ● ● Structure EFG_PRINTPARAMS of the Print Workbench The structure ITCPO relevant for the form tool (SAPscript/Smart Forms/PDF-based forms) Structure of EFG_PRINTPARAMS DEVICE ● ● Device type for SAPscript/Smart Forms/PDF-based forms PRINTER for normal print output (default) MAIL for other send types (e-mail. It contains all relevant control fields that are relevant for the Print Workbench itself or for SAPscript or Smart Forms. Print Parameter Structure EPRINTPARAMS Definition In all programming interfaces of the print workbench a structure of the type EPRINTPARAMS is used. It enables you to change the technical print parameters transferred in accordance with the setting in the send control.2011 from central address management (optional) X_REC_PERSNUMBER AD_PERSNUM Person number from central address management (optional) Export parameters Y_PRINTPARAMS EPRINTPARAMS Print Workbench result structure Table parameters XT_RANGES<number> (10) EFG_RANGES Ranges table for interpretation of data selection in form class You define the send control in the Customizing of the Print Workbench. This enables you to send the same correspondence several times using different send types.

no direct print Language of form Indicator: Test mode Indicator: Debugging mode when calling the generated module Send type: ● ● ● ● PRINTER = Correspondence as printed letter EMAIL TELEFAX RMAIL = SAP internal mail REC_ADDR REC_STRING SEND_ADDR COPYFLAG REC_PERSNUMBER LAST_DOC LAST_DOC_ACT OCL_ACTIVE SENDTYPE_EXT NO_ACTIVATION (Internal use: ID of addressee from central address management) (Internal use: Address as string) (Internal use: Sender address as string) Indicator: Is a copy (Internal use: ID of person number from central address management) Last document in mass case (obsolete.2011 RDI ● ● ● ● ● FORMKEY FORMKEY_RDI DELAYED_PRINT LANGU TEST_MODE DEBUG SENDTYPE RDI indicator for output via SAPscript <space> = Normal output (OTF) X = Output al RDI (via spool) X = Output as simple RDI (via spool) I = output as RDI-IDoc * = Specification in SAPscript form applies Name of application form (Used externally: Name of application form for RDI) Indicator: Creation of print request. should no longer be used) Output of spool request at the end of the print process Open/close control is active External send type Indicator: Suppress activation Print Workbench 690 74 .07.SAP Online Help 13.

for example. If the parameter LAST_DOC_ACT (Output after Last Document) is set. TDTITLE. this prevents output requests that arise during a run being closed or printed (TDIMMED = TDFINAL = <space>). TDSUFFIX2 agree The output request to be added has not been output or closed The parameter TDNEWID is not set The user creating the output request is the same If one of the conditions listed above is not fulfilled. the system creates a new output request. TDSUFFIX1. Whether an existing output request is added or a new request opened depends on the different parameters. Instead. such that. the individual documents are inserted sequentially in one or a few output requests and output in a closing event (EFG_PRINT_CLOSE). Print Workbench 690 75 . Is obsolete and should no longer be used. Custom parameters for controlling the print process Indicator for the output format for PDF-based forms (raw data) ● ● ● <space> = Normal output (PDF) X = Output in XFP format with context evaluation X = Output in XFP format without context evaluation The most important ITCPO print parameters for the Print Workbench print processes TDDEST TDNEWID TDIMMED TDFINAL TDTITLE TDSUFFIX1 TDSUFFIX2 Output device (printer) Force new output request Output output request Close output request Name of output request ID 1 ID 2 These print parameters are modified.07. there is only one output request per run or per defined subunit of run.SAP Online Help 13. An output request is only added if: ■ ■ ■ ■ The parameters TDDEST.2011 XSF XSF indicator for output via Smart Forms: ● ● ● ● <space> = Normal output (OTF) X = Output in XSF format D = Output in XDF format * = Specification in Smart Form applies GET_XSF NO_OPEN_FORM NO_CLOSE_FORM ADDITIONAL_PARAM XFP Indicator: Return XSF/XDF data to calling application Is obsolete and should no longer be used. in particular for mass printing.

default ‘X’) No form input (optional) No archiving field (optional) Check archiving parameters (optional) Force SAPscript print parameters dialog box (optional) No print view possible X_NO_PREVIEW (Indicator) Print Workbench 690 76 . Print Parameter Dialog EFG_GET_PRINT_PARAMETERS Definition The module EFG_GET_PRINT_PARAMETERS is a dialog that can be configured by the application. printer Choose between immediate print or creation of a print request Apart from the printer.07. structure ITCPO is also used for Smart Forms and PDF-based forms. in the print transaction. all print parameters are optional. The module has the following parameters: Import parameters X_PRINTPARAMS X_ARCHIVE_BOR_OBJECT X_ARCHIVE_ARC_OBJECT X_ARCHIVE_OBJECT_ID X_NO_DELAYED_PRINT X_NO_FORMKEY X_NO_ARCHIVE X_CHECK_ARCHIVE X_FORCE_SAPSCRIPT EPRINTPARAMS SAEANWDID SAEOBJART SAEOBJID (Indicator) (Indicator) (Indicator) (Indicator) (Indicator) Input structure of print parameters BOR object type for archiving (optional) Document type (archive) (optional) ID of BOR object (optional) No option for print requests visible (optional.SAP Online Help 13. It enables you to enter the user-relevant print parameters for the Print Workbench and for SAPscript/Smart Forms. for example.2011 Although the related program interfaces use other structures. Since the fields are mostly identical. the Print Workbench maps the fields of structure ITCPO appropriately. Structure You can set the following print parameters: ● ● ● ● ● ● ● Form (form class required) Output format SAPscript Output format Smart Form Indicator Output after Last Document Indicator Deactivate Open/Close Control All print parameters from SAPscript (ITCPO).

default ‘X’) X_ONLY_SENDTYPE_PRINTER X_NO_OCL_ACTIVE (Indicator) (Indicator) Export parameters Y_PRINTPARAMS Y_ARCHIVE_INDEX Y_ARCHIVE_PARAMS EPRINTPARAMS TOA_DARA ARC_PARAMS Print Workbench result structure Archive information (1) Archive information (2) Initializing and Closing Print Transactions Use In mass printing.SAP Online Help (optional) X_ONLY_PRINTER X_NO_LAST_DOC X_NO_DIALOG (Indicator) (Indicator) (Indicator) 13. The module EFG_PRINT_CLOSE postprocesses the output requests that have expired during the print process (usually outputs them) and initializes the internal data buffer in the Print Workbench. If errors occur.07. SAP recommends that you initialize and complete the print process both before and after the operational calls of the modules EFG_PRINT or EFG_PRINT_EXPANDED.2011 Only show printer as input field (optional) Output after last document (optional) Suppress dialog (only provide user defaults) (optional) Only offer send type Print (optional) Suppress open/close optimization active option (optional. Features The module EFG_PRINT_INIT has the following structure: Import parameters X_ITCPO X_TAB_FORMKEY X_FORMKEY X_FORMCLASS X_TAB_FORMCLASS Export parameters Y_TAB_ERRORFORMS EFG_TAB_ERRORFORM Table with incorrect ITCPO EFG_TAB_FORMKEY FORMKEY FORMCLASS EFG_TAB_FORMCLASS Print Parameters Table of application forms (optional) Application form (optional) Form class (optional) Table with form classes (optional) Print Workbench 690 77 . the incorrect application forms are reported to the calling application as not capable of being activated. The module EFG_PRINT_INIT initializes the print process and makes sure that the application form used and transferred are activated if necessary.

this takes place as follows: OPEN_FORM START_FORM .2011 application forms The module EFG_PRINT_INIT has the following structure: Import parameters X_FLG_OUTPUT X_FLG_FINALIZE X_FLG_CLEAR_SPOOLIDS Export parameters Y_TAB_SPOOLIDS TSFSPOOLID Table of expired output requests in main memory (Indicator) (Indicator) (Indicator) Triggers output of spool requests Close output requests Delete spool IDs from main memory Open/Close Optimization Use One of the main requirements of the Print Workbench and the print processes defined by the applications is performance. The Print Workbench is set up so that if the calling application so requires.. creating a document means calling the complete SAPscript and Smart Form API. you do not need to call the OPEN/CLOSE_FORM modules.. the output request used is not noted and for the subsequent OPEN_FORM. the system has to determine from all of the existing output requests on the database. <Texts> END_FORM CLOSE_FORM If you work with the same print parameters and want to output the individual documents in the same output request. In the case of SAPscript. Features If the calling application has set the indicator OCL_ACTIVE in the print parameter structure when calling the print modules EFG_PRINT or EFG_PRINT_EXPANDED. since the change to the control logic can lead to undesired side effects under some circumstances. The performance benefit is between 10% and 30% depending on the number of output requests in the system. In individual printing.07. Print Workbench 690 78 .SAP Online Help 13. However. the Print Workbench provides you with a separate field in the print parameter dialog EFG_GET_PRINT_PARAMETERS. the calls of OPEN/CLOSE_FORM can be suppressed. the Print Workbench executes the open/close optimization internally. you must be able to parameterize the function.. SAP recommends that you activate this function. To do this. Due to the considerable improvement in performance described above. The calls have such a negative affect on performance that for each CLOSE_FORM. The application has to make it visible and make a default entry.

Printing Processes and Output Formats Categor yof application form:  PDF-based form  SAP Sm art Form  SAPscr ipt Data procurement and integration of layout tool Application form Generated print program (function module) Layout & Design PDF-based form Smart-Forms SAPscr iptform Output formats XFP (SAP Spool) PDF (SAP Spool) XSF/XDF (SAP Spool) OTF (SAP Spool) RDI (SAP Spool/IDOC) Logical printer Logical printer Logical printer or IDoc Output Management System (OMS) ➔ External printing • Scenar ions for m ass printing • Postprocessing (use of strike codes. either with SAPscript. If the data is processed further externally. the Print Workbench provides a standardized infrastructure for processes that take place during printing triggered by an application and that you can configure accordingly. The Print Workbench supports all form tools provided by SAP equally and guarantees SAP customers the free selection of a form tool with no functional restrictions.07. You can prepare the application data as a form in the SAP system using functions of the Print Workbench. For large volumes of Print Workbench 690 79 . how the data is used is neither known nor relevant. Outside of the SAP system. Process Flow From the view of the SAP application. From this point of view. or the correspondence categories are sorted and mixed. It controls and standardizes the processes for transferring the application data to the form tool selected by the user to process forms. and can then be processed according to local requirements using special software. form data and other data is increased.SAP Online Help 13. the Print Workbench is not a tool for processing forms. XSF. such as postage optimization or control of printing processes. and XFP are official certifiable SAP interfaces for the extraction of r aw data The SAP system has no control for external print logistics. it is transferred from the SAP system to SAPscript via the RDI interface.OMR) • Postage determin ation/use of franking mach ines • Information about reduction of po stage • Editors for layout cr eation System for mass printing RDI. Smart Forms.2011 Printing Processes and Printing Scenarios Purpose Strictly speaking. or to Smart Forms via XSF or XDF. or PDF-based forms or process the data further externally via a raw data interface.

Features Depending on the form tool used. you can use the following raw data variants: Form Tool SAPScript Variants RDI RDI Simple RDI Smart Forms XSF XDP PDF-based forms XFP (1) Output Channel IDoc Spool Spool Spool Spool Spool Certifiable Yes Yes No Yes No Yes Compressed variant (pure data) Meta information of layout document Pure data extraction With PDF-based form context evaluation Without PDF-based form context evaluation Comment XFP (2) Spool Yes The supplement Spool defines that the data output is controlled by SAP spooling and the logical output devices. the data is usually not actually processed within the SAP system. SAP Note 6753). XSF/XDF.2011 data. SAP therefore recommends external processing by means of an output management system. It is processed outside of the system using external software. XFP) that are an integrated component of the respective form tool and that mutually exclude each other. Integration Depending on the form tool (SAPscript. specify the option in the print options. RDI and XSF). You should also optimize the application forms used for the respective raw data variant. Prerequisites To process data externally. you have to configure logical output devices in the central SAP printer management (except in RDI IDoc (SAPscript) mode). Print Workbench 690 80 . PDF-based forms) you can use separate data interfaces (RDI.07. Activities To select one of the data formats supported. SAP provides special device types for this (for example. See also the relevant SAP Notes (for example. You can define logical output devices in the spool administration and define additional instructions. such as target directories or processing commands for the file. these forward the files that result to an external address. Further Processing of Data in External Systems Use In mass processes.SAP Online Help 13. Smart Forms.

and the following data for the logical link: ● ● ● ● ● Client BOR object type BOR object ID Archive system ID Document Type If archiving is complete.SAP Online Help 13. the archive generates a 40 character ID and. Features The following different scenarios exist: Preparation in the SAP system with no external processing of data SAPscript. the Print Workbench uses the standard interface of SAPscript or Smart Forms. During the print process. and PDF-based forms support parallel (asynchronous) optical archiving of documents during printing. which means that communication with the SAP ArchiveLink is exclusively via these forms. Integration SAP ArchiveLink is called directly during the print process with the form created completely dynamically provided you have made the system settings necessary for SAP ArchiveLink (document types. In SAP ArchiveLink you make all the settings that classify a document and make it accessible for an application. it is often necessary to archive a copy of the document. Smart Forms. Documents are archived in an external optical archive and connected to the SAP system via SAP ArchiveLink. This link entry represents the logical link between a business object (for example. via RFC or BAPI. Archiving during form output in SAP system Print Workbench 690 81 . PDF). Prerequisites SAP ArchiveLink must contain all the required settings. such as document types. creates a link entry in the SAP system with the data received. and are generally defined in the attributes. The document types used usually correspond to form classes of the Print Workbench.2011 Archiving/Connection to ArchiveLink Use If a document is dispatched. and BOR object types and archives. the SAP system sends an archiving command to the archive system containing both the document to be archived in a particular format (for example. links between document types. archive connection).07. For archiving. links. The formatted document is sent via SAP ArchiveLink to an external archive and archived there. an invoice document or a contract account) of the SAP system and the technical object in the archive.

07. and the external system also has to control the archiving as well as formatting the document. SAPconnect [Extern] is used for send types TELEFAX. and of a corresponding viewer (such as Acrobat Reader for PDF documents). you can access archived documents. The external system has to send the required parameters to the archive so that the archive can create the link entry. example. the outbound document from the SAP system is not archived. The raw data must contain the archive parameters. SAPconnect is a standard application of the SAP system. If you choose a send type other than PRINTER. for example. or RMAIL (SAP internal send). Sending as e-mail or Telefax via SAPconnect Use You can send documents using various different send types. PDF BOR object BOR ID Document type Archive ID Archive Smart Forms SAPscript ASYNCHRONOUS Archive Link BOR object BOR ID Document type Archive ID + Archive document ID Formatting by external system If the document is not formatted in the SAP system and a data format for external processing is used instead.2011 SAP Formatted document.SAP Online Help 13. This means that the external system has to carry out the functions described above. using the button Archived Documents in the respective application. such Print Workbench 690 82 . the document formatted by SAPscript is transferred to SAPconnect along with information. Activities Activate the archiving by setting the archiving parameter Print and Archive (3) or Only Archive (2) in the dialog box Print Parameters. SMS. EMAIL. Once you have successfully activated archiving. The prerequisite for correct display of a document from the archive is the complete installation of the component SAP ArchiveLink in the SAP GUI of the relevant presentation server.

For this purpose. this address is defaulted in the parameters. specify each address according to send type. Maintain the user data for each communication type. PAG)) c-rec_address (recipient address as character string (telefax number. SMS)) c-comm_type (SAPconnect communication type (FAX. an external system must also take over sending the document. activate the communication types in the SAP menu under Tools Business Communication Office General Office Settings. RML. choose Tools Business Communication Communication SAPconnect. SAPconnect places the document in a send queue which is released for processing by an administrator or a program that runs periodically. If the address type has been maintained in the master record of the business partner associated with a transaction. e-mail. In this case. Preparation by external systems (raw data) In this case. ● ● ● Features Aside from the standard send type PRINTER. With regard to the use of raw data interfaces. In the SAP menu. you have to differentiate between the following scenarios: ● Preparation in SAP system (no raw data) In this case. e-mail address)) ● To be included in the raw data flow. For detailed information about SAPconnect. Maintain the address data in the master data of the business partner for the communication types.2011 as fax number and e-mail address. INT. or internal r-mail. needed for sending it. Define the communication nodes that define the route that a document sent to SAPconnect is to take.SAP Online Help 13. Activities You can define the send type in the dialog box Print Parameters. The document created is placed in the SAPconnect send queue and is transferred later to an external fax or e-mail server to be sent. customers must integrate these fields explicitly (dependent on the form tool). only a raw data flow is created. e-mail address)) c-send_address (sender address as character string (telefax number.07. the Print Workbench provides the following fields in the C global variables in the generated programs of the application forms: ○ ○ ○ ○ c-sendtype (Print Workbench send type (PRINTER. EMAIL. a document can also be sent via SAPconnect as a fax. Print Workbench 690 83 . RMAIL. instead of control by SAPconnect . TELEFAX. All parameters required must be integrated in the raw data flow. Prerequisites ● To ensure the correct functioning of the alternative send types. Specify the send type in the Send Type field. In the dialog box that follows. the preparation is according to the standard procedure of SAPconnect. Set the communication methods to SAPconnect. see the documentation for the transaction.

2. for example. using different send types (letter. e-mail). RMAIL.07. you must have configured the connected archive via SAP ArchiveLink. X.. X) Output device External send type The send control overwrites on a field basis. Integration You define the send control in the Customizing of the Print Workbench. If the send type is not PRINTER. TELEFAX. I..3) Copy indicator (<BLANK>. R) Number of copies (number) Archive mode (1.2.2011 Send Control Use Using send control you can use special print parameters. SMS) Output format SAPscript (<BLANK>.SAP Online Help 13. EMAIL. Prerequisites If you use archive mode 2 or 3. Enter each send control to be used in Customizing or in the master data of the calling application. fax. Print Workbench 690 84 . the standard setting for the print transaction is used. D) Output format PDF-based forms (<BLANK> X. For empty fields. SAPconnect requires the correct setting. Features Dispatch control consists of control lines that each contain the following fields: ● ● ● ● ● ● ● ● ● send type (PRINTER. This means that print parameters defined completely in the print transaction are overwritten by a send control on a field basis. *. *. the calling application must have named a send control in Customizing or in the master data. to send an application form and/or to send multiples of forms. Activities To use the send control. S) Output format Smart Forms (<BLANK>. Define the send controls in Customizing for the Print Workbench in the activity Define Send Control. For it to be relevant for the print process. 1. proceed as follows: . X.

For more information. ○ ○ ○ Print parameter dialog default Print parameter dialog subsequent entry In the print run For details about using the individual events or methods. see the documentation for the customer enhancement EFG_PRINTPARAMS. you can create requests for print transactions to carry out the print in a central run (for example. This is the only way that the required send control is used at the correct time. Features You can use the following methods to default and modify the print parameters: ● User-specific default of certain parameters using SET/GET parameter IDs for the print parameter dialog. you may have to specify or default the print parameters individually.. see SAP note 131277. Using user-specific SET/GET parameters. For this purpose. The correspondence tool carries out this function. ● Use of customer enhancement EFG_PRINTPARAMS You use this customer enhancement to default print parameters by means of ABAP. The enhancement contains three events or methods: . ● Use of static exits in the application form The generated print program of the application forms contains static user exits that you can use to specify the print parameters that are only relevant for Smart Forms or PDFbased forms. the send control is not defaulted in the print parameters. However. you can define certain print parameters as default. As standard. Using the Print Workbench with Correspondence (CA-GTF-COR) Use If you do not want to print correspondence immediately. such as printer and send type. The correspondence tool is optimized for the standard sending of mass correspondence and provides the Print Workbench with a standard print process with numerous application and customer exits.SAP Online Help 13. Print Workbench 690 85 . such as printer or RDI indicator. you can only use this method if the send control is integrated in the Customizing or master data of the application you are using.. However.07. under certain conditions. as parallel background job).2011 Flexible Control and Modification of Print Parameters Use The complete set of print parameters specified for each print run is the basis for the complete run. ● Use of send controls You can use send control to set certain print parameters. the Print Workbench provides various methods that you can use to modify the print parameters.

Prerequisites You can only use the correspondence tool if the application/component has implemented a corresponding connection to the correspondence tool. A print action record is used if you also want to print out a variable text in a form. In a print action record. These correspondence containers can then be processed and marked as printed in special print runs. the system creates a request for the correspondence type concerned in the form of a correspondence container. to carry out collective and parallel printing and to standardize the print process. such as the validity or the maximum number of processing. Features A print action record consists of the following indicators and fields: ● ● ● ● BOR object type (key field) BOR object key (key field) Form classes From date Print Workbench 690 86 . When you create print requests.SAP Online Help 13. the Print Workbench offers the options Print Immediately and the option of creating print requests. you can define additional parameters. it is only used by the Print Workbench. or if you want to send additional information to the recipient in the form of a flyer. For each correspondence container the Print Workbench is called up once. Features If the application supports the creation of print requests for correspondence. The correspondence tool provides the application and customer with various events for determining the following objects: ● ● ● ● ● ● ● Sender Receiver Language Send control Application form Address type Archiving ID For more information about correspondence.2011 Integration The correspondence tool is not integrated in the Print Workbench. see the documentation for Correspondence [Extern] Using Print Action Records Use A print action record is a variable text or data supplement that is determined during print processing and can be integrated in form processing. Most applications that use the Print Workbench use the correspondence tool before the print modules of the Print Workbench are called.07.

In the case of Smart Forms. The form level must also be integrated and active in the application form in which it is used.07. the print action record must be saved as a variable and then output as symbol. It also evaluates the following fields to process the print action records: ● ● ● ● ● ● TRIG_FROM: TRIG_TO: From date for processing To date for processing TRIG_COUNT: Total number for processing MODULO: TRIG_DONE: LAST_DATE: Frequency (Example: 3 = every third time) Number of completed operations Date of last processing A print action record contains definitions such as which text is to be printed or which flyer ID is to be used. The print action records are integrated in an application form either by means of a form level that corresponds to the BOR object of the print action record.2011 To date Maximum number of processing times Frequency Priority The search for related print action records must be integrated in the form class.SAP Online Help ● ● ● ● 13. For this purpose. If you want to create several print action records simultaneously (mass processing). you can integrate the search for print action records in the user exits of an application form by means of the programming interface. To create individual print action records. you can display the content immediately in the MAIN window or store it temporarily as a variable and then output it as a symbol. alternatively. choose Print Workbench Print Action Records Create in the menu. if you use SAPscript. If a print action record is determined during the printing transaction. or. the system searches for print action records with these keys. fields have been provided in each case for five standard texts and ten flyer IDs. The following fields concern the five standard texts: ● ● ● TDNAME1 to TDNAME5 TDID1 to TDID5 TDSPRAS1 to TDSPRAS5 Print Workbench 690 87 . Print Action Records (Technical Background) Features Print action records are defined in the application table EPRINTACT and have the following key fields: ● ● ● FORMCLASS: OBJ_TYPE: OBJ_KEY: Form class BOR object type BOR object key During the print transaction. you have to create a report using the report SAPRISU_PRINTACTION_GENERATE delivered by SAP as a reference. This is usually displayed by an appropriate form level in the form class.

the function module ISU_S_PRINTACT_SEARCH_UPDATE can find and process a print action record. it prints. The texts or flyers to be selected are defined in the Customizing table EPRINTACTF (Define Flyer/Standard Texts for Print Action Records). If the module finds these print action records. You can control the function of the module explicitly using its import parameters: ○ ○ ● X_PRINT Texts are printed (only recommended for SAPscript). The standard texts that you define here must be maintained using transaction SO10 (standard text maintenance).2011 For the ten flyer IDs. If you need additional combinations. Choose Define Links between Object Types and Form Classes and define the supported combinations of form class and BOR object types for the print action records. Activities . it is deleted from the record completely. you can enter these here. This function module is called up using the above keys and processes all valid print action records for these keys. Choose Define Flyer/Standard Texts for Print Action Records and maintain the standard texts and flyers that can be selected for the print action records.07. ISU_S_PRINTACT_PRINT_UPDATE This module determines the relevant text for a print action record and prints it. You maintain the entries in this table in the Implementation Guide. When delivered. If texts or flyers that you set in the creation reports in the print action records are not defined here.. the fields FLYERID1 to FLYERID10 are decisive. If you want to incorporate print Print Workbench 690 88 . as a standard. During printing. the underlying transactions in transaction SO10. If you use a text that has not been entered in this table in a print action record. In the same way as function module ISU_S_PRINTACT_SEARCH_UPDATE. The module returns a table with these print action records. you can also control the explicit function externally. Function Modules for Programming Use ● ISU_S_PRINTACT_SEARCH_UPDATE This module determines appropriate print action records for the keys described under DDIC. In the EPRINTACTF table you can either define an ID for a flyer or the key fields for a SAPscript standard text.. it is also not displayed by the above-mentioned transactions and when you save the print action record. this Customizing table already contains the combinations found in the form classes delivered. It also raises the number of times that print action record has been processed by 1. X_UPDATE Print action records are updated ISU_S_PRINTACTION_TEXT_PROVIDE This function module provides the text for a print action record. ● Customizing Use You maintain the system settings for the print action records in the IMG under Print Workbench Print Action Records. the texts which belong to them and raises the number of times they have been processed by 1. You can use this text for any further processing.SAP Online Help 13. this can lead to errors in maintaining the print action records.

SAP Online Help 13. Activities You can create print action records as follows: 1. Prerequisites Copy the sample report SAPRISU_PRINTACTION_GENERATE and adjust it to meet your requirements. In a print action record. In order for the system to determine print action records. Features The creation of a print action record is usually triggered by a business transaction. Print action records are determined and evaluated when application forms are printed. you can only create an individual text if you have deleted the print action record. The prerequisite for using the report is that the search function for print action records has been implemented in the application form.07. Print Workbench 690 89 . If required. These text or flyer indicators are defined in Customizing for print action records. Mass Creation of Print Action Records Use If an additional variable text is to appear on multiple forms. Individual Creation of Print Action Records Use A print action record is created if a letter is to contain some additional item of information. This takes place with a report maintained by the user and designated for a specific purpose. The following criteria determine the validity of a PAR (print action record): ● ● ● From date To date Frequency You can assign an individual text to each print action record. you have to make an entry for the combination BOR object/ form class here. You can define this information in a print action record.2011 action records in an application form yourself. In the menu under Print Workbench Create Print Action Records. Choose one of the options from the list above and specify the properties of the print action record. you can also set texts or flyer indicators for further processing. 2. There are therefore different ways of creating a print action record. However. the correct search routines must already be in place in the application forms. With the Create Print Action Record function in an application. By calling the Create method for BOR object type BUS4402 (print action record). a print action record must be created for each form or each form level on which text is to be printed. 3. create an individual text.

Application forms with print action records already included If the print action records have been implemented in the form of form levels in the form class.SAP Online Help 13. the form levels can be left in the hierarchy. run it. If you delete directly. you should carry out a reorganization at regular intervals. The texts behind the print action records are printed automatically.2011 Features By adjusting the report. Enter the parameters (selection restriction. deletion. in which the print action records exist as a level in the application form. you determine why the print action records are created and the entities to which they belong. the printing of the related texts can be transferred immediately or you can decide how and which part of the print action records is to be printed. information or a note that is temporarily valid). You can then use the print action records for selection. If you want to prevent the texts in a print action record from being printed automatically. and dialog indicator) and choose Program Execute. In the simplest variant. you can use the indicator Dialog Indicator to control whether there is a security prompt before deletion. Activities Once you have copied and adjusted the report.07. Reorganization Use To keep the number of print action records to a minimum. Activities Choose Print Workbench Print Action Records Selection List. Integrating Print Action Records in Application Forms Use Use a print action record if you want to print a variable text on all forms. Features Using this transaction you can select print action records and either output them in a list or delete them immediately. printing begins automatically. Variable means that the text changes over time (for example. Features If the print action records are integrated in an application form. Integration Print action records are either integrated into the form class belonging to an application form with form levels or must be implemented using user exits. set Print Workbench 690 90 . In the first case you have to leave the level in question in the hierarchy.

Specify the parameters above (form class. from there. The parameters X_PRINT and X_UPDATE determine whether a print takes place or whether the print action records are updated. and FORMCLASS = <form class> 3. Decide for which form level of the form class hierarchy you want to find print action records. (for example.. evaluate the table of the print action records received. It is important that you search for an entity that has a corresponding object type in BOR.. manually create a print action record in transaction EPA1 and define a dummy object for OBJ_KEY. Determine the position of the call of the print action records in the application form. BOR object. Usually you should set both indicators. you have to perform the following steps: . To do this. In mass processing you have to create the print action records with a report based on report SAPRISU_PRINTACTION_GENERATE. LFDNR = <document number>. Application forms without print action records To integrate print action records in an application form that have not been implemented in the form of a level in the form class. 4. If you do not want the text to be printed automatically. Create an exit during loop for the form level in question and. maintain an entry with the following keys: AREA = „Z„. The position corresponds to the form level. In table EPRINTACTT (transaction SM30).2011 global parameter C-PA_PRINT to <blank> in the exit before loop of the form level. Specify parameters X_OBJ_TYPE with the BOR object mentioned above. X_FORMCLASS with the current form class. Then enter this dummy value in parameter X_OBJ_KEY when you call the module ISU_S_PRINTACT_SEARCH_UPDATE in the above-mentioned exit. object key) in the appropriate position in the report. In this case you have to print the text yourself. you can also create single print action records that have a generic effect on all combinations of form class and BOR object. In addition to mass processing. 5. call function module ISU_S_PRINTACT_SEARCH_UPDATE. 1.SAP Online Help 13. Print Workbench 690 91 . and X_OBJ_KEY with the entity key from the current form. OBJ_TYPE = <BOR object>. WA_CONTR_ACCT-VKONT for a contract account) for the call.07. 2.

Sign up to vote on this title
UsefulNot useful