Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BAPI's

Former Member
0 Kudos

Hi friends,

I want to Learn BAPI's,

Can you please give one simple exmple to upload data for PO or So by using BAPI.

Points for sure

Thanks,

Srini

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi !

There's a wonderful BAPI-browser in the SAP-System.

It's T-Code is BAPI

If you want to you can browse through the SAP-Bapi-Functions and hava a look to docu and the parameters.

Basically BAPIs are "normal" Funcion-Modules and are

called via CALL FUNCTION....

Regards

Rainer

Some points would be fine if that helped a bit.

6 REPLIES 6

former_member181962
Active Contributor
0 Kudos

See the example give in docu:

Example

Example of population of BAPI interface in the Function Builder

Parameter: POHEADER

COMP_CODE = 1000

DOC_TYPE = NB

ITEM_INTVL = 00001

VENDOR = 0000001000

PMNTTRMS = 0001

PURCH_ORG = 1000

PUR_GROUP = 001

CURRENCY = EUR

Parameter: POHEADERX

COMP_CODE = X

DOC_TYPE = X

ITEM_INTVL = X

VENDOR = X

PMNTTRMS = X

PURCH_ORG = X

PUR_GROUP = X

Parameter: POITEM

PO_ITEM = 00001

MATERIAL = 100-100

PLANT = 1000

STGE_LOC = 0001

QUANTITY = 15.000

TAX_CODE = V0

ITEM_CAT = 0

ACCTASSCAT = K

Parameter: POITEMX

PO_ITEM = 00001

MATERIAL = X

PLANT = X

STGE_LOC = X

QUANTITY = X

TAX_CODE = X

ITEM_CAT = X

ACCTASSCAT = X

Parameter: POSCHEDULE

PO_ITEM = 00001

SCHED_LINE = 0001

DELIVERY_DATE = 02.12.2002

QUANTITY = 6.000

PO_ITEM = 00001

SCHED_LINE = 0002

DELIVERY_DATE = 03.12.2002

QUANTITY = 5.000

PO_ITEM = 00001

SCHED_LINE = 0003

DELIVERY_DATE = 04.12.2002

QUANTITY = 4.000

Parameter: POSCHEDULEX

PO_ITEM = 00001

SCHED_LINE = 0001

PO_ITEMX = X

SCHED_LINEX = X

DELIVERY_DATE = X

QUANTITY = X

PO_ITEM = 00001

SCHED_LINE = 0002

PO_ITEMX = X

SCHED_LINEX = X

DELIVERY_DATE = X

QUANTITY = X

PO_ITEM = 00001

SCHED_LINE = 0003

PO_ITEMX = X

SCHED_LINEX = X

DELIVERY_DATE = X

QUANTITY = X

Parameter: POACCOUNT

PO_ITEM = 00001

SERIAL_NO = 01

QUANTITY = 15.000

GL_ACCOUNT = 0000400000

COSTCENTER = 0000001000

CO_AREA = 1000

Parameter: POACCOUNTX

PO_ITEM = 00001

SERIAL_NO = 01

QUANTITY = X

GL_ACCOUNT = X

COSTCENTER = X

CO_AREA = X

Parameter: POCOND

ITM_NUMBER = 000001

COND_ST_NO = 001

COND_TYPE = PB00

COND_VALUE = 79.900000000

CURRENCY = EUR

CURRENCY_ISO = EUR

COND_UNIT = KG

COND_P_UNT = 1

CHANGE_ID = U

Parameter: POCONDX

ITM_NUMBER = 000001

COND_ST_NO = 000

ITM_NUMBERX = X

COND_TYPE = X

COND_VALUE = X

CURRENCY = X

CHANGE_ID = X

Parameter: POPARTNER

PARTNERDESC = OA

LANGU = EN

BUSPARTNO = 0000001100

PARTNERDESC = GS

LANGU = EN

BUSPARTNO = 0000001200

PARTNERDESC = PI

LANGU = EN

BUSPARTNO = 0000001000

REgards,

Ravi

P.s: PLease reward if found helpful

Former Member
0 Kudos

Hi !

There's a wonderful BAPI-browser in the SAP-System.

It's T-Code is BAPI

If you want to you can browse through the SAP-Bapi-Functions and hava a look to docu and the parameters.

Basically BAPIs are "normal" Funcion-Modules and are

called via CALL FUNCTION....

