‎2006 Mar 27 11:43 AM
Hi experts,
I am new to BW and my requirment is to convert the time entering into BW as seconds into HH:MM:SS format.
Some one in this form advised me to create function module 'MONI_TIME_CONVERT '
please give me the code that converts seconds into HH:MM:SS and also procedure on how to create function module...detailed steps please.......
thanks for the help
‎2006 Mar 27 11:53 AM
‎2006 Mar 27 11:54 AM
Hi Rama,
to convert seconds to hh mm ss..
just convert the seconds to a type p variable and then assign it to a variable like sy-uzeit..
look at this sample
parameters : sec type p.
data : time like sy-uzeit.
time = sec.
write : / Time.regards
satesh
‎2006 Mar 27 11:59 AM
Hi,
check the FM code. if you don't have this FM code, create it in SE37 and make use of it.
<b>FM MONI_TIME_CONVERT</b>
FUNCTION MONI_TIME_CONVERT.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" REFERENCE(LD_DURATION) TYPE SY-TABIX
*" EXPORTING
*" REFERENCE(LT_OUTPUT_DURATION) TYPE SWL_PM_CVH-DURATION
*"----------------------------------------------------------------------
DATA: LD_HOUR(4) TYPE N. "
DATA: LD_MIN(4) TYPE N. "
DATA: LD_SEC(4) TYPE N. "
DATA: LD_VALUE2(2) TYPE N.
DATA: LD_VALUE3(3) TYPE N.
DATA: LD_VALUE4(4) TYPE N.
DATA: SAVE_DURATION LIKE SY-TABIX.
data: ld_minus(1).
SAVE_DURATION = LD_DURATION.
if ld_duration < 0.
save_duration = save_duration * ( -1 ).
ld_minus = true.
endif.
CLEAR LT_OUTPUT_DURATION.
IF SAVE_DURATION NE 0.
LD_HOUR = SAVE_DURATION DIV 3600.
save_duration = save_duration - ld_hour * 3600.
LD_MIN = SAVE_DURATION DIV 60.
save_duration = save_duration - ld_min * 60.
LD_SEC = SAVE_DURATION.
IF LD_HOUR LE 100.
LD_VALUE2 = LD_HOUR.
WRITE LD_VALUE2 TO LT_OUTPUT_DURATION+3(2).
ELSEIF LD_HOUR LE 1000.
LD_VALUE3 = LD_HOUR.
WRITE LD_VALUE3 TO LT_OUTPUT_DURATION+2(3).
ELSE.
LD_VALUE4 = LD_HOUR.
WRITE LD_VALUE4 TO LT_OUTPUT_DURATION(4).
ENDIF.
WRITE ':' TO LT_OUTPUT_DURATION+5.
LD_VALUE2 = LD_MIN.
WRITE LD_VALUE2 TO LT_OUTPUT_DURATION+6(2).
WRITE ':' TO LT_OUTPUT_DURATION+8.
LD_VALUE2 = LD_SEC.
WRITE LD_VALUE2 TO LT_OUTPUT_DURATION+9(2).
LT_OUTPUT_DURATION = LT_OUTPUT_DURATION+1.
if ld_minus = true.
write '-' to lt_output_duration+1(1).
endif.
ELSE.
* job running or aborted
ENDIF.
ENDFUNCTION.Regards
Vijay