SAP AND ABAP TIPS AND FACTS

Friday, February 29, 2008

Calling a Browser from ABAP

Calling a Browser from ABAP
The following function modules can be used to call a browse from ABAP.
  • WS_EXECUTE
  • cl_gui_frontend_services=>execute
  • CALL_BROWSER

Please see the cod below.

REPORT ZBROWSER1 .
DATA: BEGIN OF URL_TABLE OCCURS 10,
d(50),
END OF URL_TABLE.
data: d_url1(100),
d_url2(100).
move: 'http://www.sap.com' to d_url1,
'http://abaplovers.blogspot.com' to d_url2.
URL_TABLE-d = 'http://www.abaplovers.blogspot.com'.
APPEND URL_TABLE.
URL_TABLE-d = d_url1.
APPEND URL_TABLE.
URL_TABLE-d = d_url2.
APPEND URL_TABLE.
LOOP AT URL_TABLE.
SKIP. FORMAT INTENSIFIED OFF.
WRITE: / 'Single click on '.
FORMAT HOTSPOT ON.FORMAT INTENSIFIED ON.
WRITE: URL_TABLE. HIDE URL_TABLE.
FORMAT HOTSPOT OFF.FORMAT INTENSIFIED OFF.
WRITE: 'to go to', URL_TABLE.
ENDLOOP.
CLEAR URL_TABLE.
AT LINE-SELECTION.
IF NOT URL_TABLE IS INITIAL.
CALL FUNCTION 'WS_EXECUTE'
EXPORTING
program = 'C:\Program Files\Internet Explorer\IEXPLORE.EXE'
commandline = URL_TABLE
INFORM = ''
EXCEPTIONS
PROG_NOT_FOUND = 1.
IF SY-SUBRC <> 0.
WRITE:/ 'Cannot find program to open Internet'.
ENDIF.
ENDIF.


REPORT ZBROWSER .
call method cl_gui_frontend_services=>execute
exporting
document = 'http://www.sap.com'
exceptions
others = 1.


REPORT ZBROWSER2 .
CALL FUNCTION 'CALL_BROWSER'
EXPORTING
URL = 'http://www.abaplovers.blogspot.com'
WINDOW_NAME = 'New '
NEW_WINDOW = 'X'
* BROWSER_TYPE =
* CONTEXTSTRING =
* EXCEPTIONS
* FRONTEND_NOT_SUPPORTED = 1
* FRONTEND_ERROR = 2
* PROG_NOT_FOUND = 3
* NO_BATCH = 4
* UNSPECIFIED_ERROR = 5
* OTHERS = 6
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Thursday, February 28, 2008

OLE AUTOMATION IN ABAP PART 3

OLE AUTOMATION PART 3 DownLoad PDF
In this post we will see the Color code for Excel Cells by using SAP OLE.
Color code for ABAP is shown below, please use the numeric value as given in the figure below. For example if you want the interior color of the Excel cell to be of the color Cyan then use the code 8.





OLE AUTOMATION IN ABAP PART 2

OLE AUTOMATION IN ABAP PART 2

DownLoad PDF
The following ABAP key words control the applications:

CREATE OBJECT
SET PROPERTY
GET PROPERTY
CALL METHOD
FREE OBJECT


The Desktop application serves as the OLE server to the calling ABAP program. For example when the ABAP program makes calls to the OLE application the SAPGUI servers as the client.
The create statement generates the object of this class. The following return code values can be encountered.

SY-SUBRC = 0:
Object successfully generated.

SY-SUBRC = 1:
SAPGUI communication error.
SY-SUBRC = 2:
SAPGUI function call error. The frontend ports of SAP’s OLE implementation modules
are implemented only under Windows and Apple Macintosh.
SY-SUBRC = 3:
The OLE-API call resulted in an error - possibly a storage space problem.
SY-SUBRC = 4:
The object is not registered with SAP.



