BAPI (BUSSINESS APPLICATION PROGRAMMING INTERFACE)
BAPI IS DEFINED AS AN API METHOD(APPLICATION PROGRAMMING INTERFACE) OF SAP OBJECTS. THESE
METHODS AND THEIR OBJECTS ARE STRORED AS WILL AS MAINTAINED IN BOR. (BUSINEESS OBJECT REPOSITORY)
.
BOR TAKING CARE ABOUT VERSION CHANGE MANAGEMENT [WHEN EVER THE VERSION IS CHANGED. IF ANY
CHANGES OCCURRED IN THE BAPI THOSE CHANGES ARE TAKING CARE BY BOR ].
BAPI’S ARE ALSO CALLED AS ONE OF THE REMOTE ENABLED FUNCTION MODULE.
DIFFERENCES B/W BAPI AND BDC:-
BAPI BDC
BAPI IS USED TO UPLOAD THE DATA FROM BDC IS USED TO UPLOAD THE DATA FROM
FLAT FILE TO SAP SYSTEM “DIRECTLY”. FLAT FILE TO SAP SYSTEM TO VIA “SCREENS”.
BAPI IS FASTER BDC IS SLOWER
BAPI NEVER CAUSE TO TERMINATE THE PROGRAM. SOME TIMES ‘BDC_OPEN_GROUP’,
‘BDC_INSERT’,’BDC_CLOSE GROUP’
WHEN EVER AN ERROR OCCURRED IN THE BAPI IT’S MAY CAUSE TO TERMINATE THE PROGRAM.
SIMPLY RETURN THOSE ERRORS THROUGH RETURN
PARAMATER.
BAPI PERFORM THEIR OWN AUTHORIZATION CHECK IN BDC , WE PERFORM THE AUTHORIZATION
[WETHER THE USER IS VALID OR NOT TO EXECUTE THE CHECK BY USING ‘AUTHORITY-CHECK’
PROGRAM].
DIFFERECNCE B/W BAPI AND RFC
BAPI IS USED TO CONNECTING FROM RFC IS USED TO CONNECTING FROM
SAP TO SAP AS WELL AS SAP TO NON SAP TO SAP ONLY.
SAP. SYNTAX OF CALLING THE RFC.
CALL FUNCTION ‘<FUNCTION MODULE
NAME>’ DESTINATION <LOGICAL
SYSTEM NAME>.
IMPORTANT POINTS RELATED TO BAPI :-
1.BAPI MUST NOT CONTAINS ‘CALL TRANSACTION ’ METHOD.
2.BAPI STRUCTURE MUST NOT CONTAINS ‘INCLUDES’.
3.BAPI MUST NOT INVOKE COMMIT-WORK , INSTEAD OF COMMMIT-WORK IT CALL THE
‘BAPI_TRANSACTION_COMMIT’ FUNCTION MODULE.
4.THERE IS NO ‘FUNCTIONAL DEPENDENCY ’ (RELATION) BETWEEN ANY ‘TWO BAPI’S’.
5.BAPI NEVER CAUSE TO ‘TERMINATE THE PROGRAM’ WHEN EVER AN ERROR
OCCURRED IN THE BAPI, IT RETURN THOSE ERRORS THROUGH ‘RETURN PARAMETER’.
6.BAPI MUST NOT CONTAINS ‘SUBMIT’ REPORTS
7.BAPI MUST NOT CONTAINS ‘DIALOG PROGRAM’.
STEPS TO CREATE THE CUSTOM BAPI –
•TO CREATE THE CUSTOM BAPI, WE NEED TO FOLLOW THIS STEP-BY-STEP
PROCEDURE. THE STEPS ARE
•CREATE THE BAPI STRUCTURE. (SE11)
•CREATE REMOTE FUNCTION MODULE. (SE37)
1.REMORT ENABLE
2.ALL PARAMETERS ARE PASS BY VALUE
3.MUST CONTAIN RETURN PARAMETER.
•CREATE THE OBJECT AND METHOD FOR BAPI FUNCTION MODULE(SW01).
•RELEASE AND FREAZING THE OBJECT AND METHOD (IN SW01).
NOTE : - IF WE WANT TO RELEASE ANY OBJECT , THEN WE MUST SAVE IN OUR OWN
PACKAGE, NOT IN $TMP.
OBJECT :DEVELOP A BAPI TO DISPLAY THE MATERIAL NUMBER TYPE, MATERIAL
GROUP, BASED ON THE GIVEN MATERIAL.
• STEP TO CREATE THE BAPI STRUCTURE
• GO TO SE 11
• PROVIDE DATA TYPE.
• CLICK ON CREATE.
• SELECT RADIO BUTTON STRUCTURE AND ENTER
• PROVIDE MEANING FULL TEXT.
• PROVIDE
• COMPONENT COMPONENT TYPE
• MATNR MATNR
• MTART MTART
• MATKL MATKL
• CLICK ON SAVA.
2 .STEP TO CREATE BAPI FUNCTION GROUP
• GO TO SE37
• IN MENU BAR CLICK ON GO TO FUNCTION GROUP CREATE GROUP
• PROVIDE TO FUNCTION GROUP ZBAPI_FM_GFT
•
• CLICK ON SAVE
• STEP TO ACTIVE THE FG.
• GO TO SE37
• IN MENU BAR CLICK ON ENVIRONMENT INACTIVE OBJECTS.
• EXPAND FG UNDER TRANSPORTABLE OBJECTS
• SELECT FUNCTION GROUP
• RIGHT CLICK ACTIVATE IT.
• GO TO SE37 3. STEP TO CREATE A FM
• PROVIDE THE BAPI FM NAME ZBAPI_FM_GFT.
• CLICK ON CREATE
• PROVIDE FM GROUP NAME ZBAPI_FG_GFT.
• PROVIDE TEXT
• SAVE
• CLICK ON ATTRIBUTES TAB
• SELECT RADIO BUTTON REMOTE ENABLED MODULE
• CLICK ON IMPORT TAB
• I_MATNR TYPE ZBAPI_GFT_MATNR PASS VALUE
• CLICK ON EXPORT TAB
• E_WA LIKE ZBAPI_GFT PASS VALUE
• RETURN LIKE BAPIRET2 PASS VALUE
SELECT MATNR MTART MATKL FROM MARA INTO TABLE ITEMTAB WHERE MATNR
= I_MATNR.
SAVE CHECK ACTIVATE
CLICK ON BACK
IN THE MENU BAR CLICK ON F.M RELEASE RELEASE
3: STEP TO CREATE OBJECT AND METHOD FOR BAPI F.M:
GO TO SW01 PROVIDE OBJECT / INTERFACE TYPE ZBAPI_GFT
CLICK ON CRETE PROVIDE THE SAME NAME TO ALL ZBAPI_GFT
SELECT THE APPLICATION -M- -CLICK ON ENTER
SAVE IN OUR OWN PACKAGE EXPAND THE METHODS
IN THE MENUBAR CLICK ON UTILITIES API METHODS ADD METHODS
PROVIDE THE F.M NAME ZBAPI_FM_GFT.
ENTER CLICK ON NEXT STEP CLICK ON NEXT STEP CLICK ON YES
CLICK ON SAVE
• CLICK OR SELECT THE METHOD AS SHOWN ABOVE AND GO TO THE PATH
“UTILITIESÀAPI METHODSÀADD METHODS”.
• ON THE SCREEN THAT FOLLOWS, PROVIDE THE FUNCTION MODULE NAME AND
CLICK ON THE CONTINUE ICON.
IN THE ULTIMATE POP-UP, CLICK THE NEXT STEP ICON. WE OBSERVE THAT THE INFORMATION
IS PREDEFINED IN THE FIELDS.
THIS IS THE NEXT SCREEN WHERE YOU WOULD JUST CLICK ON THE “NEXT” ICON.
STEP 4 : RELEASE THE OBJECT AND METHOD :
SELECT THE OBJECT NAME ZBAPI_GFT
IN THE MENU BAR CLICK ON EDIT CHANGE RELEASE STSTUS OBJECT
TYPE TO MODELED TO IMPLEMENTED TO RELEASED.
ENTER
ENTER
STEP TO RELEASE & FREAZING THE OBJECT
• SELECT OBJECT LIKE ZBAPI_GFT
&METHOD
•After clicking on the generate button, you can see the
message reading “Object type 'ZBAPI_GFT' generated
successfully”.
YOU CAN SEE THE MESSAGE READING “ STATUS FOR METHOD ‘ZBAPIFMT001’ SET TO
RELEASED”.
CLICK ON GENERATE BUTTON. (THE RED BALL KIND OF BUTTON IS THE GENERATE BUTTON)
• NOW GO TO BAPI TCODE (BOR) THERE WE CAN FIND THE BAPI (OUR BAPI)
• THE BAPI BROWSER WOULD LOOK LIKE THE SCREEN BELOW.
YOU CAN CLICK ON THE ALPHABETICAL TAB SO THAT YOU CAN BROWSE THE BAPI’S IN
AN ALPHABETICAL ORDER. FIND YOUR BAPI AS SHOWN.
STEPS TO CHECK THE BAPI IN BOR
EXECUTE BAPI
CLICK ON ALPHABETICAL TAB
IDENTIFY THE OUR OBJECT AND METHOD (F.M)
NOTE : IN THE REALTIME , WE NEVER CREATE OUR OWN BAPI’S WE ALWAYS USE
EXISTING OR STANDARD BAPI’S
NOTE : IN THE REALTIME , BAPI’S ARE USED LIKE A CONVERSTION PROGRAMS OR
REPORTS.
STEP TO IDENTIFY STANDARD BAPI’S
• METHOD 1 :- GOTO SE93
• PROVIDE TCODE ME23N
• CLICK ON DISPLAY
• CLICK ON DISPLAY OBJECT LIST
• EXPAND PACKAGE IN LEFT PANEL
• EXPAND BUSINESS ENGINEERING
• EXPAND BUSINESS OBJECT TYPE
• DOUBLE CLICK ON BUSINESS OBJECT TYPE BUS2012 (PURCHASE ORDER)
• METHODES
METHOD 2
• GO TO BAPI
• EXPAND MODAL LIKE “SALES AND DISTRIBUTION SALES SALES ORDER GET
LIST
METHOD 3 : BY USING BAPI METHOD WE CAN IDENTIFY EXISTING BAPI.
1.GET LIST() 2. GET DETAIL () 3. GET STATUS() 4.EXISTENCE CHECK()
5. CREATE() 6. CHANGE() 7. DELETE()
SYNTAX OF IDENTIFY THE STANDARD BAPI BASED ON METHOD :-
BAPI *<METHOD NAME>
•STEP TO IDENTIFY BAPI BASED ON BAPI METHOD.
•GO TO SE37
•PROVIDE METHOD NAME AS BAPI * GETDETAIL
•CLICK F4
•CLICK ON FIND ICON AND PROVIDE OUR SHORT DESCRIPTION
•AND IDENTIFY OUT BAPI
•NOTE : WHEN OUR WE ARE CREATE ,DELETE, CHANGE BAPI’S WE MUST COMMIT THE
DATABASE BY USING BAPI_TRANSACTION_COMMIT F.M. OTHER WISE THE DATA IS NOT
UPDATED.
NOTE : IN REAL TIME BEFORE USING THE BAPI , FIRST WE OPEN THE BAPI IN
SE37 , AND IDENTIFY THE INPUT , OUTPUT PARAMETERS. IDENTIFY THE
REQURIED FIELDS.
STEP TO CREATE BANK MANUALLY.
GOTO FI01
PROVIDE THE BANK COUNTRY KEY IN
PROVIDE THE BANK KEY 262625
ENTER
PROVIDE THE BANK NAME ICICI BANK
SAVE
CREATE BANK DETAILS BY USING BAPI
CALL FUNCTION 'BAPI_BANK_CREATE'
REPORT Z_BANK_CREATE. EXPORTING
PARAMETER P_CTRY LIKE BAPI1011_KEY- BANK_CTRY = P_CTRY
BANK_CTRY. BANK_KEY = '332627'
DATA WA_ADD LIKE BAPI1011_ADDRESS. BANK_ADDRESS = WA_ADD
DATA WA_RETURN LIKE BAPIRET2. * BANK_METHOD =
WA_ADD-BANK_NAME = 'ICICI'. * BANK_FORMATTING =
WA_ADD-REGION = '01'. * BANK_ADDRESS1 =
WA_ADD-STREET = 'SRNAGA'. * I_XUPDATE = 'X'
IMPORTING
WA_ADD-CITY = 'HYD'.
RETURN = WA_RETURN.
CALL FUNCTION
'BAPI_TRANSACTION_COMMIT'.
IF WA_RETURN IS INITIAL.
WRITE 'BANK CREATED'.
ELSE.
WRITE WA_RETURN-MESSAGE.
UPLOAD BANK DETAILS FROM FILE TO SAP
SYSTEM
LOOP AT IT_BANK INTO WA_BANK.
DATA : BEGIN OF WA_BANK, MOVE-CORRESPONDING WA_BANK TO
BCTRY LIKE BAPI1011_KEY- WA_ADD.
BANK_CTRY, CALL FUNCTION 'BAPI_BANK_CREATE'
EXPORTING
BKEY LIKE BAPI1011_KEY-BANK_KEY.
BANK_CTRY = WA_BANK-BCTRY
INCLUDE STRUCTURE BANK_KEY = WA_BANK-BKEY
BAPI1011_ADDRESS. BANK_ADDRESS = WA_ADD
DATA END OF WA_BANK. IMPORTING
DATA WA_ADD LIKE BAPI1011_ADDRESS. RETURN = WA_RETURN.
DATA WA_RETURN LIKE BAPIRET2.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
DATA IT_BANK LIKE TABLE OF WA_BANK.
CALL FUNCTION 'UPLOAD' IF WA_RETURN IS INITIAL.
EXPORTING WRITE 'BANK CREATED'.
FILETYPE = 'DAT' ELSE.
TABLES WRITE WA_RETURN-MESSAGE.
ENDIF.
DATA_TAB = IT_BANK.
OBJECT : BASED ON THE GIVEN COMPANY CODE ,
VENDOR NO, AND DATE TO DISPLAY THE VENDOR OPEN
ITEM
BAPI NAME :DETAILS BY USING ‘BAPI’ SE 93 T CODE – XKO1
BAPI_AP_ACC_GETOPENITEMS
IN SE37 IDENTIFY THE I/P, O/P.
IF WA_RETURN IS INITIAL.
PARAMETER : P_BUKRS LIKE BAPI3008_1-COMP_CODE, CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
P_LIFNR LIKE BAPI3008_1-VENDOR, EXPORTING
P_DATE LIKE BAPI3008-KEY_DATE.
ISTRUCTURE NAME = ‘BAPI3008_2’
DATE WA_RETURN LIKE BAPIRETURN.
DATA IT_VOI LIKE TABLE OF BAPI3008_2.
TABLES
CALL FUNCTION ‘BAPI_AP_ACC_GETOPENITEMS’ T_OUTTAB = IT_VOI.
EXPORTING ELSE.
COMPANY CODE = P_BUKRS
WRITE WA_RETURN-MESSAGE.
VENDOR = P_LIFNR
KEYDATE = P_DATE
ENDIF.
IMPORTING NOTE:IN THIS PROGRAM WE NO NEED TO
RETURN = WA_RETURN PREPARE THE FIELD CATALOG.BECAUSE WE
TABLES
ARE WORKING WITH ALL THE FIELDS THEN
WE SIMPLY PASS I_STRUCTURENAME.
LINEITEMS = IT_VOI.
OBJECT : BASED ON THE GIVEN COMPANY CODE , CUSTOMER NO, AND DATE TO DISPLAY THE CUSTOMER CLEARED ITEM DETAILS BY USING ‘BAPI’
SE 93 T CODE – XDO1
BAPI NAME : BAPI_AR_ACC_GETBALANCEDITEMS
IN SE37 IDENTIFY THE I/P, O/P.
PARAMETER : P_BUKRS LIKE BAPI3007_1-COMP_CODE,
P_KUNNR LIKE BAPI3007_1-CUSTOMER,
P_FDAT LIKE BAPI3007-FROM_DATE,
P_TADT LIKE BAPI3007-TO_DATE.
DATE WA_RETURN LIKE BAPIRETURN.
DATA IT_CCI LIKE TABLE OF BAPI3007_2.
CALL FUNCTION ‘BAPI_AR_ACC_GETBALANCEDITEMS’
EXPORTING
COMPANY CODE = P_BUKRS
CUSTOMER = P_KUNNR
DATE_FROM = P_FDAT
DATE_TO = P_TDAT
IMPORTING
RETURN = WA_RETURN
TABLES
LINEITEMS = IT_CCI.
APPLICATIONS OF BAPI
1. BAPI IS USED TO CONNECT WITH R/3 TO NEW SAP COMPONENTS .
2. I.E , BI,APO,CRM….
3. 2. BAPI IS USED TO CONNECT WITH R/E TO INTERNET BY USING IAC’S (INTERNET
APPLICATION COMPONENTS)
4. BAPI IS USED TO CONNECT WITH DISTRIBUTED SYSTEM WITH THE HELP OF ALE.
5. BAPI IS USED TO CONNECT WITH BUSINESS PARTNERS OWN DEVLOPMENT I.E,
VENDOR PORTALS, CUSTOMER PORTALS SO ON.
6. BAPI IS USED TO CONNECT WITH LEGACY TSYSTEM (FILE) TO SAP SYSTEM.
7. BAPI IS USED TO CONNECT WITH NONSAP TO SAP SYSTEM.
8. BAPI IS USED TO CONNECT SATILITED SYSTEM.
ENHANCED BAPI’S :-
AS PER CLIENT REQUIREMENT IF WE ADD SOME ADDITIONAL FIELDS TO STANDARD DB
TABLES THROUGH APPEND STRUCTURE. IF WE WANT TO UPDATE THOSE FIELDS
INFORMATION ALONG WITH STANDARD FIELDS INFORMATION THEN WE GO FOR ENHANCED
BAPL’S.
PROCEDURE OF ENHANCED BAPI’S :--
FIRST WE IDENTIFY THE ‘EXTENSIONIN’ PARAMETER IN THE BAPI . AGAINST THE PARAMETER
WE IDENTIFY THE ASSOCIATED TYPE(STRUCTURE) FOR THIS STRUCTURE WE ADD THE
ADDITIONAL FIELDS THROUGH APPEND STRUCTURE (WHICH FIELDS ARE ADDED TO THE
TABLE).
WHEN EVER WE ARE CALLING THE BAPI THEN WE ALSO PASS THE “EXTENSIONIN” VALUES
THOSE VALUES ARE AUTOMATICALLY UPDATED INTO DATABASE TABLE.
IF WE WANT TO GET THE ADDITIONAL FIELDS INFORMATION OF THE TABLE BY USING BAPI
THEN ALSO WE GO FOR ENHANCED BAPI’S.
IN THIS CASE FIRST WE IDENTIFY THE “EXTENSIONIN” PARAMATER IN THE BAPI. AGAINST
THE PARAMETER WE IDENTIFY THE ASSOCIATED TYPE/STRUCTURE FOR THIS STRUCTURE WE
ADD THE ADDITIONAL FIELDS THROUGH APPEND STRUCTURE.