67% found this document useful (3 votes)
4K views

Sample Code 4 Bapi - Requisition - Create

This ABAP report creates purchase requisition items and services using BAPI functions. It defines data structures to hold requisition item, account, service, and return data. It calls forms to populate the item and service tables, then calls the BAPI_REQUISITION_CREATE function to create the requisition, trapping any error returns. If errors occur, it commits the transaction and saves error text.

Uploaded by

nstomar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
67% found this document useful (3 votes)
4K views

Sample Code 4 Bapi - Requisition - Create

This ABAP report creates purchase requisition items and services using BAPI functions. It defines data structures to hold requisition item, account, service, and return data. It calls forms to populate the item and service tables, then calls the BAPI_REQUISITION_CREATE function to create the requisition, trapping any error returns. If errors occur, it commits the transaction and saves error text.

Uploaded by

nstomar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

*&---------------------------------------------------------------------*

*& Report ZNT_ABAP001


*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZNT_ABAP001
DATA:
GV_NUMBER
GT_REQUISITION_ITEMS
GT_REQUISITION_ACCOUNT
GT_REQUISITION_SERVICES
GT_REQUISITION_SRV_VALUES
GT_RETURN
GT_RETURN1
GT_REQUISITION_ITEM_TEXT

.
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

BANFN,
BAPIEBANC
BAPIEBKN
BAPIESLLC
BAPIESKLC
BAPIRETURN
BAPIRET2
BAPIEBANTX

OCCURS
OCCURS
OCCURS
OCCURS
OCCURS
OCCURS
OCCURS

0
0
0
0
0
0
0

WITH
WITH
WITH
WITH
WITH
WITH
WITH

HEADER
HEADER
HEADER
HEADER
HEADER
HEADER
HEADER

LINE,
LINE,
LINE,
LINE,
LINE,
LINE,
LINE.

START-OF-SELECTION.
PERFORM ITEM_10.
PERFORM ITEM_20.
PERFORM BAPI.
*&---------------------------------------------------------------------*
*&
Form item_10
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM ITEM_10.
**Item 10
GT_REQUISITION_ITEMS-DOC_TYPE = 'SR'.
GT_REQUISITION_ITEMS-PREQ_ITEM = '00010'.
GT_REQUISITION_ITEMS-ACCTASSCAT = 'K'.
GT_REQUISITION_ITEMS-ITEM_CAT = '9'.
GT_REQUISITION_ITEMS-PUR_GROUP = '104'.
GT_REQUISITION_ITEMS-PURCH_ORG = 'LTPO'.
GT_REQUISITION_ITEMS-PLANT
= 'LTCE'.
GT_REQUISITION_ITEMS-DES_VENDOR = 'TEST001'.
GT_REQUISITION_ITEMS-PREQ_NAME = 'BAPI_1'.
GT_REQUISITION_ITEMS-DELIV_DATE = SY-DATUM + 5.
GT_REQUISITION_ITEMS-SHORT_TEXT = 'Service 1'.
GT_REQUISITION_ITEMS-MAT_GRP
= '007'.
GT_REQUISITION_ITEMS-QUANTITY = '1.000'.
GT_REQUISITION_ITEMS-PCKG_NO
= '0000000001'.
GT_REQUISITION_ITEMS-GR_IND
= 'X'.
GT_REQUISITION_ITEMS-IR_IND
= 'X'.
GT_REQUISITION_ITEMS-FIXED_VEND = SPACE.
GT_REQUISITION_ITEMS-INFO_REC = SPACE.
GT_REQUISITION_ITEMS-UNIT
= 'EA'.
APPEND GT_REQUISITION_ITEMS. CLEAR GT_REQUISITION_ITEMS.
GT_REQUISITION_ACCOUNT-PREQ_ITEM = '00010'.
GT_REQUISITION_ACCOUNT-SERIAL_NO = '01'.
GT_REQUISITION_ACCOUNT-COST_CTR = '0000006600'.
GT_REQUISITION_ACCOUNT-G_L_ACCT = '0000001527'.
APPEND GT_REQUISITION_ACCOUNT. CLEAR GT_REQUISITION_ACCOUNT.
GT_REQUISITION_SERVICES-PCKG_NO
= '0000000001'.
GT_REQUISITION_SERVICES-LINE_NO
= '0000000001'.
GT_REQUISITION_SERVICES-EXT_LINE
= '0000000000'.
GT_REQUISITION_SERVICES-SUBPCKG_NO = '0000000002'.