Regards

Rainer

Some points would be fine if that helped a bit.

Simha_
Employee
Employee
0 Kudos

Hi,

Go to this link...

<a href="http://">www.sap-img.com/bapi.htm</a>

<a href="http://">www.sappoint.com/abap.html</a>

<a href="http://">help.sap.com/saphelp_nw04/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm</a>

<a href="http://">searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html#quickstart</a>

Hope this helps..

Regards,

Simha

Former Member
0 Kudos

Hai Srini Rao

check this document

BAPI stands for Business API(Application Program Interface).

I have answered this question before..

A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..

You can make your function module remotely enabled in attributes of Function module but

A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).

Please check out this thread..

Also refer to the following links..

www.sappoint.com/abap/bapiintro.pdf

www.sap-img.com/bapi.htm

www.sap-img.com/abap/bapi-conventions.htm

www.planetsap.com/Bapi_main_page.htm

www.sapgenie.com/abap/bapi/index.htm

Checkout !!

http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html

http://techrepublic.com.com/5100-6329-1051160.html#

http://www.sap-img.com/bapi.htm

http://www.sap-img.com/abap/bapi-conventions.htm

http://www.sappoint.com/abap/bapiintro.pdf

Java Connector(JCO) can call not only BAPI's but also the function modules which are remotely enabled..

BAPI's as i said earlier are remotely enabled function modules..

Hence, JCO can call also BAPI's(n not only BAPI's as u mentioned).

http://www.sappoint.com/abap/bapiexer.pdf

http://www.sappoint.com/abap/bapiintro.pdf

http://www.sappoint.com/abap/bapiprg.pdf

http://www.sappoint.com/abap/bapiactx.pdf

http://www.sappoint.com/abap/bapiactx.pdf

Thanks & regards

Sreenivasulu P

Message was edited by: Sreenivasulu Ponnadi

former_member188685
Active Contributor
0 Kudos

hi,

chek this link..

http://www.sap-img.com/bapi.htm

also check this..


REPORT  ZV1_TEST                                .


*DATA DECLARATION
CONSTANTS : C_X VALUE 'X'.

*Structures to hold PO header data
DATA : HEADER LIKE BAPIMEPOHEADER ,
HEADERX LIKE BAPIMEPOHEADERX .

*Structures to hold PO account data
DATA : ACCOUNT LIKE BAPIMEPOACCOUNT OCCURS 0 WITH HEADER LINE ,
ACCOUNTX LIKE BAPIMEPOACCOUNTX OCCURS 0 WITH HEADER LINE .

*Internal Tables to hold PO ITEM DATA
DATA : ITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
ITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,

*Internal table to hold messages from BAPI call
RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,

*Internal table to hold messages from BAPI call
POCONTRACTLIMITS LIKE BAPIESUCC OCCURS 0 WITH HEADER LINE.

DATA : W_HEADER(40) VALUE 'PO Header',
PURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER,
DELIVERY_DATE LIKE BAPIMEPOSCHEDULE-DELIVERY_DATE.

DATA : WS_LANGU LIKE SY-LANGU.

*text-001 = 'PO Header' - define as text element
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : COMPANY LIKE HEADER-COMP_CODE DEFAULT '122' ,
DOCTYP LIKE HEADER-DOC_TYPE DEFAULT 'NB' ,
CDATE LIKE HEADER-CREAT_DATE DEFAULT SY-DATUM ,
VENDOR LIKE HEADER-VENDOR DEFAULT '2000000012' ,
PUR_ORG LIKE HEADER-PURCH_ORG DEFAULT 'PU01' ,
PUR_GRP LIKE HEADER-PUR_GROUP DEFAULT '005' .
*sociedad like HEADER-COMP_CODE default '122' ,
*vendedor like HEADER-SALES_PERS default 'sale person'.


SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS : ITEM_NUM LIKE ITEM-PO_ITEM DEFAULT '00010',
MATERIAL LIKE ITEM-MATERIAL DEFAULT '12000000' ,
TIPO_IMP LIKE ITEM-ACCTASSCAT DEFAULT 'K' ,
*pos_doc like ITEM-ITEM_CAT default 'F' ,
SHORTTXT LIKE ITEM-SHORT_TEXT DEFAULT 'PRUEBA BAPI' ,
GRUP_ART LIKE ITEM-MATL_GROUP DEFAULT '817230000' ,
PLANT LIKE ITEM-PLANT DEFAULT '3001' ,
MPE LIKE ITEM-TRACKINGNO DEFAULT '9999' ,
*contrato like ITEM-AGREEMENT default '4904000003' ,
*quantity like ITEM-QUANTITY default 1 .
PO_UNIT LIKE ITEM-PO_UNIT DEFAULT 'EA'.

