Hi experts,
I am uploading contact person through program (not pad). Issue is in debugging i can see bp is generated but it is not updating the database. here is my code
DATA: lr_core TYPE REF TO cl_crm_bol_core,
lr_trans_context TYPE REF TO if_bol_transaction_context.
DATA: lv_file_path TYPE localfile.
PARAMETERS: lp_file TYPE localfile. "file path
AT SELECTION-SCREEN ON VALUE-REQUEST FOR lp_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
static = 'X'
CHANGING
file_name = lp_file.
START-OF-SELECTION.
TYPES: BEGIN OF lty_data,
datastring TYPE string,
END OF lty_data.
DATA : BEGIN OF ls_emp,
* bp_number TYPE BU_PARTNER,
* role TYPE BU_ROLE,
title TYPE ad_title,
name1 TYPE bu_namep_f ,
name2 TYPE bu_namep_l ,
dob TYPE string ,
language TYPE bu_langu_corr,
street TYPE ad_street ,
houseno TYPE ad_hsnm1,
postelcode TYPE ad_pstcd1,
city TYPE ad_city1,
country TYPE land1,
region TYPE regio,
phone1 TYPE ad_tlnmbr,
pextension TYPE ad_tlxtns,
fax TYPE ad_fxnmbr,
fextension TYPE ad_fxxtns,
email TYPE ad_smtpadr,
comm_method TYPE ad_comm,
END OF ls_emp .
DATA : lt_emp LIKE STANDARD TABLE OF ls_emp.
DATA : lv_file_str TYPE string,
lv_filetype TYPE char10,
lv_header TYPE xstring ,
lv_filelength TYPE i,
lv_comm_method TYPE ad_comm.
* DATA : ls_prospectdata TYPE lty_prospect.
* DATA : ls_emp TYPE lty_data.
* DATA : lt_prospectdata TYPE TABLE OF lty_prospect.
* DATA : lt_emp TYPE TABLE OF lty_data.
DATA lt_fields TYPE sesf_string_tab.
DATA ls_fields TYPE string.
DATA lv_timestamp TYPE timestamp.
DATA lv_date TYPE dats.
**************
DATA: lv_partnercategory TYPE bapibus1006_head-partn_cat,
lv_partnergroup TYPE bapibus1006_head-partn_grp,
lv_partnerrole TYPE bapibus1006_head-partnerrole ,
ls_centraldata TYPE bapibus1006_central,
ls_centraldataperson TYPE bapibus1006_central_person,
ls_addressdata TYPE bapibus1006_address,
lv_businesspartner1 TYPE bapibus1006_head-bpartner ,
is_adrs_usage TYPE bapibus1006_addressusage ,
it_adrs_usage TYPE TABLE OF bapibus1006_addressusage ,
gv_addressguid TYPE but020-guid .
"BAPIBUS1006_RELATIONS BAPIRET2
DATA: lt_faxdata TYPE TABLE OF bapiadfax,
ls_faxdata TYPE bapiadfax,
ls_bp_markating TYPE crmt_bus_frg0040 ,
lt_bp_markating TYPE TABLE OF crmt_bus_frg0040 ,
lt_tel TYPE TABLE OF bapiadtel,
ls_tel TYPE bapiadtel,
ls_uri TYPE bapiaduri ,
lt_uri TYPE TABLE OF bapiaduri ,
lt_email TYPE TABLE OF bapiadsmtp,
ls_email TYPE bapiadsmtp,
lt_roles TYPE TABLE OF bapibusisb990_bproles,
ls_roles TYPE bapibusisb990_bproles.
DATA: lt_return TYPE TABLE OF bapiret2 ,
lt_pt_return TYPE TABLE OF bapiret2,
lt_err_return TYPE TABLE OF bapiret2,
lt_success_return TYPE TABLE OF bapiret2,
ls_return TYPE bapiret2 .
DATA: lv_guid TYPE bu_partner_guid.
DATA: lv_person_id TYPE personid.
DATA: lv_selected_folder TYPE string.
*************
SPLIT lp_file AT '.' INTO lv_file_str lv_filetype .
* TRANSLATE lv_filetype TO UPPER CASE.
* IF "lv_filetype = 'CSV'.
lv_file_str = lp_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_file_str
filetype = 'ASC'
has_field_separator = 'x'
replacement = '#'
no_auth_check = 'x'
IMPORTING
filelength = lv_filelength
header = lv_header
TABLES
data_tab = lt_emp
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
EXIT.
ENDIF.
LOOP AT lt_emp INTO ls_emp.
lv_partnercategory = '1'.
* lv_partnergroup = 'Z004'. " THIS DOES NOT EXIT IN SYSTEM
lv_partnergroup = 'Y6'.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external = ls_emp-DOB
IMPORTING
date_internal = lv_date
EXCEPTIONS
date_external_is_invalid = 1
OTHERS = 2.
ls_centraldataperson-CORRESPONDLANGUAGE = ls_emp-language.
ls_centraldataperson-firstname = ls_emp-name1.
ls_centraldataperson-lastname = ls_emp-name2.
ls_centraldata-title_key = ls_emp-title .
ls_centraldataperson-BIRTHDATE = lv_date . "ls_emp-DOB.
" company . "TITLE_KEY
TRANSLATE ls_emp-country TO UPPER CASE.
ls_addressdata-country = ls_emp-country.
ls_addressdata-postl_cod1 = ls_emp-postelcode.
ls_addressdata-street = ls_emp-street.
ls_addressdata-city = ls_emp-city.
ls_addressdata-house_no = ls_emp-houseno.
ls_addressdata-comm_type = ls_emp-comm_method.
REPLACE ALL OCCURRENCES OF '.' IN ls_emp-phone1 WITH space.
CONDENSE ls_emp-phone1 NO-GAPS.
REPLACE ALL OCCURRENCES OF '.' IN ls_emp-fax WITH space.
CONDENSE ls_emp-fax NO-GAPS.
* REPLACE ALL OCCURRENCES OF '.' IN ls_emp-mobile WITH space.
* CONDENSE ls_emp-mobile NO-GAPS.
IF NOT ls_emp-phone1 IS INITIAL.
ls_tel-country = ls_emp-country.
ls_tel-telephone = ls_emp-phone1.
ls_tel-extension = ls_emp-pextension .
ls_tel-r_3_user = space.
APPEND ls_tel TO lt_tel.
CLEAR ls_tel.
ENDIF.
* IF NOT ls_emp-uri IS INITIAL.
* ls_uri-uri_type = 'HPG' ." add by srikanth
* ls_uri-uri = ls_emp-uri. "uri_type
* APPEND ls_uri TO lt_uri.
* CLEAR ls_uri.
* ENDIF.
IF NOT ls_emp-fax IS INITIAL.
ls_faxdata-country = ls_emp-country.
ls_faxdata-fax = ls_emp-fax.
ls_faxdata-extension = ls_emp-fextension .
APPEND ls_faxdata TO lt_faxdata.
ENDIF.
IF NOT ls_emp-email IS INITIAL.
ls_email-e_mail = ls_emp-email.
APPEND ls_email TO lt_email.
ENDIF.
ls_roles-partnerrole = 'BUP001'.
ls_roles-partnerrolecategory = 'BUP001'.
APPEND ls_roles TO lt_roles.
CALL FUNCTION 'BAPI_BUPA_CREATE_FROM_DATA'
EXPORTING
partnercategory = lv_partnercategory
partnergroup = lv_partnergroup
centraldata = ls_centraldata
centraldataperson = ls_centraldataperson "commented by sriaknth
* centraldataorganization = ls_orgnization " addded by srikanth
addressdata = ls_addressdata
accept_error = abap_true
IMPORTING
businesspartner = lv_businesspartner1
TABLES
telefondata = lt_tel
faxdata = lt_faxdata
e_maildata = lt_email
return = lt_return
* uriaddressdata = lt_uri.
* roles = lt_roles.
.
IF NOT lt_return IS INITIAL.
PERFORM f_check_error.
ENDIF.
SELECT SINGLE partner_guid FROM but000
INTO lv_guid
WHERE partner EQ lv_businesspartner1.
CHECK sy-subrc EQ 0.
WRITE :/ lv_businesspartner1.
CALL FUNCTION 'BAPI_BUPA_ROLE_ADD'
EXPORTING
businesspartner = lv_businesspartner1
businesspartnerrole = 'BUP001'
* DIFFERENTIATIONTYPEVALUE =
TABLES
return = lt_return.
CALL FUNCTION 'BBPU_COMMIT_AND_WAIT'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
CLEAR: lv_partnercategory, lv_partnergroup,
ls_centraldata,ls_centraldataperson,
ls_addressdata,
lt_tel,lt_faxdata,lt_uri ,
lt_email,lt_return,lt_roles,lv_guid, lv_person_id.
ENDLOOP .
*&---------------------------------------------------------------------*
*& Form F_CHECK_ERROR
*&---------------------------------------------------------------------*
FORM f_check_error.
LOOP AT lt_return INTO ls_return.
IF ls_return-type EQ 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
APPEND ls_return TO lt_err_return.
ELSEIF ls_return-type NE 'E'.
APPEND ls_return TO lt_success_return.
CALL FUNCTION 'BBPU_COMMIT_AND_WAIT'.
ENDIF.
ENDLOOP.
ENDFORM.
this is data is in my notpad.
| 0002 | radan27 | Donthu3 | 02.02.1990 | EN | V.P.colony | 17-1-382 | 500079 | Hyderabad | IN | 01 | 2433245 | 234 | 2323223 | 232 | shivp@gmail.com | INT |