You are on page 1of 7

10/20/2016

SAP ABAP Central: Smartforms OOPS (object oriented)

3

  More    Next Blog»

kumar.smith2009@gmail.com   Dashboard   Sign Out

SAP ABAP Central
Home

SAP ABAP Tutorials

Interview Q&A

Job

Certifications

Monday, 17 October 2016

Search This Blog

Search

Smartforms OOPS (object oriented)
I have not had that much opportunity to work with SmartForms till very recently. I had
already switched to Eclipse & ADT as my primary programming tool and thought I could
get away this, not having to go back to SAPGui based development – and then I
encounter SmartForms! I can’t even use normal day­to­day ABAP Editor tools, can’t use
normal breakpoints, can’t do a where­used, several drill­throughs don’t work – what did I
just get myself into!
After the first one that I volunteered making changes to, we realized I had to do one from
scratch. Here is an opportunity – I moved all the code out to a class and called the class
from within the SmartForm. This way I have all the tools that SAP & ABAP provide to
work with code, I can use the ADT environment, test the data output independent of the
SmartForm, use editor­based breakpoints, etc, etc…
Here is a step by step sample of a pick list printed from a warehouse transfer order.

Blog Archive

▼  2016 (32)
▼  October (9)
MD5 calculation via ABAP and
JavaScript
How To Use VBA Recorded
Code in ABAP
Smartforms OOPS (object
oriented)
Image in Mail body in ABAP
Purchasing Document
Approval Process with
Manual A...

STEP 1 – Create class to collect data

SAPscript forms breakdown
tool

CLASS ztestclass_pick_list DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

Custom function module to get
the dates of last Fr...

  PUBLIC SECTION.
    DATA:
http://sapabapcentral.blogspot.in/2016/10/smartforms­oops­object­oriented.html#more

How to create a custom TAB for
MIGO Item Details
Converting Excel file data with
multiple sheets to...
1/7

 you can follow the steps.       g_vbeln   TYPE vbeln. ►  September (19) ►  August (2) ►  July (1) ►  January (1) ►  2015 (5) ►  2014 (2) ►  2013 (3) ►  2012 (2) Popular Posts How to compare the contents of transport Request? Overview: I got this requirement in my project to compare the contents of each transport.     IF sy­subrc = 0. How to create a custom TAB for MIGO Item Details I have implemented a custom tab in MIGO.html#more 2/7 ...   PRIVATE SECTION.       " Select TO line       SELECT * FROM ltap         WHERE lgnum = @lgnum         AND tanum = @tanum         INTO TABLE @gi_ltap..       g_ltak    TYPE ltak.     METHODS constructor       IMPORTING         lgnum TYPE lgnum         tanum TYPE tanum.10/20/2016 SAP ABAP Central: Smartforms OOPS (object oriented)       g_lgnum   TYPE lgnum. ENDCLASS.     " Select TO header     SELECT SINGLE * FROM ltak       WHERE lgnum = @lgnum       AND tanum = @tanum       INTO @g_ltak. My requirement was to add a new tab named “Warranty” in MIGO.       "Populate stand alone attributes from various sources http://sapabapcentral. Step1 . Selection Screen Variants ­ Part I What are variants? In SAP ABAP reports have a mechanism for entering values for database selection or for performing different calculati. CLASS ZTESTCLASS_PICK_LIST IMPLEMENTATION. * <SIGNATURE>­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+ * | Instance Public Method ZTESTCLASS_PICK_LIST­>CONSTRUCTOR * +­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+ * | [­­­>] LGNUM                          TYPE        LGNUM * | [­­­>] TANUM                          TYPE        TANUM * +­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­</SIGNATURE>   METHOD constructor...       gi_ltap   TYPE SORTED TABLE OF ltap WITH UNIQUE DEFAULT KEY. Luckily this 2 programs came in handy for me..in/2016/10/smartforms­oops­object­oriented.       g_company TYPE char15.blogspot.   PROTECTED SECTION. .