Note that for each OLE object there has to be a variable holding handle data for that object. The type-pool “ole2” defines the handle variable data of the type ole2_object. For all the OLE automation programs “OLE2INCL” include should be used.
Please find below some examples of setting the properties of fonts, cell borders and colors.
Font Properties.
SET PROPERTY OF name_font 'Name' = 'Times New Roman' .
SET PROPERTY OF size_font 'Size' = '12' .
SET PROPERTY OF bold_font 'Bold' = '0' . "Not bold
SET PROPERTY OF Italic_font 'Italic' = '0' . "Not Italic
SET PROPERTY OF underline_font 'Underline' = '0' . "Not underlined

Paragraph Formatting
SET PROPERTY OF allignment_parformat 'Alignment' = '3' . "Justified

Similarly for EXCEL
DATA: d_excel TYPE ole2_object ,
d_cell1 TYPE ole2_object ,
d_cell2 TYPE ole2_object ,
d_cells TYPE ole2_object ,
d_range TYPE ole2_object ,
d_font TYPE ole2_object ,
d_interior TYPE ole2_object ,
d_columns TYPE ole2_object ,
d_charts TYPE ole2_object ,
d_chart TYPE ole2_object ,
d_charttitle TYPE ole2_object ,
d_charttitlech TYPE ole2_object ,
d_chartob TYPE ole2_object .
Sample code
CREATE OBJECT d_excel 'EXCEL.APPLICATION' .
SET PROPERTY OF d_excel 'Visible' = 1 .
GET PROPERTY OF d_excel 'Workbooks' = gs_wbooklist .
Formatting the Excel Cells
GET PROPERTY OF d_cell1 'Font' = d_font .
SET PROPERTY OF d_font 'Underline' = 2 .
SET PROPERTY OF d_font 'Bold' = 1 .
SET PROPERTY OF d_cell1 'HorizontalAlignment' = -4108 .
GET PROPERTY OF d_cell1 'Interior' = d_interior .
SET PROPERTY OF d_interior 'ColorIndex' = 15 . >>>>>>>>>> Check Ole Automation part 3
SET PROPERTY OF d_interior 'Pattern' = -4124 .
SET PROPERTY OF d_interior 'PatternColorIndex' = -4105 .
Folor Color Code

Ole Automation part 3

Wednesday, February 27, 2008

OLE AUTOMATION IN ABAP PART 1

OLE AUTOMATION IN ABAP PART1>DownLoad PDF


Transactions associated with OLE in SAP
  • OLE
  • SOLE
Run Transaction OLE the following screen will be displayed.



In the above transaction you can start and stop each application to check if it has been registered.

Run transaction SOLE to get a list of all the OLE applications registered in your system. You can maintain these applications here.



The above applications are stored in the table TOLE.

The following SAP tables are associated with OLE.

TOLE OLE Applications
OLELOAD OLE type Information load
SWOTOLE Workflow Object Types OLE Applications
SWOTTOLE Workflow Object Types Texts OLE Applications
TOLET Workflow Object Types Texts OLE Applications

See Part - 2

OLE Automation

OLE Automation an Example

Please see the report shown below. We will see more of OLE automation tomorrow. The following report shows how to send the output of ABAP report to EXCEL. It shows the various formatting options for excel sheet like borders of cells, font, bold, Cell color, using ABAP OLE automation.
http://abaplovers.blogspot.com/2008/02/ole-automation-in-abap-part-3.html
Related topics
OLE Automation Part 1
OLE Automation Part 2
OLE Automation Part 2

Tuesday, February 26, 2008

Function Module POP UP TO CONFIRM

Function Module 'POPUP_TO_CONFIRM'.

Another function module that is used frequently is 'POPUP_TO_CONFIRM' it is used as follows.

REPORT ZEX_POPUPTOCONFIRM .

*-------------------------Data Declaration-----------------------------*

Data: d_response(1). " Response from popup

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TITLEBAR = 'Create Sales Order '

* DIAGNOSE_OBJECT = ' '

TEXT_QUESTION = 'Create sales order?'

TEXT_BUTTON_1 = 'YES'(001)

* ICON_BUTTON_1 = ' '

TEXT_BUTTON_2 = 'NO'(002)

* ICON_BUTTON_2 = ' '

* DEFAULT_BUTTON = '1'

DISPLAY_CANCEL_BUTTON = 'X'

* USERDEFINED_F1_HELP = ' '

* START_COLUMN = 25

* START_ROW = 6

* POPUP_TYPE =

IMPORTING

