ABAP stands for Advanced Business Application Programming.  It is a programming language developed by SAP.  SAP is a German company that develops ERP (Enterprise Resource Planning System) systems.  These systems are used by companies to track all information related to the business integrating finance, sales, and materials data.  ABAP/4 is the programming language used for the thousand tiny embedded programs called transactions that make up the application.  The /4 means it is a fourth generation language.

ABAP is code written in an interpretive language similar to COBOL in syntax.  The language can be coded to look almost like COBOL.  According to our text, it is a COBOL and Pascal cross-breed.  Its use allows SAP customers to extend the functionality of the base product.

SAP is very flexible, it can be used for specific business functions rather than the whole enterprise and can be modified for the companies specific needs.  Every SAP installation has its own specific configuration and set of functions.  The cost of customizing is that when upgraded every customization must be identified in the ABAP code and changes made.  This means upgrades are very costly.  Customization should be avoided for easier upgrades in the SAP software.

A work process connects with the database and has an ABAP language interpreter and processor.

There are lots of jobs for ABAP programmers.  There are many web sites of headhunters and even people's resumes.  There are also a lot of consulting companies with websites advertising they do SAP work.

Publications are available on the web and they are pretty technical.  There are a lot of sites for programmers to share information and get help.  Some examples are http://www.ibm.com/erp/sap/technology/bridge.htm, which is called the SAP technical journal.  Often these sites have connections to books, magazines, educational seminars, jobs, news,etc. as well as discussion groups, like http://www.techmailings.com/cgi-bin/tm_viewlist.pl?4311,software_list.  Of course they all want you to sign up with them and sometimes you can't get any information unless you do.  Sometimes these sites will have a dictionary or encyclopedia.  I was really excited about this but it only gives very short definitions with no detail.  For example look at http://www.techmailings.com/software.html under the a2z dictionary.  It is by Andovernews. (Scroll down to see it).

Another technical site is http://www.sapdn.com which is the SAP developer network.  They encourage exchange of articles written by members.  Some titles with ABAP were:  A simple ABAP function to calculate duration, Using SAP R/3 Security and Authorizations in your ABAP programs, Using dialog boxes to improve user interaction in your ABAP programs, and Calling external programs within ABAP.  These are written by programmers and you must be a programmer to understand what they are talking about evidently.  The one on dialogue boxes tells you how to use these to enhance the usability of a program.  It includes examples of code and how to test it.  It evidently just shows you what it will look like to the user.  Then the programmer still needs to enter the proper syntax using the call function command. (?)  It is good to know this stuff is out there if any of us become programmers.

There are WebPages that are nothing but links to other sites.  Try http://www.cetus-links.org/top_languages.html has 18800 links on "Objects and Components.  Under ABAP Objects there were 43 links.  These are listed by type such as online magazines.  A good one I found here was http://www.intelligenterp.com/.  It has news, erp events, an encyclopedia, books, columns, feature articles and a techsearch feature.  Under the encyclopedia for ABAP, I got: ABAP/4 - the development workbench for SAP's R/3 software suite.  Under techsearch you get CMP publications.  These are articles in newspaper type magazines like info week, techweb news, etc.  Articles are full text for what that is worth, they are usually only a page long anyway).  I brought several with me.

One of the most informative sites:  http://www.sap-ag.de/solutions/technology/index.htm  There was some information on about the ABAP Workbench.  It is more than just the language.  It is a set of professional tools used to extend R/3 applications to add enhancements and meet individual needs.  It can be used independent of SAP software to develop your own applications.  The ABAP programming language has evolved to include object-oriented elements.  ABAP Objects is a new generation of the APAB virtual machine and allows component integration using ActiveX or JavaBeans.  Release 4 of R/3 will contain object-oriented enhancements to ABAP programming language.  This will improve reusability, maintenance and quality of the code including productivity.  In ABAP there are different types of data such as integer, character field, structure or internal table.  The workbench allows developers to quickly and easily customize and extend existing SAP applications or create new applications to meet their needs.  It offers the power, versatility and flexibility needed to develop diverse client server applications.  ABAP is easy to learn and read.  Developers do not need to know a specific technological environment to write applications.  ABAP is keyword-oriented.  It supports prototyping-based program development and structured programming.  The syntax enables programmers to quickly and easily address mission critical client/server application needs.

For information on object-oriented ABAP http://www.cetus-links.org/oo_abap_objects.html  ABAP Objects was created for an object-oriented extension fully compatible and allows implementation of object-oriented coding.

Another site of links is http://juliet.stfx.ca/people/fac/infosys/abap.htm and it has ABAP references.  There is a complete listing of keywords,(from what I can gather, these are commands like the old DOS commands that I knew and loved).  The syntax and meaning is given.  For example Add.  the variants are given (different ways to use it), then for each variant: its effect, examples, references to related keywords, such as compute, and runtime errors (errors that can commonly occur).  This would be handy for a programmer.  Also under this site is a slideshow some professor used in his class.  Without the accompanying lecture, I could not get a lot out of it.  There was information on the workbench mostly.  It took you through some "easy" programming exercises.  A program is built of statements.  These begin with a keyword like report, data, write, and end with a period.  Variables are used as temporary storage spaces for data.  It only exist while the program is executing.  Information is given on how to set these up.  The different data types are discussed.  Conditional operators are illustrated.

Problems with ABAP are found on the sites for programmers, like http://www.bgs.dk/tips.htm  For example the portability of ABAP/4 is a problem discussed.  The programs can be supported by many different systems.  But in a few cases transfer of programs to other platforms could cause problems.  Examples are given such as upper and lower case letters are not always translated properly.   Recent changes to the language at http://www.members.tripod.com/abap4/  Another more concise listing of keywords is at this site as well. Reports are given on topics such as "how to read a registry entry on the client from ABAP/4 using embedded VB script code and Microsoft's "Windows Scripting Host" , an example of how one can automate nearly everything in windows using WSH and import the data into SAP".

Sites or links for books usually just take you to Amazon and give little information.  http://cma.zdnet.com/book/adap/ch21/ch21.htm was different.  It gave the last chapter of the book Learn ABAP in 21 days.  Topics include foreign keys, matchcodes, formatting elements for selection screens, and screens that interact with the user.

For lack of non-technical information on ABAP, ABAP/4 the workbench will be discussed.  ABAP/4 is used for interactive development of application programs used for reporting, to develop user dialog programs, and customize R/3 to meet client needs.  It divides large programs into several smaller ones, called a modular structure.  Keywords are categorized into four types, declarative (parameters), control (if), operational (call), and modularization, which there are two subtypes, event (initialization), and defining (Form).  Modules are subroutines (internal or external), functions (stored in library of by defined interface), and event handling code blocks.  Reporting uses ABAP/4 Open Sql to extract data from the R/3 database.  There is a selection screen and a list screen which displays the data.