You are on page 1of 33

Sales and Distribution Tables

KONV Conditions for Transaction Data KONP LIKP LIPS VBAK VBAP VBBE VBEH VBEP VBFA VBLB VBLK VBPA VBRK VBRP VBUK VBUP VEKP VEPO Conditions for Items Delivery Header Data Delivery: Item data Sales Document: Header Data Sales Document: Item Data Sales Requirements: Individual Records Schedule line history Sales Document: Schedule Line Data Sales Document Flow Sales document: Release order data SD Document: Delivery Note Header Sales Document: Partner Billing: Header Data Billing: Item Data Sales Document: Header Status and Administrative Data Sales Document: Item Status Handling Unit - Header Table Packing: Handling Unit Item (Contents)

VEPVG Delivery Due Index

Plant Maintenance/Sales and Distribution Tables

AFAB

Network - Relationships

AFFH AFFL AFFT AFFV AFFW AFIH AFKO AFPO AFRC AFRD AFRH AFRU AFRV AFVC AFVU AFVV AFWI AUFK AUFM BGMK BGMP BGMS

PRT assignment data for the work order Work order sequence Order - Process Instructions Order - Process Instruction Values Goods movements with errors from confirmations Maintenance order header Order header data PP orders Order item Incorrect cost calculations from confirmations Default values for collective confirmation Header information for confirmation pool Order completion confirmations Confirmations pool Operation within an order DB structure of the user fields of the operation DB structure of the quantities/dates/values in the operation Subsequently posted goods movements for confirmations Order master data Goods movements for order Master Warranty Header Master Warranty Item Master Warranty Text Item

BGMT BGMZ CRHD CRTX EQKT EQST EQUI EQUZ HIKO IFLO IFLOT IFLOTX IHGNS IHPA IHSG ILOA IMPTT IMRG KAKO KONP KONV OBJK QMEL

Master Warranty Text Warranty Counter Work Center Header Text for the Work Center or Production Resource/Tool Equipment Short Texts Equipment to BOM Link Equipment master data Equipment time segment Order master data history Table generated for View IFLO Functional Location (Table) Functional Location- Short Texts Permit Segment for Plant Maintenance Plant Maintenance- Partners Object-Related Permits in Plant Maintenance PM Object Location and Account Assignment Measuring Point (Table) Measurement Document Capacity Header Segment Conditions (Item) Conditions (Transaction Data) Plant Maintenance Object List Quality Notification

QMFE QMIH QMMA QMSM QMUR T001 T001L T001W T077D T003O T352R T353I_T T356 T357G T357G_T T370A TINCT TVKO TVKOS TVKOV TVTA

Quality notification - items Quality message - maintenance data excerpt Quality notification - activities Quality notification - tasks Quality notification - causes Company Codes Storage Locations Plants/Branches Customer account groups Order Types Maintenance revisions Maintenance activity type description Priorities Permits Text for Table 357GT Activity Category for PM Lists Customers- Incoterms- Texts Organizational Unit- Sales Organizations Organizational Unit- Divisions per Sales Organization Org. Unit- Distribution Channels per Sales Organization Organizational Unit- Sales Area(s)

VIAUFKST Generated Table for View VIAUFKST

General Notes
You can execute the following commands in the transaction code (tcode) field with Enter. You will find some useful transaction codes below to work in tandem with the following commands: To call a transaction - In the same session (window) Enter: /nxxxx (xxxx = transaction code). - In an additional session, Enter: /oxxxx (xxxx = transaction code). If you enter this function before any of the tcodes below, you are able to break out of your current screen/business and begin a completely new session. Otherwise, the current business process has to be terminated, and return to the initial user screen (the main menu) has to be initiated before entering tcode spro). /o tcode saves you the effort of having to do this. To end the current transaction Enter: /n. Caution: Unsaved changes are lost without warning To delete the current session. Enter: /i. To generate a session list Enter: /o. To log off from the system Enter: /nend. From John O'Meara OSS Note 0026171 has additional information on OKCodes in SAP, and is a very useful read

BASIS/ABAP
USMM Pressing F8 will display all hotpacks applied.

SEARCH_SAP_MENU Show the menu path to use to execute a given tcode. You can search by transaction code or menu text. DI02 LSMW ABAP/4 Repository Information System: Tables. Legacy System Migration Workbench. An addon available from SAP that can make data converstion a lot easier. Thanks to Serge Desland for this one. SAP Online Service System

OSS1

OY19 SM13 S001 S001 S002 SA38 SCAT SCU0 SE01 SE03

Compare Tables Update monitor. Will show update tasks status. Very useful to determine why an update failed. ABAP Development Workbench ABAP/4 Development Weorkbench. (from john.omeara@syskoplan.ie) System Administration. (from john.omeara@syskoplan.ie) Execute a program. (from john.omeara@syskoplan.ie) Computer Aided Test Tool Compare Tables Old Transport & Corrections screen Groups together most of the tools that you need for doing transports. In total, more than 20 tools can be reached from this one transaction. Workbench Organizer New Transport & Correction screen ABAP/4 Dictionary Maintenance SE12 ABAP/4 Dictionary Display SE13 Maintain Technical Settings (Tables) Dictionary: Initial Screen - enter object name. (from john.omeara@syskoplan.ie) Access tables in ABAP/4 Dictionary. (from john.omeara@syskoplan.ie) Utilities for Dictionary Tables ABAP/4 Repository Information System Data Browser: Initial Screen. (from john.omeara@syskoplan.ie) Table Browser (the N stands for New, it replaces SE16). Provided by Smijo Mathew.