ANSWER = d_response

* TABLES

* PARAMETER =

EXCEPTIONS

TEXT_NOT_FOUND = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.


Write Statement

The Write Statement.

REPORT ZEXWRITEDEMO .



DATA: number TYPE p VALUE '-1234567.89' DECIMALS 2,

len TYPE i,

pos TYPE i,

text(10) TYPE c VALUE '1234567890',

integer TYPE i VALUE 1234567890,

g(5) TYPE c VALUE 'Hello', f(5) TYPE c VALUE 'Dolly',

time TYPE t VALUE '154633',

float TYPE f VALUE '123456789.0',

pack TYPE p VALUE '123.456' DECIMALS 3,

flag1 TYPE c VALUE ' ',

flag2 TYPE c VALUE 'X',

flag3(5) TYPE c VALUE 'Xenon'.


* simple WRITE statement


WRITE 'Hello, here I am!'.


SKIP 2.


* standard output format


WRITE: 'Number', number, 'is packed'.


SKIP 2.


* positioning


WRITE 'First line.'.

WRITE 'Still first line.'.

WRITE /'Second line.'.

WRITE /13 'Third line.'.


SKIP 2.


len = 10.

pos = 13.

WRITE 'The string ------------ appears in the text.'.

WRITE AT pos(len) text.


SKIP 2.


* cutting


WRITE: (5) integer, /(5) text.


SKIP 2.


* no empty lines in lists


WRITE: 'One',

/ ' ',

/ 'Two'.


SKIP 2.


* formatting


WRITE: g, f.

WRITE: /10 g,

/ f UNDER g.

WRITE: / g NO-GAP, f.


SKIP 2.


WRITE: time,

/(8) time USING EDIT MASK '__:__:__'.


SKIP 2.


WRITE: '000123',

/ '000123' NO-ZERO.


SKIP 2.


WRITE float EXPONENT 3.


SKIP 2.


WRITE pack DECIMALS 2.


SKIP 2.


WRITE: / pack ROUND -2,

/ pack ROUND -1,

/ pack ROUND 1,

/ pack ROUND 2.


SKIP 2.


WRITE: sy-datum,

/ sy-datum YYMMDD.


SKIP 2.


* icons and symbols


INCLUDE .

INCLUDE .

WRITE: / 'Telephone symbol:', sym_phone AS SYMBOL.

SKIP.

WRITE: / 'Alarm icon: ', icon_alarm AS ICON.


SKIP 2.


* checkboxes


WRITE: / 'Flag 1 ', flag1 AS CHECKBOX,

/ 'Flag 2 ', flag2 AS CHECKBOX,

/ 'Flag 3 ', flag3 AS CHECKBOX.


Monday, February 25, 2008

Displaying Messages in ABAP

Displaying Messages in ABAP
DownLoad PDF

In ABAP you need to display a message on various occasions, for example if the user has input erroneous data then a message needs to be displayed, instructing the user to rectify the error, or after a certain task is accomplished, you may need to display a message.

A message class is used to display messages from the program and the transaction used for this purpose is SE91. The messages are stored in the table T100. Examples of calling a message are shown below.

You may need to create a message class for displaying your message. You need to check if a message class has already been created by other ABAP colleagues. Note that messages classes would already exist in your system, but you may have to create a new class for your programs.

To create a new message class type the name following the naming standards and type the name as shown in the figure below. Alternatively you can goto transaction SE91 to create a new message class.

In this example we will type the name as shown below and double click on the name 'ZEXERCISE1'.



The following prompt will appear. Click on Yes.



Click on Yes again.



Type an appropriate short text.



Create a $tmp object



Type a message that you would like to display. Please note the number associated with the message. In this case the message is '000'.



We have created 3 messages.



We now need to display these messages in our program. We will make changes in the Create Sales order program as shown below.

Some examples of calling a message.

1. MESSAGE xnnn.
2. MESSAGE ID id TYPE mtype NUMBER n.
3. MESSAGE xnnn(mid).

There are six kinds of message type:

A (Abend)
Termination
E (Error)
Error
I (Info)
Information
S (Status)
Status message
W (Warning)
Warning
X (Exit)
Termination with short dump

See the syntax shown below for displaying a message in your programs.

