48
Làm thế nào tạo và sử dụng Classic BADI? Mục lục 1- Tạo định nghĩa classic BADI và hiểu những gì BAID có.........................2 a- Định nghĩa:................................................................ 2 b- BAdI Enhancement options................................................... 2 2- Tạo classic BADI:............................................................2 3- Thực thi Classic BADI:.......................................................7 4- Sử dụng Classic BADI trong chương trình ABAP................................13 5- Tạo một thực thi BADI được cung cấp bởi SAP.................................14 a- Tìm một BAdi trong giao dịch VD02........................................15 b- Sử dụng BADI sẵn có của SAP để tạo thực thi mở rộng.......................20 c- Sử dụng BADI sẵn có của SAP – Gán source code vào phương thức trong phần thực thi......................................................................29 6- Tạo Multiple Use BADIs......................................................32 a- Cách xem lại các chương trình thực thi của BADI...........................32 7- Tạo BADI phụ thuộc bộ lọc Filter............................................34 a- Tạo BADI mới theo kiểu classic với bộ lọc Filter..........................34 b- Thực thi BADI có Filter:.................................................. 37 c- Source code sử dụng BADI filter........................................... 40 8- Phụ lục : Danh sách các BADI hữu ích trong SAP..............................41 Handling Unit BAdIs...........................................................41 Deliveries and Shipment.......................................................42 Material Master BAdIs.........................................................42 Accounting Doc................................................................43 Address.......................................................................43 Alerts........................................................................43 IDoc..........................................................................44 RFC...........................................................................45

Làm Thế Nào Tạo Và Sử Dụng Classic BADI

  • Upload
    aloxanh

  • View
    253

  • Download
    6

Embed Size (px)

DESCRIPTION

Tieng viet

Citation preview

Page 1: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

Làm thế nào tạo và sử dụng Classic BADI?

M c l cụ ụ1- Tạo định nghĩa classic BADI và hiểu những gì BAID có..................................................................................................2

a- Định nghĩa:................................................................................................................................................................2

b- BAdI Enhancement options.......................................................................................................................................2

2- Tạo classic BADI:............................................................................................................................................................2

3- Thực thi Classic BADI:....................................................................................................................................................7

4- Sử dụng Classic BADI trong chương trình ABAP..........................................................................................................13

5- Tạo một thực thi BADI được cung cấp bởi SAP...........................................................................................................14

a- Tìm một BAdi trong giao dịch VD02........................................................................................................................15

b- Sử dụng BADI sẵn có của SAP để tạo thực thi mở rộng...........................................................................................20

c- Sử dụng BADI sẵn có của SAP – Gán source code vào phương thức trong phần thực thi.......................................29

6- Tạo Multiple Use BADIs...............................................................................................................................................32

a- Cách xem lại các chương trình thực thi của BADI....................................................................................................32

7- Tạo BADI phụ thuộc bộ lọc Filter.................................................................................................................................34

a- Tạo BADI mới theo kiểu classic với bộ lọc Filter......................................................................................................34

b- Thực thi BADI có Filter:............................................................................................................................................37

c- Source code sử dụng BADI filter..............................................................................................................................40

8- Phụ lục : Danh sách các BADI hữu ích trong SAP.........................................................................................................41

Handling Unit BAdIs.........................................................................................................................................................41

Deliveries and Shipment..................................................................................................................................................42

Material Master BAdIs.....................................................................................................................................................42

Accounting Doc...............................................................................................................................................................43

Address...........................................................................................................................................................................43

Alerts...............................................................................................................................................................................43

IDoc.................................................................................................................................................................................44

RFC..................................................................................................................................................................................45

Page 2: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

1- Tạo định nghĩa classic BADI và hiểu những gì BAID có a- Định nghĩa:

- BADI viết tắt của chữ Business Add-in là một kỹ thuật enhancement mới dựa trên ABAP Object- Chúng có thể được lồng vào hệ thống những yêu cầu người dùng xác định- BADI nên được xem xét là sự suy rộng của BTE (Business Transaction Events ) mà có thể được sử dụng

để gói chương trình, menu, screen enhancements vào trong một chương trình bổ sung đơn (Single add-in)