SE09 SE10 SE11 SE12 SE13 SE14 SE15 SE16 SE16N

SE17 SE24 SE30 SE32 SE35 SE36 SE37 SE38 SE39 SE41 SE43 SE48 SE49 SE51 SE54 SE61 SE62 SE63 SE64 SE65

General Table Display Class Builder ABAP/4 Runtime Analysis ABAP/4 Text Element Maintenance ABAP/4 Dialog Modules ABAP/4: Logical Databases ABAP/4 Function Modules ABAP Editor Splitscreen Editor: Program Compare Menu Painter Maintain Area Menu Show program call hierarchy. Very useful to see the overall structure of a program. Thanks to Isabelle Arickx for this tcode. Table manipulation. Show what tables are behind a transaction code. Thanks to Isabelle Arickx for this tcode. Screen Painter: Initial Screen. (from john.omeara@syskoplan.ie) Generate View Maintenance Module R/3 Documentation Industry utilities Translation Terminology R/3 document. short text statistics SE66 R/3 Documentation Statistics (Test!)

SE68 SE71 SE71 SE72 SE73 SE74 SE75 SE76 SE77 SE80 SE81 SE82 SE83 SE84 SE85 SE86 SE87 SE88 SE91 SE92 SE93

Translation Administration SAPscript layout set SAPScript Layouts Create/Change SAPscript styles SAPscript font maintenance (revised) SAPscript format conversion SAPscript Settings SAPscript Translation Layout Sets SAPscript Translation Styles ABAP/4 Development Workbench SAP Application Hierarchy Customer Application Hierarchy Reuse Library. Provided by Smiho Mathew. ABAP/4 Repository Information System ABAP/4 Dictionary Information System ABAP/4 Repository Information System Data Modeler Information System Development Coordination Info System Maintain Messages Maintain system log messages Maintain Transaction. (from john.omeara@syskoplan.ie)

SEARCH_SAP_MENU From the SAP Easy Access screen, type it in the command field and you will be able to search the standard SAP menu for transaction codes / keywords. It will return the nodes to follow

for you. SEU SHD0 SM04 SM12 SM21 SM30 SM31 SM32 SM35 SM37 SM50 SM51 SM62 SMEN SMOD/CMOD SNRO SPRO SQ00 SQ01 Object Browser Transaction variant maintenance Overview of Users (cancel/delete sessions) Lock table entries (unlock locked tables) View the system log, very useful when you get a short dump. Provides much more info than short dump Maintain Table Views. (from john.omeara@syskoplan.ie) Table Maintenance Table maintenance View Batch Input Sessions View background jobs Process Overview. (from john.omeara@syskoplan.ie) Delete jobs from system (BDC) Display/Maintain events in SAP, also use function BP_EVENT_RAISE Display the menu path to get to a transaction Transactions for processing/editing/activating new customer enhancements. Object browser for number range maintenance. (from john.omeara@syskoplan.ie) Start SAP IMG (Implementation Guide). (from john.omeara@syskoplan.ie) ABAP/4 Query: Start Queries ABAP/4 Query: Maintain Queries

SQ02 SQ03 SQ07 ST05 ST22 SU53 WEDI WE02 WE07

ABAP/4 Query: Maintain Funct. Areas ABAP/4 Query: Maintain User Groups ABAP/4 Query: Language Comparison Trace SQL Database Requests. (from john.omeara@syskoplan.ie) ABAP Dump analysis Display Authorization Values for User. (from john.omeara@syskoplan.ie) EDI Menu. IDOC and EDI base. Display an IDOC IDOC Statistics

Sales and Distribution (SD)


OLSD Config for SD. Use Tools-Data Transfer-Conditions to setup SAP supplied BDC to load pricing data VA01 Create Sales/Returns Order:Initial Screen VB21 Transaction for Volume Lease Purchases (done as a sales deal) VK15 Transaction used to enter multiple sales conditions (most will be entered here)

Definitions
These definitions come courtesy of Ricardo Miranda. His webpages can be found here. ALE (Application Link It provides integration for separate R/3 systems, keeping full Enabling) interaction. This makes possible distributed enterprise applications. Application server The application server is used to run the business application programs in the R/3 client/server concept. The application modules are loaded from the data base server to the application server as required. Thus the application server requires only storage capacity to accommodate UNIX, Swapping and the

SAP runtime environment. Batch Input A technique to input data safely. It ensures application data integrity for background interfaces. It pretends to be someone typing. See also direct input.

CATT (Computer Aided It allows you to combine and automate sequences of repeatable Test Tool) transactions in test procedures. CATT reduces the number of manual tests, and forces you to test systematically, defining input values and expected test results. CCMS (Computer Center Management System) Central System Client It allows you to monitor, control and configure your R/3 system. This toolset lets you analyze and distribute client workloads and report on resource consumption for system components. In an R/3 central system, both application and data base software are run on one computer. In commercial, organizational and technical terms, a selfcontained unit in an R/3 system with separate master records and its owns set of tables. Client/server systems are structured modularly, with components working in a sender/receiver relationship. Software components can also be used in a client/server relationship.

Client/Server System