MESSAGE ID id TYPE mtype NUMBER n.

ID
message class in our case ZEXERCISE1 or ZEXERCISE2
TYPE
message type (A,E,I,S,W,X)
NUMBER
message number

Example

MESSAGE ID 'ZEXERCISE' TYPE 'S' NUMBER '000'.




Once the program is run the messages will be displayed as follows. Choose the one that suits your requirement.





The following message is displayed just to show as to how to explicitly call another message class.

Friday, February 22, 2008

SALES ORDER RELATED BAPIs

SALES ORDER RELATED BAPIsDownLoad PDF


The following SAP BAPI can be used to copy an existing Sales Order into a new Sales Order.

BAPI_SALESDOCUMENT_COPY.

We will see how to test this BAPI. You will find instructions on how to insert the BAPI in an ABAP program/report at CODE FOR BAPI



As we need to run 2 BAPIs in sequence, please follow the menu path as shown below.

Function module-------->Test---------->Test Sequences



Enter the BAPI names as shown below.



Enter the Sales order number and order type specific to your system. And execute the BAPI.



Sales order number as shown below is generated.



Press F3 or the back button



Save the sequence name



Check the copied Sales Order.

Thursday, February 21, 2008

BAPI Sales Order Create Code

Bapi Sales Order Create Code

We saw in the earlier example as to how to create a sales order from the SE37 interface. Now we need to create a program and call the BAPI to create sales orders. Later we will discuss ways to call a BAPI from a non-sap system.



Given an appropriate name to the program. Please follow the naming conventions as per your company. ABAP programs should always start with a 'Z' or a 'Y'.



Enter suitable description.



Create a $tmp objects or create a transport request. Transport requests would be covered in the later tutorials.



Follow the menu path EDIT----->Pattern



Enter the name of the BAPI as shown below.



The inserted BAPI is shown below.



We now need to get the import parameters, export parameters and the tables.
Note: Take care that the data declaration in the program for the above mentioned parameters matches exactly as given in the BAPI. To ensure that please open the BAPI using transaction SE37 and copy the exact names of the parameters from the BAPI structure.

If this is not followed your program will give an 'ABAP DUMP'.



Check the Import parameters



The following figure shows the import parameter BAPISHEAD and we need to declare a structure in our ABAP program as follows.

Data: st_BAPISDHEAD like BAPISDHEAD, " Sales Order Header Data

Make sure you follow the ABAP naming conventions.



Similarly for tables pick up the names from the function module.

Data: st_BAPISDHEAD like BAPISDHEAD, " Sales Order Header Data
ta_BAPIITEMIN like BAPIITEMIN occurs 0 with header line, " Ln item
ta_BAPIPARTNR like BAPIPARTNR occurs 0 with header line, " Partner
d_BAPIRETURN1 like BAPIRETURN1, " Bapi return msg
d_vbeln like bapivbeln-VBELN. " Sales Order Number






The complete program is given below. Please make sure that you use the data specific to your system. In the following some of the values are hard coded. You need to use variables and pick up the values.

Please note in the following program, sold to party (SP) has been entered as 'AG' and ship to party (SH) as 'RG'.

SP--------AG
SH--------RG

Order type 'OR' as 'TA'

Please use TA instead of OR

Also if you set the
* CONVERT_PARVW_AUART = 'X' parameter to 'X' you can use sold to party as SP and ship to party as SH.

REPORT ZEX_BAPISALESORDCRT .

*-------------------------Data Declaration-----------------------------*
Data: st_BAPISDHEAD like BAPISDHEAD, " Sales Order Header Data
ta_BAPIITEMIN like BAPIITEMIN occurs 0 with header line, " Ln item
ta_BAPIPARTNR like BAPIPARTNR occurs 0 with header line, " Partner
d_BAPIRETURN1 like BAPIRETURN1, " Bapi return msg
d_vbeln like bapivbeln-VBELN. " Sales Order Number