- Mỗi BADI có: Ít nhất một định nghĩa BADI Một BADI interface Một BADI class để thực thi interface đó

- Để sử enhance cho một chương trình thì BADI cần dùng phải định nghĩa.- Sau đó, 2 Class được tự được động tạo ra:

Một interface được lồng các kí tự “IF_EX_” vào giữa kí tự thứ nhất và thứ 2 của tên BADI Một class kết nối được lồng các kí tụ “CL_EX_” vào giữa kí tự thứ nhất và thứ 2 của tên BADI

- Lập trình viên tạo một interface cho Add-in này- Trình quản lý enhancement tạo ra một class kết nối cho phần thực thi interface- Điều này mở ra một đường dẫn cho các thực thi mở rộng được tạo bởi đối tác hoặc khách hàng- Một thực thể class kết nối trong chương trình ứng dụng sử dụng phương thức tương ứng

b- BAdI Enhancement options- Trong BADI, tất cả các thành phần của một enhancement option được nhóm lại với nhau gồm có :

Program Enhancement, Menu Enhancements, Screen Enhancements Program Enhancement : chức năng enhancement của một chương trình được định nghĩa trong hình

thức của các phương thức của interface và có thể được sử dụng có hoặc không có Menu Enhancement hoặc Screen Enhancement

Menu Enhancement : Function codes có thể được nhập vào cho một BADI với menu tương ứng trong phần định nghĩa interface

Screen Enhancement: Vùng màn hình phụ (subscreen areas) có thể đưa vào BADI . Screen enhancement có thể được thực thi trong hình thức của các màn hình phụ( subscreen screen)

2- Tạo classic BADI: - Vào tcode : SE18 , nhập tên BADI và vào menu để tạo BADI như hình dưới

Page 3: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Để ứng dụng BADI vào trong chương trình ABAP, chúng ta cần một interface cho enhancement ở màn hình khởi tạo

- Khi BADI được tạo, BADI class tự động tạo với hậu tố “CL_EX_” sau kí tự đầu tiên của tên định nghĩa BADI.

- Package: chỉ ra package mà Badi này thuộc về.- Multiple Use: Với lựa chọn này bạn có thể có nhiều thực thi cho cùng Badi.- Filter-Dependent: BADI có thể được thực thi dựa vào điều kiện lọc xác định ( ví dụ : phiên bản cho từng

quốc gia, phân biệt các thực thi của BADI theo từng quốc gia). Một kiểu lọc (filter type) được nhập vào khi bạn tạo enhancement của mình ( một quốc gia hoặc khu vực công nghiệp) . Tất cả các Method được tạo trong interface của BADI sẽ có biến lọc “FLT_VAL” với kiểu tham số import. Hệ thống sẽ được tự động chèn vào tất cả các Method khi active cho BADI đó.

Page 4: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhấn nút SAVE và chọn Package cần lưu.- Một class ZCL_EX_CLASSIC_BADI_DEMO được tự động tạo ra với hậu tố ‘CL_EX’ chèn vào sau kí tự đầu

tiên của tên BADI.

Page 5: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Một interface được tự động tạo ra với hậu tố ‘IF_EX’ chèn vào sau kí tự đầu tiên của tên định nghĩa BADI.

- Bạn double click vào interface để đi đến tool Class Builder nơi có thể định nghĩa phương thức , tham số và ngoại lệ cho interface đó.

Page 6: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Tạo phương thức trong Class Builder cho interface.- Instance method có thể truy xuất tới tất cả các biến của một class và kích hoạt tất cả các sự kiện của một

class.- Static method chỉ có thể truy xuất tới các biến static và kích hoạt các sự kiện static của class.- Click lên nút button Parameter để chỉ định các tham số import/export cho phương thức.

- Các kiểu chỉ định cho tham số là importing, exporting, changing hoặc returning.- Kiểu dữ liệu và mô tả cho các tham số được thiết lập ở đây.

Page 7: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Bạn có thể chỉ định bất kỳ ngoại lệ nào trong phần Exception.- Nếu là class Exception cơ bản thì checkbox Exception Class sẽ được check.