Communication Server It provides the connection between local area and wide area networks and may be either a router, a bridge or a gateway. In R/3 installations, the communication server must support the TCP/IP protocol over wide area networks. Company code The smallest organizational unit for which a complete selfcontained set of accounts can be drawn up for purposes of external reporting. This involves recording all relevant transactions and generating all supporting documents for legally-required financial statements, such as balance sheets and profit and loss statements. The R/3 system supports various computer types of SAP's platform partners, such as Bull, DEC, IBM and HP. The suitability of a particular computer type depends on sufficient CPU performance. It contains all the objects that a developer has changed or created. It also controls customizing that has been maintained.

Computer type

Correction

CPI-C (Common Common Programming Interface of Communication has been Programming Interface- introduced by IBM as a high-level interface to SNA/LU6-2. Communications) CPI-C has become the subject of the X/Open stardarlization and is used by SAP to facilitate program-to-program communication between R/3 and external system. SAP offers CPI-C libraries based on TCP/IP. CSP Data base server A system to help SAP employees to give comprehensive support to their clients. The data base server stores the SAP application programs and data in the R/3 client/server concept. It also handles the SAP update program and batch jobs. A recent technique to input data safely. It ensures application data integrity for background interfaces. See also batch input. The system R/3 agent that identifies the type of task (on-line, update, batch, etc.) and sends the job to an idle work process. It is a service that entails having your R/3 installation regularly inspected by SAP employees, in other to ensure high system availability and high data throughput at all time. It is a LAN architecture using bus topology. The transmission speed is 10 MBit/s.

Direct Input Dispatcher EarlyWatch

Ethernet

FDDI (Fiber Distributed It is a local high-speed network with ring topology based on Data Interchange) light wave conductors. The transmission speed is 100 MBit/s. Field status Firewall FTP (File Transfer Protocol) GUI (Graphic User Interface) IDES (International Demonstration and Education System) Indicator that specifies whether a field can take an entry in the entry screen or if it must be filled. It is a means of controlling access through a public network to a private network. It is the most commonly used file transmission protocol of the TCP/IP protocol family. A graphical interface used by SAP environment as part of the three tiers. It is normally called user frontend. It is a model of an international firm. It is a separate demonstration and education system for speeding up the pilot process.

IDoc (Intermediate Document) IMG (Implementation Management Guide) Instance ITS (Internet Transaction Server) Kernel LAN (Local Area Network)

An IDoc is a data container for data exchange between SAP systems or between an SAP system and an external system. It is a hierarchical structure that reflects the R/3 component hierarchy and contains every configuration activity. Released from version 3.0 onwards. It means application server and each one has its own set of work processes. It links the R/3 application server with one or more Web servers, thus enabling the R/3 to communicate with the Internet. It means a standard core previously configured. A set of default parameters delivered with the system. It is a network foa a tightly limited area with high level data transmission performance. Common LANs include Ethernet, Token Ring and FDDI. These LANs support different transport protocols, such as TCP/IP and IPX. A tool for finding specific record. It is made up of search terms. It is used to find possible entries for an input field. A range of numbers that are laid down per file for the assignment of document numbers. It can be internal (carried out automatically by the system) or external (carried out manually by the user). It is a technique introduced by Microsoft to incorporate objects of one application into another. SAP's Online Service System offers fast and effective help for R/3 System problems. It is also the basic element of communications between customers, partners, and SAP. It contains all the objects that a developer has changed but the originals of the objects are located in another system. A way to implement communication between application programs via Abap/4 function call. When a work process locks a resource, it sets a semaphore. Another work process that also wants to access it must then

Matchcode Number range

OLE OSS (Online Service System) Repair RFC Semaphores

wait. SysID A set of three letters or number that identify a system. Some sets are not allowed because they are used by SAP. They are informed when the system is installed. It is the most widely used transport protocol for open systems. R/3 clients and servers communicate using TCP/IP. It provides terminal access to hosts using TCP/IP protocol. It is a well-known command among Systems Administrators. It is a LAN architecture with ring topology. The transmission speed is 4 MBit/s or 16 MBit/s. This involves a 'free token' which circles the loop picking up transmissions. The receiver station places a confirmation bit into the busy token. As soon as the busy token reaches the sender station again, it is converted back to a free token and sent on to the next station. It is a request to transport objects from the software development environment, identified as the source system, to the specified target system. They are normally operated either by the telephone company or by private companies that offer leased lines, switched lines or packet lines. Work processes perform the bulk of the processing carried out by SAP systems. They perform dialog steps in user transactions and carry out updates, lock management, printing services, and so on. The ABAP/4 Workbench, a graphical programming environment, is used to create application programs. The programming tools are accessed using buttons, dialogs and windows. It consists of time and logical sequence of work items, which are precessed by human agents or mechanical processing units. It is a standardized network access protocol for the packet switching network. The maximum transmission speed is 64 KBit/s.

TCP/IP Telnet Token Ring

Transport

WAN (Wide Area Networks) Work process

Workbench

Workflow X.25

Finding a transaction code via SE93

Go to Transaction SE93 and press F4 and then Press All selections button. It will give you a better search to look for a transaction than directly going to table TSTC. (Submited by Ram Mullapudi)

How to Change Standard Price in Material Master


