Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BAPI - SALES DISTRIBUTION

divsmart
Participant
0 Kudos
686

Hi Experts,

I have an requirment to create an customer in BP.

Here, I created the general data , Company code but i unable to create an sales and distribution.

I created it with 'BAPI_BUPA_FRG0010_ADD' but getting an error as 'No sales and distribution' .

Please guidance me or provide BAPI names.

  LOOP AT lt_excel_1 INTO ls_excel_1.

IF ls_excel_1-role = 'ZCUST'. "businesspartnerrole
businesspartnerrole = 'FLCU00'.
ENDIF.

* **************************************** Creating a BP Role

partnercategory = '2'.
partnergroup = ls_excel_1-group.

* **************************************** Fill Central data
centraldata-searchterm1 = ls_excel_1-search1.
DATA: adrnr TYPE ad_addrnum,
w_part TYPE bu_partner,
err TYPE string.
CLEAR: adrnr, w_part, err.
centraldata-searchterm2 = ls_excel_1-search2.
centraldata-title_key = ls_excel_1-title.
centraldata-titleletter = ls_excel_1-salu.
IF partnercategory = 2.
ELSE.
centraldataperson-correspondlanguage = 'E'.
centraldataperson-correspondlanguageiso = 'EN'.
ENDIF.

* ***************************************** Fill Address Details
IF partnercategory = 2.
centraldataorganization-name1 = ls_excel_1-name1.
centraldataorganization-name2 = ls_excel_1-name2.
centraldataorganization-name3 = ls_excel_1-name3.
centraldataorganization-name4 = ls_excel_1-name4.
ELSEIF partnercategory = 1.
centraldataperson-firstname = ls_excel_1-name1.
ENDIF.

addressdata-street = ls_excel_1-street1.
addressdata-str_suppl1 = ls_excel_1-street2.
addressdata-str_suppl2 = ls_excel_1-street3.
addressdata-str_suppl3 = ls_excel_1-street4.
addressdata-postl_cod1 = ls_excel_1-post_code1.
addressdata-city = ls_excel_1-city1 .
addressdata-country = ls_excel_1-country .
addressdata-region = ls_excel_1-region .
addressdata-langu = ls_excel_1-spras .

REFRESH it_telephondata.
wa_telephondata-country = ls_excel_1-country.
wa_telephondata-telephone = ls_excel_1-tel_number1.
wa_telephondata-std_no = 'X'.
wa_telephondata-r_3_user = '3'.
wa_telephondata-consnumber = '001'.
wa_telephondata-home_flag = 'X'.
APPEND wa_telephondata TO it_telephondata.

CLEAR wa_telephondata.
wa_telephondata-country = ls_excel_1-country.
wa_telephondata-telephone = ls_excel_1-tel_number.
wa_telephondata-std_no = 'X'.
wa_telephondata-r_3_user = '1'.
wa_telephondata-consnumber = '002'.
wa_telephondata-home_flag = 'X'.
APPEND wa_telephondata TO it_telephondata.

REFRESH it_maildata.
wa_maildata-e_mail = ls_excel_1-smtp_addr.
wa_maildata-std_no = 'X'.
wa_maildata-std_recip = 'X'.
wa_maildata-home_flag = 'X'.
wa_maildata-consnumber = '001'.
APPEND wa_maildata TO it_maildata.

* ****************************************Creating A Business Partner

DATA: tax_ret TYPE TABLE OF bapiret2,
lv_bp TYPE bu_partner,
lv_kunnr TYPE kna1-kunnr,

w_log TYPE kna1-kunnr.

CLEAR businesspartner.


lv_bp = ls_excel_1-search2.

CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
EXPORTING
* businesspartnerextern = businesspartnerextern
partnercategory = partnercategory
partnergroup = partnergroup
centraldata = centraldata
centraldataperson = centraldataperson
centraldataorganization = centraldataorganization
addressdata = addressdata
IMPORTING
businesspartner = businesspartner
TABLES
telefondata = it_telephondata
e_maildata = it_maildata
return = return.

READ TABLE return INTO lwa_return WITH KEY type = 'E' .
IF sy-subrc EQ 0.
lv_error = 'X'.
ENDIF.

IF lv_error IS NOT INITIAL.
ROLLBACK WORK.
ENDIF.

IF businesspartner IS NOT INITIAL.
IF lv_error IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
CONCATENATE 'S -' businesspartner 'BP-created' INTO DATA(gv_err1).
ENDIF.
ENDIF.

DATA: lw_bupa TYPE bu_partner.
DATA : lt_return1 TYPE STANDARD TABLE OF bapiret2.
DATA : lv_taxtype TYPE bapibus1006tax-taxtype, lv_taxnum TYPE bapibus1006tax-taxnumber.
IF businesspartner IS NOT INITIAL.
lv_taxtype = ls_excel_1-tax.
lv_taxnum = ls_excel_1-taxnumxl.

IF ( lv_taxtype IS NOT INITIAL ) AND ( lv_taxnum IS NOT INITIAL ).
CALL FUNCTION 'BAPI_BUPA_TAX_ADD'
EXPORTING
businesspartner = businesspartner
taxtype = lv_taxtype
taxnumber = lv_taxnum
TABLES
return = lt_return1.

READ TABLE lt_return1 INTO DATA(gs_ret) WITH KEY type = 'E'.
IF sy-subrc = 0.
ENDIF.
ENDIF.
ENDIF.


IF businesspartner IS NOT INITIAL.

TRY .

DATA : lv_rltyp TYPE but100-rltyp.

