3 weeks ago - last edited 3 weeks ago
Objective:Business Partner Creation using ODATA V2.0
Step 1. To Create OData go to T-Code SEGW.
Step 2. Create a New Project(Ex--> Z_CUSTOMER)
Step 3. Then create a Entity Type(Ex--> Customer)
Step 4 . In properties, insert field by referring below attached screenshot.
Step 5. Source Code
1. Get EntitySet Method
method CUSTOMERSET_GET_ENTITYSET.
data lwa_entity LIKE LINE OF et_entityset.
SELECT * FROM kna1 INTO TABLE @DATA(lt_cust).
LOOP AT lt_cust INTO data(lwa_cust).
SELECT SINGLE city1, country, region
INTO (@lwa_entity-city, @lwa_entity-country, @lwa_entity-region)
FROM adrc
WHERE addrnumber = @lwa_cust-adrnr.
lwa_entity-name1 = lwa_cust-name1.
lwa_entity-businesspartner = lwa_cust-kunnr.
lwa_entity-businesscategory = '2'.
lwa_entity-partnergroup = 'Customer'.
append lwa_entity to et_entityset.
ENDLOOP.
endmethod.
2. Get Entity Method
METHOD customerset_get_entity.
DATA : bp TYPE kunnr.
DATA : address TYPE bapicustomer_04.
DATA : gen_detail TYPE bapicustomer_kna1.
DATA : comp_Detail TYPE bapicustomer_05.
DATA : return TYPE bapiret1.
DATA(lwa_key) = it_key_tab[ name = 'CustomerCode' ].
IF lwa_key-value IS NOT INITIAL.
bp = lwa_key-value.
CALL FUNCTION 'BAPI_CUSTOMER_GETDETAIL2'
EXPORTING
customerno = bp
* COMPANYCODE =
IMPORTING
customeraddress = address
customergeneraldetail = gen_detail
customercompanydetail = comp_detail
return = return
* TABLES
* CUSTOMERBANKDETAIL =
* CUSTOMERIBANDETAIL =
* CUSTOMERSEPADETAIL =
.
IF sy-subrc = 0 and return-type <> 'E'.
er_entity-city = address-city.
er_entity-country = address-country.
er_entity-region = address-region.
er_entity-name1 = address-name.
er_entity-businesspartner = bp.
er_entity-businesscategory = '2'.
er_entity-partnergroup = 'Customer'.
else.
er_entity-businesspartner = 'Not Found.'.
er_entity-return = 'No customer found.'.
ENDIF.
ELSE.
RAISE EXCEPTION TYPE /iwbep/cx_mgw_not_impl_exc
EXPORTING
textid = /iwbep/cx_mgw_busi_exception=>business_error
method = 'Please pass Customer Key to get the details.'.
ENDIF.
3. Create Entity Method
METHOD customerset_create_entity.
DATA centraldataorg TYPE BAPIBUS1006_CENTRAL_ORGAN.
DATA partner_data TYPE bapibus1006_central.
DATA address TYPE bapibus1006_address.
DATA bp TYPE bapibus1006_head-bpartner.
DATA return TYPE TABLE OF bapiret2.
DATA ls_request_input_data TYPE zcl_z_customer_mpc=>ts_customer.
io_data_provider->read_entry_data( IMPORTING es_data = ls_request_input_data ).
IF ls_request_input_data IS NOT INITIAL.
partner_data-searchterm2 = 'SaleForceCustomer'.
centraldataorg-name1 = ls_request_input_data-name1.
address-city = ls_request_input_data-city.
address-country = ls_request_input_data-country.
address-region = ls_request_input_data-region.
address-c_o_name = ls_request_input_data-name1.
address-time_zone = ls_request_input_data-time_zone.
address-postl_cod1 = '123456'.
address-langu = 'EN'.
CALL FUNCTION 'BAPI_BPCONSUMER_CREATE'
EXPORTING
* PARTNER_EXTERNAL_NO =
partner_group = 'BP02'
partner_category = '2'
partner_central_data = partner_data
* CENTRAL_DATA_PERSON =
central_data_organization = centraldataorg
* CENTRAL_DATA_GROUP =
partner_addr = address
* DUPLICATE_MESSAGE_TYPE_ADDR =
* ACCEPT_ERROR_ADDR =
IMPORTING
businesspartner = bp
TABLES
* PARTNER_TEL_ADDR =
* PARTNER_FAX_ADDR =
* PARTNER_TELETEX_ADDR =
* PARTNER_TELEX_ADDR =
* PARTNER_EMAIL_ADDR =
* PARTNER_RML_ADDR =
* PARTNER_X400_ADDR =
* PARTNER_RFC_ADDR =
* PARTNER_PRT_ADDR =
* PARTNER_SSF_ADDR =
* PARTNER_URI_ADDR =
* PARTNER_PAGER_ADDR =
* PARTNER_NOTE_ADDR =
* PARTNER_NOTECOM_ADDR =
* PARTNER_TEL_NONADDRESS =
* PARTNER_FAX_NONADDRESS =
* PARTNER_TELETEX_NONADDRESS =
* PARTNER_TELEX_NONADDRESS =
* PARTNER_EMAIL_NONADDRESS =
* PARTNER_RML_NONADDRESS =
* PARTNER_X400_NONADDRESS =
* PARTNER_RFC_NONADDRESS =
* PARTNER_PRT_NONADDRESS =
* PARTNER_SSF_NONADDRESS =
* PARTNER_URI_NONADDRESS =
* PARTNER_PAGER_NONADDRESS =
* PARTNER_NOTECOM_NONADDRESS =
* PARTNER_ADDRESSDUPLICATES =
* PARTNER_BANK_ATTR =
return = return.
IF bp IS NOT INITIAL.
CALL FUNCTION 'BAPI_BUPA_ROLE_ADD'
EXPORTING
businesspartner = bp
businesspartnerrole = 'FLCU01'
* DIFFERENTIATIONTYPEVALUE =
* TABLES
* RETURN =
.
IF ls_request_input_data-commit IS NOT INITIAL.
COMMIT WORK.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT = ' '
* IMPORTING
* return = return.
ER_ENTITY-businesspartner = bp.
er_entity-name1 = ls_request_input_data-name1.
ELSE.
"// error handling
ENDIF.
ELSE.
"// error handling
ENDIF.
ENDIF.
ENDMETHOD.
🙂Thank you
Pranjali Sharma
User | Count |
---|---|
81 | |
11 | |
10 | |
8 | |
7 | |
6 | |
6 | |
6 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.