3- Thực thi Classic BADI: Note : Một định nghĩa BADI thực chất là một tên của USER-EXIT được một CL_EXITHANDLER sử dụng và tạo ra đối tượng BADI thực sự.

- Vào tcode : SE19, nhập tên BADI và nhấn vào nút ‘Create impl’ để tạo thực thi.

Page 8: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Click vào nút để tạo thực thi.

- Click nút để tạo thực thi như hình dưới

Page 9: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Sau khi nhập mô tả , và nhấn nút SAVE để lưu vào Package.

Page 10: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhập transport request

Page 11: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Trong khi tạo thực thi, một class thực thi cũng được tạo tự động.

Page 12: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Double-click lên phương thức DIVIDE_NUMBER để viết code ABAP.

Page 13: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhập source code vào phương thức DIVIDE_NUMBER.- Xử lý ngoại lệ được cài đặt trong phần này.

4- Sử dụng Classic BADI trong chương trình ABAPSau khi tạo xong BADI, thì áp dụng vào các chương trình ABAP như sau:

- Chú ý: Tạo một instance tham chiếu tới interface ‘zif_ex_classic_badi_demo’ của BADI đã được tự

động tạo ra. Vậy còn 2 class ( ZCL_EX_CLASSIC_BADI_DEMO: tạo ra trong định nghĩa BADI và class ZCL_IM_CLASSIC_BADI_IMPL tạo ra trong quá trình tạo thực thi ) thì được dùng như thế nào:(i) ZCL_EX_CLASSIC_BADI_DEMO chưa thấy sử dụng ???(ii) ZCL_IM_CLASSIC_BADI_IMPL dùng để kế thừa interface “zif_ex_classic_badi_demo” để

chứa source code cho thực thi đó.(iii) Tuy nhiên, khi sử dụng trong chương trình thì chỉ cần dùng interface là có thể gọi hàm được rồi.

*&---------------------------------------------------------------------**& Report  ZCLASSIC_BADI_USING*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*

REPORT  ZCLASSIC_BADI_USING.

*Create a interface reference variable to BADI's interfacedata: l_badi_instance type ref to zif_ex_classic_badi_demo.data: result type i,      status_var TYPE c.

Page 14: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

*----------------------------------------------------------SELECTION-SCREEN: BEGIN OF BLOCK bl1.PARAMETERS : p_num1 TYPE i,             p_num2 type i.SELECTION-SCREEN: END OF BLOCK bl1.*----------------------------------------------------------

START-OF-SELECTION.

CALL METHOD cl_exithandler=>get_instance  EXPORTING    exit_name                     = 'ZCLASSIC_BADI_DEMO' "BADI name*    null_instance_accepted        = SEEX_FALSE*  IMPORTING*    act_imp_existing              =  CHANGING    instance                      = l_badi_instance  EXCEPTIONS    no_reference                  = 1    no_interface_reference        = 2    no_exit_interface             = 3    class_not_implement_interface = 4    single_exit_multiply_active   = 5    cast_error                    = 6    exit_not_existing             = 7    data_incons_in_exit_managem   = 8    others                        = 9        .IF sy-subrc <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.

TRY.CALL METHOD l_badi_instance->divide_numbers  EXPORTING    number1       = p_num1    number2       = p_num2  CHANGING    result_number =  result    STATUS        = status_var    . CATCH cx_sy_zerodivide .ENDTRY.

IF status_var = space.  write: / 'Result: ' , p_num1, ' / ', p_num2 , ' = ', result.ENDIF.

5- Tạo một thực thi BADI được cung cấp bởi SAP- Tìm BAdi tương ứng cho các giao dịch (chương trình) trong SAP.

Page 15: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Tạo thực thi mở rộng cho BAdi đó.- Từ các phương thức có sẵn trong BAdi đó và chon phương thức thích hợp.- Nhập code cho phương thức đó và active.- Thực thi chương trình SAP và test nếu phương thức vừa viết code được gọi. a- Tìm một BAdi trong giao dịch VD02

