12-22-2017 2:00 PM
Dear all,
though the production create order confirmation to be made by Call Transaction 'CO15' data has been passed with BDC, speed is terrible and slow:
------------------------------------------------------------------------------
data l_mode like ctu_params-dismode.
refresh bdcdata.
perform bdc_dynpro using 'SAPLCORU' '0400'.
perform bdc_field using 'BDC_CURSOR'
'CORUF-AUFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CORUF-AUFNR'
zhdrlevel-orderid.
perform bdc_dynpro using 'SAPLCORU' '0410'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'AFRUD-MEINH'.
perform bdc_field using 'CORUF-TEILR'
'X'.
data: x_qta(18).
write zhdrlevel-yield to x_qta.
perform bdc_field using 'AFRUD-LMNGA'
x_qta.
data: lv_data(8).
concatenate tb_log-cpudt+6(2) tb_log-cpudt+4(2)
tb_log-cpudt(4) into lv_data.
data: lv_time(8).
move tb_log-cputm to lv_time.
perform bdc_field using 'AFRUD-ISDD'
lv_data.
perform bdc_field using 'AFRUD-ISDZ'
lv_time.
perform bdc_field using 'AFRUD-IEDD'
lv_data.
perform bdc_field using 'AFRUD-IEDZ'
lv_time.
concatenate sy-datum+6(2) sy-datum+4(2)
sy-datum(4) into lv_data.
perform bdc_field using 'AFRUD-BUDAT'
lv_data.
perform bdc_field using 'AFRUD-LTXA1'
tb_log-zzfile_name.
perform bdc_dynpro using 'SAPLCORU' '0410'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
move 'N' to l_mode.
move p_mode to l_mode.
refresh gt_messtab.
call transaction l_tcode using bdcdata
mode l_mode
update 'S'
messages into gt_messtab.
Isn't there any method of improving the performance?
I know the bapi BAPI_PRODORDCONF_CREATE_HDR but I do not know the differences
that can be there from BDC process.
Thanks
Regards
12-22-2017 2:15 PM
Use asynchronous update (UPDATE 'A') so removing the WAIT option in the executed COMMIT. (Of course I supposed you wont try to read data again too early after execution,) You could even move the call transaction in a RFC call of ABAP4_CALL_TRANSACTION_VB or ABAP4_CALL_TRANSACTION.
12-23-2017 10:30 AM
12-23-2017 10:32 AM
Batch input is slow, that's a fact, and you can't accelerate it. The only thing you can do is to parallelize the batch input (do it in several jobs).
01-05-2018 9:13 AM
Hi,
Are you experiencing that in online mode? It could be (for various reason, e.g. multiple time-consuming user-exit/BADI/enhancements) that this is a process that takes time either way.