The standard price can not be updated directly. One way to update the standard price is to fill the fields Future Price (MBEW-ZKPRS) and the Effective Date (MBEW-ZKDAT) for the material on the accounting view. Next, go to Logistics -> Materials Management -> Valuation -> Valuation Price Determination -> Future Price -> Activate (TCODE MR2B, program RMMR2100) Lastly, run the BDC that was created to update the standard price. http://www.techinterviews.com/?p=198 http://www.onesmartclick.com/interviews/sap-interview-questionsfico.html http://www.sapedition.com/?gclid=CIubw43pv4wCFRogYQodCQnTYQ http://www.allinterview.com/Interview-Questions/SAP.html http://gleez.com/articles/job-skills/interview/sap-interview-questions http://www.sap-img.com/human/sap-hr-interview-questions.htm http://sap.ittoolbox.com/documents/popular-q-and-a/abap-sampleinterview-questions-3240 http://www.tutorialdownloads.com/FAQ/sap-interview-questions.html devi.tulsi Single roles in SD module are Inquiry Processing ,Quotation Processing,Contract Processing,Sales Order Processing,Scheduling Agreement Processing, Returns Processing,Rebate Processing, Sales Deal and Promotion Processing,Display Customer and Material Information,Billing Processing (online), Billing Processing (In The

Background),Invoice List Processing,Maintain Customer and Material Information, Display Pricing,Maintain Pricing, Release Blocked Documents for Billing,Release Sales Orders for Delivery, Display Sales Information, Display Billing Documents,Sales Analysis, Credit Management in Sales and Distribution Documents, Backorder Processing, Sales Support and Output Processing. Table VBAK contains the sales document header data, VBKD contains the sales document business data, VBAP contains the sales document item wise data, VBRK contains the billing document header and table VBRP stores the billing document item.
DOCtype andIDOC. An Intermediate Document (IDOC) type represents the structure of the data associated with a message type (DEBMAS02 for message type DEBMAS Customer Master, and WMMBID02 for message type WMMBXY Goods Movements), while an IDOC is an object containing the data of a particular message type. IDOCs are data containers with intelligence built in. Each IDOC contains one and only one business object. For example, an IDOC of type SHPMNT01, message type SHPMNT, will contain data only of one Shipment Document. Generally, the architecture of an IDOC is independent of the message type by virtue of ALEs ability to redefine it for any message type. An IDOC consists of three record types: the control record, the data record, and the status record (see Figure 1).

Figure1 Structure of an IDOC. Thecontrolrecord , or EDI_DC, is a control structure that contains several fields with information about the IDOC, such as what IDOC type it is, the message type, sender and receiver information, and direction (1 for outbound, 2 for inbound). This information provides control data on the outbound, and processing options on an inbound IDOC. It also has as its key the Client (MANDT) and the IDOC number (DOCNUM). The EDI_DC record of an IDOC is stored in table EDIDC. Every IDOC has one control record. Thedata record , which conforms to the structure EDI_DD, contains the application data. Every EDI_DD record has a key portion that is 55 bytes in length (or 63, depending on the SAP release), which consists of several fields describing the content of the record. The key of 55/63 bytes is followed by a field SDATA, which is 1000 bytes in length and of data type Long Character. The SDATA field holds the application data, and its structure is determined by the key

field SEGNAM (Segment Name). An IDOC consists of one or more data records, and its sequence and structure are dictated by the sequence and structure of segments in a given IDOC type. The SDATA portion of the data record is redefined for every occurrence based on the structure of the segment, with the first 55/63 bytes of the data record identifying the segment name, sequence, and hierarchy. In an outbound interface, ALE/EDI function modules populate these segments with application data. In an inbound interface, the application modules process the data contained in the segments. Data records are stored on table EDID2 that belongs to the cluster EDI30C. In SAP, from a Data Dictionary perspective, IDOC segments adhere to a naming convention. Each segment has three components, each marked by a different prefix E1 for segment type, E2 for segment definition, and E3 for segment documentation. For example, the first segment of IDOC type DEBMAS02 is E1KNA1M. Its definition is contained in structure E2KNA1M, and its documentation is in E3KNA1M. When the IDOC is externalized, we see the segment name addressed by its E2 prefix. For all practical purposes, we will use only the E2 prefix when referring to IDOC segments. Also, most segment names represent Data Dictionary tables. Thestatusrecord conforms to the dictionary structure EDI_DS. It contains information on the state of the IDOC as it passes through the various stages of processing. The STATUS field has a length of two bytes (data type CHAR), with a range of values: 0141 for outbound and 5073 for inbound IDOCs. The status record also includes date and timestamps for when that particular state was reached. The status records maintain a history of the IDOC states. An IDOC may have one or more status records, which are stored in table EDIDS (see Figure 2, page 82). These records can be accessed or created only by SAP function modules (APIs), and are not externalized.

Figure2 the IDOC database. IDOC objects consist of a Basic IDOC type, an Extension type, and an IDOC type. In an R/3 system, IDOCs are identified by a unique IDOC number (field DOCNUM), and all three record types are tied together with this number. The IDOC number is internally assigned by SAP. It is possible to maintain the number range of IDOCs. You can display information about IDOC record types by executing transaction WE61 or using the following menu path from the main R/3 menu: Tools -> Administration -> Administration -> Process Technology -> IDOC -> IDOC Basis (*) ->

Documentation -> IDOC Record Types. You can reach IDOC Basis (*) by executing transaction WEDI, which is frequently used in ALE and EDI. You can display information about IDOC types, such as DEBMAS02 and INVOIC01 by executing transaction WE60 or using the following menu path from WEDI: Documentation -> IDOC types.

See Structure of MATMAS01 IDOC type