Để tìm một BAdi cho bất kỳ giao dịch SAP nào ta làm như sau:(i) Click lên menu System->Status(ii) Double-click lên tên chương trình(iii) Một khi vào bên trong chương trình thì tìm kiếm theo “CL_EXITHANDLER=>GET_INSTANCE”

Page 16: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhấn nút để hiển thị hộp thoại tìm kiếm

- Gõ vào hộp thoại tìm “CL_EXITHANDLER=>GET_INSTANCE” .

Page 17: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhấn nút để tìm , nếu có kết quả sẽ lên như sau

Page 18: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Double-click vào hàm CL_EXITHANDLER=>GET_INSTANCE để xem code của chúng.

Page 19: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nếu tham số truyền vào cho biến “exit_name” là một biến động như hình dưới Thì double-click lên biến tham chiếu G_ADDITIONAL_DATA để đến chỗ khai báo biến tham chiếu interface của BAdi.

Page 20: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Bạn có thể tìm thấy tên BAdi bằng cách bỏ đi tiền tố “IF_EX” của tên interface.b- Sử dụng BADI sẵn có của SAP để tạo thực thi mở rộng- Vào SE19, để tạo thực thi BADI. Nhập tên và nhấn nút tạo thực thi BAdi.

Page 21: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhập tên thực thi để thực thi cho BADI “CUSTOMER_ADD_DATA”

Page 22: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhấn nút để tạo thực thi. - Vì chúng ta tạo thực thi theo cách tạo của classic BAdi đối với một new BAdi, nên có thêm quá trình gán tới

enhancement spot ( gọi là BAdi migrates to enhancement spot)

Page 23: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhập short text và nhấn nút SAVE

Page 24: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhấn nút để tiếp tục- Một hộp thoại xuất hiện để bắt chúng ta Chọn hay Tạo mới một Enhancement Implementation.

Page 25: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Tới đây , ta hãy xem lượt đồ quan hệ bên dưới .

- Từ lượt đồ, ta thấy Implementation Name ZADDR_ADD_DATA là một trong lượt đồ.

Page 26: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhấn nút để tạo Enhancement Implementation cũng chính là trong lượt đồ quan hệ trên.

- Nhấn để tạo

Page 27: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhấn Enter

- Nhấn Active thì hệ thống sẽ gán thêm phần thực thi tới Enhancement Implementation.

Page 28: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Tới đây ta đã tạo xong phần thực thi cho BADI trong SAP nhưng chưa có code vào. - Muốn vào lại phần thực thi có nhiều cách thể hiện khác nhau

Page 29: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Chú ý: Trên đây là cách tạo thực thi cho BADI SAP chuẩn nhưng tạo từ Classic Badi. Do tạo từ classic BADI là

quá trình đi ngược khi tạo phần tử con rồi mới tạo phần tử cha

nên có quá trình gán (migrate) như trên. Còn cách thứ 2 là đi từ phần tử cho đến phần tử con là tạo theo new BAdi, không có quá trình gán

xảy ra. Cách này sẽ tạo rồi đến

c- Sử dụng BADI sẵn có của SAP – Gán source code vào phương thức trong phần thực thi

Page 30: Làm Thế Nào Tạo Và Sử Dụng Classic BADI
Page 31: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Trong ví dụ trên , ta double click vào phương thức SAVE_DATA để nhập code. - Code mở rộng sẽ được thực thi khi save dữ liệu trong tcode VD02.- Vào tocde VD02, nhập customer 100970 và thêm “123” vào mục name.

- Thay đổi tên và lưu lại thì sẽ gọi vào phương thức thực thi của BADI vừa tạo

Page 32: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

6- Tạo Multiple Use BADIs

Single Use Business Add-Ins Multiple- không check vào checkbox Multiple Use trong tab Properties khi định nghĩa một Single Use Badi

- Check vào checkbox Multiple Use trong tab Properties khi định nghĩa Multiple Use Badi

- BADI có một thực thi đơn - BADI có nhiều thực thi- Giống như các thủ tục - Giống như các cuộc gọi sự kiện- Các giá trị trả về được chờ đợi - Các giá trị trả về không được chờ đợi- Có thể sử dụng các kiểu tham số như Importing, changing, returning