SELECTION-SCREEN END OF BLOCK B2.

* Par?mnetros de imputaci?n
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-004.
PARAMETERS : CENTRO LIKE ACCOUNT-COSTCENTER DEFAULT '1220813150',
CUENTA LIKE ACCOUNT-GL_ACCOUNT DEFAULT '6631400' ,
NUM_POS LIKE ACCOUNT-PO_ITEM DEFAULT '10' ,
SERIAL LIKE ACCOUNT-SERIAL_NO DEFAULT '01' ,
IND_IMP LIKE ACCOUNT-TAX_CODE DEFAULT 'I2' .

SELECTION-SCREEN END OF BLOCK B3.


*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---------------------------------------------------------------------*
*DATA POPULATION
*&---------------------------------------------------------------------*
  WS_LANGU = SY-LANGU. "Language variable

*POPULATE HEADER DATA FOR PO
*HEADER-COMP_CODE = sociedad .
  HEADER-DOC_TYPE = DOCTYP .
  HEADER-VENDOR = VENDOR .
  HEADER-CREAT_DATE = CDATE .
  HEADER-CREATED_BY = 'TD17191' .
  HEADER-PURCH_ORG = PUR_ORG .
  HEADER-PUR_GROUP = PUR_GRP .
  HEADER-COMP_CODE = COMPANY .
  HEADER-LANGU = WS_LANGU .
*HEADER-SALES_PERS = vendedor .
*HEADER-CURRENCY = 'DOP' .
*HEADER-ITEM_INTVL = 10 .
*HEADER-PMNTTRMS = 'N30' .
*HEADER-EXCH_RATE = 1 .


*&---------------------------------------------------------------------*
*POPULATE HEADER FLAG.
*&---------------------------------------------------------------------*
  HEADERX-COMP_CODE = C_X.
  HEADERX-DOC_TYPE = C_X.
  HEADERX-VENDOR = C_X.
  HEADERX-CREAT_DATE = C_X.
  HEADERX-CREATED_BY = C_X.
  HEADERX-PURCH_ORG = C_X.
  HEADERX-PUR_GROUP = C_X.
  HEADERX-LANGU = C_X.
*HEADERX-sales_pers = c_x.
*HEADERX-CURRENCY = c_x.
*HEADER-ITEM_INTVL = c_x.
*HEADER-PMNTTRMS = c_x.
*HEADER-EXCH_RATE = c_x.
*HEADER-EXCH_RATE = c_x.

*&---------------------------------------------------------------------*
*POPULATE ITEM DATA.
*&---------------------------------------------------------------------*
  ITEM-PO_ITEM = ITEM_NUM.
  ITEM-QUANTITY = '1'.
*ITEM-MATERIAL = material .
  ITEM-SHORT_TEXT = 'prueba bapi_po_create1'.
*ITEM-TAX_CODE = ''.
  ITEM-ACCTASSCAT = 'K' .
*ITEM-ITEM_CAT = 'D' .
  ITEM-MATL_GROUP = '817230000' .
  ITEM-PLANT = '3001' .
  ITEM-TRACKINGNO = '99999'.
  ITEM-PREQ_NAME = 'test'.
*ITEM-AGREEMENT = '' .
*ITEM-AGMT_ITEM = ''.
  ITEM-QUANTITY = '1' .
  ITEM-PO_UNIT = 'EA'.
*ITEM-ORDERPR_UN = 'EA'.
  ITEM-CONV_NUM1 = '1'.
  ITEM-CONV_DEN1 = '1'.
  ITEM-NET_PRICE = '1000000' .
  ITEM-PRICE_UNIT = '1'.
  ITEM-GR_PR_TIME = '0'.
  ITEM-PRNT_PRICE = 'X'.
  ITEM-UNLIMITED_DLV = 'X'.
  ITEM-GR_IND = 'X' .
  ITEM-IR_IND = 'X' .
  ITEM-GR_BASEDIV = 'X'.