Legacy data File Field comment all date here is predefined into API SAP IDOC SEGMENT Segment EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 EDI_DC40 E1MARAM MATMASTER ITEMNBR MATMASTER MTYPE SKU material type E1MARAM E1MARAM E1MARAM E1MARAM MATMAS MATMAS MATMAS MATMAS UOFM GROSS NET UOFW unit of measure weight weight unit of weight E1MARAM E1MARAM E1MARAM E1MARAM E1MAKTM E1MAKTM MATMAS SAMPLE : DESC item description E1MAKTM E1MAKTM IDOC FIELD element client idoc number idoc status direction receiver port rec'd part type "LS" recipients sender port sender type sender message type "MATMAS" basic type rec partn fnct "MATMAS01" "LS" "LS" per installation per installation per installation blank blank 2 - inbound per installation SAP Release 620 QUALIFIERS/CONSTANT COMMENTS notes comments per installation

and hardcorded EDI_DC40

Partn function "LS" MSGFN MATNR MTART MBRSH MATKL MEINS BRGEW NTGEW GEWEI function CHAR1 Description SPRAS_ISO "EN" english "LB" "005" "E" "ZFG" "H" "01" "EA" measurement text gross weight net weight weight measurement to add a new record use "005" "005" to add a new record use "005" material number material type description industry description

MATMASTER INDUSTRY applicances

What is SAP Smart Forms? SAP Smart Forms is introduced in SAP Basis Release 4.6C as the tool for creating and maintaining forms. SAP Smart Forms allow you to execute simple modifications to the form and in the form logic by using simple graphical tools; in 90% of all cases, this won't include any programming effort. Thus, a power user without any programming knowledge can configure forms with data from an SAP System for the relevant business processes. To print a form, you need a program for data retrieval and a Smart Form that contains the entire from logic. As data retrieval and form logic are separated, you must only adapt the Smart Form if changes to the form logic are necessary. The application program passes the data via a function module interface to the Smart Form. When activating the Smart Form, the system automatically generates a function module. At runtime, the system processes this function module. You can insert static and dynamic tables. This includes line feeds in individual table cells, triggering events for table headings and subtotals, and sorting data before output. You can check individual nodes as well as the entire form and find any existing errors in the tree structure. The data flow analysis checks whether all fields (variables) have a defined value at the moment they are displayed. SAP Smart Forms allow you to include graphics, which you can display either as part of the form or as background graphics. You use background graphics to copy the layout of an existing (scanned) form or to lend forms a company-specific look. During printout, you can suppress the background graphic, if desired. SAP Smart Forms also support postage optimizing. Also read SAP Note No. 168368 - Smart Forms: New form tool in Release 4.6C What Transaction to start SAP Smart Forms? Execute transaction SMARTFORMS to start SAP Smart Forms. Key Benefits of SAP Smart Forms: SAP Smart Forms allows you to reduce considerably the implementation costs of mySAP.com solutions since forms can be adjusted in minimum time. You design a form using the graphical Form Painter and the graphical Table Painter. The form logic is represented by a hierarchy structure (tree structure) that consists of individual nodes, such as nodes for global settings, nodes for texts, nodes for output tables, or nodes for graphics. To make changes, use Drag & Drop, Copy & Paste, and select different attributes.

These actions do not include writing of coding lines or using a Script language. Using your form description maintained in the Form Builder, Smart Forms generates a function module that encapsulates layout, content and form logic. So you do not need a group of function modules to print a form, but only one. For Web publishing, the system provides a generated XML output of the processed form. Smart Forms provides a data stream called XML for Smart Forms (XSF) to allow the use of 3rd party printing tools. XSF passes form content from R/3 to an external product without passing any layout information about the Smart Form.

Advantages of SAP Smart Forms


SAP Smart Forms have the following advantages: 1. The adaption of forms is supported to a large extent by graphic tools for layout and logic, so that no programming knowledge is necessary (at least 90% of all adjustments). Therefore, power user forms can also make configurations for your business processes with data from an SAP system. Consultants are only required in special cases. 2. Displaying table structures (dynamic framing of texts) 3. Output of background graphics, for form design in particular the use of templates which were scanned. 4. Colored output of texts 5. User-friendly and integrated Form Painter for the graphical design of forms 6. Graphical Table Painter for drawing tables 7. Reusing Font and paragraph formats in forms (Smart Styles) 8. Data interface in XML format (XML for Smart Forms, in short XSF) 9. Form translation is supported by standard translation tools 10. Flexible reuse of text modules 11. HTML output of forms (Basis release 6.10) 12. Interactive Web forms with input fields, pushbuttons, radio buttons, etc. (BasisRelease 6.10)

A Simple Smartform Tutorial


SAP Smartforms can be used for creating and maintaining forms for mass printing in SAP Systems. The output medium for Smartforms support printer, fax, e-mail, or the Internet (by using the generated XML output). According to SAP, you need neither have any programming knowledge nor use a Script language to adapt standard forms. However, basic ABAP programming skills are required only in special cases (for example, to call a function module you created or for complex and extensive conditions). 1. Create a new smartforms Transaction code SMARTFORMS Create new smartforms call ZSMART 2. Define looping process for internal table Pages and windows

First Page -> Header Window (Cursor at First Page then click Edit -> Node -> Create) Here, you can specify your title and page numbering &SFSY-PAGE& (Page 1) of &SFSY-FORMPAGES(Z4.0)& (Total Page) Main windows -> TABLE -> DATA In the Loop section, tick Internal table and fill in ITAB1 (table in ABAP SMARTFORM calling function) INTO ITAB2

