首页 | 文学 | 典籍 | 影视 | 音乐 | 科技 | 人物 | 原创 | 文摘 | 维基文化 | 综合参考

 开放、中立,源自维基百科

Personal tools
Your continued donations keep Wikipedia running!    

ABAP

Mirror of English Wikipedia, the free encyclopedia

Jump to: navigation, search

ABAP (Advanced Business Application Programming) is a high level programming language created by the German software company SAP. It is currently positioned as the language for programming SAP's Web Application Server, part of its NetWeaver platform for building business applications. Its syntax is somewhat similar to COBOL.

Contents

History

ABAP is one of many application-specific fourth-generation languages (4GLs) first developed in the 1980s. It was originally the report language for SAP R/2, a platform that enabled large corporations to build mainframe business applications for materials management and financial and management accounting. ABAP is an abbreviation of Allgemeiner Berichtsaufbereitungsprozessor, the German for "generic report preparation processor." ABAP was one of the first languages to include the concept of Logical Databases (LDBs), which provides a high level of abstraction from the basic database level.

ABAP was intended to be used by end users so that they could manipulate the data themselves, but the 4GL turned out to be too complex for ordinary users. High-level programming skills are still required to create ABAP programs.

ABAP remains the language for creating programs for the client-server R/3 system, which SAP first released in 1992. As computer hardware evolved through the 1990s, more and more of SAP's applications and systems were written in ABAP. By 2001, all but the most basic functions were written in ABAP. In 1999, SAP released an object-oriented extension to ABAP called ABAP Objects, along with R/3 release 4.5.

SAP's most recent development platform, NetWeaver, supports both ABAP and Java.


Example

From SAP NetWeaver:

*-----------------------------------------------------------------------
* set an exclusive lock at level object-type & object-id
*-----------------------------------------------------------------------
  IF NOT lf_bapi_error = true.
    IF ( NOT istourhd-doc_type IS INITIAL ) AND
       ( NOT istourhd-doc_id IS INITIAL ).

      CALL FUNCTION 'ENQUEUE_/DSD/E_HH_RAREF'
           EXPORTING
                obj_typ        = istourhd-doc_type
                obj_id         = istourhd-doc_id
           EXCEPTIONS
                foreign_lock   = 1
                system_failure = 2
                OTHERS         = 3.
      IF sy-subrc <> 0.
*       terminate processing...
        lf_bapi_error = true.
*       ...and add message to return table
        PERFORM set_msg_to_bapiret2
             USING    sy-msgid gc_abort sy-msgno
                      sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
                      gc_istourhd gc_enqueue_refdoc space
             CHANGING lt_return.
      ENDIF.
    ENDIF.
  ENDIF.    " bapi error

See also

External links