* Move the data to create sales order in the repective parameters------*
move: 'TA' to st_BAPISDHEAD-DOC_TYPE, " Sales document type
'15493' to st_BAPISDHEAD-PURCH_NO_C,
'00010' to ta_BAPIITEMIN-ITM_NUMBER,
'Y-351' to ta_BAPIITEMIN-MATERIAL,
'1100' to ta_BAPIITEMIN-PLANT,
'1' to ta_BAPIITEMIN-REQ_QTY,
'AG' to ta_BAPIPARTNR-PARTN_ROLE, " Sold to Party
'0000007777' to ta_BAPIPARTNR-PARTN_NUMB.
* Append the internal tables-------------------------------------------*
append ta_BAPIPARTNR.
clear ta_BAPIPARTNR.
append ta_BAPIITEMIN.
clear ta_BAPIITEMIN.
* Move ship to party---------------------------------------------------*
move: 'RG' to ta_BAPIPARTNR-PARTN_ROLE, " Ship to party
'0000007777' to ta_BAPIPARTNR-PARTN_NUMB.
* Append the internal tables-------------------------------------------*
append ta_BAPIPARTNR.
clear ta_BAPIPARTNR.


* Call the Bapi to create the sales order

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT1'
EXPORTING
ORDER_HEADER_IN = st_BAPISDHEAD
* WITHOUT_COMMIT = ' '
* CONVERT_PARVW_AUART = ' '
IMPORTING
SALESDOCUMENT = d_vbeln
* SOLD_TO_PARTY =
* SHIP_TO_PARTY =
* BILLING_PARTY =
RETURN = d_BAPIRETURN1
TABLES
ORDER_ITEMS_IN = ta_BAPIITEMIN
ORDER_PARTNERS = ta_BAPIPARTNR
* ORDER_ITEMS_OUT =
* ORDER_CFGS_REF =
* ORDER_CFGS_INST =
* ORDER_CFGS_PART_OF =
* ORDER_CFGS_VALUE =
* ORDER_CCARD =
* ORDER_CFGS_BLOB =
* ORDER_SCHEDULE_EX =
.

if d_vbeln <> space.
write: 'Sales order No. ', d_vbeln.
endif.

Wednesday, February 20, 2008

BAPI Sales Order Create

BAPI to Create Sales Order. DownLoad PDF


We will see the functionality of BAPI_SALESORDER_CREATEFROMDAT1.

As shown below, run transaction SE37.



and enter the name of the BAPI BAPI_SALESORDER_CREATEFROMDAT1.



Press F8 or click on execute. First we need to enter the header data.



Click on the single entry Icon as shown below.



Enter doc type and purchase order number. This will depend on your requirement and the data will vary from system to system.

Order type ---------- 'OR'



Once the header data is entered we need to enter the line item data. Please note that in this example we would be entering minimum data required just to create a sample sales order. In real life scenario you need to enter all the fields as per the companies requirement.



Enter the following fields.

Item Number ---- 000010
Material----------y-351
Plant-------------1100
Required quantity 1
Purchase Order number 15393

Please not that all the above data is system specific and you need to enter the values available in your system. You can refer to an existing sales order with the help of transaction VA03.



Need to enter the Partner Data. Namely Sold to Party and Ship to Party.



Enter Sold to Party indicator 'SP'
Ship to Party as 'SH'
Enter the sold to and ship to party number as 7777





Go back and Save the data. This will help you to create another sales order just by retrieving the values again by clicking on Test Data button. Or in case you make a mistake then you can just change the erroneous data.



Once you save the data. Press F8 or click on execute. As you can see below. Sales Order 7708 is created. Again this number will be different in your system.



Now you need to check the newly created Sales Order. Type /NVA02 or /NVA03 as the transaction code.



Enter the sales order number.



Press enter. The new sales order is displayed.













ABAP TIPS

PREVIOUS                  NEXT                    RANDOM

 ABAP TIPS


Since your web browser does not support JavaScript, here is a non-JavaScript version of the image slideshow:

 ABAP TIPS
Always specify your conditions in the Where-clause instead of checking them yourself with check statements. The database system can then use an index (if possible) and the network load is considerably less.


 ABAP TIPS
For all frequently used Select statements, try to use an index. You always use an index if you specify (a generic part of) the index fields concatenated with logical Ands in the Select statement's Where clause. Note that complex Where clauses are poison for the statement optimizer in any database system.


 ABAP TIPS