3. Define table in smartforms Global settings : Form interface Variable name Type assignment Reference type ITAB1 TYPE Table Structure Global definitions Variable name Type assignment Reference type ITAB2 TYPE Table Structure 4. To display the data in the form Make used of the Table Painter and declare the Line Type in Tabstrips Table e.g. HD_GEN for printing header details, IT_GEN for printing data details. You have to specify the Line Type in your Text elements in the Tabstrips Output

options. Tick the New Line and specify the Line Type for outputting the data. Declare your output fields in Text elements Tabstrips - Output Options For different fonts use this Style : IDWTCERTSTYLE For Quantity or Amout you can used this variable &GS_ITAB-AMOUNT(12.2)& 5. Calling SMARTFORMS from your ABAP program REPORT ZSMARTFORM. * Calling SMARTFORMS from your ABAP program. * Collecting all the table data in your program, and pass once to SMARTFORMS * SMARTFORMS * Declare your table type in :* Global Settings -> Form Interface * Global Definintions -> Global Data * Main Window -> Table -> DATA * * Written by : SAP Hints and Tips on Configuration and ABAP/4 Programming * http://sapr3.tripod.com * TABLES: MKPF. DATA: FM_NAME TYPE RS38L_FNAM. DATA: BEGIN OF INT_MKPF OCCURS 0. INCLUDE STRUCTURE MKPF. DATA: END OF INT_MKPF. SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001. SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR. MOVE-CORRESPONDING MKPF TO INT_MKPF. APPEND INT_MKPF. ENDSELECT. * At the end of your program. * Passing data to SMARTFORMS call function 'SSF_FUNCTION_MODULE_NAME' exporting formname = 'ZSMARTFORM' * VARIANT =''

* DIRECT_CALL ='' IMPORTING FM_NAME = FM_NAME EXCEPTIONS NO_FORM =1 NO_FUNCTION_MODULE =2 OTHERS = 3. if sy-subrc <> 0. WRITE: / 'ERROR 1'. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. endif. call function FM_NAME * EXPORTING * ARCHIVE_INDEX = * ARCHIVE_INDEX_TAB = * ARCHIVE_PARAMETERS = * CONTROL_PARAMETERS = * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = * OUTPUT_OPTIONS = * USER_SETTINGS = 'X' * IMPORTING * DOCUMENT_OUTPUT_INFO = * JOB_OUTPUT_INFO = * JOB_OUTPUT_OPTIONS = TABLES GS_MKPF = INT_MKPF EXCEPTIONS FORMATTING_ERROR =1 INTERNAL_ERROR =2 SEND_ERROR =3 USER_CANCELED =4 OTHERS = 5. if sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. endif.

Additional Fonts for your SMARTFORMS

You can create additional fonts and style with transaction SMARTSTYLES This can then be define in the paragraph and character formats, which you can then be assign to texts and fields in the Smart Form. The character formats includes effects such as superscript, subscript, barcode and font attributes.

Difference with SMARTFORMS vs. SapScript(SE71)


The Following are the differences :a) Multiple page formats are possible in smartforms which is not the case in SAPScripts b) It is possible to have a smartform without a main window . c) Labels cannot be created in smartforms. d) Routines can be written in smartforms tool. e) Smartforms generates a function module when activated. Contributed by : SAP ABAP/4 Programming, Basis Administration, Configuration Hints and Tips

f) Unlike sapscripts (RSTXSCRP), you cannot upload/download Smartform to your local harddisk. It was said that it was provided in CRM 3.0 version, but not available in R/3. You can download smartforms into Local PC in a XML format. In the same way you can upload this XML format into Smartform. From the smartform editor itself you can call download option, if you are working in CRM 3.0 environment. In R3 also, you can download into XML format. However, it's not sure about uploading. Refer to the program 'SF_XSF_DEMO'. In 4.7 Enterprise, other have seen this utlity which is completey missing in 4.6c. There is functionality to downlaod a complete form or only a particular node. (Utilities -> Download form). It will create a XML file and save it in the hard disk. For others, if you want to download/upload the Smartforms source, you will need the help from the Basis people. What you can do is to create a Transport and then FTP down to your local harddisk. When you need the Smartform source in another system, you have FTP up the Smartforms file back to the SAP server. Finally, the Basis team, will tp it into your system.

g) The protect and endprotect command in sapscript doesn't work with smartforms. For example on a invoice: First data of position no 80. is printed on page one, other data of position no 80 is printed on page 2. And there's nothing you can do about it. Actually, there is something you can do about it. By using a folder node and checking the 'protect' checkbox, everything in that folder will be page protected.

FAQ on Migrating SAPscript to SmartForms


Is it possible to migrate a SAPscript form to a Smart Form? Smart Forms provides a migration tool for this purpose which migrates layout and texts of a SAPscript form to a Smart Form. It does not migrate SAPscript form logic of the print program. Using Smart Forms, this logic is described by the tree structure of the Form Builder. The effort involved in migrating it depends on the complexity of the print program. Which Basis Release do I need to use SAP Smart Forms? SAP Smart Forms is available as of R/3 Basis Release 4.6C. I have heard that Smart Forms replaces SAPscript. What does "replace" mean? It does not mean that SAPscript is removed from the Basis shipment. Even as of Basis Release 4.6C, SAPscript remains part of the SAP standard and there are no plans to remove it. Since Smart Forms is currently, and will continue to be, the tool for form maintenance for mySAP.com solutions, our further development efforts will focus on Smart Forms, not on SAPscript. Do we have to migrate all SAPscript forms to Smart Forms? There is no point in migrating all SAPscript forms already in use. Since SAPscript can still be used and will be available in the future, there is no need to. If you plan to migrate a SAPscript form, it is recommended that you check whether benefit is worth the effort involved.

