ABAP

Dari Wikipedia Bahasa Melayu, ensiklopedia bebas.

ABAP (Advanced Business Application Programming) adalah bahasa pengaturcaraan tahap tinggi yang dicipta oleh syarikat pengaturcaraan JermanSAP. Ia kini diletakkan, seiring dengan Java yang baru diperkenalkan, sebagai bahasa untuk memprogram SAP Web Application Server, sebahagian dari pelantar NetWeavernya bagi membina applikasi perniagaan. Sintaxnya agak serupa dengan COBOL.

Jadual isi kandungan

[Sunting] Sejarah

ABAP adalah salah satu daripada bahasa generasi keempat applikasi khusus yang pertama kali dimajukan pada 1980-an. Ia pada asalnya bahasa lapuran bagi SAP R/2, pelantar yang membolehkan koperasi besar bagi membina applikasi perniagaan kerangka utama bagi pengurusan material dan kewangan dan pengurusan perakaunan. ABAP dahulunya ringkasan bagi Allgemeiner Berichtsaufbereitungsprozessor, istilah Jerman yang bererti "pemprosesor penyedia lapuran generik", tetapi kemudiannya dinamakan semula sebagai Advanced Business Application Programming. ABAP adalah salah satu bahasa pertama dilengkapi dengan konsep Pengkalan Data Logik (LDBs), yang memberikan ringkasan tahap tinggi dari aras pengkalan data asas.


[Sunting] Contoh(Lapuran ABAP )

REPORT  Zexmaple_report.
tables :vbrk,vbrp,kna1.
TYPE-POOLS : slis.
data:begin of itab_final occurs 0,
    VKBUR like vbrp-VKBUR,
     vbeln like vbrk-vbeln,
     kunag like vbrk-kunag,
     fkdat like vbrk-fkdat,
     netwr like vbrk-netwr,
     mwsbk like vbrk-mwsbk,
     fkimg like vbrp-fkimg,
     total like vbrk-netwr,
     name1 like kna1-name1,
end of itab_final.


data:begin of itab occurs 0,
     VKBUR like vbrp-VKBUR,
     vbeln like vbrk-vbeln,
     kunag like vbrk-kunag,
     fkdat like vbrk-fkdat,
     netwr like vbrk-netwr,
     mwsbk like vbrk-mwsbk,
     fkimg  like vbrp-fkimg,
    end of itab.

data: begin of itab_name occurs 0,
       name1 like kna1-name1,
       erdat like kna1-erdat,
       end of itab_name.
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
      GD_LAYOUT    TYPE SLIS_LAYOUT_ALV,
      GD_REPID     LIKE SY-REPID.

DATA : W_BUDAT LIKE EKBE-BUDAT.

datA:T TYPE T.
select-options: vbeln for vbrk-vbeln.
select-options: fkdat for vbrk-fkdat.
select-options: kunag for vbrk-kunag.

select
        vbrk~vbeln
        vbrk~fkdat
        vbrk~netwr
        vbrk~mwsbk
        vbrk~kunag
        vbrp~fkimg
        vbrp~vkbur

         INTO CORRESPONDING FIELDS OF TABLE itab

                FROM VBRK INNER JOIN  VBRP ON VBRK~VBELN = VBRP~VBELN

                      WHERE  VBRK~FKDAT IN FKDAT AND VBRK~KUNAG IN KUNAG AND VBRK~VBELN IN VBELN.


select name1
       erdat
             from kna1 into table itab_name
                                            for all entries in itab
                                                                      where erdat = itab-fkdat.

*---------------------------------------------------------------------------------------------------------*
loop at itab.
  itab_final = itab.


  read table itab_name with key erdat =  itab-fkdat.
  itab_final-name1 = itab_name-name1.
  itab_final-total = itab-netwr + itab-mwsbk.


  append itab_final.
  clear itab_final.

[Sunting] Contoh

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


[Sunting] Pautan luar