If there exists at least one row of a database table or view with a certain condition, use the Select Single statement instead of a Select-Endselect-loop. Select Single requires one communication with the database system, whereas Select-Endselect needs two.


 ABAP TIPS
It is always faster to use the Into Table version of a Select statement than to use Append statements.


 ABAP TIPS
To read data from several logically connected tables use a join instead of nested Select statements. Network load is considerably less.


 ABAP TIPS
If you want to find the maximum, minimum, sum and average value or the count of a database column, use a select list with aggregate functions instead of computing the aggregates yourself. Network load is considerably less.


 ABAP TIPS
If you process your data only once, use a Select-Endselect-loop instead of collecting data in an internal table with Select Into Table. Internal table handling takes up much more space.


 ABAP TIPS
Use a select list or a view instead of Select * , if you are only interested in specific columns of the table. Network load is considerably less.


 ABAP TIPS
For all frequently used, read-only tables, try to use SAP buffering. Network load is considerably less.


 ABAP TIPS
Whenever possible, use array operations instead of single-row operations to modify your database tables. Frequent communication between the application program and database system produces considerable overhead.


 ABAP TIPS
Whenever possible, use column updates instead of single-row updates to update your database tables. Network load is considerably less.


 ABAP TIPS
Instead of using nested Select loops or FOR ALL ENTRIES it is often possible to use subqueries. Network load is considerably less.


 ABAP TIPS
Use the special operators CO, CA, CS, instead of programming the operations yourself. If ABAP/4 statements are executed per character on long strings, CPU consumption can rise substantially.


 ABAP TIPS
Some function modules for string manipulation have become obsolete and should be replaced by ABAP/4 statements or functions: STRING_CONCATENATE... -> CONCATENATE, STRING_SPLIT... -> SPLIT, STRING_LENGTH -> strlen(), STRING_CENTER -> WRITE...TO...CENTERED, STRING_MOVE_RIGHT -> WRITE...TO...RIGHT-JUSTIFIED


 ABAP TIPS
Use the CONCATENATE statement instead of programming a string concatenation of your own.


 ABAP TIPS
If you want to delete the leading spaces in a string, use the ABAP/4 statement SHIFT...LEFT DELETING LEADING... .Other constructions (with CN and SHIFT...BY SY-FDPOS PLACES, with CONDENSE if possible, with CN and ASSIGN CLA+SY-FDPOS(LEN) ...) are not as fast. In any case, avoid using SHIFT inside a WHILE-loop!


 ABAP TIPS
Use the SPLIT statement instead of programming a string split yourself.


 ABAP TIPS
Use the strlen( ) function to restrict the DO loop to the relevant part of the field, e.g. when determinating a check-sum.


 ABAP TIPS
Use "CLEAR f WITH val" whenever you want to initialize a field with a value different from the field's type-specific initial value.


 ABAP TIPS
Try to keep the table ordered and use binary search or used a table of type SORTED TABLE. If TAB has n entries, linear search runs in O( n ) time, whereas binary search takes only O( log2( n ) ).


 ABAP TIPS
A dynamic key access is slower than a static one, since the key specification must be evaluated at runtime. However, for large tables the costs are dominated by number of comparison needed to locate the entry.


 ABAP TIPS
If you need to access an internal table with different keys repeatedly, keep your own secondary indices.With a secondary index, you can replace a linear search with a binary search plus an index access.


 ABAP TIPS
LOOP ... WHERE is faster than LOOP/CHECK because LOOP ... WHERE evaluates the specified condition internally. As with any logical expressions, the performance is better if the operands of a comparison share a common type. The performance can be further enhanced if LOOP ... WHERE is combined with FROM i1 and/or TO i2, if possible.


Always use Pretty Printer and Extended Program Check before releasing the code. Do not leave unused code in the program. Comment the code thoroughly. Align the comments and the Code. Follow the SAP Standards and SAP Best Practices guidelines. It’s a good practice to take a dump of the code on your local drive.