Conversion of SAPSCRIPT to SMARTFORMS


SAP provides a conversion for SAPscript documents to SMARTforms. This is basically a function module, called FB_MIGRATE_FORM. You can start this function module by hand (via SE37), or create a small ABAP which migrates all SAPscript forms automatically. You can also do this one-by-one in transaction SMARTFORMS, under Utilities -> Migrate SAPscript form. You could also write a small batch program calling transaction SMARTFORMS and running the migration tool.

SmartForms System Fields


Within a form you can use the field string SFSY with its system fields. During form processing the system replaces these fields with the corresponding values. The field values come from the SAP System or are results of the processing. System fields of Smart Forms &SFSY-DATE& Displays the date. You determine the display format in the user master record. &SFSY-TIME& Displays the time of day in the form HH:MM:SS. &SFSY-PAGE& Inserts the number of the current print page into the text. You determine the format of the page number (for example, Arabic, numeric) in the page node. &SFSY-FORMPAGES& Displays the total number of pages for the currently processed form. This allows you to include texts such as'Page x of y' into your output. &SFSY-JOBPAGES& Contains the total page number of all forms in the currently processed print request. &SFSY-WINDOWNAME& Contains the name of the current window (string in the Window field) &SFSY-PAGENAME& Contains the name of the current page (string in the Page field) &SFSY-PAGEBREAK& Is set to 'X' after a page break (either automatic [Page 7] or command-controlled [Page 46]) &SFSY-MAINEND& Is set as soon as processing of the main window on the current page ends &SFSY-EXCEPTION& Contains the name of the raised exception. You must trigger your own exceptions, which you defined in the form interface, using the user_exception macro (syntax: user_exception <exception name >).

Example Forms Available in Standard SAP R/3

SF_EXAMPLE_01 Simple example; invoice with table output of flight booking for one customer SF_EXAMPLE_02 Similar to SF_EXAMPLE_01 but with subtotals SF_EXAMPLE_03 Similar to SF_EXAMPLE_02, whereby several customers are selected in the application program; the form is called for each customer and all form outputs are included in an output request

Smart forms Frequently Asked Questions


Forcing a page break within table loop Create a loop around the table. Put a Command node before the table in the loop that forces a NEWPAGE on whatever condition you want. Then only loop through a subset of the internal table (based on the conditions in the Command node) of the elements in the Table node. Font style and Font size Goto Transaction SMARTSTYLES. There you can create Paragraph formats etc just like in sapscript. Then in your window under OUTPUT OPTIONS you include this SMARTSTYLE and use the Paragraph and character formats. Line in Smartform Either you can use a window that takes up the width of your page and only has a height of 1 mm. Then you put a frame around it (in window output options). Thus you have drawn a box but it looks like a line. Or you can just draw "__" accross the page and play with the fonts so that it joins each UNDER_SCORE. Difference between 'forminterface' and 'global definitions' in global settings of smart forms The Difference is as follows. To put it very simply:

Form Interface is where you declare what must be passed in and out of the smartform (in from the print program to the smartform and out from the smartform to the print program). Global defs. is where you declare data to be used within the smartform on a global scope. ie: anything you declare here can be used in any other node in the form. Smartforms function module name Once you have activated the smartform, go to the environment -> function module name. There you can get the name of funtion module name. The key thing is the program that calls it. for instance, the invoice SMARTFORM LB_BIL_INVOICE is ran by the program RLB_INVOICE. This program uses another FM to determine the name of the FM to use itself. The key thing is that when it calls this FM (using a variable to store the actual name), that the parameters match the paramters in your smartform. Another thing to note is that the FM name will change wherever the SF is transported to. So you need to use the FM to determine the name of the SF. Here is the code that can be use to determine the internal name of the function module: Code: if sf_label(1) <> '/'. " need to resolve by name move sf_label to externalname. call function 'SSF_FUNCTION_MODULE_NAME' exporting formname = externalname importing fm_name = internalname exceptions no_form =1 no_function_module = 2 others = 3. if sy-subrc <> 0. message 'e427'. endif. move internalname to sf_label. endif.

It checks to see if the sf_label starts with a '/', which is how the internal names start. if it does, the name has already been converted. If not, it calls the FM and converts the name. You would then CALL FUNCTION sf_label.

Smartforms FAQ Part Two


