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: 
Read only

How to Create a Function Module-'MONI_TIME_CONVERT '

Former Member
0 Likes
806

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

3 REPLIES 3
Read only

Former Member
0 Likes
626

This FM exists!!!!

Just use it in your ABAP Programs

rgrds

Read only

Former Member
0 Likes
626

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

Read only

0 Likes
626

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