cancel
Showing results for 
Search instead for 
Did you mean: 

Business Partner  Creation using ODATA V2.0

Pranjali-Sharma
Discoverer

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. 

Screenshot 2024-04-05 160505.png

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

Accepted Solutions (0)

Answers (0)