- Chỉ sử dụng 2 tham số Importing và changing

- N/A - Khi có nhiều thực thi thì không có kiểm soát thứ tự bởi vì tại thời điểm định nghĩa BADI nó không biết thực thi nào sẽ được active

- Một thực thi đơn sẽ được kích hoạt bởi chương trình ứng dụng

- Tất cả các thực thi active sẽ được kích hoạt bởi chương trình ứng dụng sử dụng BADI đó.

- CUSTOMER_ADD_DATA là một BADI định định nghĩa bởi SAP, nó được gọi bởi giao dịch VD02.a- Cách xem lại các chương trình thực thi của BADI

Page 33: Làm Thế Nào Tạo Và Sử Dụng Classic BADI
Page 34: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Vào menu Implementation->Display để hiển thị các chương trình thực thi của BADI như hình dưới.

7- Tạo BADI phụ thuộc bộ lọc Filter- BADI có thể được thực thi dựa trên một giá trị lọc xác định.- Nếu bạn muốn gọi thực thi của BADI không chỉ phụ thuộc vào một giá trị lọc mà còn nhiều giá trị khác

nhau. Bạn có thể nhập tên của một cấu trúc vào textbox Filter type. Cấu trúc chứa nhiều phần tử dữ liệu mà thực thi các điều kiện ở trên cho các phần tử dữ liệu.

a- Tạo BADI mới theo kiểu classic với bộ lọc Filter - Vào Tcode SE18 để tạo BADI mới theo kiểu classic

Page 35: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhập vào kiểu dữ liệu BUKRS vào bộ lọc

- Chú ý: Một filter type có thể là một data element hoặc một structure. Một data element phải thõa điều

kiện sau:(i) Data element của domain có thể chứa tối đa 30 kí tự và phải là kiểu C ( character).

Page 36: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

(ii) Data element phải : - có cả 2 đó là 1 search help với 1 tham số search help cùng kiểu với data element , 2 là tham số này phải thõa mãn Import và export. Hoặc là các phần tử domain phải có giá trị cố định hoặc một bảng giá trị chứa một cột với cùng kiểu của data element đó.

- Khi double-click vào Interface Name thì sẽ vào Class Builder để tạo Method cho interface đó.

- Nhấn vào nút Parameter để nhập tham số

Page 37: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Nhấn nút SAVE .

- Nhấn active . Sau khi active , hệ thống sẽ tự động gắn thêm 1 tham số lọc với kiểu đã nhập trong Filter type (cấu trúc hay element) với kiểu Importing và được chọn là truyền theo giá trị (chọn vào nút Pass value) hiện lên trong danh sách tham số.

b- Thực thi BADI có Filter: - Vào tcode SE19:

Page 38: Làm Thế Nào Tạo Và Sử Dụng Classic BADI
Page 39: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

-

Page 40: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

- Sau khi tạo các giá trị cho filter thì vào tab Interface để viết code lọc theo các giá trị fileter.c- Source code sử dụng BADI filter

*&---------------------------------------------------------------------**& Report  ZCLASSIC_BADI_FLT_DEMO*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*

REPORT  zclassic_badi_flt_demo.

DATA : l_badi_instance TYPE REF TO zif_ex_classic_badi_flt.DATA: tax_rate_val TYPE string.

PARAMETERS : p_bukrs TYPE bukrs.

CALL METHOD cl_exithandler=>get_instance  EXPORTING    exit_name                     = 'ZCLASSIC_BADI_FLT'  CHANGING    instance                      = l_badi_instance  EXCEPTIONS    no_reference                  = 1    no_interface_reference        = 2    no_exit_interface             = 3    class_not_implement_interface = 4    single_exit_multiply_active   = 5    cast_error                    = 6

Page 41: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

    exit_not_existing             = 7    data_incons_in_exit_managem   = 8    OTHERS                        = 9.

CALL METHOD l_badi_instance->get_bukrs  EXPORTING    flt_val    = p_bukrs  CHANGING    z_tax_rate = tax_rate_val.IF tax_rate_val IS INITIAL.  WRITE : 'Tax rate not found for company code :', p_bukrs .ELSE.  WRITE : / 'Tax rate of company code ', p_bukrs, ' is : ', tax_rate_val.ENDIF.