Ole Automation Part1
Ole Automation Part 2
Processing Blocks in ABAP
Simple ABAP Report
ALV Grid - Changing Colors
ALV Report Example
Creating Variants For ABAP Reports
Recording BDC using Transaction
Sales Document Flow in ABAP
User Exits in SAP SD
SAP ABAP Naming Standards
SAP SD Tables
SAP ABAP Data Dictionary Tables
MM Important Transaction Codes in SAP
Passing g Data From One ABAP Program to Another
ABAP Compute Add Collect and Append
SAP ABAP Determining Attributes of Data
SAP ABAP Editor Icons
BAPI for Displaying Material Data
BAPI to get customer bank details
EDI Outbound Process
SAP EDI Process Overview
Function Module for Vendor Bank details
SAP IDOC
Creating a Valid Password in SAP
SAP BADIs Introduction
SAP ABAP MACROS
POP UP function Module to Confirm and Save Data
Select Options
BAPI for availability check
String to Numerical
SAP Goods Movement Process
Getting a List of Plants for a Material
SAP R3 Clients Concept
ABAP Adobe Forms
Authorization Object Tables
SAP Industry Specific Solutions

Sap Scripts and SmartForms Bar Codes
Standard Reports and Sap Scripts
Important Standard Reports in SAP
Abap Tricks and Tips
Bapi Sales Order
BAPI Purchase Order
Creating Function Modules in SAP
Creating Tables in SAP
Finding User Exits in SAP
Function Module Create Text and Read Text
Important Transaction Codes in SAP
ABAP Function Module for Submitting a Program
ABAP Game Tic Tac Toe
ABAP Internal Table To Excel Sheet
ABAP Function Module to create Directory
Different Types of Menus in SAP
Function Modules in SAP to check Loged in Users
ABAP Function Module for Adding Days to Dates
Call a Transaction From a Remote System
SAP MM simple Procurement Cycle
BAPI Material EDIT
Finding Decimal Places in Currency
Getting negative sign before a number in ABAP
Program Editor Lock Unlock
Restricting Select Options
List of BAPIs in the system
SAP Function Module Scramble a String
LSMW
POP up table contents on the screen
SAP R3 Bookmarking Websites
Stock Requirements List Function Module
Retail Transaction Codes
ABAP Debugger Break Points
ABAP Debugger WatchPoints
Drill Down Reports Concept
Creating a HOT SPOT
Interactive Programs and Hide Technique
String Concatenate
Get Week of the Year
SAP ABAP to Add Days to a Date
Add Months to a Date
Get Month in the Year
Display Clock

ABAP Code For Progress BAR
ABAP Function Module For Caluclator
ABAP Function Module For Calender
Displaying Messages in ABAP
Function Module Pop Up To Confirm
Conversion Routines in SAP
SAP ABAP Authorization
SAP ABAP Module Pool Tutorial
SAP ABAP RFC

Finding Path to SAP Transaction in Menu
SAP Purchasing Documents
SAP and ABAP Shortcuts
Logical Databases
Advantages of Logical Databases
Copy to Clipboard
BAPI Create Material
Finding and Running Programs in ABAP
Program Syntax Check and Extended Syntax Check
Select Options upper lower case
BAPI Sales Order Simulate
Get PLANT and Description for a Material
MRP List Function Module
Production Planning and Controlling
Applications in SAP R3
Tool Based Reports
Important Transaction Codes in SAP
SAP Stock per Bin
Pop Up a Calender
Module to Read a File
Module to Reverse A String
Run an Executable Program with Parameters
Program for POP up Screen
Printing Selection Parameters for a Report
Uploading and DownLoading a Report
SAP ABAP Version Management
SAP ABAP Short Cuts
List of Important System Variables

ABAP MACROS
ABAP Calling a File Selector
Some Important Function Modules
ABAP String Operations

ABAP Function Module to Check Validity of Date
Transfer Internal Table Contents to a File

SAP ABAP Program Types
BAPI to Read Customer Data
Checking Validity of Date
Download to Application Server
ABAP Debugger Breakpoint and Watchpoint
BAPI to get Company Code Details
Creating Material Using BAPI part 2
Generating a Valid Password
Logical Databases Structure
Making Fields OBligatory in Selection Screen
ABAP Views
Getting a Company Code for a Plant
Importing contents of Clipboard in SAP
Getting a Plant for a Material
Plant Material and Storage Location
SAP Production Planning Standard Reports
NetWeaver Components
Supported Databases and Operating Systems