CALL FUNCTION 'BAPI_BUPA_ROLE_ADD'
EXPORTING
businesspartner = businesspartner
businesspartnerrole = businesspartnerrole "'FLCU00'
* DIFFERENTIATIONTYPEVALUE =
TABLES
return = return.

*
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.

CLEAR lv_rltyp.
SELECT SINGLE rltyp INTO lv_rltyp FROM but100 WHERE partner = businesspartner
AND rltyp = ls_excel_1-role.

IF lv_rltyp IS INITIAL.
WAIT UP TO 1 SECONDS.
ENDIF.
*&---------------------------------------------------------------------*
*& Add Customer Roles
*&---------------------------------------------------------------------*


CALL FUNCTION 'BAPI_BUPA_ROLE_ADD'
EXPORTING
businesspartner = businesspartner
businesspartnerrole = businesspartnerrole "'FLCU00'
* DIFFERENTIATIONTYPEVALUE =
TABLES
return = return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.


CLEAR lv_rltyp.
SELECT SINGLE rltyp INTO lv_rltyp FROM but100 WHERE partner = businesspartner
AND rltyp = ls_excel_1-role.

IF lv_rltyp IS INITIAL.
WAIT UP TO 1 SECONDS.
ENDIF.



* SELECT SINGLE * FROM but000 INTO TABLE @DATA(it_but000) WHERE partner = @businesspartner.
SELECT SINGLE * FROM but000 INTO @DATA(is_but000) WHERE partner = @businesspartner.

* SELECT * FROM cvi_cust_link INTO TABLE @DATA(it_cvi_cust_link) FOR ALL ENTRIES IN @it_but000 WHERE partner_guid = @it_but000-partner_guid.
SELECT * FROM cvi_cust_link INTO TABLE @DATA(it_cvi_cust_link) WHERE partner_guid = @is_but000-partner_guid AND customer EQ @is_but000-partner.

READ TABLE it_cvi_cust_link INTO DATA(wa_cvi_cust_link) INDEX 1.

* lv_kunnr = wa_cvi_cust_link-customer.

CATCH cx_salv_msg.
ENDTRY.
ENDIF.

lv_kunnr = businesspartner.

*
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_kunnr
IMPORTING
output = lv_kunnr.
* CLEAR wa_kna1.

SELECT SINGLE * FROM kna1 INTO wa_kna1 WHERE kunnr = lv_kunnr.
IF sy-subrc = 0.
wa_kna1-j_1ipanno = ls_excel_1-pan.
UPDATE kna1 FROM wa_kna1.
ENDIF.

ls_customers-header-object_task = 'U'.
ls_address-postal-data-name = wa_kna1-name1.
ls_address-postal-data-country = wa_kna1-land1.
ls_address-postal-datax-name = 'X'.
ls_address-postal-datax-country = 'X'.
ls_address-task = 'U'.
ls_customers-central_data-address = ls_address.
ls_customers-central_data = ls_central_data.
* ls_customers-sales_data = ls_sales_data.
REFRESH: lt_company[].
CLEAR ls_company.
ls_company-task = 'I'.
ls_company-data_key-bukrs = ls_excel_1-companycode.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_excel_1-rec_account
IMPORTING
output = ls_company-data-akont.
ls_company-datax-akont = 'X'.
IF headoffice IS NOT INITIAL.
ls_company-data-knrze = headoffice.
ls_company-datax-knrze = 'X'.
ENDIF.
ls_company-data-zterm = ls_excel_1-terms.
ls_company-datax-zterm = 'X'.
APPEND ls_company TO lt_company.

* ***********Sales to updated******************
*+++Sales area.
it_sales-sales_organization = ls_excel_1-sales.
it_sales-distribution_channel = ls_excel_1-dist.
it_sales-division = ls_excel_1-division.

* it_shipping-dlv_priority = ls_excel_1-delivery. "shipping tab
* it_shipping-order_combined = 'X'. "shipping tab
* it_shipping-shipping_cond = ls_excel_1-ship_con. "shipping tab

.


CALL FUNCTION 'BAPI_BUPA_FRG0010_ADD'
EXPORTING
businesspartner = businesspartner
sales_area = it_sales
TABLES
return = return.
IF return IS NOT INITIAL.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
* +++Order.

it_order-sales_dist = ls_excel_1-sales_dis.
it_order-price_grp = ls_excel_1-cu_pring.
it_order-cust_group = ls_excel_1-cu_grp.

CALL FUNCTION 'BAPI_SALESORDER_SIMULATE'
EXPORTING
order_header_in = it_sales
IMPORTING
sold_to_party = it_order.

ls_company_data-company = lt_company[].
ls_customers-company_data = ls_company_data.

APPEND ls_customers TO lt_customers.
is_master_data-customers = lt_customers[].
cmd_ei_api=>initialize( ).
CALL METHOD cmd_ei_api=>maintain_bapi
EXPORTING
is_master_data = is_master_data
IMPORTING
es_master_data_correct = es_master_data_correct
es_message_correct = es_message_correct
es_master_data_defective = es_master_data_defective
es_message_defective = es_message_defective.

IF es_message_defective-is_error IS INITIAL.

COMMIT WORK.
WAIT UP TO 1 SECONDS.

DATA(lv_partner) = ls_customers-header-object_instance-kunnr.
ELSE.
LOOP AT es_message_defective-messages INTO DATA(wa).
WAIT UP TO 1 SECONDS.
ENDLOOP.
ENDIF.
CLEAR : lv_flag.
CLEAR : centraldata,centraldataperson,centraldataorganization,addressdata,
businesspartner,partnergroup,partnercategory.
REFRESH : it_telephondata,it_maildata,return.
* CLEAR : lv_error.
ENDLOOP.



ENDFORM.

0 REPLIES 0