8- Tìm BADI

- Finding BAdI for Particular Transaction

- Method 1: Go to Tranaction: SE24. Open class CL_EXITHANDLER Open the method ” Get_Instance” Put Break point in the statement call method cl_exithandler=>get_class_name_by_interface Now execute the Transaction which you need teh BDC it will automatically stops at the the

method. In debugging mode double click on the variable: ” exit_name” It will return the BADI Name.

- Method 2: find the Package name and go to the transaction SE84. Enter the package name inside the left navaigaiton panel there is one option ” Enhancements” click on this

enhancement and then enter the package name and execute it. you will get hte number of enhancement.

9- Phụ lục : Danh sách các BADI hữu ích trong SAP

Summary

Here is a list of useful BAdIs. It is not the complete list of over 3000 BAdIs, just the ones that I'm interested in...

Handling Unit BAdIs

BADI_HU_ALWD_PM Exit for determination of allowed packaging materials

BADI_HU_AUTOPACK EXIT for Automatic Packing

BADI_HU_CHANGE_INPUT BAdI for changing HU input

Page 42: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

BADI_HU_DIALOG Enhancements in the HU Transaction

BADI_HU_HUMO Enhancements in the HU Monitor

BADI_HU_MAIN BAdI for General Checks and Actions in HUM

BADI_HU_PACKING_ALWD Exit to Check Whether This Item Can Be Packed

BADI_HU_PACKING_QTY Exit to Reduction of Quantity of Materials to Be Packed

BADI_HU_PRINT Business Add-In (BADI) for Label Printing

BADI_HU_SAVE Exit for Saving Handling Units

BADI_HU_VHILM_CHECK Additional checks for new packaging material

Deliveries and Shipment

BADI_LE_SHIPMENT BadI: Shipment Processing

BADI_DLV_PRTDATA Customer exit for data collection for printing deliv. No

BADI_V56K BAdI for manipulating raw data prior to IDoc generation

BADI_V56N User Exit Transport - Message Determination

Material Master BAdIs

BADI_MAT_F_SPEC_SEL BAdI for Material Special Field Selection

BADI_MATERIAL_CHECK Enhanced checks for material master table

BADI_MATERIAL_OD

BADI_MATERIAL_REF Addition of customer-defined default data for material

BADI_MATMAS_ALE_CR Change Data in MATMAS IDoc When Generating an IDoc

BADI_MATMAS_ALE_IN Change Data in MATMAS IDoc Before Posting

BADI_MATN1 BAdI for Conversion Exit MATN1

BADI_MM_MATNR

Page 43: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

BADI_MM_SPSTOCK

BOM_EXIT BOM User Exit

BOM_UPDATE Maintain BOMS

SD BAdIs

BADI_SD_CM BAdI for SAP Credit Management

BADI_SD_DATE_UPDATE Redetermination of Date Values in Billing Plan

BADI_SD_EDI_DELSCHED EDI Supplier Processing - Release Receipt and ESA Del. N

BADI_SD_PRICING_TUN Performance Tuning for Pricing in Billing Plan

BADI_SD_ROUTE BAdI: Route Determination

BADI_SD_SCH_GETWAGFZ Scheduling Agreement: Read WAGFZ from S073

BADI_SD_SCHDL_AGREE BADI For Modifying Scheduling Agreements

BADI_SD_UPDATE_PLVAL Updating of Planning Values for Sales Orders

BADI_SD_V46H0001 SD Customer functions for resource-related billing

Accounting Doc

AC_DOCUMENT Change the Accounting Document

ACC_DOCUMENT Change to External Document before Accessing Acc. Interface

Address

ADDRESS_CHECK Business Address Services Checks

ADDRESS_SEARCH Business Address Services Search Calls

ADDRESS_SUBSCREEN Implementation of Application-Defined Subscreen Area

ADDRESS_UPDATE Business Address services Updates

Page 44: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

Alerts

ALERT_CHECK_CONDTN Check subscription conditions