GT_REQUISITION_SERVICES-FROM_LINE = '1'.
GT_REQUISITION_SERVICES-PLN_LINE
= '0000000001'.
APPEND GT_REQUISITION_SERVICES. CLEAR GT_REQUISITION_SERVICES.
GT_REQUISITION_SERVICES-PCKG_NO
= '0000000002'.
GT_REQUISITION_SERVICES-LINE_NO
= '0000000002'.
GT_REQUISITION_SERVICES-EXT_LINE
= '0000000010'.
GT_REQUISITION_SERVICES-SUBPCKG_NO = '0000000000'.
GT_REQUISITION_SERVICES-SERVICE
= '000000000000000151'.
GT_REQUISITION_SERVICES-QUANTITY
= '5.000'.
GT_REQUISITION_SERVICES-BASE_UOM
= 'EA'.
GT_REQUISITION_SERVICES-GR_PRICE
= '150.0000'.
APPEND GT_REQUISITION_SERVICES. CLEAR GT_REQUISITION_SERVICES.
GT_REQUISITION_SRV_VALUES-PCKG_NO
= '0000000002'.
GT_REQUISITION_SRV_VALUES-LINE_NO
= '0000000002'.
GT_REQUISITION_SRV_VALUES-SERNO_LINE = '01'.
GT_REQUISITION_SRV_VALUES-SERIAL_NO = '01'.
GT_REQUISITION_SRV_VALUES-PERCENTAGE = '100.0'.
APPEND GT_REQUISITION_SRV_VALUES. CLEAR GT_REQUISITION_SRV_VALUES.
GT_REQUISITION_ITEM_TEXT-PREQ_ITEM = '00010'.
GT_REQUISITION_ITEM_TEXT-TEXT_ID
= 'B01'.
IF SY-INDEX = 1.
GT_REQUISITION_ITEM_TEXT-TEXT_FORM = '*'.
ELSE.
GT_REQUISITION_ITEM_TEXT-TEXT_FORM = ''.
ENDIF.
GT_REQUISITION_ITEM_TEXT-TEXT_LINE = 'Problems occur When you create purchase
requisition with services using BAPI. Purchase requisition for service with and
without'.
APPEND GT_REQUISITION_ITEM_TEXT. CLEAR GT_REQUISITION_ITEM_TEXT.
ENDFORM.
"item_10
*&---------------------------------------------------------------------*
*&
Form item_20
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM ITEM_20.
*item 20
GT_REQUISITION_ITEMS-DOC_TYPE
= 'SR'.
GT_REQUISITION_ITEMS-PREQ_ITEM = '00020'.
GT_REQUISITION_ITEMS-ACCTASSCAT = 'K'.
GT_REQUISITION_ITEMS-ITEM_CAT
= '9'.
GT_REQUISITION_ITEMS-PUR_GROUP = '112'.
GT_REQUISITION_ITEMS-PURCH_ORG = 'LTPO'.
GT_REQUISITION_ITEMS-PLANT
= 'LTCE'.
GT_REQUISITION_ITEMS-PREQ_NAME = 'BAPI_2'.
GT_REQUISITION_ITEMS-DELIV_DATE = SY-DATUM + 6.
GT_REQUISITION_ITEMS-SHORT_TEXT = 'Service 2'.
GT_REQUISITION_ITEMS-MAT_GRP
= '007'.
GT_REQUISITION_ITEMS-QUANTITY
= '1.000'.
GT_REQUISITION_ITEMS-PCKG_NO
= '0000000003'.
GT_REQUISITION_ITEMS-GR_IND
= 'X'.
GT_REQUISITION_ITEMS-IR_IND
= 'X'.
GT_REQUISITION_ITEMS-FIXED_VEND = SPACE.
GT_REQUISITION_ITEMS-INFO_REC
= SPACE.
GT_REQUISITION_ITEMS-UNIT
= 'EA'.
APPEND GT_REQUISITION_ITEMS. CLEAR GT_REQUISITION_ITEMS.
GT_REQUISITION_ACCOUNT-PREQ_ITEM = '00020'.
GT_REQUISITION_ACCOUNT-SERIAL_NO = '01'.
GT_REQUISITION_ACCOUNT-COST_CTR = '0000006620'.
GT_REQUISITION_ACCOUNT-G_L_ACCT = '0000001528'.

APPEND GT_REQUISITION_ACCOUNT. CLEAR GT_REQUISITION_ACCOUNT.


