Hi Guru's,
I am uploading the customer master data from presentaion server to customer tables using functional module SD_CUSTOMER_MAINTAIN_ALL.
while check the Function module separatly and it working properley and i am able to ctere customer...
and i am using the same function module in the program i am unable to upload ..could please check and let me know where i am doing mistake in the below program logis..and values also moving properly before calling function module..while calling the functinal module the controle comming out of the loop and program went to dump i am able to see the message in dump as like this(it may helpfull for resolve):
Name of function module...............: "SD_CUSTOMER_MAINTAIN_ALL"
Name of formal parameter..............: "O_KNA1"
Technical type of actual parameter....: "C"
Technical length of actual parameter..: 20 bytes
Technical type of formal parameter....: "u"
Technical length of formal parameter..: 3634 bytes
Name of formal parameter at caller....: "O_KNA1"
&----
*& Report ZERP_CUSTOMER_CREATE_UPLOAD
*&
&----
*&
*&
&----
REPORT zerp_customer_create_upload.
PARAMETERS:p_files TYPE string.
*DATA :xkunnr(10) LIKE kna1-kunnr. "unique KUNNR
DATA: gs_i_kna1 TYPE kna1,
gs_i_knb1 TYPE knb1,
gs_i_knvv TYPE knvv,
gs_return TYPE bapireturn1,
gs_i_bapiaddr1 TYPE bapiaddr1,
gt_t_xknvi TYPE STANDARD TABLE OF fknvi,
gwa_t_xknvi TYPE fknvi,
gt_t_xknbk TYPE STANDARD TABLE OF fknbk,
gwa_t_xknbk TYPE fknbk,
gt_t_yknvp TYPE STANDARD TABLE OF fknvp,
gwa_t_xknvp TYPE fknvp.
TYPES:BEGIN OF gty_itab1,
abc(305),
END OF gty_itab1.
DATA: gt_itab1 TYPE STANDARD TABLE OF gty_itab1,
gwa_itab1 TYPE gty_itab1.
TYPES :BEGIN OF gty_itab2,
ktokd(4), "customer account grp kna1
kunnr(10), "customer kna1
name1(35), "name1 kna1
sortl(10), "sort filed kna1
stras(35), "house number and adres kna1
pstlz(10), "postal code kna1
ort01(35), "city kna1
land1(3), "country kna1
telf1(16), "tele phone no kna1
telfx(31), "fax num kna1
kukla(2), "cust classificaion kna1
bukrs(4), "company code knb1
akont(10), "reconcilation acct knb1
vkorg(4), "sales org knvv
vtweg(2), "distr chan knvv
spart(2), "division knvv
zterm(4), "terms of payment knvv
bzirk(6), "sales district knvv
vkbur(4), "sales office knvv
vkgrp(3), "sales grp knvv
kdgrp(2), "cust grp knvv
waers(5), "currency knvv
konda(2), "price grp knvv
kalks(1), "pricing procedure assign knvv
lprio(2), "delivery plant knvv
vsbed(2), "shipping conditions knvv
vwerk(4), "delivering plant knvv
inco1(3), "inco1 knvv
inco2(28), "inco2 knvv
kkber(4), "cred control area knvv
ktgrd(2), "acc assgn grp knvv
taxkd(1), "tax classification 4 cust knvi
bankn(18), "bank account number knbk -
xkunnr(10),
END OF gty_itab2.
DATA: gt_itab2 TYPE STANDARD TABLE OF gty_itab2,
gwa_itab2 TYPE gty_itab2.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_files
filetype = 'ASC'
TABLES
data_tab = gt_itab1
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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT gt_itab1 INTO gwa_itab1.
gwa_itab2 = gwa_itab1-abc(305).
APPEND gwa_itab2 TO gt_itab2.
ENDLOOP.
LOOP AT gt_itab2 INTO gwa_itab2.
SPLIT gwa_itab2 AT ',' INTO gwa_itab2-ktokd
gwa_itab2-kunnr
gwa_itab2-name1 gwa_itab2-sortl
gwa_itab2-stras gwa_itab2-pstlz
gwa_itab2-ort01 gwa_itab2-land1
gwa_itab2-telf1 gwa_itab2-telfx
gwa_itab2-kukla gwa_itab2-bukrs
gwa_itab2-akont gwa_itab2-vkorg
gwa_itab2-vtweg gwa_itab2-spart
gwa_itab2-zterm gwa_itab2-bzirk
gwa_itab2-vkbur gwa_itab2-vkgrp
gwa_itab2-kdgrp gwa_itab2-waers
gwa_itab2-konda gwa_itab2-kalks
gwa_itab2-lprio gwa_itab2-vsbed
gwa_itab2-vwerk gwa_itab2-inco1
gwa_itab2-inco2 gwa_itab2-kkber
gwa_itab2-ktgrd
gwa_itab2-taxkd
gwa_itab2-bankn.
*moving files values from ITAB2 work area to global structure related to FM.
gs_i_kna1-ktokd = gwa_itab2-ktokd.
gs_i_kna1-kunnr = gwa_itab2-kunnr.
gs_i_kna1-name1 = gwa_itab2-name1.
gs_i_kna1-sortl = gwa_itab2-sortl.
gs_i_kna1-stras = gwa_itab2-stras.
gs_i_kna1-pstlz = gwa_itab2-pstlz.
gs_i_kna1-ort01 = gwa_itab2-ort01.
gs_i_kna1-regio = gwa_itab2-land1.
gs_i_kna1-telf1 = gwa_itab2-telf1.
gs_i_kna1-telfx = gwa_itab2-telfx.
gs_i_kna1-kukla = gwa_itab2-kukla.
gs_i_knb1-bukrs = gwa_itab2-bukrs.
gs_i_knb1-akont = gwa_itab2-akont.
*I FOR GOT TO INCLUDE THE ZTERM VALUE IN EXCELL SHEET SO INCLUDED HARD CODE HERE
gs_i_knb1-zterm = '0001'.
gs_i_knvv-vkorg = gwa_itab2-vkorg.
gs_i_knvv-vtweg = gwa_itab2-vtweg.
gs_i_knvv-spart = gwa_itab2-spart.
gs_i_knvv-zterm = gwa_itab2-zterm.
gs_i_knvv-bzirk = gwa_itab2-bzirk.
gs_i_knvv-vkbur = gwa_itab2-vkbur.
gs_i_knvv-vkgrp = gwa_itab2-vkgrp.
gs_i_knvv-kdgrp = gwa_itab2-kdgrp.
gs_i_knvv-waers = gwa_itab2-waers.
gs_i_knvv-konda = gwa_itab2-konda.
gs_i_knvv-kalks = gwa_itab2-kalks.
gs_i_knvv-lprio = '02'. "gwa_itab2-lprio.
gs_i_knvv-vsbed = gwa_itab2-vsbed.
gs_i_knvv-vwerk = gwa_itab2-vwerk.
gs_i_knvv-inco1 = gwa_itab2-inco1.
gs_i_knvv-inco2 = gwa_itab2-inco2.
gs_i_knvv-kkber = gwa_itab2-kkber.
gs_i_knvv-ktgrd = gwa_itab2-ktgrd.
gwa_t_xknvi-tatyp = 'UTXJ'. "HARD CODE
gwa_t_xknvi-aland = 'US'. "HARD CODED
gwa_t_xknvi-kz = '0'. "HADR CODE
gwa_t_xknvi-taxkd = '0'. "gwa_itab2-taxkd.
APPEND gwa_t_xknvi TO gt_t_xknvi.
gwa_t_xknbk-bankn = gwa_itab2-bankn.
APPEND gwa_t_xknbk TO gt_t_xknbk.
gs_i_knb1-lockb = 'X'.
gs_i_knvv-kzazu = 'X'.
gs_i_knvv-kztlf = 'X'.
gs_i_knvv-perfk = 'X'.
gs_i_knvv-prfre = 'X'.
gs_i_kna1-spras = 'EN'.
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
EXPORTING
i_kna1 = gs_i_kna1
i_knb1 = gs_i_knb1
i_knvv = gs_i_knvv
I_BAPIADDR1 =
I_BAPIADDR2 =
I_MAINTAIN_ADDRESS_BY_KNA1 = ' '
I_KNB1_REFERENCE = ' '
I_FORCE_EXTERNAL_NUMBER_RANGE = ' '
I_NO_BANK_MASTER_UPDATE = ' '
I_CUSTOMER_IS_CONSUMER = ' '
I_RAISE_NO_BTE = ' '
PI_POSTFLAG = ' '
PI_CAM_CHANGED = ' '
PI_ADD_ON_DATA =
I_FROM_CUSTOMERMASTER = ' '
IMPORTING
e_kunnr = xkunnr
o_kna1 = xkunnr
E_SD_CUST_1321_DONE =
TABLES
T_XKNAS =
t_xknbk = gt_t_xknbk
T_XKNB5 =
T_XKNEX =
T_XKNVA =
T_XKNVD =
t_xknvi = gt_t_xknvi
T_XKNVK =
T_XKNVL =
T_XKNVP =
T_XKNZA =
T_YKNAS =
T_YKNBK =
T_YKNB5 =
T_YKNEX =
T_YKNVA =
T_YKNVD =
T_YKNVI =
T_YKNVK =
T_YKNVL =
t_yknvp = gt_t_yknvp
T_YKNZA =
T_UPD_TXT =
EXCEPTIONS
client_error = 1
kna1_incomplete = 2
knb1_incomplete = 3
knb5_incomplete = 4
knvv_incomplete = 5
kunnr_not_unique = 6
sales_area_not_unique = 7
sales_area_not_valid = 8
insert_update_conflict = 9
number_assignment_error = 10
number_not_in_range = 11
number_range_not_extern = 12
number_range_not_intern = 13
account_group_not_valid = 14
parnr_invalid = 15
bank_address_invalid = 16
tax_data_not_valid = 17
no_authority = 18
company_code_not_unique = 19
dunning_data_not_valid = 20
knb1_reference_invalid = 21
cam_error = 22
OTHERS = 23.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
WRITE: / 'Error Message:', 'error in creation'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WRITE: / 'costomer', gwa_itab2-kunnr, 'created'.
ENDIF.
ENDLOOP.