ALERT_DELIVERY Alert Delivery: User-Specific Decision

ALERT_EXIT Obsolete: Use the new BAdIs

ALERT_EXIT_LOCAL_PPF Read Application Data for an Alert

ALERT_EXP_DATE Alerts: Determine Expiry Date

ALERT_MODIFY_TEXT Change Alert Text

IDoc

CEI0_IDOC_DEFAULTS BADI: Handling of Default Values in IDoc/BAPI

CO_ALE_INBOUND_EVENT CO ALE: Event During Posting of IDoc Types CODCMT

COOM_CI_CSKB_IDOC Create COELEM IDoc - Insert Customer Fields

COOM_CI_CSKS_IDOC Create COSMAS-IDoc - Insert Customer Fields

F050S008 FIDCC1, FIDCC2 Inbound IDoc: Update Comparison Ledger

FMALE_FIPEX FMALE: Badi serving as IDoc-Exit for Commitment Item

FMALE_FUND FMALE: Badi serving as IDoc-Exit for Funds

FMALE_FUNDSCTR FMALE: Badi serving as IDoc-Exit for Fundscenter

FTR_CORR_INC_100 CFM: Inbound confirmation via IDoc

FTR_CORR_OUT_100 CFM: Outgoing Confirmation via IDoc

HRALE00INBOUND_IDOC HR-CA-ALE: Inbound Processing for HR Master Data

HRALE00OUTBOUND_IDOC HR-CA-ALE: Outbound Processing HR Master Data

HRBEN00RET0002 Country Enhancement for Filling IDOCs for Pension Plans

HRECM00_EXERCISE Inbound Processing for Exercise Confirmation IDoc

Page 45: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

HRECM00_GRANT_INFO Extract LTI Pan Grant Info for Outbound IDoc

HRECM00_PARTICIPANT Extract Participant Info for Outbound IDoc

IDOC_COPY_MANAGE BAdI for Modifying the Outbound IDocs that can be Copied

IDOC_CREATION_CHECK ALE Outbounf Processing: Check Whether IDoc is Created

IDOC_DATA_INSERT Exit for Inserting Segments

IDOC_DATA_MAPPER Exit for Preparing Internal Data Mappng

IDOC_XML_ENVELOPE_IN Exit for Removing Envelope from Incoming IDoc-XML

IDOC_XML_ENVELOPE_OU Exit for Creating Envelope for Outgoing IDoc-XML

IHC_BADI_IDOC_2_PN Replace Transaction Type, Value and Execution Date

IHC_BADI_PN_2_IDOC Change Outbound IDoc

INVOIC_FI_INBOUND BADIs for Inbound IDoc INVOIC FI (Vendor Invoice)

MAT_UPLOAD_SAVE_IDOC Transfer User-Defined Data from BAPI Structures to IDOC

ME_MMPUR_EINM_CUST BAdI Methods for Processing IDoc Data in the SUS Scenario

PRISETPARTNER Partner, Partner Type, Variant, Function for IDoc PRICAT02

SMI_IDOC_DELVRY_OUT BAdI: Report RSMIPROACT (IDoc DELVRY03)

SMI_IDOC_PROACT_OUT BAdI: Report RSMIPROACT (IDoc PROACT01)

WB2_IDOC_OUTPUT_CHG Modify Tradingcontract Data before IDOC creation ( Change)

WB2_IDOC_OUTPUT_DATA Modify Tradingcontract Data before IDOC creation

WLF_INVOICE01_REG2 BAdI: Structure INVOICE01-IDOC Agency Business Reg2

WLF_INVOICE01_REGU BAdI: Structure INVOICE01-IDOC Agency Business Payment

WTY_CLAIM_IDOC_IN Data Check and Change for Inbound IDocs

Page 46: Làm Thế Nào Tạo Và Sử Dụng Classic BADI

WTY_CLAIM_IDOC_OUT Data Check and Change for Outbound IDocs

RFC

DNO_RFC_DATA Influence RFC Data for Comm. with SAPNet R/3 Frontend

FSBP_ARCH_RFC_DATA BAdI: Read RFC Destination