GT_REQUISITION_SERVICES-PCKG_NO
= '0000000003'.
GT_REQUISITION_SERVICES-LINE_NO
= '0000000003'.
GT_REQUISITION_SERVICES-EXT_LINE
= '0000000000'.
GT_REQUISITION_SERVICES-SUBPCKG_NO = '0000000004'.
GT_REQUISITION_SERVICES-FROM_LINE = '1'.
APPEND GT_REQUISITION_SERVICES. CLEAR GT_REQUISITION_SERVICES.
GT_REQUISITION_SERVICES-PCKG_NO
= '0000000004'.
GT_REQUISITION_SERVICES-LINE_NO
= '0000000004'.
GT_REQUISITION_SERVICES-EXT_LINE
= '0000000010'.
GT_REQUISITION_SERVICES-SUBPCKG_NO = '0000000000'.
GT_REQUISITION_SERVICES-SERVICE
= '000000000000000152'.
GT_REQUISITION_SERVICES-QUANTITY
= '10.000'.
GT_REQUISITION_SERVICES-BASE_UOM
= 'EA'.
GT_REQUISITION_SERVICES-GR_PRICE
= '90.0000'.
APPEND GT_REQUISITION_SERVICES. CLEAR GT_REQUISITION_SERVICES.
GT_REQUISITION_SRV_VALUES-PCKG_NO
= '0000000004'.
GT_REQUISITION_SRV_VALUES-LINE_NO
= '0000000004'.
GT_REQUISITION_SRV_VALUES-SERNO_LINE = '01'.
GT_REQUISITION_SRV_VALUES-SERIAL_NO = '01'.
GT_REQUISITION_SRV_VALUES-PERCENTAGE = '100.0'.
APPEND GT_REQUISITION_SRV_VALUES. CLEAR GT_REQUISITION_SRV_VALUES.
GT_REQUISITION_ITEM_TEXT-PREQ_ITEM
= '00020'.
GT_REQUISITION_ITEM_TEXT-TEXT_ID
= 'B01'.
IF SY-INDEX = 1.
GT_REQUISITION_ITEM_TEXT-TEXT_FORM = '*'.
ELSE.
GT_REQUISITION_ITEM_TEXT-TEXT_FORM = ''.
ENDIF.
GT_REQUISITION_ITEM_TEXT-TEXT_LINE = 'Problems occur When you create purchase
requisition with services using BAPI. Purchase requisition for service with and
without'.
APPEND GT_REQUISITION_ITEM_TEXT. CLEAR GT_REQUISITION_ITEM_TEXT.
ENDFORM.
"item_20
*&---------------------------------------------------------------------*
*&
Form bapi
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM BAPI.
*BAPI
CALL FUNCTION 'BAPI_REQUISITION_CREATE'
EXPORTING
*
SKIP_ITEMS_WITH_ERROR
=
AUTOMATIC_SOURCE
= 'X'
IMPORTING
NUMBER
= GV_NUMBER
TABLES
REQUISITION_ITEMS
= GT_REQUISITION_ITEMS
REQUISITION_ACCOUNT_ASSIGNMENT = GT_REQUISITION_ACCOUNT
REQUISITION_ITEM_TEXT
= GT_REQUISITION_ITEM_TEXT
*
REQUISITION_LIMITS
=
*
REQUISITION_CONTRACT_LIMITS
=
REQUISITION_SERVICES
= GT_REQUISITION_SERVICES
REQUISITION_SRV_ACCASS_VALUES = GT_REQUISITION_SRV_VALUES
RETURN
= GT_RETURN.
*
REQUISITION_SERVICES_TEXT
=
*
REQUISITION_ADDRDELIVERY
=
*
EXTENSIONIN
=

BREAK-POINT.
*ejecute commit
LOOP AT GT_RETURN WHERE TYPE = 'E' OR TYPE = 'A'.
EXIT.
ENDLOOP.
IF SY-SUBRC <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = GT_RETURN1.
WAIT UP TO 1 SECONDS.
DATA : HEADER TYPE THEAD.
DATA : IT_LINES TYPE TLINE OCCURS 0 WITH HEADER LINE .
HEADER-TDNAME = GV_NUMBER.
HEADER-TDSPRAS = SY-LANGU.
HEADER-TDID = 'B01'.
HEADER-TDOBJECT = 'EBANH'.
IT_LINES-TDFORMAT = '*'.
IT_LINES-TDLINE = 'Problems occur When you create purchase requisition with
services using BAPI .'.
APPEND IT_LINES.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
CLIENT
= SY-MANDT
HEADER
= HEADER
INSERT
= 'X'
SAVEMODE_DIRECT = 'X'
TABLES
LINES
= IT_LINES[]
EXCEPTIONS
ID
= 1
LANGUAGE
= 2
NAME
= 3
OBJECT
= 4
OTHERS
= 5.
IF SY-SUBRC <> 0.
* Implement suitable error handling
ENDIF.
LOOP AT GT_RETURN.
.
WRITE: / SY-TABIX,
/ 'W_RETURN-TYPE:', GT_RETURN-TYPE,
/ 'W_RETURN-CODE:', GT_RETURN-CODE,
/ 'W_RETURN-MESSAGE:', GT_RETURN-MESSAGE,
/ 'W_RETURN-LOG_NO:', GT_RETURN-LOG_NO,
/ 'W_RETURN-LOG_MSG_NO:', GT_RETURN-LOG_MSG_NO,
/ 'W_RETURN-MESSAGE_V1:', GT_RETURN-MESSAGE_V1,
/ 'W_RETURN-MESSAGE_V2:', GT_RETURN-MESSAGE_V2,
/ 'W_RETURN-MESSAGE_V3:', GT_RETURN-MESSAGE_V3,
/ 'W_RETURN-MESSAGE_V4:', GT_RETURN-MESSAGE_V4.
ULINE.
ENDLOOP.
ENDIF.

ENDFORM.

"bapi

You might also like