1 DATA:ls_return2 TYPE bapireturn,
2 lt_return2 TYPE TABLE OF bapireturn,
3 lv_status TYPE bapimmpara-rel_status,
4 lv_indicator TYPE bapimmpara-rel_ind.
5
6 LOOP AT gt_data ASSIGNING FIELD-SYMBOL(<fs_pi>) WHERE zstatus = 'S' .
7
8 CLEAR ls_return2 .
9 CLEAR lv_status .
10 CLEAR lv_indicator .
11 REFRESH lt_return2 .
12
13 SELECT SINGLE bnfpo INTO ( <fs_pi>-bnfpo )
14 FROM eban
15 WHERE banfn = <fs_pi>-banfn
16 AND matnr = <fs_pi>-matnr .
17
18 CALL FUNCTION 'BAPI_REQUISITION_RELEASE'
19 EXPORTING
20 number = <fs_pi>-banfn
21 rel_code = 'OA'
22 item = <fs_pi>-bnfpo
23 use_exceptions = 'X'
24 no_commit_work = ' '
25 IMPORTING
26 rel_status_new = lv_status
27 rel_indicator_new = lv_indicator
28 TABLES
29 return = lt_return2.
30
31 IF lv_status <> 'X' AND lv_indicator <> 'B' .
32
33 CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
34
35 ELSE.
36
37 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
38 EXPORTING
39 wait = 'X'.
40
41 ENDIF.
42
43 ENDLOOP.