BW.10/20/2016 SAP ABAP Central: Smartforms OOPS (object oriented)       g_lgnum = lgnum. Functional) Consultants Part­II This blog is continuation of Essential Basis for SAP (ABAP. declare only the variables that are already available to the calling program. In this class declare public attributes for the data that you will be retrieving from the SmartForm. ENDCLASS.       " Raise error here     ENDIF.in/2016/10/smartforms­oops­object­oriented. This is the variable that will be used throughout the SmartForm for access to data. From this the class can get the data needed for the report.html#more 3/7 . First in the form interface.blogspot. The difference is in the code and declarations. I have the warehouse and transfer order number.. Mocking DAOs with ABAP Test Double Framework Introduction The sample below is very basic and no real business logic is included because it focuses on the concepts. I will be retrieving the Transfer Order number.     ELSE. Functional) Consultants Part­ I Transport system in SAP is used to move ob. BW. a Company name and Transfer Order Item details... I have a single variable (OB_PICK_DATA) declared with reference to the class I have created. Step 2 – Create the SmartForm When creating the SmartForm. In this example.       g_vbeln = g_ltak­vbeln. create the layout and design as you normally would. In this case.   ENDMETHOD. If the calling program does not already have the data. http://sapabapcentral.       g_company = 'ACME WIDGET Co'. Essential Basis for SAP (ABAP.. For the dependenc. In the global definitions. don’t bother collecting the data and passing it in – that is the job of the class.

10/20/2016 SAP ABAP Central: Smartforms OOPS (object oriented) I also have a Field Symbol declared that will be used to get the line item details for the table LTAP.4 ABAP. And here is the only code that goes into the entire SmartForm! It is hard to imagine why anyone would want to put a break point here! If you are writing this in pre­7.blogspot. you would write this as  CREATE OBJECT ob_pick_data        EXPORTING          lgnum = lgnum http://sapabapcentral.html#more 4/7 .in/2016/10/smartforms­oops­object­oriented.

 there is also the field­symbol <LTAP> even though there is no data being set. If you want to avoid any variable on the SmartForm. This is prevent subsequent error / warning messages stating “Field <ltap>­matnr has no defined value“. "Using Field­Symbol &<LTAP>­TAPOS& &<LTAP>­MATNR&   "OR "Using a variable &L_LTAP­TAPOS& &L_LTAP­MATNR& And step 3 – there is no step 3… just test and use! Another advantage that I have not used yet is that you could set up a test class so that you are covered for immediate testing as well as future regression testing.10/20/2016 SAP ABAP Central: Smartforms OOPS (object oriented)          tanum = tanum. OB_PICK_DATA­>GI_LTAP is a table of Transfer Order Lines that I am assigning to the field­symbol <LTAP>. In this case. you have to reference the attribute as an internal table. Try that with standard SmartForm code! Posted by Sabrina Pinto at 00:00  +3   Recommend this on Google http://sapabapcentral. While this is possible. Another alternative here is to declare a Global Field and have the data going into it instead of assigning.html#more 5/7 . In the individual cells.in/2016/10/smartforms­oops­object­oriented. I feel that a field­symbol being a pointer is the most efficient way to access this data. Note that in the output parameters. you can create an attribute in the class and send the data to that variable. you reference the field­symbol or local variable in this case instead of the object. I have used… Company name: &OB_PICK_DATA­>G_COMPANY& Transfer Order Number: &OB_PICK_DATA­>G_LTAK­TANUM& Warehouse to pick from: &OB_PICK_DATA­>G_LTAK­LGNUM& For a tabular output itself.blogspot. In this case. In the individual text elements. the data can be accessed from the attributes of the class directly or as an element of a structure.

 Simple template. SQL 2 comments: Feleciano Buenavista 18 October 2016 at 02:39 This comment has been removed by the author. Comment as:  Publish   smith (Google) Sign out   Notify me Preview Newer Post Home Older Post Subscribe to: Post Comments (Atom) © 2016 sapabapcentral.html#more 6/7 .10/20/2016 SAP ABAP Central: Smartforms OOPS (object oriented) Labels: ABAP OOP.blogspot. Reply Feleciano Buenavista 18 October 2016 at 02:41 Just WOW! Bookmarked for future reference.com.. Reply Enter your comment. All rights reserved.in/2016/10/smartforms­oops­object­oriented. http://sapabapcentral. Powered by Blogger..

blogspot.10/20/2016 http://sapabapcentral.in/2016/10/smartforms­oops­object­oriented.html#more SAP ABAP Central: Smartforms OOPS (object oriented) 7/7 .