Smartforms output difference Problem with Smartforms: in a certain form for two differently configured printers, there seem to be a difference in the output of characters per inch (the distance between characters which gives a layout problem - text in two lines instead of one. It happens when the two printers having different Printer Controls' if you go to SPAD Menu (Spool Administrator Menu) you can see the difference in the Printer Control and if you make the Printer control setting for both the printers as same. then it will be ok. and also u have to check what is the device type used for both the output devices. SmartForms Output to PDF There is a way to download smartform in PDF format. Please do the following: 1. Print the smartform to the spool. 2. Note the spool number. 3. Download a PDF file (Acrobat Reader) version of the spool by running Program RSTXPDFT4 and entering the noted spool number. SmartForm Doublesided printing question Your customer wants your PO SmartForm to be able to print "Terms and Conditinos" on the back side of each page. They don't want to purchase pre-printed forms with the company's logo on the front and terms & conditions on the back. Now this presents an interesting problem. Has anyone else ever had a request like this? If for example there was a 3 page PO to be printed, they want 3 pieces of paper, the front side of each to containe the PO information (page 1, 2, and 3) and the back side of each piece of paper to containg the static "Terms & Conditions" information. Anyone have a clue how to force this out? Easy - page FRONT lists page CONTACTS as next page and CONTACTS lists FRONT as next page. Since CONTACTS does not contain a MAIN window, it will print the contacts info and then continue on to FRONT for the rest of the main items. Additionally, set print mode on FRONT to D (duplex) and set CONTACTS to 'blank' (for both resource name and print mode - this is the only way to get to the back of the page).

Transport Smart Forms How does one transport SMARTFORM? SE01? How do you make sure that both, the SMARTFORM & it's function module gets transported? Or does the FM with same name gets generated automatically in the transported client? A smartform is transported no differently than any other object. if it is assigned to a development class that is atteched to a transport layer, it will be transported. The definition is transported, and when called, the function module is regenerated. This leads to an interetsing situation. On the new machine, it is very likely the function module name will be different than the name on the source system. Make sure, before you call the function module, you resolve the external name to the internal name using the 'SSF_FUNCTION_MODULE_NAME' function module. Typically, generate the SF, then use the pattern to being in the interface. Then change the call function to use the name you get back from the above function module. Smartforms: protect lines in main window. How to protect lines in the main window from splitting between pages? It was easy with SAPscript, but how to do it with SF's. For 4.7 version if you are using tables, there are two options for protection against line break: - You can protect a line type against page break. - You can protect several table lines against page break for output in the main area. Protection against page break for line types - Double-click on your table node and choose the Table tab page. - Switch to the detail view by choosing the Details pushbutton. - Set the Protection against page break checkbox in the table for the relevant line type. Table lines that use this line type are output on one page. Protection against page break for several table lines - Expand the main area of your table node in the navigation tree. - Insert a file node for the table lines to be protected in the main area. - If you have already created table lines in the main area, you can put the lines that you want to protect again page break under the file using Drag&Drop. Otherwise, create the table lines as subnodes of the file. - Choose the Output Options tab page of the file node and set the Page Protection option. All table lines that are in the file with the Page Protection option set are output on one page. In 4.6, Alternatively in a paragraph format use the Page protection attribute to determine whether or not to display a paragraph completely on one page. Mark it if you want to avoid that a paragraph is split up by a page break. If on the current page (only in the main window) there is not enough space left for the paragraph, the entire paragraph appears on the next page.

Details information about SAP Barcodes


A barcode solution consists of the following: - a barcode printer - a barcode reader - a mobile data collection application/program A barcode label is a special symbology to represent human readable information such as a material number or batch number in machine readable format. There are different symbologies for different applications and different industries. Luckily, you need not worry to much about that as the logistics supply chain has mostly standardized on 3 of 9 and 128 barcode symbologies - which all barcode readers support and which SAP support natively in it's printing protocols. You can print barcodes from SAP by modifying an existing output form. Behind every output form is a print program that collects all the data and then pass it to the form. The form contains the layout as well as the font, line and paragraph formats. These forms are designed using SAPScript (a very easy but frustratingly simplistic form format language) or SmartForms that is more of a graphical form design tool. Barcodes are nothing more than a font definition and is part of the style sheet associated with a particular SAPScript form. The most important aspect is to place a parameter in the line of the form that points to the data element that you want to represent as barcode on the form, i.e. material number. Next you need to set the font for that parameter value to one of the supported barcode symbologies. The next part of the equation can be a bit tricky as you will need to get a printer to print that barcode font. Regular laser printers does not normally print barcode fonts, only specialized industrial printers that is specifically designed to support that protocol and that uses specialized label media and heat transfer (resin) ribbon to create the sharp image required for barcodes. Not to fear though, there are two ways to get around this: - You can have your IT department do some research most laser printers can accept a font cartridge/dimm chip (similar to computer memory), called a BarDIMM that will allow a laser printer to support the printing of barcodes. - Secondly, you can buy software that you can upload in your SAP print Server that will convert the barcode symbology as an image that will print on a regular laser printer. I found that this option results in less sharper barcodes. This option is really if you need to convert a large quantity of printers (>10) to support barcodes. Now you have a barcode printed - what next? Well there are two options, depending on your business requirements:

- You can use an existing SAP transaction on a regular workstation and get a barcode wedge reader to hook up between the keyboard and the PC. These wedge readers comes in a wand or scanner format. There are even wireless wedge scanners available that allows you to roam a few yards from the workstation to scan a label. This approach is mostly used where you want to prevent human errors in typing in long material, batch or serial numbers in receiving or issuing of material. The problem is that it's just replacing the keyboard input and you are basically locked down in one location and have to bring all the material to that location to process. - Another solution is to use SAPConsole transactions or write your own ABAP Dialog programs that will fit onto a barcode enabled wireless handheld terminal and that will follow the business logic as executed on the shop floor. These programs are highly complex exercises in industrial engineering and ergonomics because of the limited screen sizes and limited ability to accept keyboard input. The user is instructed step-by-step and only scan and push F-keys to interact with the SAP system. Scan, scan, beep, beep, enter - highly automated.

You might also like