*ITEM-PCKG_NO = '' .


  APPEND ITEM. CLEAR ITEM.

*&---------------------------------------------------------------------*
*POPULATE ITEM FLAG TABLE
*&---------------------------------------------------------------------*
  ITEMX-PO_ITEM = ITEM_NUM.
  ITEMX-PO_ITEMX = C_X.
*ITEMX-MATERIAL = C_X.
  ITEMX-SHORT_TEXT = C_X.
  ITEMX-QUANTITY = C_X.
*ITEMX-TAX_CODE = C_X.
  ITEMX-ACCTASSCAT = C_X.
*ITEMX-ITEM_CAT = c_x.
  ITEMX-MATL_GROUP = C_X.
  ITEMX-PLANT = C_X.
  ITEMX-TRACKINGNO = C_X.
  ITEMX-PREQ_NAME = C_X.
*ITEMX-AGREEMENT = C_X.
*ITEMX-AGMT_ITEM = c_x.
  ITEMX-STGE_LOC = C_X.
  ITEMX-QUANTITY = C_X.
  ITEMX-PO_UNIT = C_X.
*ITEMX-ORDERPR_UN = C_X.
  ITEMX-CONV_NUM1 = C_X.
  ITEMX-CONV_DEN1 = C_X.
  ITEMX-NET_PRICE = C_X.
  ITEMX-PRICE_UNIT = C_X.
  ITEMX-GR_PR_TIME = C_X.
  ITEMX-PRNT_PRICE = C_X.
  ITEMX-UNLIMITED_DLV = C_X.
  ITEMX-GR_IND = C_X .
  ITEMX-IR_IND = C_X .
  ITEMX-GR_BASEDIV = C_X .
  APPEND ITEMX. CLEAR ITEMX.

*&---------------------------------------------------------------------*
*POPULATE ACCOUNT DATA.
*&---------------------------------------------------------------------*
  ACCOUNT-PO_ITEM = ITEM_NUM.
  ACCOUNT-SERIAL_NO = SERIAL .
  ACCOUNT-CREAT_DATE = SY-DATUM .
  ACCOUNT-COSTCENTER = CENTRO .
  ACCOUNT-GL_ACCOUNT = CUENTA .
  ACCOUNT-GR_RCPT = 'tester'.
  APPEND ACCOUNT. CLEAR ACCOUNT.

*&---------------------------------------------------------------------*
*POPULATE ACCOUNT FLAG TABLE.
*&---------------------------------------------------------------------*
  ACCOUNTX-PO_ITEM = ITEM_NUM .
  ACCOUNTX-PO_ITEMX = C_X .
  ACCOUNTX-SERIAL_NO = SERIAL .
  ACCOUNTX-SERIAL_NOX = C_X .
  ACCOUNTX-CREAT_DATE = C_X .
  ACCOUNTX-COSTCENTER = C_X .
  ACCOUNTX-GL_ACCOUNT = C_X .
  ACCOUNT-GR_RCPT = C_X.
  APPEND ACCOUNTX. CLEAR ACCOUNTX.


*&---------------------------------------------------------------------*
*BAPI CALL
*&---------------------------------------------------------------------*
  CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.

  CALL FUNCTION 'BAPI_PO_CREATE1'
    EXPORTING
      POHEADER         = HEADER
      POHEADERX        = HEADERX
    IMPORTING
      EXPPURCHASEORDER = PURCHASEORDER
    TABLES
      RETURN           = RETURN
      POITEM           = ITEM
      POITEMX          = ITEMX
      POACCOUNT        = ACCOUNT
      POACCOUNTX       = ACCOUNTX.


*&---------------------------------------------------------------------*
*Confirm the document creation by calling database COMMIT
*&---------------------------------------------------------------------*
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  EXPORTING
  WAIT = 'X'
* IMPORTING
* RETURN =
  .

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*Output the messages returned from BAPI call
*&---------------------------------------------------------------------*
  LOOP AT RETURN.
    WRITE / RETURN-MESSAGE.
  ENDLOOP.

Regards

vijay

Former Member
0 Kudos

HI

GOOD

GO THROUGH THIS LINK I HOPE THIS WILL GIVE YOU SOME BETTER IDEA.

/people/kathirvel.balakrishnan2/blog/2006/05/08/data-upload-into-sap-from-microsoft-excel-150-abap-part

THANKS

MRUTYUN